Added get_port() method to socket_t to learn the listening port.
[strongswan.git] / src / libcharon / network / socket_manager.h
index b33d5c7..1909d1f 100644 (file)
@@ -1,4 +1,6 @@
 /*
+ * Copyright (C) 2010-2012 Tobias Brunner
+ * Hochschule fuer Technik Rapperswil
  * Copyright (C) 2010 Martin Willi
  * Copyright (C) 2010 revosec AG
  *
@@ -51,14 +53,26 @@ struct socket_manager_t {
        status_t (*send) (socket_manager_t *this, packet_t *packet);
 
        /**
-        * Register a socket implementation.
+        * Get the port the registered socket is listening on.
+        *
+        * @param nat_t                 TRUE to get the port used to float in case of NAT-T
+        * @return                              the port, or 0, if no socket is registered
+        */
+       u_int16_t (*get_port) (socket_manager_t *this, bool nat_t);
+
+       /**
+        * Register a socket constructor.
+        *
+        * @param create                constructor for the socket
         */
-       void (*add_socket)(socket_manager_t *this, socket_t *socket);
+       void (*add_socket)(socket_manager_t *this, socket_constructor_t create);
 
        /**
-        * Unregister a registered socket implementation.
+        * Unregister a registered socket constructor.
+        *
+        * @param create                constructor for the socket
         */
-       void (*remove_socket)(socket_manager_t *this, socket_t *socket);
+       void (*remove_socket)(socket_manager_t *this, socket_constructor_t create);
 
        /**
         * Destroy a socket_manager_t.