diff options
Diffstat (limited to 'src/libcharon/network/socket_manager.h')
-rw-r--r-- | src/libcharon/network/socket_manager.h | 21 |
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. |