updates.
[runtime.git] / lib / silcutil / silcnet.c
index 6914ccceecbb817e3dfa40d81efee11865f0123e..5b060d1e5f5989f06504248dfc02b187e5d7ac9e 100644 (file)
@@ -306,6 +306,21 @@ unsigned short silc_net_get_remote_port(int sock)
   return ntohs(remote.sin_port);
 }
 
+/* Return local port by socket. */
+
+unsigned short silc_net_get_local_port(int sock)
+{
+  struct sockaddr_in local;
+  int len;
+
+  memset(&local, 0, sizeof(local));
+  len = sizeof(local);
+  if (getsockname(sock, (struct sockaddr *)&local, &len) < 0)
+    return 0;
+
+  return ntohs(local.sin_port);
+}
+
 /* Return name of localhost. */
 
 char *silc_net_localhost()