Add cleanup

--HG--
branch : fastopen
This commit is contained in:
Matt Johnston 2015-02-28 23:15:23 +08:00
parent 31e379c300
commit 89c0b2a6d8
3 changed files with 13 additions and 0 deletions

View File

@ -281,6 +281,8 @@ void session_cleanup() {
other session state is freed. */
remove_all_listeners();
remove_connect_pending();
while (!isempty(&ses.writequeue)) {
buf_free(dequeue(&ses.writequeue));
}

View File

@ -177,6 +177,13 @@ struct dropbear_progress_connection *connect_remote(const char* remotehost, cons
return c;
}
void remove_connect_pending() {
while (ses.conn_pending.first) {
struct dropbear_progress_connection *c = ses.conn_pending.first->item;
remove_connect(c, ses.conn_pending.first);
}
}
void set_connect_fds(fd_set *writefd) {
m_list_elem *iter;

View File

@ -30,8 +30,12 @@ typedef void(*connect_callback)(int result, int sock, void* data, const char* er
struct dropbear_progress_connection * connect_remote (const char* remotehost, const char* remoteport,
connect_callback cb, void *cb_data);
/* Sets up for select() */
void set_connect_fds(fd_set *writefd);
/* Handles ready sockets after select() */
void handle_connect_fds(fd_set *writefd);
/* Cleanup */
void remove_connect_pending();
/* Doesn't actually stop the connect, but adds a dummy callback instead */
void cancel_connect(struct dropbear_progress_connection *c);