X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fnetutl.c;h=a9ad17ce016c8c27277251a3bf4b74989aa418f6;hb=ab13c14a1480561bb9f59ccfbbd6045e0484ce9c;hp=2eebb6445ec5266ccaf36847a44d9dfab027f991;hpb=23fda4db6d1bb400a97f6d2a07d9b700f9546129;p=tinc diff --git a/src/netutl.c b/src/netutl.c index 2eebb644..a9ad17ce 100644 --- a/src/netutl.c +++ b/src/netutl.c @@ -234,3 +234,22 @@ void sockaddrunmap(sockaddr_t *sa) { sa->in.sin_family = AF_INET; } } + +void sockaddr_setport(sockaddr_t *sa, const char *port) { + uint16_t portnum = htons(atoi(port)); + if(!portnum) + return; + switch(sa->sa.sa_family) { + case AF_INET: + sa->in.sin_port = portnum; + break; + case AF_INET6: + sa->in6.sin6_port = portnum; + break; + case AF_UNKNOWN: + free(sa->unknown.port); + sa->unknown.port = xstrdup(port); + default: + return; + } +}