diff options
| author | Andreas.Eversberg <jolly@eversberg.eu> | 2011-11-06 20:09:28 +0100 | 
|---|---|---|
| committer | Harald Welte <laforge@gnumonks.org> | 2011-11-12 23:23:36 +0100 | 
| commit | dc3be0a6533be782c76f23ce653f4fc683b3b4f1 (patch) | |
| tree | 0c1ff5b7b4126cc6c129c2a1ca1384b2759b16c7 | |
| parent | aeeb7070f84437aa608a3d843346b1efa916d175 (diff) | |
vty/telnet_interface: Add telnet_exit function
This frees socket and pending connections
Written-by: Andreas Eversberg <jolly@eversberg.eu>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
| -rw-r--r-- | include/osmocom/vty/telnet_interface.h | 2 | ||||
| -rw-r--r-- | src/vty/telnet_interface.c | 12 | 
2 files changed, 14 insertions, 0 deletions
| diff --git a/include/osmocom/vty/telnet_interface.h b/include/osmocom/vty/telnet_interface.h index 9a7c9e52..2de4f192 100644 --- a/include/osmocom/vty/telnet_interface.h +++ b/include/osmocom/vty/telnet_interface.h @@ -48,6 +48,8 @@ struct telnet_connection {  int telnet_init(void *tall_ctx, void *priv, int port); +void telnet_exit(void); +  /*! }@ */  #endif /* TELNET_INTERFACE_H */ diff --git a/src/vty/telnet_interface.c b/src/vty/telnet_interface.c index ed64cdab..167acc18 100644 --- a/src/vty/telnet_interface.c +++ b/src/vty/telnet_interface.c @@ -221,4 +221,16 @@ void vty_event(enum event event, int sock, struct vty *vty)  	}  } +void telnet_exit(void)  +{ +	struct telnet_connection *tc, *tc2; + +	llist_for_each_entry_safe(tc, tc2, &active_connections, entry) +		telnet_close_client(&tc->fd); + +	osmo_fd_unregister(&server_socket); +	close(server_socket.fd); +	talloc_free(tall_telnet_ctx); +} +  /*! }@ */ | 
