Add support for destroying a TCP client
This commit is contained in:
parent
0ab6e3ae16
commit
b95b2b8c5b
2 changed files with 18 additions and 0 deletions
16
tcp.c
16
tcp.c
|
@ -372,6 +372,7 @@ tcp_disconnect(tcp_session_t *ses, int err)
|
|||
ses->tcp_name, ses->tcp_peer_txt, strerror(err));
|
||||
|
||||
close(dispatch_delfd(ses->tcp_dispatch_handle));
|
||||
ses->tcp_dispatch_handle = NULL;
|
||||
|
||||
if(ses->tcp_server != NULL) {
|
||||
free(ses->tcp_name);
|
||||
|
@ -681,3 +682,18 @@ tcp_create_server(int port, size_t session_size, const char *name,
|
|||
|
||||
s->tcp_server_name = strdup(name);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
void
|
||||
tcp_destroy_client(tcp_session_t *ses)
|
||||
{
|
||||
if(ses->tcp_dispatch_handle != NULL)
|
||||
tcp_disconnect(ses, 0);
|
||||
|
||||
dtimer_disarm(&ses->tcp_timer);
|
||||
free(ses->tcp_name);
|
||||
free(ses->tcp_hostname);
|
||||
free(ses);
|
||||
}
|
||||
|
|
2
tcp.h
2
tcp.h
|
@ -115,4 +115,6 @@ void tcp_output_queue(tcp_session_t *ses, tcp_queue_t *dst, tcp_queue_t *src);
|
|||
void *tcp_create_client(const char *hostname, int port, size_t session_size,
|
||||
const char *name, tcp_callback_t *cb);
|
||||
|
||||
void tcp_destroy_client(tcp_session_t *ses);
|
||||
|
||||
#endif /* TCP_H_ */
|
||||
|
|
Loading…
Add table
Reference in a new issue