]> andersk Git - libfaim.git/commitdiff
- Mon Sep 4 21:38:09 GMT 2000
authormid <mid>
Mon, 4 Sep 2000 21:42:38 +0000 (21:42 +0000)
committermid <mid>
Mon, 4 Sep 2000 21:42:38 +0000 (21:42 +0000)
   - 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

22 files changed:
CHANGES
aim_ads.c
aim_auth.c
aim_buddylist.c
aim_chat.c
aim_chatnav.c
aim_conn.c
aim_ft.c
aim_im.c
aim_info.c
aim_login.c
aim_meta.c
aim_msgcookie.c
aim_rxhandlers.c
aim_rxqueue.c
aim_tlv.c
aim_txqueue.c
aim_util.c
faim/aim.h
utils/aimdebugd/network.c
utils/aimdebugd/network.h
utils/faimtest/faimtest.c

diff --git a/CHANGES b/CHANGES
index e3e3c230bd07503ae68e31d091b6407e990ca2e4..ecdf5c1539352b04a9fa56bb5be15ce39450d305 100644 (file)
--- 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)
 
index 6aa8bbe96723dc4f7d06e37343466d696425ce8b..f07cc6610a8b3d36a4fdef8f33782ae0a9da62ae 100644 (file)
--- a/aim_ads.c
+++ b/aim_ads.c
@@ -5,8 +5,8 @@
 
 #include <faim/aim.h>
 
-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);
 }
index 64c47ed4c42b6b409723b310c99616ab1d9f2da6..1fb9cfa5bf47923cdffc2b16c52b57afd343e3fa 100644 (file)
@@ -8,9 +8,9 @@
 #include <faim/aim.h> 
 
 /* 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;
index d043a562f5afc35fc23c0c1af89ba43524068fc6..26165bc0d41eaf2d7c10cccbe512fa435be2e4ef 100644 (file)
@@ -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;
index 765e19dcd69031a8d6a8edea621f5f5ee38dfec4..cf7a21b5394fe13ac4eccaab402ba70d6f30a4ca 100644 (file)
@@ -7,7 +7,7 @@
 
 #include <faim/aim.h> 
 
-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;
index a7ef779b6130dcde04844f812c6fa88563a06200..5c6e798d5f0f8cf667c1e2443b2f30ed677c1550 100644 (file)
@@ -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;
index 47073910212f68617ea9d24d055d502f6b5f3d65..f76eeba666d7ff06dded8c9b4d8c1bad6f4a1efa 100644 (file)
@@ -8,10 +8,14 @@
 
 #include <faim/aim.h> 
 
+#include <netdb.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
 /*
  * 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;
index f32794099e2d54f94d6713fa2d271e1df8851804..53075774c51ea13c2b98c70270bd23bafc2640ed 100644 (file)
--- a/aim_ft.c
+++ b/aim_ft.c
@@ -1,5 +1,8 @@
 #include <faim/aim.h>
 
+#include <netdb.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
 #include <sys/utsname.h> /* for aim_directim_initiate */
 #include <arpa/inet.h> /* for inet_ntoa */
 
    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;
index f316192f05e52c79405974b7319681d829d57b8a..ed2e021b91b170422c5e173f1506662af0d26ef0 100644 (file)
--- 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;
index fcf11958ce5ffa7e28dc3f9b62ec49771bae8f2d..06051b86389b59d7df0d0b5d5bc4eb3c5f0b088f 100644 (file)
@@ -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;
index 280b6a5e1bcb6e105e19b130666760f05f8beaf9..30e3e87aef587dcb2aafd91dafdd165d99d8b6af 100644 (file)
@@ -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;
index 3b054f162de54900326df60f75ebfe019526f983..67a24cf17385a1393415f85eccd7c5545576cb36 100644 (file)
@@ -7,17 +7,17 @@
 #include <faim/aim.h>
 #include <aim_buildcode.h> /* 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
index cd4e8e50ff4b641695911a44c2bac13f021c6743..4ef8c8aa8a36091d0f0d8afcbdf56f63071ab395 100644 (file)
@@ -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:
index 4e76e2a3dbfc65dc8e016a5e303643efbf78f884..91db4a0057f6afb8a9df87f43924c61a00bec11c 100644 (file)
@@ -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;
index f362e3951401f882287138f977591753ef840f13..8a1a50d9e99d1fec44ea95a808a327812ba0ca52 100644 (file)
@@ -7,14 +7,20 @@
  */
 
 #include <faim/aim.h> 
+#include <sys/socket.h>
 
 /*
  * 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;
 
index 1e893185446f135f70180ca3cd12f39685145ab6..17aebc7b57810eb60fe7d2f0261eda179264f357 100644 (file)
--- a/aim_tlv.c
+++ b/aim_tlv.c
@@ -1,6 +1,6 @@
 #include <faim/aim.h>
 
-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;
 }
index 7c2da33f34ab2fc44893764abde2ba53eb179c81..3b78f86950a878f223b0b174dd1d480e351a3d2a 100644 (file)
@@ -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;
index 77a3ba3982eb67e9dd47f0d94f31758241279a42..6ab4f38e206a50de8219443a161b66263fe36a4a 100644 (file)
@@ -7,18 +7,16 @@
 #include <faim/aim.h>
 #include <ctype.h>
 
-#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;
   
index 244c28b5c43d5480f9ee5f565fd5e9f1f830002d..d17eeac08948af8b9549e80d2ccc5e284b4564f8 100644 (file)
@@ -30,9 +30,6 @@
 #include <time.h>
 #include <io.h>
 #else
-#include <netdb.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
 #include <sys/time.h>
 #include <unistd.h>
 #endif
 #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
 
 /* 
 
 #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
 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__ */
 
index 6c873b4a570d6f53bd15cc369c8c4b6073a2d54b..6c99716f580d053ed7770d249d3d9242b7505a14 100644 (file)
@@ -5,6 +5,8 @@
 
 #include <faim/aim.h>
 
+#include <network.h>
+
 int Read(int fd, unsigned char *buf, int len)
 {
   int i = 0;
index 57cd97b0ab481a43bffe625d4131feeb65f0e5e0..48700cf070eb17a5176ae6e0ba20d22d31365701 100644 (file)
@@ -2,6 +2,10 @@
  * Common functions used in all apps
  */
 
+#include <netdb.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
 int Read(int fd, unsigned char *buf, int len);
 int establish(u_short portnum);
 int get_connection(int s);
index 150ed3ed8e1553d65809b698274840d5c5431d9c..511a8a281d743fb9fb5074580e0e63e39aea41b2 100644 (file)
@@ -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;
-};
+}
This page took 0.222817 seconds and 5 git commands to generate.