From: Pekka Riikonen Date: Sat, 15 Mar 2008 18:24:27 +0000 (+0200) Subject: Added socket stream and socket into SilcClientConnection context. X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=08e0dddd6750b245da53e2bc3528d0b5a6d57e8b Added socket stream and socket into SilcClientConnection context. --- diff --git a/lib/silcclient/client_connect.c b/lib/silcclient/client_connect.c index aeaa374f..9d74e0b3 100644 --- a/lib/silcclient/client_connect.c +++ b/lib/silcclient/client_connect.c @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 2006 - 2007 Pekka Riikonen + Copyright (C) 2006 - 2008 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -454,6 +454,11 @@ SILC_FSM_STATE(silc_client_st_connect_set_stream) silc_packet_set_context(conn->stream, conn); + /* Save socket stream and socket into connection context */ + conn->socket_stream = silc_packet_stream_get_stream(conn->stream); + silc_socket_stream_get_info(conn->socket_stream, &conn->sock, NULL, + NULL, NULL); + /** Start key exchange */ silc_fsm_next(fsm, silc_client_st_connect_key_exchange); return SILC_FSM_CONTINUE; @@ -551,6 +556,9 @@ SILC_FSM_STATE(silc_client_st_connect_setup_udp) /* Set the new stream to packet stream */ old = silc_packet_stream_get_stream(conn->stream); silc_packet_stream_set_stream(conn->stream, stream); + conn->socket_stream = stream; + silc_socket_stream_get_info(conn->socket_stream, &conn->sock, NULL, + NULL, NULL); silc_packet_stream_set_iv_included(conn->stream); silc_packet_set_sid(conn->stream, 0); diff --git a/lib/silcclient/client_listener.c b/lib/silcclient/client_listener.c index 3735877c..76db6af7 100644 --- a/lib/silcclient/client_listener.c +++ b/lib/silcclient/client_listener.c @@ -181,6 +181,9 @@ silc_client_listener_new_connection(SilcClientListener listener, return; } conn->stream = stream; + conn->socket_stream = silc_packet_stream_get_stream(stream); + silc_socket_stream_get_info(conn->socket_stream, &conn->sock, NULL, + NULL, NULL); conn->internal->schedule = listener->schedule; silc_packet_set_context(conn->stream, conn); diff --git a/lib/silcclient/silcclient.h b/lib/silcclient/silcclient.h index 5e6c0d42..23f1aabc 100644 --- a/lib/silcclient/silcclient.h +++ b/lib/silcclient/silcclient.h @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 2000 - 2007 Pekka Riikonen + Copyright (C) 2000 - 2008 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -227,6 +227,8 @@ struct SilcClientConnectionStruct { SilcPublicKey public_key; /* Public key used in this connection */ SilcPrivateKey private_key; /* Private key */ SilcPacketStream stream; /* Connection to remote host */ + SilcStream socket_stream; /* Socket stream from 'stream' */ + SilcSocket sock; /* The socket from 'socket_stream' */ SilcConnectionType type; /* Connection type */ SilcClientConnectCallback callback; /* Connection callback */ void *callback_context; /* Connection context */