summaryrefslogtreecommitdiff
path: root/src/libcharon/network/socket_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcharon/network/socket_manager.h')
-rw-r--r--src/libcharon/network/socket_manager.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/libcharon/network/socket_manager.h b/src/libcharon/network/socket_manager.h
index 94185d21c..a07d0804c 100644
--- a/src/libcharon/network/socket_manager.h
+++ b/src/libcharon/network/socket_manager.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Tobias Brunner
+ * Copyright (C) 2010-2013 Tobias Brunner
* Hochschule fuer Technik Rapperswil
* Copyright (C) 2010 Martin Willi
* Copyright (C) 2010 revosec AG
@@ -40,7 +40,7 @@ struct socket_manager_t {
* - SUCCESS when packet successfully received
* - FAILED when unable to receive
*/
- status_t (*receive) (socket_manager_t *this, packet_t **packet);
+ status_t (*receive)(socket_manager_t *this, packet_t **packet);
/**
* Send a packet using the registered socket.
@@ -50,7 +50,22 @@ struct socket_manager_t {
* - SUCCESS when packet successfully sent
* - FAILED when unable to send
*/
- status_t (*send) (socket_manager_t *this, packet_t *packet);
+ status_t (*send)(socket_manager_t *this, packet_t *packet);
+
+ /**
+ * 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);
+
+ /**
+ * Get the address families the registered socket is listening on.
+ *
+ * @return address families
+ */
+ socket_family_t (*supported_families)(socket_manager_t *this);
/**
* Register a socket constructor.