Add support for destroying a TCP client

This commit is contained in:
Andreas Öman 2008-05-17 07:31:08 +00:00
parent 0ab6e3ae16
commit b95b2b8c5b
2 changed files with 18 additions and 0 deletions

16
tcp.c
View file

@ -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
View file

@ -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_ */