From: Piotr S. <ps...@us...> - 2009-09-17 12:05:39
|
Update of /cvsroot/ayttm/ayttm/modules/irc/libirc In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv12682/modules/irc/libirc Modified Files: ctcp.c ctcp.h irc_message.c irc_replies.h libirc.c libirc.h Log Message: reformatted source code Index: ctcp.c =================================================================== RCS file: /cvsroot/ayttm/ayttm/modules/irc/libirc/ctcp.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ctcp.c 2 Aug 2008 06:13:10 -0000 1.2 +++ ctcp.c 17 Sep 2009 12:04:59 -0000 1.3 @@ -30,469 +30,466 @@ * String data for CTCP data types * The CTCPCommandType enumerator elements act as offset to this array */ -static const CTCPExtData ctcp_command [] = - { - {"ACTION" ,6 , " allows user to refer to 'perform' action." - " This is shown by chat clients in 3rd person." }, - {"DCC" ,3 , " allows direct connection between clients." }, - {"SED" ,3 , " allows encrypted communication between clients." }, - {"FINGER" ,6 , " returns user's full name and idle time" }, - {"VERSION" ,7 , " shows client type, version and environment." }, - {"SOURCE" ,6 , " shows location from where to download client source code." }, - {"USERINFO" ,8 , " shows user information" }, - {"CLIENTINFO" ,10, " gives information about available CTCP commands." }, - {"ERRMSG" ,6 , " is used to display and reply to errors." }, - {"PING" ,4 , " echoes back whatever it receives." }, - {"TIME" ,4 , " shows the current time on the client system." } - } ; - +static const CTCPExtData ctcp_command[] = { + {"ACTION", 6, " allows user to refer to 'perform' action." + " This is shown by chat clients in 3rd person."}, + {"DCC", 3, " allows direct connection between clients."}, + {"SED", 3, " allows encrypted communication between clients."}, + {"FINGER", 6, " returns user's full name and idle time"}, + {"VERSION", 7, " shows client type, version and environment."}, + {"SOURCE", 6, " shows location from where to download client source code."}, + {"USERINFO", 8, " shows user information"}, + {"CLIENTINFO", 10, " gives information about available CTCP commands."}, + {"ERRMSG", 6, " is used to display and reply to errors."}, + {"PING", 4, " echoes back whatever it receives."}, + {"TIME", 4, " shows the current time on the client system."} +}; #define ctcp_strndup(outstr,str,len) {\ outstr=(char *)calloc(len+1, sizeof(char)) ; \ strncpy(outstr,str,len); \ } - -static void ctcp_low_encode ( char *msg, int size, int mem_size ) +static void ctcp_low_encode(char *msg, int size, int mem_size) { - int offset, out_offset ; - char *in_msg = NULL ; - + int offset, out_offset; + char *in_msg = NULL; + ctcp_strndup(in_msg, msg, size); - for (offset=0, out_offset=0; offset<=size; offset++, out_offset++) { + for (offset = 0, out_offset = 0; offset <= size; offset++, out_offset++) { /* Reallocate if we're falling short of memory... will happen only in rare cases */ - if ( out_offset >= mem_size - 1 ) { - mem_size += mem_size / 2 ; - msg = (char *)realloc(msg, mem_size*sizeof(char)); + if (out_offset >= mem_size - 1) { + mem_size += mem_size / 2; + msg = (char *)realloc(msg, mem_size * sizeof(char)); } - if ( in_msg[offset] == CTCP_NL ) { - msg [ out_offset++ ] = CTCP_MQUOTE ; - msg [ out_offset ] = 'n' ; - } - else if ( in_msg[offset] == CTCP_CR ) { - msg [ out_offset++ ] = CTCP_MQUOTE ; - msg [ out_offset ] = 'r' ; - } - else { - msg [out_offset] = in_msg[offset] ; + if (in_msg[offset] == CTCP_NL) { + msg[out_offset++] = CTCP_MQUOTE; + msg[out_offset] = 'n'; + } else if (in_msg[offset] == CTCP_CR) { + msg[out_offset++] = CTCP_MQUOTE; + msg[out_offset] = 'r'; + } else { + msg[out_offset] = in_msg[offset]; } } } - -char *ctcp_encode ( const char *msg, int msg_size ) +char *ctcp_encode(const char *msg, int msg_size) { - int offset, out_size, out_capacity ; - char *out_msg = NULL ; - - out_capacity = msg_size*2 ; + int offset, out_size, out_capacity; + char *out_msg = NULL; + + out_capacity = msg_size * 2; out_msg = (char *)calloc(out_capacity, sizeof(char)); - for ( offset = 0, out_size = 0; offset <= msg_size; offset++, out_size++ ) { + for (offset = 0, out_size = 0; offset <= msg_size; offset++, out_size++) { /* Reallocate if we're falling short of memory... will happen only in rare cases */ - if ( out_size >= out_capacity - 1 ) { - out_capacity += msg_size/2 ; - out_msg = (char *)realloc(out_msg, out_capacity*sizeof(char)); + if (out_size >= out_capacity - 1) { + out_capacity += msg_size / 2; + out_msg = + (char *)realloc(out_msg, + out_capacity * sizeof(char)); } - if (msg [offset] == CTCP_TAG ) { - out_msg [out_size++] = CTCP_XQUOTE ; - out_msg [ out_size ] = 'a' ; - } - else if (msg [offset] == CTCP_XQUOTE ) { - out_msg [out_size++] = CTCP_XQUOTE ; - out_msg [ out_size ] = CTCP_XQUOTE ; - } - else { - out_msg [ out_size ] = msg [offset] ; + if (msg[offset] == CTCP_TAG) { + out_msg[out_size++] = CTCP_XQUOTE; + out_msg[out_size] = 'a'; + } else if (msg[offset] == CTCP_XQUOTE) { + out_msg[out_size++] = CTCP_XQUOTE; + out_msg[out_size] = CTCP_XQUOTE; + } else { + out_msg[out_size] = msg[offset]; } } /* Do low level quoting */ - ctcp_low_encode ( out_msg, out_size, out_capacity ) ; + ctcp_low_encode(out_msg, out_size, out_capacity); - return out_msg ; + return out_msg; } - -static void ctcp_low_decode ( char *msg, const char *in_msg, int size ) +static void ctcp_low_decode(char *msg, const char *in_msg, int size) { int offset, out_offset; - for (offset=0, out_offset=0; offset<=size; offset++, out_offset++) { - if ( in_msg[offset] == CTCP_MQUOTE ) { - if (in_msg[offset+1] == '0') - msg[out_offset] = CTCP_NUL ; - else if (in_msg[offset+1] == 'n') - msg[out_offset] = CTCP_NL ; - else if (in_msg[offset+1] == 'r') - msg[out_offset] = CTCP_CR ; + for (offset = 0, out_offset = 0; offset <= size; offset++, out_offset++) { + if (in_msg[offset] == CTCP_MQUOTE) { + if (in_msg[offset + 1] == '0') + msg[out_offset] = CTCP_NUL; + else if (in_msg[offset + 1] == 'n') + msg[out_offset] = CTCP_NL; + else if (in_msg[offset + 1] == 'r') + msg[out_offset] = CTCP_CR; else msg[out_offset] = in_msg[offset]; - offset++ ; - } - else { + offset++; + } else { msg[out_offset] = in_msg[offset]; } } } - -char *ctcp_decode ( const char *msg, int msg_size ) +char *ctcp_decode(const char *msg, int msg_size) { int offset, out_size; - char *out_msg = NULL ; - - out_msg = (char *)calloc(msg_size+1, sizeof(char)); + char *out_msg = NULL; + + out_msg = (char *)calloc(msg_size + 1, sizeof(char)); /* Do low level quoting */ - ctcp_low_decode ( out_msg, msg, msg_size ) ; + ctcp_low_decode(out_msg, msg, msg_size); - for ( offset = 0, out_size = 0; offset <= msg_size; offset++, out_size++ ) { + for (offset = 0, out_size = 0; offset <= msg_size; offset++, out_size++) { - if (msg [offset] == CTCP_XQUOTE ) { - if ( msg[offset+1] == CTCP_XQUOTE ) - out_msg [out_size] = CTCP_XQUOTE ; - else if ( msg[offset+1] == 'a' ) - out_msg [out_size] = CTCP_TAG ; + if (msg[offset] == CTCP_XQUOTE) { + if (msg[offset + 1] == CTCP_XQUOTE) + out_msg[out_size] = CTCP_XQUOTE; + else if (msg[offset + 1] == 'a') + out_msg[out_size] = CTCP_TAG; else out_msg[out_size] = msg[offset]; - offset++ ; - } - else { - out_msg [ out_size ] = msg [offset] ; + offset++; + } else { + out_msg[out_size] = msg[offset]; } } - return out_msg ; + return out_msg; } - void ctcp_free_extended_data(ctcp_extended_data_list *data_list) { - while(data_list) { + while (data_list) { ctcp_extended_data_list *elem = data_list; - data_list = data_list -> next; - - if (elem -> ext_data ) { - if( elem -> ext_data -> data ) { - free(elem -> ext_data -> data); + data_list = data_list->next; + + if (elem->ext_data) { + if (elem->ext_data->data) { + free(elem->ext_data->data); } - free(elem -> ext_data); + free(elem->ext_data); } free(elem); } } - -ctcp_extended_data_list *ctcp_get_extended_data ( const char *in_msg, int size) +ctcp_extended_data_list *ctcp_get_extended_data(const char *in_msg, int size) { - int delimiter=0 ; + int delimiter = 0; - char *msg_start = NULL ; - char *cmd = NULL ; - char *tag_loc = NULL ; - char *temp = NULL ; - int count = 0 ; + char *msg_start = NULL; + char *cmd = NULL; + char *tag_loc = NULL; + char *temp = NULL; + int count = 0; char *msg = strdup(in_msg); - msg_start = msg ; + msg_start = msg; - ctcp_extended_data_list *list_head = NULL ; - ctcp_extended_data_list *data_list = NULL ; + ctcp_extended_data_list *list_head = NULL; + ctcp_extended_data_list *data_list = NULL; - if ( !in_msg ) - return NULL ; + if (!in_msg) + return NULL; - while ( (msg - msg_start) < size && (tag_loc = strchr(msg, CTCP_TAG)) != NULL ) { - - *tag_loc = '\0' ; - - if (data_list == NULL) { - data_list = (ctcp_extended_data_list *)calloc(1, sizeof(ctcp_extended_data_list)); - list_head = data_list ; - } - else { - data_list -> next = (ctcp_extended_data_list *)calloc(1, sizeof(ctcp_extended_data_list)); - data_list = data_list -> next ; - } + while ((msg - msg_start) < size + && (tag_loc = strchr(msg, CTCP_TAG)) != NULL) { - delimiter = !delimiter ; + *tag_loc = '\0'; - data_list -> ext_data = (ctcp_extended_data *)calloc(1, sizeof(ctcp_extended_data)); + if (data_list == NULL) { + data_list = + (ctcp_extended_data_list *)calloc(1, + sizeof(ctcp_extended_data_list)); + list_head = data_list; + } else { + data_list->next = + (ctcp_extended_data_list *)calloc(1, + sizeof(ctcp_extended_data_list)); + data_list = data_list->next; + } + + delimiter = !delimiter; + + data_list->ext_data = + (ctcp_extended_data *)calloc(1, + sizeof(ctcp_extended_data)); /* We found an odd delimiter. The stuff before it is plain text */ if (delimiter) { - data_list -> ext_data -> type = CTCP_NONE ; - } - else { + data_list->ext_data->type = CTCP_NONE; + } else { cmd = strchr(msg, ' '); if (cmd) { - *cmd = '\0' ; - temp = msg ; - msg = cmd + 1 ; - cmd = temp ; - } - else { - cmd = msg ; - msg = tag_loc ; + *cmd = '\0'; + temp = msg; + msg = cmd + 1; + cmd = temp; + } else { + cmd = msg; + msg = tag_loc; } - for (count = CTCP_NONE + 1; count < CTCP_DATA_COUNT; count++ ) { - if ( !strcmp( cmd, ctcp_command [ count ].data ) ) { - data_list -> ext_data -> type = count ; - break ; + for (count = CTCP_NONE + 1; count < CTCP_DATA_COUNT; + count++) { + if (!strcmp(cmd, ctcp_command[count].data)) { + data_list->ext_data->type = count; + break; } } if (count == CTCP_DATA_COUNT) { - data_list -> ext_data -> type = CTCP_NONE ; + data_list->ext_data->type = CTCP_NONE; } } - data_list -> ext_data -> data = strdup(msg) ; - msg = tag_loc+1 ; + data_list->ext_data->data = strdup(msg); + msg = tag_loc + 1; } /* if there is anything remaining in the message then put that into the list as well */ - if ( (msg - msg_start) < size ) { + if ((msg - msg_start) < size) { if (data_list == NULL) { - data_list = (ctcp_extended_data_list *)calloc(1, sizeof(ctcp_extended_data_list)); - list_head = data_list ; - } - else { - data_list -> next = (ctcp_extended_data_list *)calloc(1, sizeof(ctcp_extended_data_list)); - data_list = data_list -> next ; + data_list = + (ctcp_extended_data_list *)calloc(1, + sizeof(ctcp_extended_data_list)); + list_head = data_list; + } else { + data_list->next = + (ctcp_extended_data_list *)calloc(1, + sizeof(ctcp_extended_data_list)); + data_list = data_list->next; } - - data_list -> ext_data = (ctcp_extended_data *)calloc(1, sizeof(ctcp_extended_data)); - data_list -> ext_data -> type = CTCP_NONE ; - data_list -> ext_data -> data = strdup(msg) ; + + data_list->ext_data = + (ctcp_extended_data *)calloc(1, + sizeof(ctcp_extended_data)); + data_list->ext_data->type = CTCP_NONE; + data_list->ext_data->data = strdup(msg); } - if(msg_start) { - free ( msg_start ) ; - msg_start = NULL ; + if (msg_start) { + free(msg_start); + msg_start = NULL; } - return list_head ; + return list_head; } - -char *ctcp_gen_extended_data_request ( int type, const char *msg ) +char *ctcp_gen_extended_data_request(int type, const char *msg) { - char *out_msg = NULL ; - int out_msg_len ; - - out_msg_len = ctcp_command [ type ].length + 2 + (msg?strlen(msg)+1:0) ; + char *out_msg = NULL; + int out_msg_len; + + out_msg_len = + ctcp_command[type].length + 2 + (msg ? strlen(msg) + 1 : 0); - out_msg = (char *)calloc((out_msg_len + 1), sizeof(char)) ; + out_msg = (char *)calloc((out_msg_len + 1), sizeof(char)); - out_msg [ 0 ] = '\001' ; - strcat ( out_msg, ctcp_command [ type ].data ) ; + out_msg[0] = '\001'; + strcat(out_msg, ctcp_command[type].data); /* Needed for CLIENTINFO, ERRMSG and PING */ if (msg) { - strcat (out_msg, " ") ; - strcat (out_msg, msg) ; + strcat(out_msg, " "); + strcat(out_msg, msg); } - out_msg [ strlen(out_msg) ] = '\001' ; + out_msg[strlen(out_msg)] = '\001'; - return out_msg ; + return out_msg; } - -char *ctcp_gen_version_response ( char *client_name, char *client_version, char *client_env ) +char *ctcp_gen_version_response(char *client_name, char *client_version, + char *client_env) { - char *out_msg = NULL ; - int out_msg_len = ctcp_command [ CTCP_VERSION ].length - + (client_name?strlen(client_name):0) - + (client_version?strlen(client_version):0) - + (client_env?strlen(client_env):0) - + 5 ; + char *out_msg = NULL; + int out_msg_len = ctcp_command[CTCP_VERSION].length + + (client_name ? strlen(client_name) : 0) + + (client_version ? strlen(client_version) : 0) + + (client_env ? strlen(client_env) : 0) + + 5; - out_msg = (char *)calloc((out_msg_len + 1), sizeof(char)) ; + out_msg = (char *)calloc((out_msg_len + 1), sizeof(char)); - out_msg [ 0 ] = '\001' ; - strcat ( out_msg, ctcp_command [ CTCP_VERSION ].data ) ; - out_msg [ ctcp_command [ CTCP_VERSION ].length +1 ] = ' ' ; + out_msg[0] = '\001'; + strcat(out_msg, ctcp_command[CTCP_VERSION].data); + out_msg[ctcp_command[CTCP_VERSION].length + 1] = ' '; - strcat ( out_msg, client_name ) ; - strcat ( out_msg, ":" ) ; - strcat ( out_msg, client_version ) ; - strcat ( out_msg, ":" ) ; - strcat ( out_msg, client_env ) ; + strcat(out_msg, client_name); + strcat(out_msg, ":"); + strcat(out_msg, client_version); + strcat(out_msg, ":"); + strcat(out_msg, client_env); - out_msg [ out_msg_len - 1 ] = '\001' ; + out_msg[out_msg_len - 1] = '\001'; - return out_msg ; + return out_msg; } - -ctcp_version *ctcp_got_version (const char *msg) +ctcp_version *ctcp_got_version(const char *msg) { - char *name_offset = NULL ; - char *version_offset = NULL ; + char *name_offset = NULL; + char *version_offset = NULL; ctcp_version *out = (ctcp_version *)calloc(1, sizeof(ctcp_version)); if (!msg) - return NULL ; + return NULL; name_offset = strchr(msg, ':'); - if ( name_offset ) { - ctcp_strndup(out -> name, msg, (name_offset - msg)); - version_offset = strchr(name_offset+1, ':'); + if (name_offset) { + ctcp_strndup(out->name, msg, (name_offset - msg)); + version_offset = strchr(name_offset + 1, ':'); } - - if ( version_offset ) { - ctcp_strndup(out -> version, (name_offset+1), (version_offset - name_offset - 1)); - out -> env = strdup(version_offset+1); + + if (version_offset) { + ctcp_strndup(out->version, (name_offset + 1), + (version_offset - name_offset - 1)); + out->env = strdup(version_offset + 1); } - return out ; + return out; } - -char *ctcp_gen_source_response ( char *source_host, char *source_path, char *source_file ) +char *ctcp_gen_source_response(char *source_host, char *source_path, + char *source_file) { - char *out_msg = NULL ; - int out_msg_len = ctcp_command [ CTCP_SOURCE ].length - + (source_host?strlen(source_host):0) - + (source_path?strlen(source_path):0) - + (source_file?strlen(source_file):0) - + 5 ; + char *out_msg = NULL; + int out_msg_len = ctcp_command[CTCP_SOURCE].length + + (source_host ? strlen(source_host) : 0) + + (source_path ? strlen(source_path) : 0) + + (source_file ? strlen(source_file) : 0) + + 5; - out_msg = (char *)calloc((out_msg_len+1), sizeof(char)) ; + out_msg = (char *)calloc((out_msg_len + 1), sizeof(char)); - out_msg [ 0 ] = '\001' ; - strcat ( out_msg, ctcp_command [ CTCP_SOURCE ].data ) ; - out_msg [ ctcp_command [ CTCP_SOURCE ].length + 1 ] = ' ' ; + out_msg[0] = '\001'; + strcat(out_msg, ctcp_command[CTCP_SOURCE].data); + out_msg[ctcp_command[CTCP_SOURCE].length + 1] = ' '; - strcat ( out_msg, source_host ) ; - strcat ( out_msg, ":" ) ; - strcat ( out_msg, source_path ) ; - strcat ( out_msg, ":" ) ; - strcat ( out_msg, source_file ) ; + strcat(out_msg, source_host); + strcat(out_msg, ":"); + strcat(out_msg, source_path); + strcat(out_msg, ":"); + strcat(out_msg, source_file); - out_msg [ out_msg_len - 1 ] = '\001' ; + out_msg[out_msg_len - 1] = '\001'; - return out_msg ; + return out_msg; } - -ctcp_source *ctcp_got_source (const char *msg) +ctcp_source *ctcp_got_source(const char *msg) { - char *host_offset = NULL ; - char *path_offset = NULL ; + char *host_offset = NULL; + char *path_offset = NULL; ctcp_source *out = (ctcp_source *)calloc(1, sizeof(ctcp_source)); if (!msg) - return NULL ; + return NULL; host_offset = strchr(msg, ':'); - if ( host_offset ) { - ctcp_strndup(out -> host, msg, (host_offset - msg)); - path_offset = strchr(host_offset+1, ':'); + if (host_offset) { + ctcp_strndup(out->host, msg, (host_offset - msg)); + path_offset = strchr(host_offset + 1, ':'); } - - if ( path_offset ) { - ctcp_strndup(out -> path, (host_offset+1), (path_offset - msg)); - out -> file = strdup(path_offset); + + if (path_offset) { + ctcp_strndup(out->path, (host_offset + 1), (path_offset - msg)); + out->file = strdup(path_offset); } - return out ; + return out; } - -char *ctcp_gen_time_response (void) +char *ctcp_gen_time_response(void) { - time_t tm ; - char *cur_time = NULL ; + time_t tm; + char *cur_time = NULL; - char *out_msg = NULL ; - int out_msg_len ; - - tm = time (NULL) ; + char *out_msg = NULL; + int out_msg_len; + + tm = time(NULL); cur_time = ctime(&tm); /* Remove the \n from end of string */ - cur_time [ strlen(cur_time) - 1 ] = '\0' ; - - out_msg_len = ctcp_command [ CTCP_TIME ].length + 4 + (cur_time?strlen(cur_time):0) ; + cur_time[strlen(cur_time) - 1] = '\0'; - out_msg = (char *)calloc((out_msg_len + 1), sizeof(char)) ; + out_msg_len = + ctcp_command[CTCP_TIME].length + 4 + + (cur_time ? strlen(cur_time) : 0); - out_msg [ 0 ] = '\001' ; - strcat ( out_msg, ctcp_command [ CTCP_TIME ].data ) ; - out_msg [ ctcp_command [ CTCP_TIME ].length + 1 ] = ' ' ; - out_msg [ ctcp_command [ CTCP_TIME ].length + 2 ] = ':' ; + out_msg = (char *)calloc((out_msg_len + 1), sizeof(char)); - strcat ( out_msg, cur_time ) ; + out_msg[0] = '\001'; + strcat(out_msg, ctcp_command[CTCP_TIME].data); + out_msg[ctcp_command[CTCP_TIME].length + 1] = ' '; + out_msg[ctcp_command[CTCP_TIME].length + 2] = ':'; - out_msg [ out_msg_len - 1 ] = '\001' ; + strcat(out_msg, cur_time); + out_msg[out_msg_len - 1] = '\001'; - return out_msg ; + return out_msg; } - -char *ctcp_gen_clientinfo_response (const char *command) +char *ctcp_gen_clientinfo_response(const char *command) { - int count = 0 ; + int count = 0; - char *out_msg = NULL ; + char *out_msg = NULL; - for(count = CTCP_NONE + 1; count < CTCP_DATA_COUNT; count++) { - if (!strcmp(command, ctcp_command [count].data)) { + for (count = CTCP_NONE + 1; count < CTCP_DATA_COUNT; count++) { + if (!strcmp(command, ctcp_command[count].data)) { - out_msg = (char *)calloc( (ctcp_command [count].length + - strlen(ctcp_command [count].clientinfo_description) + 1 ) - , sizeof(char) ); + out_msg = (char *)calloc((ctcp_command[count].length + + strlen(ctcp_command[count]. + clientinfo_description) + 1) + , sizeof(char)); - strcpy(out_msg, ctcp_command [count].data); - strcat(out_msg, ctcp_command [count].clientinfo_description); + strcpy(out_msg, ctcp_command[count].data); + strcat(out_msg, + ctcp_command[count].clientinfo_description); - break ; + break; } } - return out_msg ; + return out_msg; } - char *ctcp_gen_ping_response(char *timestamp) { - char *out_msg = NULL ; - int out_msg_len ; - - out_msg_len = ctcp_command [ CTCP_PING ].length + 3 + (timestamp?strlen(timestamp):0) ; + char *out_msg = NULL; + int out_msg_len; - out_msg = (char *)calloc((out_msg_len + 1), sizeof(char)) ; + out_msg_len = + ctcp_command[CTCP_PING].length + 3 + + (timestamp ? strlen(timestamp) : 0); - out_msg [ 0 ] = '\001' ; - strcat ( out_msg, ctcp_command [ CTCP_PING ].data ) ; - out_msg [ ctcp_command [ CTCP_PING ].length + 1 ] = ' ' ; + out_msg = (char *)calloc((out_msg_len + 1), sizeof(char)); - strcat ( out_msg, timestamp ) ; + out_msg[0] = '\001'; + strcat(out_msg, ctcp_command[CTCP_PING].data); + out_msg[ctcp_command[CTCP_PING].length + 1] = ' '; - out_msg [ out_msg_len - 1 ] = '\001' ; + strcat(out_msg, timestamp); + out_msg[out_msg_len - 1] = '\001'; - return out_msg ; + return out_msg; } - Index: ctcp.h =================================================================== RCS file: /cvsroot/ayttm/ayttm/modules/irc/libirc/ctcp.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ctcp.h 2 Aug 2008 06:13:10 -0000 1.2 +++ ctcp.h 17 Sep 2009 12:04:59 -0000 1.3 @@ -25,125 +25,104 @@ #ifndef __CTCP_H__ #define __CTCP_H__ - /* * Special characters with special meanings in CTCP protocol */ #define CTCP_TAG '\001' /* Tag delimiter */ -#define CTCP_XQUOTE '\134' /* CTCP level quoting char for CTCP_TAG */ +#define CTCP_XQUOTE '\134' /* CTCP level quoting char for CTCP_TAG */ -#define CTCP_MQUOTE '\020' /* Low level quoting char for \n, \r and \0 */ -#define CTCP_NUL '\0' /* NULL */ -#define CTCP_NL '\n' /* Newline */ -#define CTCP_CR '\r' /* Carriage Return */ +#define CTCP_MQUOTE '\020' /* Low level quoting char for \n, \r and \0 */ +#define CTCP_NUL '\0' /* NULL */ +#define CTCP_NL '\n' /* Newline */ +#define CTCP_CR '\r' /* Carriage Return */ /* * CTCP Data element. This describes a CTCP command * i.e. the command string, length of command string and a description returned to a CLIENTINFO request */ typedef struct { - const char *data ; - const int length ; - const char *clientinfo_description ; -} CTCPExtData ; - + const char *data; + const int length; + const char *clientinfo_description; +} CTCPExtData; /* * CTCP extended data types. */ enum { - CTCP_NONE = -1 , - CTCP_ACTION = 0 , - CTCP_DCC = 1 , - CTCP_SED = 2 , - CTCP_FINGER = 3 , - CTCP_VERSION = 4 , - CTCP_SOURCE = 5 , - CTCP_USERINFO = 6 , - CTCP_CLIENTINFO = 7 , - CTCP_ERRMSG = 8 , - CTCP_PING = 9 , - CTCP_TIME = 10 , - CTCP_DATA_COUNT = 11 -} CTCPCommandType ; - + CTCP_NONE = -1, + CTCP_ACTION = 0, + CTCP_DCC = 1, + CTCP_SED = 2, + CTCP_FINGER = 3, + CTCP_VERSION = 4, + CTCP_SOURCE = 5, + CTCP_USERINFO = 6, + CTCP_CLIENTINFO = 7, + CTCP_ERRMSG = 8, + CTCP_PING = 9, + CTCP_TIME = 10, + CTCP_DATA_COUNT = 11 +} CTCPCommandType; /* * An extended data element */ typedef struct { - int type ; /* Type of Extended data */ - char *data ; /* The string argument to the extended data type */ -} ctcp_extended_data ; - + int type; /* Type of Extended data */ + char *data; /* The string argument to the extended data type */ +} ctcp_extended_data; /* * A singly linked list of elements of type ctcp_extended_data */ typedef struct _extended_data_list { - ctcp_extended_data *ext_data ; - struct _extended_data_list *next ; - -} ctcp_extended_data_list ; + ctcp_extended_data *ext_data; + struct _extended_data_list *next; +} ctcp_extended_data_list; /* * Response structure to \001VERSION\001 */ typedef struct { - char *name ; - char *version ; - char *env ; -} ctcp_version ; - + char *name; + char *version; + char *env; +} ctcp_version; /* * Response structure to \001SOURCE\001 */ typedef struct { - char *host ; - char *path ; - char *file ; -} ctcp_source ; - - + char *host; + char *path; + char *file; +} ctcp_source; /* Quote a message string to send to server */ -char * ctcp_encode - ( const char *msg, - int size ) ; - +char *ctcp_encode(const char *msg, int size); /* Unquote a message string received from server */ -char *ctcp_decode - ( const char *msg, - int size ) ; - +char *ctcp_decode(const char *msg, int size); /* * Decode extended data from the message string. * Return value: Pointer to a ctcp_extended_data_list */ -ctcp_extended_data_list *ctcp_get_extended_data - ( const char *in_msg, - int size ) ; +ctcp_extended_data_list *ctcp_get_extended_data(const char *in_msg, int size); /* * Free the data list */ -void ctcp_free_extended_data - ( ctcp_extended_data_list *data_list ); - +void ctcp_free_extended_data(ctcp_extended_data_list *data_list); /* * Generate an Extended Data Request * Return value: The complete request string, with leading and trailing CTCP tags (\001) */ -char * ctcp_gen_extended_data_request - ( int type, - const char *msg ) ; - +char *ctcp_gen_extended_data_request(int type, const char *msg); /* * Generate an Extended Data Response. behaviour is the same as ctcp_gen_extended_data_request @@ -151,63 +130,47 @@ */ #define ctcp_gen_extended_data_response ctcp_gen_extended_data_request - /* * Parse the response string to get the various parameters set by VERSION * Return value: ctcp_version structure containing the name, version and environment of the client */ -ctcp_version *ctcp_got_version - ( const char *msg ) ; - +ctcp_version *ctcp_got_version(const char *msg); /* * Generate a CTCP string response to \001VERSION\001 * Return value: CTCP response to VERSION containing client name, version and environment */ -char * ctcp_gen_version_response - ( char *client_name, - char *client_version, - char *client_env ) ; - +char *ctcp_gen_version_response + (char *client_name, char *client_version, char *client_env); /* * Parse CTCP response to \001SOURCE\001 request * Return value: ctcp_source structure containing parameters of response to SOURCE query */ -ctcp_source *ctcp_got_source - ( const char *msg ) ; - +ctcp_source *ctcp_got_source(const char *msg); /* * Generate a CTCP response to \001SOURCE\001 query * Return value: CTCP Response containing the host, path and filename as requested by the SOURCE query */ -char *ctcp_gen_source_response - ( char *source_host, - char *source_path, - char *source_file ) ; - +char *ctcp_gen_source_response + (char *source_host, char *source_path, char *source_file); /* * Generate response to \001TIME\001 Query * Return value: CTCP response containing the current time */ -char *ctcp_gen_time_response - ( void ) ; - +char *ctcp_gen_time_response(void); /* * Generate response to \001CLIENTINFO\001 query. * Return value: CTCP response containing description of the COMMAND provided as argument */ -char *ctcp_gen_clientinfo_response - ( const char *command ) ; +char *ctcp_gen_clientinfo_response(const char *command); /* * Generate response to a \001PING\001 query */ -char *ctcp_gen_ping_response - (char *timestamp) ; +char *ctcp_gen_ping_response(char *timestamp); #endif - Index: irc_message.c =================================================================== RCS file: /cvsroot/ayttm/ayttm/modules/irc/libirc/irc_message.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- irc_message.c 7 Sep 2009 07:13:03 -0000 1.5 +++ irc_message.c 17 Sep 2009 12:04:59 -0000 1.6 @@ -20,7 +20,6 @@ * */ - #include <string.h> #include "libirc.h" #include "irc_replies.h" @@ -34,24 +33,34 @@ #define CB_EXEC(cb,func) if(cb->func) cb->func [...1537 lines suppressed...] msg++; } - snprintf(out, BUF_LEN, "PRIVMSG %s :%s\n", params, (msg?msg:"")); + snprintf(out, BUF_LEN, "PRIVMSG %s :%s\n", params, + (msg ? msg : "")); // restore the space in params since client might need it - if(msg) { - *(msg-1) = ' '; + if (msg) { + *(msg - 1) = ' '; } - return ; + return; } } - - Index: irc_replies.h =================================================================== RCS file: /cvsroot/ayttm/ayttm/modules/irc/libirc/irc_replies.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- irc_replies.h 24 Jul 2009 13:09:42 -0000 1.3 +++ irc_replies.h 17 Sep 2009 12:04:59 -0000 1.4 @@ -34,7 +34,7 @@ #define RPL_MYINFO 4 #define RPL_BOUNCE 5 -#define RPL_NONE 300 /* Dummy Reply. Not used */ +#define RPL_NONE 300 /* Dummy Reply. Not used */ #define RPL_AWAY 301 #define RPL_USERHOST 302 #define RPL_ISON 303 @@ -192,5 +192,4 @@ #define IRC_CMD_PING 1011 #define IRC_CMD_ERROR 1012 - #endif Index: libirc.c =================================================================== RCS file: /cvsroot/ayttm/ayttm/modules/irc/libirc/libirc.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- libirc.c 7 Sep 2009 07:13:03 -0000 1.8 +++ libirc.c 17 Sep 2009 12:04:59 -0000 1.9 @@ -22,8 +22,7 @@ #include "libirc.h" #include "ctcp.h" -static char irc_modes[] = -{ +static char irc_modes[] = { 'a', 'i', 'w', @@ -34,57 +33,56 @@ }; /* LOGIN */ -void irc_login( const char *password, int mode, irc_account *ia ) +void irc_login(const char *password, int mode, irc_account *ia) { char buff[BUF_LEN]; - memset(buff,0,BUF_LEN); + memset(buff, 0, BUF_LEN); - if(password && password [0]) { + if (password && password[0]) { sprintf(buff, "PASS %s\n", password); ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - if(ia->nick) { + if (ia->nick) { sprintf(buff, "NICK %s\n", ia->nick); ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - if(ia->user) { - sprintf(buff, "USER %s %d * :Ayttm user %s\n", ia->user, mode, ia->user); + if (ia->user) { + sprintf(buff, "USER %s %d * :Ayttm user %s\n", ia->user, mode, + ia->user); ia->callbacks->irc_send_data(buff, strlen(buff), ia); } } - /* LOGOUT */ -void irc_logout( irc_account *ia ) +void irc_logout(irc_account *ia) { char buff[BUF_LEN]; - memset(buff,0,BUF_LEN); + memset(buff, 0, BUF_LEN); sprintf(buff, "QUIT :Ayttm logging off\n"); ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - /* Send a PRIVMSG */ -void irc_send_privmsg( const char *recipient, char *message, irc_account *ia) +void irc_send_privmsg(const char *recipient, char *message, irc_account *ia) { - char *out_msg ; - int offset=0; + char *out_msg; + int offset = 0; char buff[BUF_LEN]; - memset(buff,0,BUF_LEN); + memset(buff, 0, BUF_LEN); if (!message) return; - while(message[offset] == ' ' || message[offset] == '\t') + while (message[offset] == ' ' || message[offset] == '\t') offset++; - if ( message[offset] == '/' ) { + if (message[offset] == '/') { char *param_offset = NULL; // It is some kind of command - message+=offset+1; + message += offset + 1; param_offset = strchr(message, ' '); @@ -93,48 +91,47 @@ param_offset++; } - irc_get_command_string(buff, recipient, message, param_offset, ia); + irc_get_command_string(buff, recipient, message, param_offset, + ia); // reinstate the space so that we can put the message in our window intact if (param_offset) { - *(param_offset-1) = ' '; + *(param_offset - 1) = ' '; } - } - else { - out_msg = ctcp_encode (message, strlen(message) ) ; - snprintf(buff, sizeof(buff), "PRIVMSG %s :%s\n", recipient, out_msg); + } else { + out_msg = ctcp_encode(message, strlen(message)); + snprintf(buff, sizeof(buff), "PRIVMSG %s :%s\n", recipient, + out_msg); - if(out_msg) + if (out_msg) free(out_msg); } - if(*buff) + if (*buff) ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - /* Send a NOTICE */ -void irc_send_notice( const char *recipient, char *message, irc_account *ia) +void irc_send_notice(const char *recipient, char *message, irc_account *ia) { - char *out_msg ; + char *out_msg; char buff[BUF_LEN]; - memset(buff,0,BUF_LEN); + memset(buff, 0, BUF_LEN); - out_msg = ctcp_encode (message, strlen(message) ) ; + out_msg = ctcp_encode(message, strlen(message)); sprintf(buff, "NOTICE %s :%s\n", recipient, out_msg); ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - /* Send WHOIS query */ -void irc_send_whois( const char *target, const char *mask, irc_account *ia ) +void irc_send_whois(const char *target, const char *mask, irc_account *ia) { char buff[BUF_LEN]; - memset(buff,0,BUF_LEN); + memset(buff, 0, BUF_LEN); - if ( target ) + if (target) sprintf(buff, "WHOIS %s ", target); else sprintf(buff, "WHOIS "); @@ -145,9 +142,8 @@ ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - /* Set Away */ -void irc_set_away( char * message, irc_account *ia ) +void irc_set_away(char *message, irc_account *ia) { char buff[BUF_LEN]; memset(buff, 0, BUF_LEN); @@ -164,7 +160,6 @@ } } - /* Set Modes */ void irc_set_mode(int irc_mode, irc_account *ia) { @@ -175,7 +170,6 @@ ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - /* Unset modes */ void irc_unset_mode(int irc_mode, irc_account *ia) { @@ -186,15 +180,14 @@ ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - /* Join a Channel */ -void irc_join (const char *room, irc_account *ia) +void irc_join(const char *room, irc_account *ia) { char buff[BUF_LEN]; memset(buff, 0, BUF_LEN); sprintf(buff, "JOIN :%s\n", room); - + ia->callbacks->irc_send_data(buff, strlen(buff), ia); } @@ -205,21 +198,20 @@ memset(buff, 0, BUF_LEN); sprintf(buff, "PART :%s\n", room); - + ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - /* Send an Invite */ -void irc_send_invite( const char *user, const char *room, - const char * message, irc_account *ia ) +void irc_send_invite(const char *user, const char *room, + const char *message, irc_account *ia) { char buff[BUF_LEN]; memset(buff, 0, BUF_LEN); if (*message) { sprintf(buff, "PRIVMSG %s :%s\n", user, message); - + ia->callbacks->irc_send_data(buff, strlen(buff), ia); } @@ -227,8 +219,7 @@ ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - -void irc_get_names_list( const char *channel, irc_account *ia ) +void irc_get_names_list(const char *channel, irc_account *ia) { char buff[BUF_LEN]; memset(buff, 0, BUF_LEN); @@ -237,8 +228,7 @@ ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - -void irc_request_list ( const char *channel, const char *target, irc_account *ia ) +void irc_request_list(const char *channel, const char *target, irc_account *ia) { char buff[BUF_LEN]; memset(buff, 0, BUF_LEN); @@ -259,7 +249,6 @@ ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - /* Send a PONG message response. Called by the PING handler */ void irc_send_pong(const char *message, irc_account *ia) { @@ -270,99 +259,100 @@ ia->callbacks->irc_send_data(buff, strlen(buff), ia); } - /* Get PRIVMSG. CTCP implementation called here. */ -void irc_process_privmsg(const char *to, const char *message, irc_message_prefix *prefix, irc_account *ia) +void irc_process_privmsg(const char *to, const char *message, + irc_message_prefix *prefix, irc_account *ia) { /* * This only decodes. You will want to call ctcp_get_extended_data() to actually * get the complete break-up of the string into constituent commands */ - char *out_msg = ctcp_decode (message, strlen(message)) ; + char *out_msg = ctcp_decode(message, strlen(message)); ia->callbacks->got_privmsg(to, out_msg, prefix, ia); - if(out_msg) { + if (out_msg) { free(out_msg); } } - /* Get PRIVMSG. CTCP implementation called here. */ -void irc_process_notice(const char *to, const char *message, irc_message_prefix *prefix, irc_account *ia) +void irc_process_notice(const char *to, const char *message, + irc_message_prefix *prefix, irc_account *ia) { /* * This only decodes. You will want to call ctcp_get_extended_data() to actually * get the complete break-up of the string into constituent commands */ - char *out_msg = ctcp_decode (message, strlen(message)) ; + char *out_msg = ctcp_decode(message, strlen(message)); ia->callbacks->incoming_notice(to, out_msg, prefix, ia); - if(out_msg) { + if (out_msg) { free(out_msg); } } - irc_name_list *irc_gen_name_list(char *message) { - char *offset = NULL ; + char *offset = NULL; irc_name_list *list = NULL; - irc_name_list *head = NULL ; + irc_name_list *head = NULL; while (message && *message) { offset = strchr(message, ' '); - if ( list ) { - list->next = (irc_name_list *)calloc(1, sizeof(irc_name_list)); - list = list-> next ; - } - else if ( !list ) { - list = (irc_name_list *)calloc(1, sizeof(irc_name_list)); - head = list ; + if (list) { + list->next = + (irc_name_list *)calloc(1, + sizeof(irc_name_list)); + list = list->next; + } else if (!list) { + list = (irc_name_list *)calloc(1, + sizeof(irc_name_list)); + head = list; } - if(offset) { + if (offset) { *offset = '\0'; } - if ( *message == '+' || *message == '@' ) { - list -> attribute = *message ; + if (*message == '+' || *message == '@') { + list->attribute = *message; message++; - } - else - list -> attribute = '\0'; + } else + list->attribute = '\0'; - list -> name = strdup(message); + list->name = strdup(message); /* We're at the end of the list... get out now... */ - if (!offset) - break ; + if (!offset) + break; - message = offset + 1 ; + message = offset + 1; } - return head ; + return head; } - /* Add a parameter to the list and return its new head */ -irc_param_list *irc_param_list_add(irc_param_list *param_list, const char *param) +irc_param_list *irc_param_list_add(irc_param_list *param_list, + const char *param) { irc_param_list *head = param_list; - irc_param_list *new = (irc_param_list *)calloc(1, sizeof(irc_param_list)); + irc_param_list *new = + (irc_param_list *)calloc(1, sizeof(irc_param_list)); - if(!param_list) { + if (!param_list) { new->param = strdup(param); new->next = NULL; return new; } - while(param_list->next) + while (param_list->next) param_list = param_list->next; - + param_list->next = new; new->param = strdup(param); @@ -372,48 +362,46 @@ } /* Free the parameter list */ -void irc_param_list_free(irc_param_list *param_list ) +void irc_param_list_free(irc_param_list *param_list) { irc_param_list *to_be_freed = NULL; - while(param_list) { + while (param_list) { to_be_freed = param_list; param_list = param_list->next; free(to_be_freed); - to_be_freed = NULL ; + to_be_freed = NULL; } } /* Get nth paramater in the list */ -char *irc_param_list_get_at(irc_param_list * list, int position) +char *irc_param_list_get_at(irc_param_list *list, int position) { - int cur=0; + int cur = 0; - if(!list) + if (!list) return NULL; - while(list->next && cur<position) { - list=list->next; + while (list->next && cur < position) { + list = list->next; cur++; } - if(list) + if (list) return list->param; else return NULL; } - - -int irc_recv (irc_account *ia, char *buf, int len) +int irc_recv(irc_account *ia, char *buf, int len) { - if(buf[len] == '\n') { - if(buf[len-1] !='\r') + if (buf[len] == '\n') { + if (buf[len - 1] != '\r') return 0; - buf[len-1]='\0'; + buf[len - 1] = '\0'; -// fprintf(stderr, "irc> %s\n", buf); +// fprintf(stderr, "irc> %s\n", buf); irc_message_parse(buf, ia); @@ -422,5 +410,3 @@ return 0; } - - Index: libirc.h =================================================================== RCS file: /cvsroot/ayttm/ayttm/modules/irc/libirc/libirc.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- libirc.h 7 Sep 2009 07:13:03 -0000 1.8 +++ libirc.h 17 Sep 2009 12:04:59 -0000 1.9 @@ -22,7 +22,6 @@ * */ - #ifndef _LIB_IRC_H_ #define _LIB_IRC_H_ @@ -46,13 +45,11 @@ #include <netdb.h> #endif - /* RFC1459 and RFC2812 defines max message size including \n == 512 bytes, but being tolerant of violations is nice nevertheless. */ #define BUF_LEN 512*2 - /* from util.c : * * The last state in the list of states will be the OFFLINE state @@ -76,12 +73,12 @@ /* User modes */ enum { IRC_USER_MODE_AWAY = 1, - IRC_USER_MODE_INVISIBLE = 1<<1, - IRC_USER_MODE_RECEIVE_WALLOPS = 1<<2, - IRC_USER_MODE_RESTRICT_USER_CONNECTION = 1<<3, - IRC_USER_MODE_OPER = 1<<4, - IRC_USER_MODE_LOCAL_OPER = 1<<5, - IRC_USER_MODE_RECEIVE_SERVER_NOTICES = 1<<6 + IRC_USER_MODE_INVISIBLE = 1 << 1, + IRC_USER_MODE_RECEIVE_WALLOPS = 1 << 2, + IRC_USER_MODE_RESTRICT_USER_CONNECTION = 1 << 3, + IRC_USER_MODE_OPER = 1 << 4, + IRC_USER_MODE_LOCAL_OPER = 1 << 5, + IRC_USER_MODE_RECEIVE_SERVER_NOTICES = 1 << 6 }; /* Message Prefix */ @@ -90,26 +87,26 @@ char *servername; char *user; char *hostname; -} irc_message_prefix ; +} irc_message_prefix; /* Parameter List element */ typedef struct _irc_param_list { char *param; struct _irc_param_list *next; -} irc_param_list ; +} irc_param_list; struct _irc_callbacks; typedef struct { - char connect_address [255]; - char port [16]; + char connect_address[255]; + char port[16]; char *nick; char *servername; char *hostname; char *user; - int fd; + int fd; - int status; + int status; char *usermodes; char *channelmodes; @@ -119,489 +116,394 @@ char buf[BUF_LEN]; int len; - void *data ; -} irc_account ; - + void *data; +} irc_account; typedef struct _namelist { - char *name ; - char attribute ; - struct _namelist *next ; -} irc_name_list ; - + char *name; + char attribute; + struct _namelist *next; +} irc_name_list; typedef struct _irc_callbacks { - void (*incoming_notice) (const char *to, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*buddy_quit) (const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*buddy_join) (const char *channel, - irc_message_prefix *prefix, - irc_account *ia); - - void (*buddy_part) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_invite) (const char *to, - const char *channel, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_kick) (const char *to, - const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*nick_change) (const char *newnick, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_privmsg) (const char *recipient, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_ping) (const char *server, - irc_account *ia); - - void (*got_welcome) (const char *nick, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_yourhost) (const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_created) (const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_myinfo) (const char *servername, - const char *version, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_channel_list) (const char *me, - const char *channel, - int users, - const char *topic, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_channel_listend) (const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_away) (const char *from, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_unaway) (const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_nowaway) (const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_ison) (const char *userlist, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_whoisidle) (const char *from, - int since, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_whoisuser) (const char *nick, - const char *user, - const char *host, - const char *real_name, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_whoisserver) (const char *nick, - const char *server, - const char *info, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_whoisop) (const char *nick, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_whowasuser) (const char *nick, - const char *user, - const char *host, - const char *real_name, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_endofwhois) (const char *nicks, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_endofwhowas) (const char *nicks, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_notopic) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_topic) (const char *channel, - const char *topic, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_topicsetby) (const char *channel, - const char *nickname, - const char *time, - irc_message_prefix *prefix, - irc_account *ia); - - void (*inviting) (const char *channel, - const char *nick, - irc_message_prefix *prefix, - irc_account *ia); - - void (*summoning) (const char *user, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_version) (const char *version, - const char *debuglevel, - const char *server, - const char *comments, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_info) (const char *info, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_endinfo) (const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*motd_start) (const char *server, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_motd) (const char *motd, - irc_message_prefix *prefix, - irc_account *ia); - - void (*endofmotd) (const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_endofwho) (const char *name, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_endofnames) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*youreoper) (const char *message, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_namelist) (irc_name_list *list, - const char *channel, - irc_message_prefix *prefix, - irc_account *ia); - - void (*got_time) (const char *time, - irc_message_prefix *prefix, - irc_account *ia); - - void (*irc_send_data) (void *buf, - int len, - irc_account *ia); - - void (*irc_error) (const char *message, - void *data); - - void (*irc_warning) (const char *message, - void *data); - - void (*client_quit) (irc_account *ia); - + void (*incoming_notice) (const char *to, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*buddy_quit) (const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*buddy_join) (const char *channel, + irc_message_prefix *prefix, irc_account *ia); + + void (*buddy_part) (const char *channel, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_invite) (const char *to, + const char *channel, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_kick) (const char *to, + const char *channel, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*nick_change) (const char *newnick, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_privmsg) (const char *recipient, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_ping) (const char *server, irc_account *ia); + + void (*got_welcome) (const char *nick, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_yourhost) (const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_created) (const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_myinfo) (const char *servername, + const char *version, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_channel_list) (const char *me, + const char *channel, + int users, + const char *topic, irc_message_prefix *prefix, irc_account *ia); + + void (*got_channel_listend) (const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_away) (const char *from, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_unaway) (const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_nowaway) (const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_ison) (const char *userlist, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_whoisidle) (const char *from, + int since, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_whoisuser) (const char *nick, + const char *user, + const char *host, + const char *real_name, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_whoisserver) (const char *nick, + const char *server, + const char *info, irc_message_prefix *prefix, irc_account *ia); + + void (*got_whoisop) (const char *nick, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_whowasuser) (const char *nick, + const char *user, + const char *host, + const char *real_name, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_endofwhois) (const char *nicks, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_endofwhowas) (const char *nicks, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_notopic) (const char *channel, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_topic) (const char *channel, + const char *topic, irc_message_prefix *prefix, irc_account *ia); + + void (*got_topicsetby) (const char *channel, + const char *nickname, + const char *time, irc_message_prefix *prefix, irc_account *ia); + + void (*inviting) (const char *channel, + const char *nick, irc_message_prefix *prefix, irc_account *ia); + + void (*summoning) (const char *user, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_version) (const char *version, + const char *debuglevel, + const char *server, + const char *comments, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_info) (const char *info, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_endinfo) (const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*motd_start) (const char *server, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_motd) (const char *motd, + irc_message_prefix *prefix, irc_account *ia); + + void (*endofmotd) (const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_endofwho) (const char *name, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_endofnames) (const char *channel, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*youreoper) (const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_namelist) (irc_name_list *list, + const char *channel, + irc_message_prefix *prefix, irc_account *ia); + + void (*got_time) (const char *time, + irc_message_prefix *prefix, irc_account *ia); + + void (*irc_send_data) (void *buf, int len, irc_account *ia); + + void (*irc_error) (const char *message, void *data); + + void (*irc_warning) (const char *message, void *data); + + void (*client_quit) (irc_account *ia); + /* ERROR HANDLERS */ - void (*irc_no_such_nick) (const char *nick, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_such_server) (const char *server, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_such_channel) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_cant_sendto_chnl) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_was_no_such_nick) (const char *nick, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_too_many_chnl) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_too_many_targets) (const char *target, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_origin) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_recipient) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_text_to_send) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_toplevel) (const char *mask, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_wild_toplevel) (const char *mask, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_unknown_cmd) (const char *command, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_motd) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_admininfo) (const char *server, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_file_error) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_nick_given) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_erroneous_nick) (const char *nick, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_nick_in_use) (const char *nick, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_nick_collision) (const char *nick, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_user_not_in_chnl) (const char *nick, - const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_not_on_chnl) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_on_chnl) (const char *user, - const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_nologin) (const char *nick, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_summon_disabled) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_user_disabled) (const char *user_disabled, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_not_registered) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_need_more_params) (const char *cmd, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_already_registered) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_perm_for_host) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_password_mismatch) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_banned) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_chnl_key_set) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_channel_full) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_unknown_mode) (const char *mode, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_invite_only) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_banned_from_chnl) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_bad_chnl_key) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_privileges) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_chnlop_privs_needed) (const char *channel, - const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_cant_kill_server) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_no_o_per_host) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_mode_unknown) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); - - void (*irc_user_dont_match) (const char *message, - irc_message_prefix *prefix, - irc_account *ia ); + void (*irc_no_such_nick) (const char *nick, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*irc_no_such_server) (const char *server, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*irc_no_such_channel) (const char *channel, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*irc_cant_sendto_chnl) (const char *channel, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*irc_was_no_such_nick) (const char *nick, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*irc_too_many_chnl) (const char *channel, + const char *message, + irc_message_prefix *prefix, irc_account *ia); + + void (*irc_too_many_targets) (cons... [truncated message content] |