X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcclient%2Fclient_internal.h;h=4155d61ed93e77a40f49d779d8f81329e2a96bb8;hp=098054804d5fc71d000d9155af996b02606cb7f5;hb=413da0f8686910f5e627393157566ae729ca99c4;hpb=050bd9d9e5d843220f3f393a18ab5011622237b9 diff --git a/lib/silcclient/client_internal.h b/lib/silcclient/client_internal.h index 09805480..4155d61e 100644 --- a/lib/silcclient/client_internal.h +++ b/lib/silcclient/client_internal.h @@ -1,10 +1,10 @@ /* - client_internal.h + client_internal.h Author: Pekka Riikonen - Copyright (C) 1997 - 2001 Pekka Riikonen + Copyright (C) 1997 - 2001, 2003 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 @@ -31,14 +31,14 @@ typedef struct { /* Generic rekey context for connections */ typedef struct { - /* Current sending encryption key, provided for re-key. The `pfs' + /* Current sending encryption key, provided for re-key. The `pfs' is TRUE if the Perfect Forward Secrecy is performed in re-key. */ unsigned char *send_enc_key; SilcUInt32 enc_key_len; int ske_group; bool pfs; SilcUInt32 timeout; - void *context; + void *context; } *SilcClientRekey; /* Internal context for connection process. This is needed as we @@ -54,7 +54,7 @@ typedef struct { void *context; } SilcClientInternalConnectContext; -/* Structure to hold ping time information. Every PING command will +/* Structure to hold ping time information. Every PING command will add entry of this structure and is removed after reply to the ping as been received. */ struct SilcClientPingStruct { @@ -65,7 +65,7 @@ struct SilcClientPingStruct { /* Structure to hold away messages set by user. This is mainly created for future extensions where away messages could be set according filters - such as nickname and hostname. For now only one away message can + such as nickname and hostname. For now only one away message can be set in one connection. */ struct SilcClientAwayStruct { char *away; @@ -161,7 +161,7 @@ typedef void (*SilcClientResumeSessionCallback)(SilcClient client, /* Macros */ /* Registers generic task for file descriptor for reading from network and - writing to network. As being generic task the actual task is allocated + writing to network. As being generic task the actual task is allocated only once and after that the same task applies to all registered fd's. */ #define SILC_CLIENT_REGISTER_CONNECTION_FOR_IO(fd) \ do { \ @@ -176,7 +176,7 @@ do { \ do { \ silc_schedule_set_listen_fd((s), (fd), SILC_TASK_READ, FALSE); \ } while(0) - + #define SILC_CLIENT_SET_CONNECTION_FOR_OUTPUT(s, fd) \ do { \ silc_schedule_set_listen_fd((s), (fd), (SILC_TASK_READ | \ @@ -190,6 +190,7 @@ do { \ \ for (__i = 0; __i < (__x)->internal->conns_count; __i++) \ if ((__x)->internal->conns[__i] && \ + (__x)->internal->conns[__i]->sock && \ (__x)->internal->conns[__i]->sock->sock == (__fd)) \ break; \ \ @@ -221,7 +222,7 @@ void silc_client_packet_send(SilcClient client, unsigned char *data, SilcUInt32 data_len, bool force_send); -bool silc_client_packet_send_real(SilcClient client, +int silc_client_packet_send_real(SilcClient client, SilcSocketConnection sock, bool force_send); void silc_client_ftp_free_sessions(SilcClient client, @@ -243,18 +244,18 @@ void silc_client_receive_new_id(SilcClient client, SilcIDPayload idp); void silc_client_save_channel_key(SilcClient client, SilcClientConnection conn, - SilcBuffer key_payload, + SilcBuffer key_payload, SilcChannelEntry channel); void silc_client_receive_channel_key(SilcClient client, SilcSocketConnection sock, SilcBuffer packet); -void silc_client_channel_message(SilcClient client, - SilcSocketConnection sock, +void silc_client_channel_message(SilcClient client, + SilcSocketConnection sock, SilcPacketContext *packet); void silc_client_remove_from_channels(SilcClient client, SilcClientConnection conn, SilcClientEntry client_entry); -void silc_client_replace_from_channels(SilcClient client, +void silc_client_replace_from_channels(SilcClient client, SilcClientConnection conn, SilcClientEntry old, SilcClientEntry newclient); @@ -267,8 +268,8 @@ void silc_client_key_agreement(SilcClient client, void silc_client_notify_by_server(SilcClient client, SilcSocketConnection sock, SilcPacketContext *packet); -void silc_client_private_message(SilcClient client, - SilcSocketConnection sock, +void silc_client_private_message(SilcClient client, + SilcSocketConnection sock, SilcPacketContext *packet); void silc_client_connection_auth_request(SilcClient client, SilcSocketConnection sock, @@ -289,6 +290,8 @@ void silc_client_resume_session(SilcClient client, SilcBuffer silc_client_attributes_process(SilcClient client, SilcSocketConnection sock, SilcDList attrs); +void silc_client_packet_queue_purge(SilcClient client, + SilcSocketConnection sock); SILC_TASK_CALLBACK_GLOBAL(silc_client_rekey_callback); #endif