From 78b3fb1309a7d926cb58b8322923feedd1ba47ef Mon Sep 17 00:00:00 2001 From: mid Date: Mon, 4 Sep 2000 21:42:38 +0000 Subject: [PATCH] - Mon Sep 4 21:38:09 GMT 2000 - A mild step towards ANSI compliance - Compiles cleanly with -pedantic (except for the libc issue in socket.h) - Fixes various sign mismatch things. There may be more, we'll see what MSVC has to say about it. - Add faim_internal and faim_export macros so Win32 DLL is easier --- CHANGES | 7 + aim_ads.c | 8 +- aim_auth.c | 16 +- aim_buddylist.c | 16 +- aim_chat.c | 60 ++++---- aim_chatnav.c | 18 +-- aim_conn.c | 36 +++-- aim_ft.c | 69 +++++---- aim_im.c | 40 ++--- aim_info.c | 38 ++--- aim_login.c | 53 +++---- aim_meta.c | 24 ++- aim_msgcookie.c | 16 +- aim_rxhandlers.c | 54 +++---- aim_rxqueue.c | 16 +- aim_tlv.c | 36 ++--- aim_txqueue.c | 18 +-- aim_util.c | 28 ++-- faim/aim.h | 314 ++++++++++++++++++++------------------ utils/aimdebugd/network.c | 2 + utils/aimdebugd/network.h | 4 + utils/faimtest/faimtest.c | 10 +- 22 files changed, 468 insertions(+), 415 deletions(-) diff --git a/CHANGES b/CHANGES index e3e3c23..ecdf5c1 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,13 @@ No release numbers ------------------ + - Mon Sep 4 21:38:09 GMT 2000 + - A mild step towards ANSI compliance + - Compiles cleanly with -pedantic (except for the libc issue in socket.h) + - Fixes various sign mismatch things. There may be more, we'll see + what MSVC has to say about it. + - Add faim_internal and faim_export macros so Win32 DLL is easier + - Sun Sep 3 23:58:17 UTC 2000 - Portability fixes (for solaris, set the SOLARIS env var first) diff --git a/aim_ads.c b/aim_ads.c index 6aa8bbe..f07cc66 100644 --- a/aim_ads.c +++ b/aim_ads.c @@ -5,8 +5,8 @@ #include -u_long aim_ads_clientready(struct aim_session_t *sess, - struct aim_conn_t *conn) +faim_export unsigned long aim_ads_clientready(struct aim_session_t *sess, + struct aim_conn_t *conn) { struct command_tx_struct *newpacket; int i; @@ -35,8 +35,8 @@ u_long aim_ads_clientready(struct aim_session_t *sess, return (sess->snac_nextid++); } -u_long aim_ads_requestads(struct aim_session_t *sess, - struct aim_conn_t *conn) +faim_export unsigned long aim_ads_requestads(struct aim_session_t *sess, + struct aim_conn_t *conn) { return aim_genericreq_n(sess, conn, 0x0005, 0x0002); } diff --git a/aim_auth.c b/aim_auth.c index 64c47ed..1fb9cfa 100644 --- a/aim_auth.c +++ b/aim_auth.c @@ -8,9 +8,9 @@ #include /* this just pushes the passed cookie onto the passed connection -- NO SNAC! */ -int aim_auth_sendcookie(struct aim_session_t *sess, - struct aim_conn_t *conn, - u_char *chipsahoy) +faim_export int aim_auth_sendcookie(struct aim_session_t *sess, + struct aim_conn_t *conn, + unsigned char *chipsahoy) { struct command_tx_struct *newpacket; int curbyte=0; @@ -29,8 +29,8 @@ int aim_auth_sendcookie(struct aim_session_t *sess, return aim_tx_enqueue(sess, newpacket); } -u_long aim_auth_clientready(struct aim_session_t *sess, - struct aim_conn_t *conn) +faim_export unsigned long aim_auth_clientready(struct aim_session_t *sess, + struct aim_conn_t *conn) { struct command_tx_struct *newpacket; int curbyte = 0; @@ -68,9 +68,9 @@ u_long aim_auth_clientready(struct aim_session_t *sess, return (sess->snac_nextid++); } -u_long aim_auth_changepasswd(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *new, char *current) +faim_export unsigned long aim_auth_changepasswd(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *new, char *current) { struct command_tx_struct *newpacket; int i; diff --git a/aim_buddylist.c b/aim_buddylist.c index d043a56..26165bc 100644 --- a/aim_buddylist.c +++ b/aim_buddylist.c @@ -7,9 +7,9 @@ * Adds a single buddy to your buddy list after login. * */ -u_long aim_add_buddy(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *sn ) +faim_export unsigned long aim_add_buddy(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *sn ) { struct command_tx_struct *newpacket; int i; @@ -47,9 +47,9 @@ u_long aim_add_buddy(struct aim_session_t *sess, return( sess->snac_nextid++ ); } -u_long aim_remove_buddy(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *sn ) +faim_export unsigned long aim_remove_buddy(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *sn ) { struct command_tx_struct *newpacket; int i; @@ -86,8 +86,8 @@ u_long aim_remove_buddy(struct aim_session_t *sess, return( sess->snac_nextid++ ); } -int aim_parse_buddyrights(struct aim_session_t *sess, - struct command_rx_struct *command, ...) +faim_internal int aim_parse_buddyrights(struct aim_session_t *sess, + struct command_rx_struct *command, ...) { rxcallback_t userfunc = NULL; int ret=1; diff --git a/aim_chat.c b/aim_chat.c index 765e19d..cf7a21b 100644 --- a/aim_chat.c +++ b/aim_chat.c @@ -7,7 +7,7 @@ #include -char *aim_chat_getname(struct aim_conn_t *conn) +faim_export char *aim_chat_getname(struct aim_conn_t *conn) { if (!conn) return NULL; @@ -17,7 +17,7 @@ char *aim_chat_getname(struct aim_conn_t *conn) return (char *)conn->priv; /* yuck ! */ } -struct aim_conn_t *aim_chat_getconn(struct aim_session_t *sess, char *name) +faim_export struct aim_conn_t *aim_chat_getconn(struct aim_session_t *sess, char *name) { struct aim_conn_t *cur; @@ -33,7 +33,7 @@ struct aim_conn_t *aim_chat_getconn(struct aim_session_t *sess, char *name) return cur; } -int aim_chat_attachname(struct aim_conn_t *conn, char *roomname) +faim_export int aim_chat_attachname(struct aim_conn_t *conn, char *roomname) { if (!conn || !roomname) return -1; @@ -44,9 +44,9 @@ int aim_chat_attachname(struct aim_conn_t *conn, char *roomname) return 0; } -u_long aim_chat_send_im(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *msg) +faim_export unsigned long aim_chat_send_im(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *msg) { int curbyte,i; @@ -121,10 +121,10 @@ u_long aim_chat_send_im(struct aim_session_t *sess, * and room name. * */ -u_long aim_chat_join(struct aim_session_t *sess, - struct aim_conn_t *conn, - u_short exchange, - const char *roomname) +faim_export unsigned long aim_chat_join(struct aim_session_t *sess, + struct aim_conn_t *conn, + u_short exchange, + const char *roomname) { struct command_tx_struct *newpacket; int i; @@ -188,7 +188,7 @@ u_long aim_chat_join(struct aim_session_t *sess, return (sess->snac_nextid++); } -int aim_chat_readroominfo(u_char *buf, struct aim_chat_roominfo *outinfo) +faim_internal int aim_chat_readroominfo(u_char *buf, struct aim_chat_roominfo *outinfo) { int namelen = 0; int i = 0; @@ -211,7 +211,7 @@ int aim_chat_readroominfo(u_char *buf, struct aim_chat_roominfo *outinfo) i += 2; return i; -}; +} /* @@ -223,8 +223,8 @@ int aim_chat_readroominfo(u_char *buf, struct aim_chat_roominfo *outinfo) * * SNAC 000e/0002 */ -int aim_chat_parse_infoupdate(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_chat_parse_infoupdate(struct aim_session_t *sess, + struct command_rx_struct *command) { struct aim_userinfo_s *userinfo = NULL; rxcallback_t userfunc=NULL; @@ -358,8 +358,8 @@ int aim_chat_parse_infoupdate(struct aim_session_t *sess, return ret; } -int aim_chat_parse_joined(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_chat_parse_joined(struct aim_session_t *sess, + struct command_rx_struct *command) { struct aim_userinfo_s *userinfo = NULL; rxcallback_t userfunc=NULL; @@ -384,8 +384,8 @@ int aim_chat_parse_joined(struct aim_session_t *sess, return ret; } -int aim_chat_parse_leave(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_chat_parse_leave(struct aim_session_t *sess, + struct command_rx_struct *command) { struct aim_userinfo_s *userinfo = NULL; @@ -416,8 +416,8 @@ int aim_chat_parse_leave(struct aim_session_t *sess, * code as channel 0x0003, however, since only the start * would be the same, we might as well do it here. */ -int aim_chat_parse_incoming(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_chat_parse_incoming(struct aim_session_t *sess, + struct command_rx_struct *command) { struct aim_userinfo_s userinfo; rxcallback_t userfunc=NULL; @@ -511,8 +511,8 @@ int aim_chat_parse_incoming(struct aim_session_t *sess, return ret; } -u_long aim_chat_clientready(struct aim_session_t *sess, - struct aim_conn_t *conn) +faim_export unsigned long aim_chat_clientready(struct aim_session_t *sess, + struct aim_conn_t *conn) { struct command_tx_struct *newpacket; int i; @@ -542,7 +542,7 @@ u_long aim_chat_clientready(struct aim_session_t *sess, return (sess->snac_nextid++); } -int aim_chat_leaveroom(struct aim_session_t *sess, char *name) +faim_export int aim_chat_leaveroom(struct aim_session_t *sess, char *name) { struct aim_conn_t *conn; @@ -557,13 +557,13 @@ int aim_chat_leaveroom(struct aim_session_t *sess, char *name) /* * conn must be a BOS connection! */ -u_long aim_chat_invite(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *sn, - char *msg, - u_short exchange, - char *roomname, - u_short instance) +faim_export unsigned long aim_chat_invite(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *sn, + char *msg, + u_short exchange, + char *roomname, + u_short instance) { struct command_tx_struct *newpacket; int i,curbyte=0; diff --git a/aim_chatnav.c b/aim_chatnav.c index a7ef779..5c6e798 100644 --- a/aim_chatnav.c +++ b/aim_chatnav.c @@ -11,8 +11,8 @@ /* * conn must be a chatnav connection! */ -u_long aim_chatnav_reqrights(struct aim_session_t *sess, - struct aim_conn_t *conn) +faim_export unsigned long aim_chatnav_reqrights(struct aim_session_t *sess, + struct aim_conn_t *conn) { struct aim_snac_t snac; @@ -28,8 +28,8 @@ u_long aim_chatnav_reqrights(struct aim_session_t *sess, return (sess->snac_nextid); /* already incremented */ } -u_long aim_chatnav_clientready(struct aim_session_t *sess, - struct aim_conn_t *conn) +faim_export unsigned long aim_chatnav_clientready(struct aim_session_t *sess, + struct aim_conn_t *conn) { struct command_tx_struct *newpacket; int i; @@ -63,7 +63,7 @@ u_long aim_chatnav_clientready(struct aim_session_t *sess, * we must lookup the snacid to determine the original * snac subtype that was called. */ -int aim_chatnav_parse_info(struct aim_session_t *sess, struct command_rx_struct *command) +faim_internal int aim_chatnav_parse_info(struct aim_session_t *sess, struct command_rx_struct *command) { struct aim_snac_t *snac; u_long snacid; @@ -306,10 +306,10 @@ int aim_chatnav_parse_info(struct aim_session_t *sess, struct command_rx_struct return ret; } -u_long aim_chatnav_createroom(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *name, - u_short exchange) +faim_export unsigned long aim_chatnav_createroom(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *name, + u_short exchange) { struct command_tx_struct *newpacket; int i; diff --git a/aim_conn.c b/aim_conn.c index 4707391..f76eeba 100644 --- a/aim_conn.c +++ b/aim_conn.c @@ -8,10 +8,14 @@ #include +#include +#include +#include + /* * Clears out connection list, killing remaining connections. */ -void aim_connrst(struct aim_session_t *sess) +faim_internal void aim_connrst(struct aim_session_t *sess) { faim_mutex_init(&sess->connlistlock); if (sess->connlist) { @@ -31,7 +35,7 @@ void aim_connrst(struct aim_session_t *sess) /* * Gets a new connection structure. */ -struct aim_conn_t *aim_conn_getnext(struct aim_session_t *sess) +faim_internal struct aim_conn_t *aim_conn_getnext(struct aim_session_t *sess) { struct aim_conn_t *newconn, *cur; @@ -74,7 +78,7 @@ static void aim_conn_init(struct aim_conn_t *deadconn) return; } -void aim_conn_kill(struct aim_session_t *sess, struct aim_conn_t **deadconn) +faim_export void aim_conn_kill(struct aim_session_t *sess, struct aim_conn_t **deadconn) { struct aim_conn_t *cur; @@ -111,7 +115,7 @@ void aim_conn_kill(struct aim_session_t *sess, struct aim_conn_t **deadconn) return; } -void aim_conn_close(struct aim_conn_t *deadconn) +faim_export void aim_conn_close(struct aim_conn_t *deadconn) { int typesav = -1, subtypesav = -1; void *privsav = NULL; @@ -141,8 +145,8 @@ void aim_conn_close(struct aim_conn_t *deadconn) return; } -struct aim_conn_t *aim_getconn_type(struct aim_session_t *sess, - int type) +faim_internal struct aim_conn_t *aim_getconn_type(struct aim_session_t *sess, + int type) { struct aim_conn_t *cur; @@ -164,8 +168,8 @@ struct aim_conn_t *aim_getconn_type(struct aim_session_t *sess, * FIXME: Return errors in a more sane way. * */ -struct aim_conn_t *aim_newconn(struct aim_session_t *sess, - int type, char *dest) +faim_export struct aim_conn_t *aim_newconn(struct aim_session_t *sess, + int type, char *dest) { struct aim_conn_t *connstruct; int ret; @@ -236,7 +240,7 @@ struct aim_conn_t *aim_newconn(struct aim_session_t *sess, return connstruct; } -int aim_conngetmaxfd(struct aim_session_t *sess) +faim_export int aim_conngetmaxfd(struct aim_session_t *sess) { int j = 0; struct aim_conn_t *cur; @@ -251,7 +255,7 @@ int aim_conngetmaxfd(struct aim_session_t *sess) return j; } -int aim_countconn(struct aim_session_t *sess) +static int aim_countconn(struct aim_session_t *sess) { int cnt = 0; struct aim_conn_t *cur; @@ -279,8 +283,8 @@ int aim_countconn(struct aim_session_t *sess) * XXX: we could probably stand to do a little courser locking here. * */ -struct aim_conn_t *aim_select(struct aim_session_t *sess, - struct timeval *timeout, int *status) +faim_export struct aim_conn_t *aim_select(struct aim_session_t *sess, + struct timeval *timeout, int *status) { struct aim_conn_t *cur; fd_set fds; @@ -333,14 +337,14 @@ struct aim_conn_t *aim_select(struct aim_session_t *sess, return NULL; /* no waiting or error, return */ } -int aim_conn_isready(struct aim_conn_t *conn) +faim_export int aim_conn_isready(struct aim_conn_t *conn) { if (conn) return (conn->status & 0x0001); return -1; } -int aim_conn_setstatus(struct aim_conn_t *conn, int status) +faim_export int aim_conn_setstatus(struct aim_conn_t *conn, int status) { int val; @@ -353,7 +357,7 @@ int aim_conn_setstatus(struct aim_conn_t *conn, int status) return val; } -int aim_conn_setlatency(struct aim_conn_t *conn, int newval) +faim_export int aim_conn_setlatency(struct aim_conn_t *conn, int newval) { if (!conn) return -1; @@ -366,7 +370,7 @@ int aim_conn_setlatency(struct aim_conn_t *conn, int newval) return 0; } -void aim_session_init(struct aim_session_t *sess) +faim_export void aim_session_init(struct aim_session_t *sess) { if (!sess) return; diff --git a/aim_ft.c b/aim_ft.c index f327940..5307577 100644 --- a/aim_ft.c +++ b/aim_ft.c @@ -1,5 +1,8 @@ #include +#include +#include +#include #include /* for aim_directim_initiate */ #include /* for inet_ntoa */ @@ -12,11 +15,11 @@ aim_filetransfer_accept aim_im.c aim_getlisting aim_misc.c (?!) -- prototype function. can be ignored. establish aim_misc.c - aim_get_command_rendezvous aim_rxqueue.c + aim_get_command_rendezvous aim_r oft_getfh aim_rxqueue.c */ -int aim_handlerendconnect(struct aim_session_t *sess, struct aim_conn_t *cur) +faim_export int aim_handlerendconnect(struct aim_session_t *sess, struct aim_conn_t *cur) { int acceptfd = 0; rxcallback_t userfunc; @@ -84,9 +87,9 @@ int aim_handlerendconnect(struct aim_session_t *sess, struct aim_conn_t *cur) * msg - null-terminated string to send */ -int aim_send_im_direct(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *msg) +faim_export int aim_send_im_direct(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *msg) { struct command_tx_struct *newpacket , *newpacket2; @@ -130,7 +133,7 @@ int aim_send_im_direct(struct aim_session_t *sess, i += aimutil_put16(newpacket2->hdr.oft.hdr2+i, 0x0006); i += aimutil_put16(newpacket2->hdr.oft.hdr2+i, 0x0000); - i += aimutil_putstr(newpacket2->hdr.oft.hdr2+i, priv->cookie, 8); + i += aimutil_putstr(newpacket2->hdr.oft.hdr2+i, (char *)priv->cookie, 8); i += aimutil_put16(newpacket2->hdr.oft.hdr2+i, 0x0000); i += aimutil_put16(newpacket2->hdr.oft.hdr2+i, 0x0000); @@ -186,7 +189,7 @@ int aim_send_im_direct(struct aim_session_t *sess, i += aimutil_put16(newpacket->hdr.oft.hdr2+i, 0x0006); i += aimutil_put16(newpacket->hdr.oft.hdr2+i, 0x0000); - i += aimutil_putstr(newpacket->hdr.oft.hdr2+i, priv->cookie, 8); + i += aimutil_putstr(newpacket->hdr.oft.hdr2+i, (char *)priv->cookie, 8); i += aimutil_put16(newpacket->hdr.oft.hdr2+i, 0x0000); i += aimutil_put16(newpacket->hdr.oft.hdr2+i, 0x0000); @@ -244,10 +247,10 @@ int aim_send_im_direct(struct aim_session_t *sess, */ -struct aim_conn_t *aim_directim_initiate(struct aim_session_t *sess, - struct aim_conn_t *conn, - struct aim_directim_priv *priv, - char *destsn) +faim_export struct aim_conn_t *aim_directim_initiate(struct aim_session_t *sess, + struct aim_conn_t *conn, + struct aim_directim_priv *priv, + char *destsn) { struct command_tx_struct *newpacket; struct aim_conn_t *newconn; @@ -260,7 +263,7 @@ struct aim_conn_t *aim_directim_initiate(struct aim_session_t *sess, struct hostent *hptr; struct utsname myname; - char cap[16]; + unsigned char cap[16]; char d[4]; /* XXX: IPv6. *cough* */ /* @@ -445,9 +448,9 @@ struct aim_conn_t *aim_directim_initiate(struct aim_session_t *sess, } -struct aim_conn_t *aim_directim_connect(struct aim_session_t *sess, - struct aim_conn_t *conn, - struct aim_directim_priv *priv ) +faim_export struct aim_conn_t *aim_directim_connect(struct aim_session_t *sess, + struct aim_conn_t *conn, + struct aim_directim_priv *priv ) { struct aim_conn_t *newconn = NULL;; @@ -466,12 +469,12 @@ struct aim_conn_t *aim_directim_connect(struct aim_session_t *sess, return newconn; } -u_long aim_accepttransfer(struct aim_session_t *sess, - struct aim_conn_t *conn, - struct aim_conn_t *oftconn, - char *sn, - char *cookie, - unsigned short rendid) +faim_export unsigned long aim_accepttransfer(struct aim_session_t *sess, + struct aim_conn_t *conn, + struct aim_conn_t *oftconn, + char *sn, + char *cookie, + unsigned short rendid) { struct command_tx_struct *newpacket, *newoft; struct aim_fileheader_t *listingfh; @@ -583,7 +586,7 @@ u_long aim_accepttransfer(struct aim_session_t *sess, * */ -struct aim_fileheader_t *aim_getlisting(struct aim_session_t *sess) +faim_internal struct aim_fileheader_t *aim_getlisting(struct aim_session_t *sess) { struct aim_fileheader_t *fh; @@ -639,7 +642,7 @@ struct aim_fileheader_t *aim_getlisting(struct aim_session_t *sess) * returns your fd */ -int aim_listenestablish(u_short portnum) +faim_internal int aim_listenestablish(u_short portnum) { int listenfd; const int on = 1; @@ -674,7 +677,7 @@ int aim_listenestablish(u_short portnum) return listenfd; } -int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *conn) +faim_internal int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *conn) { /* XXX: NOT THREAD SAFE RIGHT NOW. the locks are acting up. deal. -- jbm */ @@ -727,7 +730,7 @@ int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *co payloadlength = aimutil_get32(hdr+22); flags = aimutil_get16(hdr+32); - snptr = hdr+38; + snptr = (char *)hdr+38; strncpy(priv->sn, snptr, MAXSNLEN); @@ -792,7 +795,7 @@ int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *co memcpy(&(ft->fh), fh, sizeof(struct aim_fileheader_t)); - cook = aim_checkcookie(sess, ft->fh.bcookie, AIM_COOKIETYPE_OFTGET); + cook = aim_checkcookie(sess, (unsigned char *)ft->fh.bcookie, AIM_COOKIETYPE_OFTGET); if(cook->data) free(cook->data); /* XXX */ @@ -836,7 +839,7 @@ int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *co memcpy(&(ft->fh), fh, sizeof(struct aim_fileheader_t)); - cook = aim_checkcookie(sess, ft->fh.bcookie, AIM_COOKIETYPE_OFTGET); + cook = aim_checkcookie(sess, (unsigned char *)ft->fh.bcookie, AIM_COOKIETYPE_OFTGET); if(cook->data) free(cook->data); /* XXX: integrate cookie caching */ @@ -867,11 +870,11 @@ int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *co if(hdrlen != 0x100) printf("faim: fileget_command(120c): um. hdrlen != 0x100..\n"); - listingfh = aim_oft_getfh((char *)hdr); + listingfh = aim_oft_getfh(hdr); memcpy(&(ft->fh), listingfh, sizeof(struct aim_fileheader_t)); - cook = aim_checkcookie(sess, ft->fh.bcookie, AIM_COOKIETYPE_OFTGET); + cook = aim_checkcookie(sess, (unsigned char *)ft->fh.bcookie, AIM_COOKIETYPE_OFTGET); if(cook->data) free(cook->data); /* XXX */ @@ -942,7 +945,7 @@ int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *co curbyte += aimutil_put32(newoft->hdr.oft.hdr2+curbyte, 0 /*listingfh->nrecvd*/); curbyte += aimutil_put32(newoft->hdr.oft.hdr2+curbyte, 0/*listingfh->recvcsum*/); - strncpy(newoft->hdr.oft.hdr2+curbyte, listingfh->idstring, 32); + strncpy((char *)newoft->hdr.oft.hdr2+curbyte, listingfh->idstring, 32); curbyte += 32; curbyte += aimutil_put8(newoft->hdr.oft.hdr2+curbyte, 0x20 /*listingfh->flags */); @@ -958,7 +961,7 @@ int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *co curbyte += aimutil_put16(newoft->hdr.oft.hdr2+curbyte, listingfh->nencode); curbyte += aimutil_put16(newoft->hdr.oft.hdr2+curbyte, listingfh->nlanguage); - strncpy(newoft->hdr.oft.hdr2+curbyte, listingfh->name, 64); + strncpy((char *)newoft->hdr.oft.hdr2+curbyte, listingfh->name, 64); curbyte += 64; free(listingfh); @@ -974,7 +977,7 @@ int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *co int i; struct aim_fileheader_t *fh; - fh = aim_oft_getfh((char *)hdr); + fh = aim_oft_getfh(hdr); c = (char *)calloc(1, fh->size); @@ -1016,7 +1019,7 @@ int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *co * this currently feeds totally bogus data */ -struct aim_fileheader_t *aim_oft_getfh(char *hdr) +faim_internal struct aim_fileheader_t *aim_oft_getfh(unsigned char *hdr) { struct aim_fileheader_t *fh; int i, j; diff --git a/aim_im.c b/aim_im.c index f316192..ed2e021 100644 --- a/aim_im.c +++ b/aim_im.c @@ -17,9 +17,9 @@ * when the message is received (of type 0x0004/0x000c) * */ -u_long aim_send_im(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *destsn, u_int flags, char *msg) +faim_export unsigned long aim_send_im(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *destsn, u_int flags, char *msg) { int curbyte,i; @@ -139,8 +139,8 @@ u_long aim_send_im(struct aim_session_t *sess, return (sess->snac_nextid++); } -int aim_parse_outgoing_im_middle(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_parse_outgoing_im_middle(struct aim_session_t *sess, + struct command_rx_struct *command) { unsigned int i = 0, z; rxcallback_t userfunc = NULL; @@ -167,7 +167,7 @@ int aim_parse_outgoing_im_middle(struct aim_session_t *sess, return 1; } - strncpy(sn, command->data+i+1, (int) *(command->data+i)); + strncpy(sn, (char *) command->data+i+1, (int) *(command->data+i)); i += 1 + (int) *(command->data+i); tlvlist = aim_readtlvchain(command->data+i, command->commandlen-i); @@ -180,7 +180,7 @@ int aim_parse_outgoing_im_middle(struct aim_session_t *sess, if (aim_gettlv(tlvlist, 0x0002, 1)) { int j = 0; - msgblock = aim_gettlv_str(tlvlist, 0x0002, 1); + msgblock = (unsigned char *)aim_gettlv_str(tlvlist, 0x0002, 1); /* no, this really is correct. I'm not high or anything either. */ j += 2; @@ -222,8 +222,8 @@ int aim_parse_outgoing_im_middle(struct aim_session_t *sess, * room we're invited to, but obviously can't attend... * */ -int aim_parse_incoming_im_middle(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_parse_incoming_im_middle(struct aim_session_t *sess, + struct command_rx_struct *command) { u_int i = 0,z; rxcallback_t userfunc = NULL; @@ -785,11 +785,11 @@ int aim_parse_incoming_im_middle(struct aim_session_t *sess, * AIM_TRANSFER_DENY_NOTACCEPTING -- "client is not accepting transfers" * */ -u_long aim_denytransfer(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *sender, - char *cookie, - unsigned short code) +faim_export unsigned long aim_denytransfer(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *sender, + char *cookie, + unsigned short code) { struct command_tx_struct *newpacket; int curbyte, i; @@ -820,8 +820,8 @@ u_long aim_denytransfer(struct aim_session_t *sess, * idea. * */ -u_long aim_seticbmparam(struct aim_session_t *sess, - struct aim_conn_t *conn) +faim_export unsigned long aim_seticbmparam(struct aim_session_t *sess, + struct aim_conn_t *conn) { struct command_tx_struct *newpacket; int curbyte; @@ -849,8 +849,8 @@ u_long aim_seticbmparam(struct aim_session_t *sess, return (sess->snac_nextid++); } -int aim_parse_msgerror_middle(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_parse_msgerror_middle(struct aim_session_t *sess, + struct command_rx_struct *command) { u_long snacid = 0x000000000; struct aim_snac_t *snac = NULL; @@ -898,8 +898,8 @@ int aim_parse_msgerror_middle(struct aim_session_t *sess, } -int aim_parse_missedcall(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_parse_missedcall(struct aim_session_t *sess, + struct command_rx_struct *command) { int i, ret = 1; rxcallback_t userfunc = NULL; diff --git a/aim_info.c b/aim_info.c index fcf1195..06051b8 100644 --- a/aim_info.c +++ b/aim_info.c @@ -14,10 +14,10 @@ struct aim_priv_inforeq { unsigned short infotype; }; -u_long aim_getinfo(struct aim_session_t *sess, - struct aim_conn_t *conn, - const char *sn, - unsigned short infotype) +faim_export unsigned long aim_getinfo(struct aim_session_t *sess, + struct aim_conn_t *conn, + const char *sn, + unsigned short infotype) { struct command_tx_struct *newpacket; int i = 0; @@ -57,8 +57,8 @@ u_long aim_getinfo(struct aim_session_t *sess, return (sess->snac_nextid++); } -int aim_parse_locateerr(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_parse_locateerr(struct aim_session_t *sess, + struct command_rx_struct *command) { u_long snacid = 0x000000000; struct aim_snac_t *snac = NULL; @@ -131,7 +131,7 @@ u_char aim_caps[6][16] = { 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00} }; -u_short aim_getcap(unsigned char *capblock, int buflen) +faim_internal unsigned short aim_getcap(unsigned char *capblock, int buflen) { u_short ret = 0; int y; @@ -156,7 +156,7 @@ u_short aim_getcap(unsigned char *capblock, int buflen) return ret; } -int aim_putcap(unsigned char *capblock, int buflen, u_short caps) +faim_internal int aim_putcap(unsigned char *capblock, int buflen, u_short caps) { int offset = 0; @@ -195,7 +195,7 @@ int aim_putcap(unsigned char *capblock, int buflen, u_short caps) * AIM is fairly regular about providing user info. This * is a generic routine to extract it in its standard form. */ -int aim_extractuserinfo(u_char *buf, struct aim_userinfo_s *outinfo) +faim_internal int aim_extractuserinfo(u_char *buf, struct aim_userinfo_s *outinfo) { int i = 0; int tlvcnt = 0; @@ -421,8 +421,8 @@ int aim_extractuserinfo(u_char *buf, struct aim_userinfo_s *outinfo) * through aim_extractuserinfo() however. * */ -int aim_parse_oncoming_middle(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_parse_oncoming_middle(struct aim_session_t *sess, + struct command_rx_struct *command) { struct aim_userinfo_s userinfo; u_int i = 0; @@ -443,14 +443,14 @@ int aim_parse_oncoming_middle(struct aim_session_t *sess, * information other than the name it applies to. * */ -int aim_parse_offgoing_middle(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_parse_offgoing_middle(struct aim_session_t *sess, + struct command_rx_struct *command) { char sn[MAXSNLEN+1]; u_int i = 0; rxcallback_t userfunc=NULL; - strncpy(sn, command->data+11, (int)command->data[10]); + strncpy(sn, (char *)command->data+11, (int)command->data[10]); sn[(int)command->data[10]] = '\0'; userfunc = aim_callhandler(command->conn, AIM_CB_FAM_BUD, AIM_CB_BUD_OFFGOING); @@ -465,8 +465,8 @@ int aim_parse_offgoing_middle(struct aim_session_t *sess, * the higher-level callback (in the user app). * */ -int aim_parse_userinfo_middle(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_parse_userinfo_middle(struct aim_session_t *sess, + struct command_rx_struct *command) { struct aim_userinfo_s userinfo; char *text_encoding = NULL; @@ -548,7 +548,7 @@ int aim_parse_userinfo_middle(struct aim_session_t *sess, /* * Inverse of aim_extractuserinfo() */ -int aim_putuserinfo(u_char *buf, int buflen, struct aim_userinfo_s *info) +faim_internal int aim_putuserinfo(u_char *buf, int buflen, struct aim_userinfo_s *info) { int i = 0; struct aim_tlvlist_t *tlvlist = NULL; @@ -576,7 +576,7 @@ int aim_putuserinfo(u_char *buf, int buflen, struct aim_userinfo_s *info) return i; } -int aim_sendbuddyoncoming(struct aim_session_t *sess, struct aim_conn_t *conn, struct aim_userinfo_s *info) +faim_export int aim_sendbuddyoncoming(struct aim_session_t *sess, struct aim_conn_t *conn, struct aim_userinfo_s *info) { struct command_tx_struct *tx; int i = 0; @@ -604,7 +604,7 @@ int aim_sendbuddyoncoming(struct aim_session_t *sess, struct aim_conn_t *conn, s return 0; } -int aim_sendbuddyoffgoing(struct aim_session_t *sess, struct aim_conn_t *conn, char *sn) +faim_export int aim_sendbuddyoffgoing(struct aim_session_t *sess, struct aim_conn_t *conn, char *sn) { struct command_tx_struct *tx; int i = 0; diff --git a/aim_login.c b/aim_login.c index 280b6a5..30e3e87 100644 --- a/aim_login.c +++ b/aim_login.c @@ -18,8 +18,8 @@ static int aim_encode_password_md5(const char *password, const char *key, md5_by #include "tis_telnet_proxy.h" #endif -int aim_sendconnack(struct aim_session_t *sess, - struct aim_conn_t *conn) +faim_export int aim_sendconnack(struct aim_session_t *sess, + struct aim_conn_t *conn) { int curbyte=0; @@ -45,9 +45,9 @@ int aim_sendconnack(struct aim_session_t *sess, * a 0017/0007 comes back, which is the signal to send * it the main login command (0017/0002). */ -int aim_request_login(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *sn) +faim_export int aim_request_login(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *sn) { int curbyte=0; @@ -75,10 +75,11 @@ int aim_request_login(struct aim_session_t *sess, * stupid method of doing it. * */ -int aim_send_login (struct aim_session_t *sess, - struct aim_conn_t *conn, - char *sn, char *password, struct client_info_s *clientinfo, - char *key) +faim_export int aim_send_login (struct aim_session_t *sess, + struct aim_conn_t *conn, + char *sn, char *password, + struct client_info_s *clientinfo, + char *key) { int curbyte=0; md5_byte_t digest[16]; @@ -100,7 +101,7 @@ int aim_send_login (struct aim_session_t *sess, curbyte+= aim_puttlv_str(newpacket->data+curbyte, 0x0001, strlen(sn), sn); aim_encode_password_md5(password, key, digest); - curbyte+= aim_puttlv_str(newpacket->data+curbyte, 0x0025, 16, digest); + curbyte+= aim_puttlv_str(newpacket->data+curbyte, 0x0025, 16, (char *)digest); /* XXX is clientstring required by oscar? */ if (strlen(clientinfo->clientstring)) @@ -197,8 +198,8 @@ static int aim_encode_password(const char *password, unsigned char *encoded) * its nonzero, there was an error. * */ -int aim_authparse(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_authparse(struct aim_session_t *sess, + struct command_rx_struct *command) { struct aim_tlvlist_t *tlvlist; int ret = 1; @@ -298,7 +299,7 @@ int aim_authparse(struct aim_session_t *sess, * Calls the client, which should then use the value to call aim_send_login. * */ -int aim_authkeyparse(struct aim_session_t *sess, struct command_rx_struct *command) +faim_internal int aim_authkeyparse(struct aim_session_t *sess, struct command_rx_struct *command) { unsigned char *key; int keylen; @@ -312,7 +313,7 @@ int aim_authkeyparse(struct aim_session_t *sess, struct command_rx_struct *comma key[keylen] = '\0'; if ((userfunc = aim_callhandler(command->conn, 0x0017, 0x0007))) - ret = userfunc(sess, command, key); + ret = userfunc(sess, command, (char *)key); free(key); @@ -325,11 +326,11 @@ int aim_authkeyparse(struct aim_session_t *sess, struct command_rx_struct *comma * You probably don't want this unless you're writing an AIM server. * */ -unsigned long aim_sendauthresp(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *sn, char *bosip, - char *cookie, char *email, - int regstatus) +faim_export unsigned long aim_sendauthresp(struct aim_session_t *sess, + struct aim_conn_t *conn, + char *sn, char *bosip, + char *cookie, char *email, + int regstatus) { struct command_tx_struct *tx; struct aim_tlvlist_t *tlvlist = NULL; @@ -362,7 +363,7 @@ unsigned long aim_sendauthresp(struct aim_session_t *sess, /* * Generate a random cookie. (Non-client use only) */ -int aim_gencookie(unsigned char *buf) +faim_export int aim_gencookie(unsigned char *buf) { int i; @@ -377,7 +378,7 @@ int aim_gencookie(unsigned char *buf) /* * Send Server Ready. (Non-client) */ -int aim_sendserverready(struct aim_session_t *sess, struct aim_conn_t *conn) +faim_export int aim_sendserverready(struct aim_session_t *sess, struct aim_conn_t *conn) { struct command_tx_struct *tx; int i = 0; @@ -411,11 +412,11 @@ int aim_sendserverready(struct aim_session_t *sess, struct aim_conn_t *conn) /* * Send service redirect. (Non-Client) */ -unsigned long aim_sendredirect(struct aim_session_t *sess, - struct aim_conn_t *conn, - unsigned short servid, - char *ip, - char *cookie) +faim_export unsigned long aim_sendredirect(struct aim_session_t *sess, + struct aim_conn_t *conn, + unsigned short servid, + char *ip, + char *cookie) { struct command_tx_struct *tx; struct aim_tlvlist_t *tlvlist = NULL; diff --git a/aim_meta.c b/aim_meta.c index 3b054f1..67a24cf 100644 --- a/aim_meta.c +++ b/aim_meta.c @@ -7,17 +7,17 @@ #include #include /* generated by mkbuildinfo.sh */ -char *aim_getbuilddate(void) +faim_export char *aim_getbuilddate(void) { return AIM_BUILDDATE; } -char *aim_getbuildtime(void) +faim_export char *aim_getbuildtime(void) { return AIM_BUILDTIME; } -char *aim_getbuildstring(void) +faim_export char *aim_getbuildstring(void) { static char string[100]; @@ -30,3 +30,21 @@ char *aim_getbuildstring(void) return string; } +#if debug > 0 +faim_internal void faimdprintf(int dlevel, const char *format, ...) +{ + if (dlevel >= debug) { + va_list ap; + + va_start(ap, format); + vfprintf(stderr, format, ap); + va_end(ap); + } + return; +} +#else +faim_internal void faimdprintf(int dlevel, const char *format, ...) +{ + return; +} +#endif diff --git a/aim_msgcookie.c b/aim_msgcookie.c index cd4e8e5..4ef8c8a 100644 --- a/aim_msgcookie.c +++ b/aim_msgcookie.c @@ -26,8 +26,8 @@ * * returns -1 on error, 0 on success. */ -int aim_cachecookie(struct aim_session_t *sess, - struct aim_msgcookie_t *cookie) +faim_internal int aim_cachecookie(struct aim_session_t *sess, + struct aim_msgcookie_t *cookie) { struct aim_msgcookie_t *newcook = NULL, *cur = NULL; @@ -80,7 +80,7 @@ int aim_cachecookie(struct aim_session_t *sess, * NULL on not found. */ -struct aim_msgcookie_t *aim_uncachecookie(struct aim_session_t *sess, char *cookie, int type) +faim_internal struct aim_msgcookie_t *aim_uncachecookie(struct aim_session_t *sess, unsigned char *cookie, int type) { struct aim_msgcookie_t *cur; @@ -120,7 +120,7 @@ struct aim_msgcookie_t *aim_uncachecookie(struct aim_session_t *sess, char *cook * i'll avoid the puns. */ -int aim_purgecookies(struct aim_session_t *sess, int maxage) +faim_export int aim_purgecookies(struct aim_session_t *sess, int maxage) { struct aim_msgcookie_t *cur; struct aim_msgcookie_t *remed = NULL; @@ -153,7 +153,7 @@ int aim_purgecookies(struct aim_session_t *sess, int maxage) return 0; } -struct aim_msgcookie_t *aim_mkcookie(unsigned char *c, int type, void *data) +faim_internal struct aim_msgcookie_t *aim_mkcookie(unsigned char *c, int type, void *data) { struct aim_msgcookie_t *cookie; @@ -172,7 +172,7 @@ struct aim_msgcookie_t *aim_mkcookie(unsigned char *c, int type, void *data) return(cookie); } -struct aim_msgcookie_t *aim_checkcookie(struct aim_session_t *sess, char *cookie, int type) +faim_internal struct aim_msgcookie_t *aim_checkcookie(struct aim_session_t *sess, unsigned char *cookie, int type) { struct aim_msgcookie_t *cur; @@ -191,11 +191,11 @@ struct aim_msgcookie_t *aim_checkcookie(struct aim_session_t *sess, char *cookie return(NULL); } -int aim_freecookie(struct aim_msgcookie_t *cookie) { +static int aim_freecookie(struct aim_msgcookie_t *cookie) { return(0); } -int aim_msgcookie_gettype(int reqclass) { +faim_internal int aim_msgcookie_gettype(int reqclass) { /* XXX: hokey-assed. needs fixed. */ switch(reqclass) { case AIM_CAPS_BUDDYICON: diff --git a/aim_rxhandlers.c b/aim_rxhandlers.c index 4e76e2a..91db4a0 100644 --- a/aim_rxhandlers.c +++ b/aim_rxhandlers.c @@ -13,7 +13,7 @@ * Bleck functions get called when there's no non-bleck functions * around to cleanup the mess... */ -int bleck(struct aim_session_t *sess,struct command_rx_struct *workingPtr, ...) +faim_internal int bleck(struct aim_session_t *sess,struct command_rx_struct *workingPtr, ...) { u_short family; u_short subtype; @@ -181,7 +181,7 @@ int bleck(struct aim_session_t *sess,struct command_rx_struct *workingPtr, ...) return 1; } -int aim_conn_addhandler(struct aim_session_t *sess, +faim_export int aim_conn_addhandler(struct aim_session_t *sess, struct aim_conn_t *conn, u_short family, u_short type, @@ -218,7 +218,7 @@ int aim_conn_addhandler(struct aim_session_t *sess, return 0; } -int aim_clearhandlers(struct aim_conn_t *conn) +faim_export int aim_clearhandlers(struct aim_conn_t *conn) { struct aim_rxcblist_t *cur,*tmp; if (!conn) @@ -234,9 +234,9 @@ int aim_clearhandlers(struct aim_conn_t *conn) return 0; } -rxcallback_t aim_callhandler(struct aim_conn_t *conn, - u_short family, - u_short type) +faim_internal rxcallback_t aim_callhandler(struct aim_conn_t *conn, + u_short family, + u_short type) { struct aim_rxcblist_t *cur; @@ -258,11 +258,11 @@ rxcallback_t aim_callhandler(struct aim_conn_t *conn, return aim_callhandler(conn, family, 0xffff); } -int aim_callhandler_noparam(struct aim_session_t *sess, - struct aim_conn_t *conn, - u_short family, - u_short type, - struct command_rx_struct *ptr) +faim_internal int aim_callhandler_noparam(struct aim_session_t *sess, + struct aim_conn_t *conn, + u_short family, + u_short type, + struct command_rx_struct *ptr) { rxcallback_t userfunc = NULL; userfunc = aim_callhandler(conn, family, type); @@ -294,7 +294,7 @@ int aim_callhandler_noparam(struct aim_session_t *sess, TODO: Allow for NULL handlers. */ -int aim_rxdispatch(struct aim_session_t *sess) +faim_export int aim_rxdispatch(struct aim_session_t *sess) { int i = 0; struct command_rx_struct *workingPtr = NULL; @@ -376,8 +376,8 @@ int aim_rxdispatch(struct aim_session_t *sess) /* Old login protocol */ /* any user callbacks will be called from here */ workingPtr->handled = aim_authparse(sess, workingPtr); - break; #endif + break; } } break; @@ -614,7 +614,7 @@ int aim_rxdispatch(struct aim_session_t *sess) return 0; } -int aim_parse_msgack_middle(struct aim_session_t *sess, struct command_rx_struct *command) +faim_internal int aim_parse_msgack_middle(struct aim_session_t *sess, struct command_rx_struct *command) { rxcallback_t userfunc = NULL; char sn[MAXSNLEN]; @@ -630,7 +630,7 @@ int aim_parse_msgack_middle(struct aim_session_t *sess, struct command_rx_struct i++; memset(sn, 0, sizeof(sn)); - strncpy(sn, command->data+i, snlen); + strncpy(sn, (char *)command->data+i, snlen); if ((userfunc = aim_callhandler(command->conn, 0x0004, 0x000c))) ret = userfunc(sess, command, type, sn); @@ -638,7 +638,7 @@ int aim_parse_msgack_middle(struct aim_session_t *sess, struct command_rx_struct return ret; } -int aim_parse_ratechange_middle(struct aim_session_t *sess, struct command_rx_struct *command) +faim_internal int aim_parse_ratechange_middle(struct aim_session_t *sess, struct command_rx_struct *command) { rxcallback_t userfunc = NULL; int ret = 1; @@ -657,7 +657,7 @@ int aim_parse_ratechange_middle(struct aim_session_t *sess, struct command_rx_st return ret; } -int aim_parse_evilnotify_middle(struct aim_session_t *sess, struct command_rx_struct *command) +faim_internal int aim_parse_evilnotify_middle(struct aim_session_t *sess, struct command_rx_struct *command) { rxcallback_t userfunc = NULL; int ret = 1, pos; @@ -682,8 +682,8 @@ int aim_parse_evilnotify_middle(struct aim_session_t *sess, struct command_rx_st return ret; } -int aim_parsemotd_middle(struct aim_session_t *sess, - struct command_rx_struct *command, ...) +faim_internal int aim_parsemotd_middle(struct aim_session_t *sess, + struct command_rx_struct *command, ...) { rxcallback_t userfunc = NULL; char *msg; @@ -724,12 +724,12 @@ int aim_parsemotd_middle(struct aim_session_t *sess, return ret; } -int aim_handleredirect_middle(struct aim_session_t *sess, +faim_internal int aim_handleredirect_middle(struct aim_session_t *sess, struct command_rx_struct *command, ...) { struct aim_tlv_t *tmptlv = NULL; int serviceid = 0x00; - char cookie[AIM_COOKIELEN]; + unsigned char cookie[AIM_COOKIELEN]; char *ip = NULL; rxcallback_t userfunc = NULL; struct aim_tlvlist_t *tlvlist; @@ -791,8 +791,8 @@ int aim_handleredirect_middle(struct aim_session_t *sess, return ret; } -int aim_parse_unknown(struct aim_session_t *sess, - struct command_rx_struct *command, ...) +faim_internal int aim_parse_unknown(struct aim_session_t *sess, + struct command_rx_struct *command, ...) { u_int i = 0; @@ -812,8 +812,8 @@ int aim_parse_unknown(struct aim_session_t *sess, } -int aim_negchan_middle(struct aim_session_t *sess, - struct command_rx_struct *command) +faim_internal int aim_negchan_middle(struct aim_session_t *sess, + struct command_rx_struct *command) { struct aim_tlvlist_t *tlvlist; char *msg = NULL; @@ -847,8 +847,8 @@ int aim_negchan_middle(struct aim_session_t *sess, * Middle handler for 0x0001 snac of each family. * */ -int aim_parse_generalerrs(struct aim_session_t *sess, - struct command_rx_struct *command, ...) +faim_internal int aim_parse_generalerrs(struct aim_session_t *sess, + struct command_rx_struct *command, ...) { u_short family; u_short subtype; diff --git a/aim_rxqueue.c b/aim_rxqueue.c index f362e39..8a1a50d 100644 --- a/aim_rxqueue.c +++ b/aim_rxqueue.c @@ -7,14 +7,20 @@ */ #include +#include /* * Since not all implementations support MSG_WAITALL, define * an alternate guarenteed read function... + * + * We keep recv() for systems that can do it because it means + * a single system call for the entire packet, where read may + * take more for a badly fragmented packet. + * */ static int aim_recv(int fd, void *buf, size_t count) { -#ifdef FAIM_HAS_MSG_WAITALL +#ifdef MSG_WAITALL return recv(fd, buf, count, MSG_WAITALL); #else int left, ret, cur = 0; @@ -22,7 +28,7 @@ static int aim_recv(int fd, void *buf, size_t count) left = count; while (left) { - ret = read(fd, buf+cur, left); + ret = read(fd, ((unsigned char *)buf)+cur, left); if (ret == -1) return -1; if (ret == 0) @@ -40,7 +46,7 @@ static int aim_recv(int fd, void *buf, size_t count) * Grab a single command sequence off the socket, and enqueue * it in the incoming event queue in a seperate struct. */ -int aim_get_command(struct aim_session_t *sess, struct aim_conn_t *conn) +faim_export int aim_get_command(struct aim_session_t *sess, struct aim_conn_t *conn) { unsigned char generic[6]; struct command_rx_struct *newrx = NULL; @@ -164,7 +170,7 @@ int aim_get_command(struct aim_session_t *sess, struct aim_conn_t *conn) * does not keep a pointer, it's lost forever. * */ -void aim_purge_rxqueue(struct aim_session_t *sess) +faim_export void aim_purge_rxqueue(struct aim_session_t *sess) { struct command_rx_struct *cur = NULL; struct command_rx_struct *tmp; @@ -222,7 +228,7 @@ void aim_purge_rxqueue(struct aim_session_t *sess) * XXX: this is something that was handled better in the old connection * handling method, but eh. */ -void aim_rxqueue_cleanbyconn(struct aim_session_t *sess, struct aim_conn_t *conn) +faim_internal void aim_rxqueue_cleanbyconn(struct aim_session_t *sess, struct aim_conn_t *conn) { struct command_rx_struct *currx; diff --git a/aim_tlv.c b/aim_tlv.c index 1e89318..17aebc7 100644 --- a/aim_tlv.c +++ b/aim_tlv.c @@ -1,6 +1,6 @@ #include -struct aim_tlvlist_t *aim_readtlvchain(u_char *buf, int maxlen) +faim_internal struct aim_tlvlist_t *aim_readtlvchain(u_char *buf, int maxlen) { int pos; struct aim_tlvlist_t *list; @@ -62,7 +62,7 @@ struct aim_tlvlist_t *aim_readtlvchain(u_char *buf, int maxlen) return list; } -void aim_freetlvchain(struct aim_tlvlist_t **list) +faim_internal void aim_freetlvchain(struct aim_tlvlist_t **list) { struct aim_tlvlist_t *cur, *cur2; @@ -81,7 +81,7 @@ void aim_freetlvchain(struct aim_tlvlist_t **list) return; } -int aim_counttlvchain(struct aim_tlvlist_t **list) +faim_internal int aim_counttlvchain(struct aim_tlvlist_t **list) { struct aim_tlvlist_t *cur; int count = 0; @@ -95,7 +95,7 @@ int aim_counttlvchain(struct aim_tlvlist_t **list) return count; } -int aim_addtlvtochain_str(struct aim_tlvlist_t **list, unsigned short type, char *str, int len) +faim_internal int aim_addtlvtochain_str(struct aim_tlvlist_t **list, unsigned short type, char *str, int len) { struct aim_tlvlist_t *new; struct aim_tlvlist_t *cur; @@ -126,7 +126,7 @@ int aim_addtlvtochain_str(struct aim_tlvlist_t **list, unsigned short type, char return new->tlv->length; } -int aim_addtlvtochain16(struct aim_tlvlist_t **list, unsigned short type, unsigned short val) +faim_internal int aim_addtlvtochain16(struct aim_tlvlist_t **list, unsigned short type, unsigned short val) { struct aim_tlvlist_t *new; struct aim_tlvlist_t *cur; @@ -157,7 +157,7 @@ int aim_addtlvtochain16(struct aim_tlvlist_t **list, unsigned short type, unsign return 2; } -int aim_addtlvtochain32(struct aim_tlvlist_t **list, unsigned short type, unsigned long val) +faim_internal int aim_addtlvtochain32(struct aim_tlvlist_t **list, unsigned short type, unsigned long val) { struct aim_tlvlist_t *new; struct aim_tlvlist_t *cur; @@ -188,7 +188,7 @@ int aim_addtlvtochain32(struct aim_tlvlist_t **list, unsigned short type, unsign return 4; } -int aim_writetlvchain(u_char *buf, int buflen, struct aim_tlvlist_t **list) +faim_internal int aim_writetlvchain(u_char *buf, int buflen, struct aim_tlvlist_t **list) { int goodbuflen = 0; int i = 0; @@ -221,7 +221,7 @@ int aim_writetlvchain(u_char *buf, int buflen, struct aim_tlvlist_t **list) /* * Grab the Nth TLV of type type in the TLV list list. */ -struct aim_tlv_t *aim_gettlv(struct aim_tlvlist_t *list, u_short type, int nth) +faim_internal struct aim_tlv_t *aim_gettlv(struct aim_tlvlist_t *list, u_short type, int nth) { int i; struct aim_tlvlist_t *cur; @@ -240,7 +240,7 @@ struct aim_tlv_t *aim_gettlv(struct aim_tlvlist_t *list, u_short type, int nth) return NULL; } -char *aim_gettlv_str(struct aim_tlvlist_t *list, u_short type, int nth) +faim_internal char *aim_gettlv_str(struct aim_tlvlist_t *list, u_short type, int nth) { struct aim_tlv_t *tlv; char *newstr; @@ -255,7 +255,7 @@ char *aim_gettlv_str(struct aim_tlvlist_t *list, u_short type, int nth) return newstr; } -struct aim_tlv_t *aim_grabtlv(u_char *src) +faim_internal struct aim_tlv_t *aim_grabtlv(u_char *src) { struct aim_tlv_t *dest = NULL; @@ -275,7 +275,7 @@ struct aim_tlv_t *aim_grabtlv(u_char *src) return dest; } -struct aim_tlv_t *aim_grabtlvstr(u_char *src) +faim_internal struct aim_tlv_t *aim_grabtlvstr(u_char *src) { struct aim_tlv_t *dest = NULL; @@ -296,7 +296,7 @@ struct aim_tlv_t *aim_grabtlvstr(u_char *src) return dest; } -int aim_puttlv (u_char *dest, struct aim_tlv_t *newtlv) +faim_internal int aim_puttlv(u_char *dest, struct aim_tlv_t *newtlv) { int i=0; @@ -309,7 +309,7 @@ int aim_puttlv (u_char *dest, struct aim_tlv_t *newtlv) return i; } -struct aim_tlv_t *aim_createtlv(void) +faim_internal struct aim_tlv_t *aim_createtlv(void) { struct aim_tlv_t *newtlv = NULL; newtlv = (struct aim_tlv_t *)malloc(sizeof(struct aim_tlv_t)); @@ -317,7 +317,7 @@ struct aim_tlv_t *aim_createtlv(void) return newtlv; } -int aim_freetlv(struct aim_tlv_t **oldtlv) +faim_internal int aim_freetlv(struct aim_tlv_t **oldtlv) { if (!oldtlv) return -1; @@ -331,7 +331,7 @@ int aim_freetlv(struct aim_tlv_t **oldtlv) return 0; } -int aim_puttlv_16(u_char *buf, u_short t, u_short v) +faim_internal int aim_puttlv_16(u_char *buf, u_short t, u_short v) { int curbyte=0; curbyte += aimutil_put16(buf+curbyte, (u_short)(t&0xffff)); @@ -340,7 +340,7 @@ int aim_puttlv_16(u_char *buf, u_short t, u_short v) return curbyte; } -int aim_puttlv_32(u_char *buf, u_short t, u_long v) +faim_internal int aim_puttlv_32(u_char *buf, u_short t, u_long v) { int curbyte=0; curbyte += aimutil_put16(buf+curbyte, (u_short)(t&0xffff)); @@ -349,7 +349,7 @@ int aim_puttlv_32(u_char *buf, u_short t, u_long v) return curbyte; } -int aim_puttlv_str(u_char *buf, u_short t, u_short l, u_char *v) +faim_internal int aim_puttlv_str(u_char *buf, u_short t, u_short l, char *v) { int curbyte; @@ -357,7 +357,7 @@ int aim_puttlv_str(u_char *buf, u_short t, u_short l, u_char *v) curbyte += aimutil_put16(buf+curbyte, (u_short)(t&0xffff)); curbyte += aimutil_put16(buf+curbyte, (u_short)(l&0xffff)); if (v) - memcpy(buf+curbyte, v, l); + memcpy(buf+curbyte, (unsigned char *)v, l); curbyte += l; return curbyte; } diff --git a/aim_txqueue.c b/aim_txqueue.c index 7c2da33..3b78f86 100644 --- a/aim_txqueue.c +++ b/aim_txqueue.c @@ -19,7 +19,7 @@ * chan = channel for OSCAR, hdrtype for OFT * */ -struct command_tx_struct *aim_tx_new(unsigned short framing, int chan, struct aim_conn_t *conn, int datalen) +faim_internal struct command_tx_struct *aim_tx_new(unsigned short framing, int chan, struct aim_conn_t *conn, int datalen) { struct command_tx_struct *new; @@ -70,8 +70,8 @@ struct command_tx_struct *aim_tx_new(unsigned short framing, int chan, struct ai * that is, when sess->tx_enqueue is set to &aim_tx_enqueue__queuebased. * */ -int aim_tx_enqueue__queuebased(struct aim_session_t *sess, - struct command_tx_struct *newpacket) +faim_internal int aim_tx_enqueue__queuebased(struct aim_session_t *sess, + struct command_tx_struct *newpacket) { struct command_tx_struct *cur; @@ -122,7 +122,7 @@ int aim_tx_enqueue__queuebased(struct aim_session_t *sess, * right here. * */ -int aim_tx_enqueue__immediate(struct aim_session_t *sess, struct command_tx_struct *newpacket) +faim_internal int aim_tx_enqueue__immediate(struct aim_session_t *sess, struct command_tx_struct *newpacket) { if (newpacket->conn == NULL) { faimdprintf(1, "aim_tx_enqueue: ERROR: packet has no connection\n"); @@ -156,7 +156,7 @@ int aim_tx_enqueue__immediate(struct aim_session_t *sess, struct command_tx_stru * before enqueuement (in aim_tx_enqueue()). * */ -u_int aim_get_next_txseqnum(struct aim_conn_t *conn) +faim_internal unsigned int aim_get_next_txseqnum(struct aim_conn_t *conn) { u_int ret; @@ -175,7 +175,7 @@ u_int aim_get_next_txseqnum(struct aim_conn_t *conn) * */ #if debug == 2 -int aim_tx_printqueue(struct aim_session_t *sess) +faim_internal int aim_tx_printqueue(struct aim_session_t *sess) { struct command_tx_struct *cur; @@ -225,7 +225,7 @@ int aim_tx_printqueue(struct aim_session_t *sess) * 9) Step to next struct in list and go back to 1. * */ -int aim_tx_sendframe(struct aim_session_t *sess, struct command_tx_struct *cur) +faim_internal int aim_tx_sendframe(struct aim_session_t *sess, struct command_tx_struct *cur) { int buflen = 0; unsigned char *curPacket; @@ -327,7 +327,7 @@ int aim_tx_sendframe(struct aim_session_t *sess, struct command_tx_struct *cur) return 1; /* success */ } -int aim_tx_flushqueue(struct aim_session_t *sess) +faim_export int aim_tx_flushqueue(struct aim_session_t *sess) { struct command_tx_struct *cur; @@ -371,7 +371,7 @@ int aim_tx_flushqueue(struct aim_session_t *sess) * reduce memory footprint at run time! * */ -void aim_tx_purgequeue(struct aim_session_t *sess) +faim_export void aim_tx_purgequeue(struct aim_session_t *sess) { struct command_tx_struct *cur = NULL; struct command_tx_struct *tmp; diff --git a/aim_util.c b/aim_util.c index 77a3ba3..6ab4f38 100644 --- a/aim_util.c +++ b/aim_util.c @@ -7,18 +7,16 @@ #include #include -#define AIMUTIL_USEMACROS - #ifdef AIMUTIL_USEMACROS /* macros in faim/aim.h */ #else -inline int aimutil_put8(u_char *buf, u_char data) +faim_shortfunc int aimutil_put8(u_char *buf, u_char data) { buf[0] = (u_char)data&0xff; return 1; } -inline u_char aimutil_get8(u_char *buf) +faim_shortfunc u_char aimutil_get8(u_char *buf) { return buf[0]; } @@ -26,14 +24,14 @@ inline u_char aimutil_get8(u_char *buf) /* * Endian-ness issues here? */ -inline int aimutil_put16(u_char *buf, u_short data) +faim_shortfunc int aimutil_put16(u_char *buf, u_short data) { buf[0] = (u_char)(data>>8)&0xff; buf[1] = (u_char)(data)&0xff; return 2; } -inline u_short aimutil_get16(u_char *buf) +faim_shortfunc u_short aimutil_get16(u_char *buf) { u_short val; val = (buf[0] << 8) & 0xff00; @@ -41,7 +39,7 @@ inline u_short aimutil_get16(u_char *buf) return val; } -inline int aimutil_put32(u_char *buf, u_long data) +faim_shortfunc int aimutil_put32(u_char *buf, u_long data) { buf[0] = (u_char)(data>>24)&0xff; buf[1] = (u_char)(data>>16)&0xff; @@ -50,7 +48,7 @@ inline int aimutil_put32(u_char *buf, u_long data) return 4; } -inline u_long aimutil_get32(u_char *buf) +faim_shortfunc u_long aimutil_get32(u_char *buf) { u_long val; val = (buf[0] << 24) & 0xff000000; @@ -61,7 +59,7 @@ inline u_long aimutil_get32(u_char *buf) } #endif /* AIMUTIL_USEMACROS */ -inline int aimutil_putstr(u_char *dest, const u_char *src, int len) +faim_export faim_shortfunc int aimutil_putstr(u_char *dest, const char *src, int len) { memcpy(dest, src, len); return len; @@ -72,7 +70,7 @@ inline int aimutil_putstr(u_char *dest, const u_char *src, int len) * -- DMP. * */ -int aimutil_tokslen(char *toSearch, int index, char dl) +faim_export int aimutil_tokslen(char *toSearch, int index, char dl) { int curCount = 1; char *next; @@ -97,7 +95,7 @@ int aimutil_tokslen(char *toSearch, int index, char dl) return toReturn; } -int aimutil_itemcnt(char *toSearch, char dl) +faim_export int aimutil_itemcnt(char *toSearch, char dl) { int curCount; char *next; @@ -115,7 +113,7 @@ int aimutil_itemcnt(char *toSearch, char dl) return curCount; } -char *aimutil_itemidx(char *toSearch, int index, char dl) +faim_export char *aimutil_itemidx(char *toSearch, int index, char dl) { int curCount; char *next; @@ -171,7 +169,7 @@ char *aimutil_itemidx(char *toSearch, int index, char dl) * return is equal to that of strlen(). * */ -int aim_snlen(const char *sn) +faim_export int aim_snlen(const char *sn) { int i = 0; const char *curPtr = NULL; @@ -202,7 +200,7 @@ int aim_snlen(const char *sn) * */ -int aim_sncmp(const char *sn1, const char *sn2) +faim_export int aim_sncmp(const char *sn1, const char *sn2) { const char *curPtr1 = NULL, *curPtr2 = NULL; @@ -248,7 +246,7 @@ int aim_sncmp(const char *sn1, const char *sn2) /* Minor changes by and1000 on 15/1/97 to make it go under Nemesis */ -char *aim_strsep(char **pp, const char *delim) +faim_export char *aim_strsep(char **pp, const char *delim) { char *p, *q; diff --git a/faim/aim.h b/faim/aim.h index 244c28b..d17eeac 100644 --- a/faim/aim.h +++ b/faim/aim.h @@ -30,9 +30,6 @@ #include #include #else -#include -#include -#include #include #include #endif @@ -70,8 +67,31 @@ #define gethostbyname(x) gethostbyname2(x, AF_INET) #endif -#if defined(MSG_WAITALL) -#define FAIM_HAS_MSG_WAITALL +#if defined(_WIN32) || defined(STRICT_ANSI) +#define faim_shortfunc +#else +#define faim_shortfunc inline +#endif + +#if defined(_WIN32) +/* + * For a win32 DLL, we define WIN32_INDLL if this file + * is included while compiling the DLL. If its not + * defined (its included in a client app), the symbols + * will be imported instead of exported. + */ +#ifdef WIN32_INDLL +#define faim_export __declspec(dllexport) +#else +#define faim_export __declspec(dllimport) +#endif /* WIN32_INDLL */ +#define faim_internal +#else +/* + * Nothing normally needed for unix... + */ +#define faim_export +#define faim_internal #endif /* @@ -116,12 +136,6 @@ #define AIM_MD5_STRING "AOL Instant Messenger (SM)" -#if debug > 0 -#define faimdprintf(l, x...) {if (l >= debug) printf(x); } -#else -#define faimdprintf(l, x...) -#endif - /* * Login info. Passes information from the Authorization * stage of login to the service (BOS, etc) connection @@ -131,7 +145,7 @@ struct aim_login_struct { char screen_name[MAXSNLEN+1]; char *BOSIP; - char cookie[AIM_COOKIELEN]; + unsigned char cookie[AIM_COOKIELEN]; char *email; u_short regstatus; char *errorurl; @@ -361,36 +375,36 @@ struct aim_tlvlist_t { }; /* TLV-handling functions */ -struct aim_tlvlist_t *aim_readtlvchain(u_char *buf, int maxlen); -void aim_freetlvchain(struct aim_tlvlist_t **list); -struct aim_tlv_t *aim_grabtlv(u_char *src); -struct aim_tlv_t *aim_grabtlvstr(u_char *src); -struct aim_tlv_t *aim_gettlv(struct aim_tlvlist_t *, u_short, int); -char *aim_gettlv_str(struct aim_tlvlist_t *, u_short, int); -int aim_puttlv (u_char *dest, struct aim_tlv_t *newtlv); -struct aim_tlv_t *aim_createtlv(void); -int aim_freetlv(struct aim_tlv_t **oldtlv); -int aim_puttlv_16(u_char *, u_short, u_short); -int aim_puttlv_32(u_char *, u_short, u_long); -int aim_puttlv_str(u_char *buf, u_short t, u_short l, u_char *v); -int aim_writetlvchain(u_char *buf, int buflen, struct aim_tlvlist_t **list); -int aim_addtlvtochain16(struct aim_tlvlist_t **list, unsigned short type, unsigned short val); -int aim_addtlvtochain32(struct aim_tlvlist_t **list, unsigned short type, unsigned long val); -int aim_addtlvtochain_str(struct aim_tlvlist_t **list, unsigned short type, char *str, int len); -int aim_counttlvchain(struct aim_tlvlist_t **list); +faim_internal struct aim_tlvlist_t *aim_readtlvchain(u_char *buf, int maxlen); +faim_internal void aim_freetlvchain(struct aim_tlvlist_t **list); +faim_internal struct aim_tlv_t *aim_grabtlv(u_char *src); +faim_internal struct aim_tlv_t *aim_grabtlvstr(u_char *src); +faim_internal struct aim_tlv_t *aim_gettlv(struct aim_tlvlist_t *, u_short, int); +faim_internal char *aim_gettlv_str(struct aim_tlvlist_t *, u_short, int); +faim_internal int aim_puttlv (u_char *dest, struct aim_tlv_t *newtlv); +faim_internal struct aim_tlv_t *aim_createtlv(void); +faim_internal int aim_freetlv(struct aim_tlv_t **oldtlv); +faim_internal int aim_puttlv_16(u_char *, u_short, u_short); +faim_internal int aim_puttlv_32(u_char *, u_short, u_long); +faim_internal int aim_puttlv_str(u_char *buf, u_short t, u_short l, char *v); +faim_internal int aim_writetlvchain(u_char *buf, int buflen, struct aim_tlvlist_t **list); +faim_internal int aim_addtlvtochain16(struct aim_tlvlist_t **list, unsigned short type, unsigned short val); +faim_internal int aim_addtlvtochain32(struct aim_tlvlist_t **list, unsigned short type, unsigned long val); +faim_internal int aim_addtlvtochain_str(struct aim_tlvlist_t **list, unsigned short type, char *str, int len); +faim_internal int aim_counttlvchain(struct aim_tlvlist_t **list); /* * Get command from connections / Dispatch commands * already in queue. */ -int aim_get_command(struct aim_session_t *, struct aim_conn_t *); +faim_export int aim_get_command(struct aim_session_t *, struct aim_conn_t *); int aim_rxdispatch(struct aim_session_t *); u_long aim_debugconn_sendconnect(struct aim_session_t *sess, struct aim_conn_t *conn); int aim_logoff(struct aim_session_t *); -void aim_conn_kill(struct aim_session_t *sess, struct aim_conn_t **deadconn); +faim_export void aim_conn_kill(struct aim_session_t *sess, struct aim_conn_t **deadconn); typedef int (*rxcallback_t)(struct aim_session_t *, struct command_rx_struct *, ...); int aim_register_callbacks(rxcallback_t *); @@ -399,42 +413,34 @@ u_long aim_genericreq_n(struct aim_session_t *, struct aim_conn_t *conn, u_short u_long aim_genericreq_l(struct aim_session_t *, struct aim_conn_t *conn, u_short family, u_short subtype, u_long *); u_long aim_genericreq_s(struct aim_session_t *, struct aim_conn_t *conn, u_short family, u_short subtype, u_short *); -struct aim_fileheader_t *aim_oft_getfh(char *hdr); +faim_internal struct aim_fileheader_t *aim_oft_getfh(unsigned char *hdr); /* aim_login.c */ -int aim_sendconnack(struct aim_session_t *sess, struct aim_conn_t *conn); -int aim_request_login (struct aim_session_t *sess, struct aim_conn_t *conn, char *sn); -int aim_send_login (struct aim_session_t *, struct aim_conn_t *, char *, char *, struct client_info_s *, char *key); -unsigned long aim_sendauthresp(struct aim_session_t *sess, - struct aim_conn_t *conn, - char *sn, char *bosip, - char *cookie, char *email, - int regstatus); -int aim_gencookie(unsigned char *buf); -int aim_sendserverready(struct aim_session_t *sess, struct aim_conn_t *conn); -int aim_authkeyparse(struct aim_session_t *sess, struct command_rx_struct *command); -unsigned long aim_sendredirect(struct aim_session_t *sess, - struct aim_conn_t *conn, - unsigned short servid, - char *ip, - char *cookie); -void aim_purge_rxqueue(struct aim_session_t *); -void aim_rxqueue_cleanbyconn(struct aim_session_t *sess, struct aim_conn_t *conn); +faim_export int aim_sendconnack(struct aim_session_t *sess, struct aim_conn_t *conn); +faim_export int aim_request_login (struct aim_session_t *sess, struct aim_conn_t *conn, char *sn); +faim_export int aim_send_login (struct aim_session_t *, struct aim_conn_t *, char *, char *, struct client_info_s *, char *key); +faim_export unsigned long aim_sendauthresp(struct aim_session_t *sess, struct aim_conn_t *conn, char *sn, char *bosip, char *cookie, char *email, int regstatus); +faim_export int aim_gencookie(unsigned char *buf); +faim_export int aim_sendserverready(struct aim_session_t *sess, struct aim_conn_t *conn); +faim_internal int aim_authkeyparse(struct aim_session_t *sess, struct command_rx_struct *command); +faim_export unsigned long aim_sendredirect(struct aim_session_t *sess, struct aim_conn_t *conn, unsigned short servid, char *ip, char *cookie); +faim_export void aim_purge_rxqueue(struct aim_session_t *); +faim_internal void aim_rxqueue_cleanbyconn(struct aim_session_t *sess, struct aim_conn_t *conn); int aim_parse_unknown(struct aim_session_t *, struct command_rx_struct *command, ...); int aim_parse_missed_im(struct aim_session_t *, struct command_rx_struct *, ...); int aim_parse_last_bad(struct aim_session_t *, struct command_rx_struct *, ...); -int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *conn); +faim_internal int aim_get_command_rendezvous(struct aim_session_t *sess, struct aim_conn_t *conn); -struct command_tx_struct *aim_tx_new(unsigned short framing, int chan, struct aim_conn_t *conn, int datalen); -int aim_tx_enqueue__queuebased(struct aim_session_t *, struct command_tx_struct *); -int aim_tx_enqueue__immediate(struct aim_session_t *, struct command_tx_struct *); +faim_internal struct command_tx_struct *aim_tx_new(unsigned short framing, int chan, struct aim_conn_t *conn, int datalen); +faim_internal int aim_tx_enqueue__queuebased(struct aim_session_t *, struct command_tx_struct *); +faim_internal int aim_tx_enqueue__immediate(struct aim_session_t *, struct command_tx_struct *); #define aim_tx_enqueue(x, y) ((*(x->tx_enqueue))(x, y)) -int aim_tx_sendframe(struct aim_session_t *sess, struct command_tx_struct *cur); -u_int aim_get_next_txseqnum(struct aim_conn_t *); -int aim_tx_flushqueue(struct aim_session_t *); -int aim_tx_printqueue(struct aim_session_t *); -void aim_tx_purgequeue(struct aim_session_t *); +faim_internal int aim_tx_sendframe(struct aim_session_t *sess, struct command_tx_struct *cur); +faim_internal unsigned int aim_get_next_txseqnum(struct aim_conn_t *); +faim_export int aim_tx_flushqueue(struct aim_session_t *); +faim_internal int aim_tx_printqueue(struct aim_session_t *); +faim_export void aim_tx_purgequeue(struct aim_session_t *); struct aim_rxcblist_t { u_short family; @@ -444,11 +450,11 @@ struct aim_rxcblist_t { struct aim_rxcblist_t *next; }; -int aim_conn_setlatency(struct aim_conn_t *conn, int newval); +faim_export int aim_conn_setlatency(struct aim_conn_t *conn, int newval); -int aim_conn_addhandler(struct aim_session_t *, struct aim_conn_t *conn, u_short family, u_short type, rxcallback_t newhandler, u_short flags); -rxcallback_t aim_callhandler(struct aim_conn_t *conn, u_short family, u_short type); -int aim_clearhandlers(struct aim_conn_t *conn); +faim_export int aim_conn_addhandler(struct aim_session_t *, struct aim_conn_t *conn, u_short family, u_short type, rxcallback_t newhandler, u_short flags); +faim_internal rxcallback_t aim_callhandler(struct aim_conn_t *conn, u_short family, u_short type); +faim_export int aim_clearhandlers(struct aim_conn_t *conn); /* * Generic SNAC structure. Rarely if ever used. @@ -469,16 +475,16 @@ int aim_cleansnacs(struct aim_session_t *, int maxage); int aim_putsnac(u_char *, int, int, int, u_long); -void aim_connrst(struct aim_session_t *); -struct aim_conn_t *aim_conn_getnext(struct aim_session_t *); -void aim_conn_close(struct aim_conn_t *deadconn); -struct aim_conn_t *aim_getconn_type(struct aim_session_t *, int type); -struct aim_conn_t *aim_newconn(struct aim_session_t *, int type, char *dest); -int aim_conngetmaxfd(struct aim_session_t *); -struct aim_conn_t *aim_select(struct aim_session_t *, struct timeval *, int *); -int aim_conn_isready(struct aim_conn_t *); -int aim_conn_setstatus(struct aim_conn_t *, int); -void aim_session_init(struct aim_session_t *); +faim_internal void aim_connrst(struct aim_session_t *); +faim_internal struct aim_conn_t *aim_conn_getnext(struct aim_session_t *); +faim_export void aim_conn_close(struct aim_conn_t *deadconn); +faim_internal struct aim_conn_t *aim_getconn_type(struct aim_session_t *, int type); +faim_export struct aim_conn_t *aim_newconn(struct aim_session_t *, int type, char *dest); +faim_export int aim_conngetmaxfd(struct aim_session_t *); +faim_export struct aim_conn_t *aim_select(struct aim_session_t *, struct timeval *, int *); +faim_export int aim_conn_isready(struct aim_conn_t *); +faim_export int aim_conn_setstatus(struct aim_conn_t *, int); +faim_export void aim_session_init(struct aim_session_t *); /* aim_misc.c */ @@ -499,33 +505,36 @@ u_long aim_bos_changevisibility(struct aim_session_t *, struct aim_conn_t *, int u_long aim_bos_setbuddylist(struct aim_session_t *, struct aim_conn_t *, char *); u_long aim_bos_setprofile(struct aim_session_t *, struct aim_conn_t *, char *, char *, unsigned int); u_long aim_bos_setgroupperm(struct aim_session_t *, struct aim_conn_t *, u_long); -u_long aim_bos_clientready(struct aim_session_t *, struct aim_conn_t *); +unsigned long aim_bos_clientready(struct aim_session_t *, struct aim_conn_t *); u_long aim_bos_reqrate(struct aim_session_t *, struct aim_conn_t *); u_long aim_bos_ackrateresp(struct aim_session_t *, struct aim_conn_t *); u_long aim_bos_setprivacyflags(struct aim_session_t *, struct aim_conn_t *, u_long); u_long aim_bos_reqpersonalinfo(struct aim_session_t *, struct aim_conn_t *); u_long aim_bos_reqservice(struct aim_session_t *, struct aim_conn_t *, u_short); -u_long aim_bos_reqrights(struct aim_session_t *, struct aim_conn_t *); +unsigned long aim_bos_reqrights(struct aim_session_t *, struct aim_conn_t *); u_long aim_bos_reqbuddyrights(struct aim_session_t *, struct aim_conn_t *); u_long aim_bos_reqlocaterights(struct aim_session_t *, struct aim_conn_t *); u_long aim_bos_reqicbmparaminfo(struct aim_session_t *, struct aim_conn_t *); unsigned long aim_addicbmparam(struct aim_session_t *sess,struct aim_conn_t *conn); u_long aim_setversions(struct aim_session_t *sess, struct aim_conn_t *conn); -struct aim_fileheader_t *aim_getlisting(struct aim_session_t*); -int aim_listenestablish(u_short); +faim_internal struct aim_fileheader_t *aim_getlisting(struct aim_session_t*); +faim_internal int aim_listenestablish(u_short); /* aim_rxhandlers.c */ -int aim_rxdispatch(struct aim_session_t *); -int aim_authparse(struct aim_session_t *, struct command_rx_struct *); -int aim_handleredirect_middle(struct aim_session_t *, struct command_rx_struct *, ...); -int aim_parse_unknown(struct aim_session_t *, struct command_rx_struct *, ...); +faim_export int aim_rxdispatch(struct aim_session_t *); +faim_internal int aim_authparse(struct aim_session_t *, struct command_rx_struct *); +faim_internal int aim_handleredirect_middle(struct aim_session_t *, struct command_rx_struct *, ...); +faim_internal int aim_parse_unknown(struct aim_session_t *, struct command_rx_struct *, ...); int aim_parse_last_bad(struct aim_session_t *, struct command_rx_struct *, ...); -int aim_parse_generalerrs(struct aim_session_t *, struct command_rx_struct *command, ...); -int aim_parsemotd_middle(struct aim_session_t *sess, struct command_rx_struct *command, ...); -int aim_parse_ratechange_middle(struct aim_session_t *sess, struct command_rx_struct *command); -int aim_parse_evilnotify_middle(struct aim_session_t *sess, struct command_rx_struct *command); -int aim_parse_msgack_middle(struct aim_session_t *sess, struct command_rx_struct *command); +faim_internal int aim_parse_generalerrs(struct aim_session_t *, struct command_rx_struct *command, ...); +faim_internal int aim_parsemotd_middle(struct aim_session_t *sess, struct command_rx_struct *command, ...); +faim_internal int aim_parse_ratechange_middle(struct aim_session_t *sess, struct command_rx_struct *command); +faim_internal int aim_parse_evilnotify_middle(struct aim_session_t *sess, struct command_rx_struct *command); +faim_internal int aim_parse_msgack_middle(struct aim_session_t *sess, struct command_rx_struct *command); + +faim_export unsigned long aim_ads_clientready(struct aim_session_t *sess, struct aim_conn_t *conn); +faim_export unsigned long aim_ads_requestads(struct aim_session_t *sess, struct aim_conn_t *conn); /* aim_im.c */ struct aim_directim_priv { @@ -537,18 +546,18 @@ struct aim_directim_priv { #define AIM_IMFLAGS_AWAY 0x01 /* mark as an autoreply */ #define AIM_IMFLAGS_ACK 0x02 /* request a receipt notice */ -u_long aim_send_im(struct aim_session_t *, struct aim_conn_t *, char *, u_int, char *); -int aim_parse_incoming_im_middle(struct aim_session_t *, struct command_rx_struct *); -int aim_parse_outgoing_im_middle(struct aim_session_t *, struct command_rx_struct *); -u_long aim_seticbmparam(struct aim_session_t *, struct aim_conn_t *conn); -int aim_parse_msgerror_middle(struct aim_session_t *, struct command_rx_struct *); -int aim_negchan_middle(struct aim_session_t *sess, struct command_rx_struct *command); +faim_export unsigned long aim_send_im(struct aim_session_t *, struct aim_conn_t *, char *, u_int, char *); +faim_internal int aim_parse_incoming_im_middle(struct aim_session_t *, struct command_rx_struct *); +faim_internal int aim_parse_outgoing_im_middle(struct aim_session_t *, struct command_rx_struct *); +faim_export unsigned long aim_seticbmparam(struct aim_session_t *, struct aim_conn_t *conn); +faim_internal int aim_parse_msgerror_middle(struct aim_session_t *, struct command_rx_struct *); +faim_internal int aim_negchan_middle(struct aim_session_t *sess, struct command_rx_struct *command); int aim_parse_bosrights(struct aim_session_t *sess, struct command_rx_struct *command, ...); -int aim_parse_missedcall(struct aim_session_t *sess, struct command_rx_struct *command); +faim_internal int aim_parse_missedcall(struct aim_session_t *sess, struct command_rx_struct *command); -struct aim_conn_t * aim_directim_initiate(struct aim_session_t *, struct aim_conn_t *, struct aim_directim_priv *, char *); -int aim_send_im_direct(struct aim_session_t *, struct aim_conn_t *, char *); -struct aim_conn_t *aim_directim_connect(struct aim_session_t *, struct aim_conn_t *, struct aim_directim_priv *); +faim_export struct aim_conn_t * aim_directim_initiate(struct aim_session_t *, struct aim_conn_t *, struct aim_directim_priv *, char *); +faim_export int aim_send_im_direct(struct aim_session_t *, struct aim_conn_t *, char *); +faim_export struct aim_conn_t *aim_directim_connect(struct aim_session_t *, struct aim_conn_t *, struct aim_directim_priv *); /* aim_info.c */ #define AIM_CAPS_BUDDYICON 0x01 @@ -559,8 +568,8 @@ struct aim_conn_t *aim_directim_connect(struct aim_session_t *, struct aim_conn_ #define AIM_CAPS_SENDFILE 0x20 extern u_char aim_caps[6][16]; -u_short aim_getcap(unsigned char *capblock, int buflen); -int aim_putcap(unsigned char *capblock, int buflen, u_short caps); +faim_internal unsigned short aim_getcap(unsigned char *capblock, int buflen); +faim_internal int aim_putcap(unsigned char *capblock, int buflen, u_short caps); #define AIM_GETINFO_GENERALINFO 0x00001 #define AIM_GETINFO_AWAYMESSAGE 0x00003 @@ -632,40 +641,40 @@ struct aim_filetransfer_priv { #define AIM_COOKIETYPE_OFTIMAGE 0x14 #define AIM_COOKIETYPE_OFTICON 0x15 -int aim_cachecookie(struct aim_session_t *sess, struct aim_msgcookie_t *cookie); -int aim_purgecookies(struct aim_session_t *sess, int maxage); -struct aim_msgcookie_t *aim_uncachecookie(struct aim_session_t *sess, char *cookie, int type); -struct aim_msgcookie_t *aim_mkcookie(unsigned char *, int, void *); -struct aim_msgcookie_t *aim_checkcookie(struct aim_session_t *, char *, int); -int aim_getcookietype(int); +faim_internal int aim_cachecookie(struct aim_session_t *sess, struct aim_msgcookie_t *cookie); +faim_export int aim_purgecookies(struct aim_session_t *sess, int maxage); +faim_internal struct aim_msgcookie_t *aim_uncachecookie(struct aim_session_t *sess, unsigned char *cookie, int type); +faim_internal struct aim_msgcookie_t *aim_mkcookie(unsigned char *, int, void *); +faim_internal struct aim_msgcookie_t *aim_checkcookie(struct aim_session_t *, unsigned char *, int); +faim_internal int aim_msgcookie_gettype(int reqclass); -int aim_handlerendconnect(struct aim_session_t *sess, struct aim_conn_t *cur); +faim_export int aim_handlerendconnect(struct aim_session_t *sess, struct aim_conn_t *cur); #define AIM_TRANSFER_DENY_NOTSUPPORTED 0x0000 #define AIM_TRANSFER_DENY_DECLINE 0x0001 #define AIM_TRANSFER_DENY_NOTACCEPTING 0x0002 -u_long aim_denytransfer(struct aim_session_t *sess, struct aim_conn_t *conn, char *sender, char *cookie, unsigned short code); -u_long aim_accepttransfer(struct aim_session_t *sess, struct aim_conn_t *conn,struct aim_conn_t *oftconn, char *sender, char *cookie, unsigned short rendid); - -u_long aim_getinfo(struct aim_session_t *, struct aim_conn_t *, const char *, unsigned short); -int aim_extractuserinfo(u_char *, struct aim_userinfo_s *); -int aim_parse_userinfo_middle(struct aim_session_t *, struct command_rx_struct *); -int aim_parse_oncoming_middle(struct aim_session_t *, struct command_rx_struct *); -int aim_parse_offgoing_middle(struct aim_session_t *, struct command_rx_struct *); -int aim_putuserinfo(u_char *buf, int buflen, struct aim_userinfo_s *info); -int aim_sendbuddyoncoming(struct aim_session_t *sess, struct aim_conn_t *conn, struct aim_userinfo_s *info); -int aim_sendbuddyoffgoing(struct aim_session_t *sess, struct aim_conn_t *conn, char *sn); -int aim_parse_locateerr(struct aim_session_t *sess, struct command_rx_struct *command); +faim_export unsigned long aim_denytransfer(struct aim_session_t *sess, struct aim_conn_t *conn, char *sender, char *cookie, unsigned short code); +faim_export unsigned long aim_accepttransfer(struct aim_session_t *sess, struct aim_conn_t *conn,struct aim_conn_t *oftconn, char *sender, char *cookie, unsigned short rendid); + +faim_export unsigned long aim_getinfo(struct aim_session_t *, struct aim_conn_t *, const char *, unsigned short); +faim_internal int aim_extractuserinfo(u_char *, struct aim_userinfo_s *); +faim_internal int aim_parse_userinfo_middle(struct aim_session_t *, struct command_rx_struct *); +faim_internal int aim_parse_oncoming_middle(struct aim_session_t *, struct command_rx_struct *); +faim_internal int aim_parse_offgoing_middle(struct aim_session_t *, struct command_rx_struct *); +faim_internal int aim_putuserinfo(u_char *buf, int buflen, struct aim_userinfo_s *info); +faim_export int aim_sendbuddyoncoming(struct aim_session_t *sess, struct aim_conn_t *conn, struct aim_userinfo_s *info); +faim_export int aim_sendbuddyoffgoing(struct aim_session_t *sess, struct aim_conn_t *conn, char *sn); +faim_internal int aim_parse_locateerr(struct aim_session_t *sess, struct command_rx_struct *command); /* aim_auth.c */ -int aim_auth_sendcookie(struct aim_session_t *, struct aim_conn_t *, u_char *); -u_long aim_auth_clientready(struct aim_session_t *, struct aim_conn_t *); -u_long aim_auth_changepasswd(struct aim_session_t *, struct aim_conn_t *, char *, char *); +faim_export int aim_auth_sendcookie(struct aim_session_t *, struct aim_conn_t *, u_char *); +faim_export u_long aim_auth_clientready(struct aim_session_t *, struct aim_conn_t *); +faim_export unsigned long aim_auth_changepasswd(struct aim_session_t *, struct aim_conn_t *, char *, char *); /* aim_buddylist.c */ -u_long aim_add_buddy(struct aim_session_t *, struct aim_conn_t *, char *); -u_long aim_remove_buddy(struct aim_session_t *, struct aim_conn_t *, char *); -int aim_parse_buddyrights(struct aim_session_t *sess, struct command_rx_struct *command, ...); +faim_export unsigned long aim_add_buddy(struct aim_session_t *, struct aim_conn_t *, char *); +faim_export unsigned long aim_remove_buddy(struct aim_session_t *, struct aim_conn_t *, char *); +faim_internal int aim_parse_buddyrights(struct aim_session_t *sess, struct command_rx_struct *command, ...); /* aim_search.c */ u_long aim_usersearch_address(struct aim_session_t *, struct aim_conn_t *, char *); @@ -677,22 +686,22 @@ struct aim_chat_roominfo { char *name; u_short instance; }; -int aim_chat_readroominfo(u_char *buf, struct aim_chat_roominfo *outinfo); -int aim_chat_parse_infoupdate(struct aim_session_t *sess, struct command_rx_struct *command); -int aim_chat_parse_joined(struct aim_session_t *sess, struct command_rx_struct *command); -int aim_chat_parse_leave(struct aim_session_t *sess, struct command_rx_struct *command); -int aim_chat_parse_incoming(struct aim_session_t *sess, struct command_rx_struct *command); -u_long aim_chat_send_im(struct aim_session_t *sess, struct aim_conn_t *conn, char *msg); -u_long aim_chat_join(struct aim_session_t *sess, struct aim_conn_t *conn, u_short exchange, const char *roomname); -u_long aim_chat_clientready(struct aim_session_t *sess, struct aim_conn_t *conn); -int aim_chat_attachname(struct aim_conn_t *conn, char *roomname); -char *aim_chat_getname(struct aim_conn_t *conn); -struct aim_conn_t *aim_chat_getconn(struct aim_session_t *, char *name); - -u_long aim_chatnav_reqrights(struct aim_session_t *sess, struct aim_conn_t *conn); -u_long aim_chatnav_clientready(struct aim_session_t *sess, struct aim_conn_t *conn); - -u_long aim_chat_invite(struct aim_session_t *sess, struct aim_conn_t *conn, char *sn, char *msg, u_short exchange, char *roomname, u_short instance); +faim_internal int aim_chat_readroominfo(u_char *buf, struct aim_chat_roominfo *outinfo); +faim_internal int aim_chat_parse_infoupdate(struct aim_session_t *sess, struct command_rx_struct *command); +faim_internal int aim_chat_parse_joined(struct aim_session_t *sess, struct command_rx_struct *command); +faim_internal int aim_chat_parse_leave(struct aim_session_t *sess, struct command_rx_struct *command); +faim_internal int aim_chat_parse_incoming(struct aim_session_t *sess, struct command_rx_struct *command); +faim_export unsigned long aim_chat_send_im(struct aim_session_t *sess, struct aim_conn_t *conn, char *msg); +faim_export unsigned long aim_chat_join(struct aim_session_t *sess, struct aim_conn_t *conn, u_short exchange, const char *roomname); +faim_export unsigned long aim_chat_clientready(struct aim_session_t *sess, struct aim_conn_t *conn); +faim_export int aim_chat_attachname(struct aim_conn_t *conn, char *roomname); +faim_export char *aim_chat_getname(struct aim_conn_t *conn); +faim_export struct aim_conn_t *aim_chat_getconn(struct aim_session_t *, char *name); + +faim_export unsigned long aim_chatnav_reqrights(struct aim_session_t *sess, struct aim_conn_t *conn); +faim_export unsigned long aim_chatnav_clientready(struct aim_session_t *sess, struct aim_conn_t *conn); + +faim_export unsigned long aim_chat_invite(struct aim_session_t *sess, struct aim_conn_t *conn, char *sn, char *msg, u_short exchange, char *roomname, u_short instance); struct aim_chat_exchangeinfo { u_short number; @@ -702,9 +711,9 @@ struct aim_chat_exchangeinfo { char *charset2; char *lang2; }; -int aim_chatnav_parse_info(struct aim_session_t *sess, struct command_rx_struct *command); -u_long aim_chatnav_createroom(struct aim_session_t *sess, struct aim_conn_t *conn, char *name, u_short exchange); -int aim_chat_leaveroom(struct aim_session_t *sess, char *name); +faim_internal int aim_chatnav_parse_info(struct aim_session_t *sess, struct command_rx_struct *command); +faim_export u_long aim_chatnav_createroom(struct aim_session_t *sess, struct aim_conn_t *conn, char *name, u_short exchange); +faim_export int aim_chat_leaveroom(struct aim_session_t *sess, char *name); /* aim_util.c */ #ifdef AIMUTIL_USEMACROS @@ -738,21 +747,22 @@ int aimutil_put32(u_char *, u_long); u_long aimutil_get32(u_char *); #endif -int aimutil_putstr(u_char *, const u_char *, int); -int aimutil_tokslen(char *toSearch, int index, char dl); -int aimutil_itemcnt(char *toSearch, char dl); -char *aimutil_itemidx(char *toSearch, int index, char dl); +faim_export int aimutil_putstr(u_char *, const char *, int); +faim_export int aimutil_tokslen(char *toSearch, int index, char dl); +faim_export int aimutil_itemcnt(char *toSearch, char dl); +faim_export char *aimutil_itemidx(char *toSearch, int index, char dl); -int aim_snlen(const char *sn); -int aim_sncmp(const char *sn1, const char *sn2); +faim_export int aim_snlen(const char *sn); +faim_export int aim_sncmp(const char *sn1, const char *sn2); /* for libc's that dont have it */ -char *aim_strsep(char **pp, const char *delim); +faim_export char *aim_strsep(char **pp, const char *delim); /* aim_meta.c */ -char *aim_getbuilddate(void); -char *aim_getbuildtime(void); -char *aim_getbuildstring(void); +faim_export char *aim_getbuilddate(void); +faim_export char *aim_getbuildtime(void); +faim_export char *aim_getbuildstring(void); +faim_internal void faimdprintf(int dlevel, const char *format, ...); #endif /* __AIM_H__ */ diff --git a/utils/aimdebugd/network.c b/utils/aimdebugd/network.c index 6c873b4..6c99716 100644 --- a/utils/aimdebugd/network.c +++ b/utils/aimdebugd/network.c @@ -5,6 +5,8 @@ #include +#include + int Read(int fd, unsigned char *buf, int len) { int i = 0; diff --git a/utils/aimdebugd/network.h b/utils/aimdebugd/network.h index 57cd97b..48700cf 100644 --- a/utils/aimdebugd/network.h +++ b/utils/aimdebugd/network.h @@ -2,6 +2,10 @@ * Common functions used in all apps */ +#include +#include +#include + int Read(int fd, unsigned char *buf, int len); int establish(u_short portnum); int get_connection(int s); diff --git a/utils/faimtest/faimtest.c b/utils/faimtest/faimtest.c index 150ed3e..511a8a2 100644 --- a/utils/faimtest/faimtest.c +++ b/utils/faimtest/faimtest.c @@ -346,12 +346,12 @@ int faimtest_handleredirect(struct aim_session_t *sess, struct command_rx_struct va_list ap; int serviceid; char *ip; - char *cookie; + unsigned char *cookie; va_start(ap, command); serviceid = va_arg(ap, int); ip = va_arg(ap, char *); - cookie = va_arg(ap, char *); + cookie = va_arg(ap, unsigned char *); switch(serviceid) { @@ -1039,7 +1039,7 @@ int faimtest_parse_misses(struct aim_session_t *sess, struct command_rx_struct * int faimtest_parse_login(struct aim_session_t *sess, struct command_rx_struct *command, ...) { struct client_info_s info = {"faimtest (with SNAC login)", 4, 1, 2010, "us", "en", 0x0004, 0x0000, 0x0000004b}; /* 4.1.2010 */ - unsigned char *key; + char *key; va_list ap; va_start(ap, command); @@ -1268,7 +1268,7 @@ int faimtest_parse_ratechange(struct aim_session_t *sess, struct command_rx_stru printf("faimtest: ratechange: %lu\n", newrate); return (1); -}; +} int faimtest_parse_evilnotify(struct aim_session_t *sess, struct command_rx_struct *command, ...) { @@ -1282,4 +1282,4 @@ int faimtest_parse_evilnotify(struct aim_session_t *sess, struct command_rx_stru printf("faimtest: warning from: %s\n", sn); return 1; -}; +} -- 2.45.1