aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/core/sockaddr_str.h
AgeCommit message (Collapse)AuthorFilesLines
2022-08-17Revert "Add function to guess AF_UNSPEC address"neels1-1/+0
This reverts commit a4063efa7deb6632c228037c47effca22ad0f781. Reason for revert: It is not possible to guess the IP address family from uninitialized memory. This function simply glorifies random noise into an IPv6 address. It makes no sense to have it. Change-Id: Ifadd614604cf9d0c2ed1a405493c1c3fcb37ae23
2022-08-17Revert "Add osmo_sockaddr_strs_to_str()"neels1-9/+6
This reverts commit e145e28a91eeca65d34d7b82caa2190fa89492b4. Reason for revert: The function osmo_sockaddr_strs_to_str() should not be part of the osmo_sockaddr_str API. The implementation of this should live in the function multiaddr_snprintf() added in patch Icef53fe4b6e51563d97a1bc48001d67679b3b6e9 and should not use dynamic allocation. Change-Id: I263dfd68313b896c5b474025fbca13c22ce41cdc
2022-08-14Add osmo_sockaddr_strs_to_str()Max1-6/+9
This will come in handy for working with multihomes sockets like SCTP. Related: OS#5581 Change-Id: Ic0d7c08f669994e37a2314555ecac85d28c42c89
2022-08-09Add function to guess AF_UNSPEC addressMax1-0/+1
Sometimes we receive generic "struct sockaddr" with unspecified (AF_UNSPEC) address family. It's handy to try to guess the proper address (there're just 2 variants ATM in most practical applications). Use the added function to relax input checks in osmo_sockaddr_str_from_in*() Related: OS#5581 Change-Id: I1c90c56ce832f53b65e0d18d3cea94621c02a69a
2021-12-14treewide: remove FSF addressOliver Smith1-4/+0
Remove the paragraph about writing to the Free Software Foundation's mailing address. The FSF has changed addresses in the past, and may do so again. In 2021 this is not useful, let's rather have a bit less boilerplate at the start of source files. Change-Id: I5050285e75cf120407a1d883e99b3c4bcae8ffd7
2020-09-02sockaddr_str: add osmo_sockaddr_str_from_str2() which doesn't set the portAlexander Couzens1-0/+1
In case the port isn't known at the time osmo_sockaddr_str_from_str2() parse only the ip and don't touch the port. This is the case when a user has different vty commands for ip and port. Change-Id: Ifd4e282586b8bd40b912a9f1c25f9e8208420106
2019-11-24osmo_sockaddr_str: deprecate osmo_sockaddr_str_*_32n()Neels Hofmeyr1-2/+8
Follow up for patch I3cf150cc0cc06dd36039fbde091bc71b01697322 osmo_sockaddr_str_{from,to}_32n actually use host byte order. Deprecate these and introduce a more accurately named version ending in h. Change-Id: Ic7fc279bf3c741811cfc002538e28e8f8560e338
2019-11-21add osmo_sockaddr_str_cmp()Neels Hofmeyr1-0/+1
Currently planned user: for Distributed GSM in osmo-hlr: setting per-MSC service addresses in VTY: replace/remove existing entries. osmo_sockaddr_str_cmp() is useful to catch identical resulting IP addresses, regardless of differing strings (e.g. '0::' and '::' are equal but differ in strings). Change-Id: I0dbc1cf707098dcda75f8e07c1b936951f9f9501
2019-11-11fix OSMO_SOCKADDR_STR_FMT for IPv6Neels Hofmeyr1-2/+6
The format prints IP:port separated by a colon, which of course is confusing when the IPv6 address itself contains mostly colons. The new format adds square braces. cafe:face::1:42 -> [cafe:face::1]:42 The IPv4 format remains unchanged: 1.2.3.4:42 Change-Id: I161f8427729ae31be0eac719b7a4a9290715e37f
2019-11-01add osmo_sockaddr_str_is_nonzero()Neels Hofmeyr1-0/+1
Often, an IP address of 0.0.0.0 is considered an unset value (for clients requiring a server address; not for listening on "any"). osmo_sockaddr_str_is_set() does return false when the port is 0, but there is no simple way to tell whether the IP address is actually set to a server address. Add osmo_sockaddr_str_is_nonzero() to return false if: - the port is zero, or - the IP address is zero (0.0.0.0 or ::0), or - the IP address cannot be parsed. A practical use example: osmo-msc so far accepts an RTP IP address of 0.0.0.0 as valid. I noticed when trying to trigger error handling from a ttcn3 test. osmo-msc can use this function to reject invalid addresses from MGCP messages. Related: I53ddb19a70fda3deb906464e1b89c12d9b4c7cbd (osmo-msc) Change-Id: I73cbcab90cffcdc9a5f8d5281c57c1f87b2c3550
2019-08-30OSMO_SOCKADDR_STR_FMT_ARGS: guard against NULL pointerNeels Hofmeyr1-1/+1
The pointless '(R)->ip?' condition of the previous commit made me want to protect against R == NULL instead. Change-Id: Ie2f47ad8ae585aaf67a6476c67f8e014820a72bc
2019-08-30OSMO_SOCKADDR_STR_FMT_ARGS: remove useless conditionNeels Hofmeyr1-1/+1
Since (R)->ip is a char[], it is always non-NULL. The (x ? : "") condition is completely pointless. Remove it. Change-Id: I13ed06776a784cfa99bbdfca2bb4dfe12913a1ec
2019-04-08add osmo_sockaddr_str APINeels Hofmeyr1-0/+87
For handling RTP IP addresses and ports, osmo-mgw, osmo-bsc and osmo-msc so far have their own separate shims and code duplication around inet_ntoa(), htons(), sockaddr conversions etc. Unify and standardize with this common API. In the MGW endpoint FSM that was introduced in osmo-bsc and which I would like to re-use for osmo-msc (upcoming patch moving that to osmo-mgw), it has turned out that using char* IP address and uint16_t port number types are a convenient common denominator for logging, MGCP message composition and GSM48. Ongoing osmo-msc work also uses this for MNCC. This is of course potentially useful for any other IP+port combinations besides RTP stream handling. Needless to say that most current implementations will probably stay with their current own conversion code for a long time; for current osmo-{bsc,msc,mgw} work (MGW endpoint FSM) though, I would like to move to this API here. Change-Id: Id617265337f09dfb6ddfe111ef5e578cd3dc9f63