]> andersk Git - libfaim.git/commitdiff
- Tue Sep 11 16:41:11 PDT 2001
authormid <mid>
Tue, 11 Sep 2001 23:51:26 +0000 (23:51 +0000)
committermid <mid>
Tue, 11 Sep 2001 23:51:26 +0000 (23:51 +0000)
  - Fix chat invites.
  - Keep faimtest from passing va_list's. That scares me.

CHANGES
src/im.c
utils/faimtest/faimtest.c

diff --git a/CHANGES b/CHANGES
index ae834f8e080746e2acd69f47c1bbb5c3b14db018..b8178e942a63cc72af3423532fb83f229d5ca49d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,10 @@
 
 No release numbers
 ------------------
+ - Tue Sep 11 16:41:11 PDT 2001
+  - Fix chat invites.
+  - Keep faimtest from passing va_list's. That scares me.
+
  - Tue Sep 11 04:42:28 PDT 2001
   - Fix faim_internal/export confusion for the TLV functions
   - Add aim_addtlvtochain_userinfo() (used by AP)
index d77474f867a5c7f39721fa8a0819ab789a23b7ff..4a604d8f4e5f212ad28c4b9f55d316a6a499137e 100644 (file)
--- a/src/im.c
+++ b/src/im.c
@@ -999,7 +999,7 @@ static int incomingim_ch2_voice(aim_session_t *sess, aim_module_t *mod, aim_fram
        /* XXX: implement all this */
 
        if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) 
-               ret = userfunc(sess, rx, 0x0002, userinfo, &args);
+               ret = userfunc(sess, rx, 0x0002, userinfo, args);
 
        return ret;
 }
@@ -1026,7 +1026,7 @@ static int incomingim_ch2_chat(aim_session_t *sess, aim_module_t *mod, aim_frame
                args->info.chat.lang = aim_gettlv_str(list2, 0x000e, 1);
 
        if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
-               ret = userfunc(sess, rx, 0x0002, userinfo, &args);
+               ret = userfunc(sess, rx, 0x0002, userinfo, args);
 
        /* XXX free_roominfo */
        free(args->info.chat.roominfo.name);
@@ -1077,7 +1077,7 @@ static int incomingim_ch2_getfile(aim_session_t *sess, aim_module_t *mod, aim_fr
        memcpy(args->info.getfile.cookie, args->cookie, 8);
 
        if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
-               ret = userfunc(sess, rx, 0x0002, userinfo, &args);
+               ret = userfunc(sess, rx, 0x0002, userinfo, args);
 
        return ret;
 }
index 6130f7cf082281fd8e24891bf24173589987405d..c3f0acf4ab51eb4d38b9323ea1c6ca9760cc2ba8 100644 (file)
@@ -1233,17 +1233,12 @@ static int faimtest_handlecmd(aim_session_t *sess, aim_conn_t *conn, struct aim_
 /*
  * Channel 1: Standard Message
  */
-static int faimtest_parse_incoming_im_chan1(aim_session_t *sess, aim_conn_t *conn, struct aim_userinfo_s *userinfo, va_list ap)
+static int faimtest_parse_incoming_im_chan1(aim_session_t *sess, aim_conn_t *conn, struct aim_userinfo_s *userinfo, struct aim_incomingim_ch1_args *args)
 {
        struct faimtest_priv *priv = (struct faimtest_priv *)sess->aux_data;
        char *tmpstr;
-       struct aim_incomingim_ch1_args *args;
        int clienttype = AIM_CLIENTTYPE_UNKNOWN;
        char realmsg[8192+1] = {""};
-
-       args = va_arg(ap, struct aim_incomingim_ch1_args *);
-       va_end(ap);
-
        clienttype = aim_fingerprintclient(args->features, args->featureslen);
 
        dvprintf("faimtest: icbm: sn = \"%s\"\n", userinfo->sn);
@@ -1365,12 +1360,8 @@ static int faimtest_parse_incoming_im_chan1(aim_session_t *sess, aim_conn_t *con
 /*
  * Channel 2: Rendevous Request
  */
-static int faimtest_parse_incoming_im_chan2(aim_session_t *sess, aim_conn_t *conn, struct aim_userinfo_s *userinfo, va_list ap)
+static int faimtest_parse_incoming_im_chan2(aim_session_t *sess, aim_conn_t *conn, struct aim_userinfo_s *userinfo, struct aim_incomingim_ch2_args *args)
 {
-       struct aim_incomingim_ch2_args *args;
-
-       args = va_arg(ap, struct aim_incomingim_ch2_args *);
-       va_end(ap);
 
        if (args->reqclass == AIM_CAPS_VOICE) {
 
@@ -1440,16 +1431,27 @@ static int faimtest_parse_incoming_im(aim_session_t *sess, aim_frame_t *fr, ...)
        int ret = 0;
 
        va_start(ap, fr);
-       channel = va_arg(ap, fu16_t);
+       channel = (fu16_t)va_arg(ap, unsigned int);
        userinfo = va_arg(ap, struct aim_userinfo_s *);
 
-       if (channel == 1)
-               ret = faimtest_parse_incoming_im_chan1(sess, fr->conn, userinfo, ap);
-       else if (channel == 2)
-               ret = faimtest_parse_incoming_im_chan2(sess, fr->conn, userinfo, ap);
-       else
+       if (channel == 1) {
+               struct aim_incomingim_ch1_args *args;
+
+               args = va_arg(ap, struct aim_incomingim_ch1_args *);
+
+               ret = faimtest_parse_incoming_im_chan1(sess, fr->conn, userinfo, args);
+
+       } else if (channel == 2) {
+               struct aim_incomingim_ch2_args *args;
+
+               args = va_arg(ap, struct aim_incomingim_ch2_args *);
+
+               ret = faimtest_parse_incoming_im_chan2(sess, fr->conn, userinfo, args);
+       } else
                dvprintf("unsupported channel 0x%04x\n", channel);
 
+       va_end(ap);
+
        dvprintf("faimtest: icbm: done with ICBM handling (ret = %d)\n", ret);
 
        return 1;
This page took 0.138196 seconds and 5 git commands to generate.