cleaning up code
[radsecproxy.git] / util.c
diff --git a/util.c b/util.c
index 5dc5f34..02614eb 100644 (file)
--- a/util.c
+++ b/util.c
@@ -72,6 +72,27 @@ void printfchars(char *prefixfmt, char *prefix, char *charfmt, char *chars, int
     printf("\n");
 }
 
+uint16_t port_get(struct sockaddr *sa) {
+    switch (sa->sa_family) {
+    case AF_INET:
+       return ntohs(((struct sockaddr_in *)sa)->sin_port);
+    case AF_INET6:
+       return ntohs(((struct sockaddr_in6 *)sa)->sin6_port);
+    }
+    return 0;
+}
+
+void port_set(struct sockaddr *sa, uint16_t port) {
+    switch (sa->sa_family) {
+    case AF_INET:
+       ((struct sockaddr_in *)sa)->sin_port = htons(port);
+       break;
+    case AF_INET6:
+       ((struct sockaddr_in6 *)sa)->sin6_port = htons(port);
+       break;
+    }
+}
+
 int addr_equal(struct sockaddr *a, struct sockaddr *b) {
     switch (a->sa_family) {
     case AF_INET: