]> andersk Git - libfaim.git/blobdiff - utils/faimtest/faimtest.c
- Wed Oct 3 11:07:22 PDT 2001
[libfaim.git] / utils / faimtest / faimtest.c
index 6130f7cf082281fd8e24891bf24173589987405d..73156318d38edbe2418fe85bd2af93a97bd1e4b3 100644 (file)
@@ -461,8 +461,8 @@ static int faimtest_infochange(aim_session_t *sess, aim_frame_t *fr, ...)
 
        va_start(ap, fr);
        change = va_arg(ap, int);
-       perms = va_arg(ap, fu16_t);
-       type = va_arg(ap, fu16_t);
+       perms = (fu16_t)va_arg(ap, unsigned int);
+       type = (fu16_t)va_arg(ap, unsigned int);
        length = va_arg(ap, int);
        val = va_arg(ap, char *);
        str = va_arg(ap, int);
@@ -913,6 +913,7 @@ static int faimtest_memrequest(aim_session_t *sess, aim_frame_t *fr, ...)
 
 static void printuserflags(fu16_t flags)
 {
+
        if (flags & AIM_FLAG_UNCONFIRMED)
                dinlineprintf("UNCONFIRMED ");
        if (flags & AIM_FLAG_ADMINISTRATOR)
@@ -929,26 +930,29 @@ static void printuserflags(fu16_t flags)
                dinlineprintf("ICQ? ");
        if (flags & AIM_FLAG_UNKNOWN80)
                dinlineprintf("UNKNOWN80 ");
+       if (flags & AIM_FLAG_ACTIVEBUDDY)
+               dinlineprintf("ACTIVEBUDDY ");
+
        return;
 }
 
 static int faimtest_parse_userinfo(aim_session_t *sess, aim_frame_t *fr, ...)
 {
-       struct aim_userinfo_s *userinfo;
+       aim_userinfo_t *userinfo;
        char *prof_encoding = NULL;
        char *prof = NULL;
        fu16_t inforeq = 0;
 
        va_list ap;
        va_start(ap, fr);
-       userinfo = va_arg(ap, struct aim_userinfo_s *);
+       userinfo = va_arg(ap, aim_userinfo_t *);
        prof_encoding = va_arg(ap, char *);
        prof = va_arg(ap, char *);
-       inforeq = va_arg(ap, fu16_t);
+       inforeq = (fu16_t)va_arg(ap, unsigned int);
        va_end(ap);
 
        dvprintf("faimtest: userinfo: sn: %s\n", userinfo->sn);
-       dvprintf("faimtest: userinfo: warnlevel: 0x%04x\n", userinfo->warnlevel);
+       dvprintf("faimtest: userinfo: warnlevel: %f\n", aim_userinfo_warnlevel(userinfo));
        dvprintf("faimtest: userinfo: flags: 0x%04x = ", userinfo->flags);
        printuserflags(userinfo->flags);
        dinlineprintf("\n");
@@ -969,7 +973,7 @@ static int faimtest_parse_userinfo(aim_session_t *sess, aim_frame_t *fr, ...)
        return 1;
 }
 
-static int faimtest_handlecmd(aim_session_t *sess, aim_conn_t *conn, struct aim_userinfo_s *userinfo, const char *tmpstr)
+static int faimtest_handlecmd(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *userinfo, const char *tmpstr)
 {
        struct faimtest_priv *priv = (struct faimtest_priv *)sess->aux_data;
 
@@ -1233,22 +1237,17 @@ 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, aim_userinfo_t *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);
        dvprintf("faimtest: icbm: probable client type: %d\n", clienttype);
-       dvprintf("faimtest: icbm: warnlevel = 0x%04x\n", userinfo->warnlevel);
+       dvprintf("faimtest: icbm: warnlevel = %f\n", aim_userinfo_warnlevel(userinfo));
        dvprintf("faimtest: icbm: flags = 0x%04x = ", userinfo->flags);
        printuserflags(userinfo->flags);
        dinlineprintf("\n");
@@ -1256,7 +1255,7 @@ static int faimtest_parse_incoming_im_chan1(aim_session_t *sess, aim_conn_t *con
        dvprintf("faimtest: icbm: membersince = %lu\n", userinfo->membersince);
        dvprintf("faimtest: icbm: onlinesince = %lu\n", userinfo->onlinesince);
        dvprintf("faimtest: icbm: idletime = 0x%04x\n", userinfo->idletime);
-       dvprintf("faimtest: icbm: capabilities = 0x%04x\n", userinfo->capabilities);
+       dvprintf("faimtest: icbm: capabilities = %s = 0x%04x\n", userinfo->capspresent ? "present" : "not present", userinfo->capabilities);
 
        dprintf("faimtest: icbm: icbmflags = ");
        if (args->icbmflags & AIM_IMFLAGS_AWAY)
@@ -1365,17 +1364,13 @@ 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, aim_userinfo_t *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) {
 
                dvprintf("faimtest: voice invitation: source sn = %s\n", userinfo->sn);
-               dvprintf("faimtest: voice invitation: \twarnlevel = 0x%04x\n", userinfo->warnlevel);
+               dvprintf("faimtest: voice invitation: \twarnlevel = %f\n", aim_userinfo_warnlevel(userinfo));
                dvprintf("faimtest: voice invitation: \tclass = 0x%04x = ", userinfo->flags);
                printuserflags(userinfo->flags);
                dinlineprintf("\n");
@@ -1394,7 +1389,7 @@ static int faimtest_parse_incoming_im_chan2(aim_session_t *sess, aim_conn_t *con
        } else if (args->reqclass == AIM_CAPS_CHAT) {
 
                dvprintf("faimtest: chat invitation: source sn = %s\n", userinfo->sn);
-               dvprintf("faimtest: chat invitation: \twarnlevel = 0x%04x\n", userinfo->warnlevel);
+               dvprintf("faimtest: chat invitation: \twarnlevel = %f\n", aim_userinfo_warnlevel(userinfo));
                dvprintf("faimtest: chat invitation: \tclass = 0x%04x = ", userinfo->flags);
                printuserflags(userinfo->flags);
                dinlineprintf("\n");
@@ -1435,21 +1430,32 @@ static int faimtest_parse_incoming_im_chan2(aim_session_t *sess, aim_conn_t *con
 static int faimtest_parse_incoming_im(aim_session_t *sess, aim_frame_t *fr, ...)
 {
        fu16_t channel;
-       struct aim_userinfo_s *userinfo;
+       aim_userinfo_t *userinfo;
        va_list ap;
        int ret = 0;
 
        va_start(ap, fr);
-       channel = va_arg(ap, fu16_t);
-       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
+       channel = (fu16_t)va_arg(ap, unsigned int);
+       userinfo = va_arg(ap, aim_userinfo_t *);
+
+       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;
@@ -1457,14 +1463,14 @@ static int faimtest_parse_incoming_im(aim_session_t *sess, aim_frame_t *fr, ...)
 
 static int faimtest_parse_oncoming(aim_session_t *sess, aim_frame_t *fr, ...)
 {
-       struct aim_userinfo_s *userinfo;
+       aim_userinfo_t *userinfo;
 
        va_list ap;
        va_start(ap, fr);
-       userinfo = va_arg(ap, struct aim_userinfo_s *);
+       userinfo = va_arg(ap, aim_userinfo_t *);
        va_end(ap);
 
-       dvprintf("%ld  %s is now online (flags: %04x = %s%s%s%s%s%s%s%s) (caps = 0x%04x)\n",
+       dvprintf("%ld  %s is now online (flags: %04x = %s%s%s%s%s%s%s%s) (caps = %s = 0x%04x)\n",
                        time(NULL),
                        userinfo->sn, userinfo->flags,
                        (userinfo->flags&AIM_FLAG_UNCONFIRMED)?" UNCONFIRMED":"",
@@ -1475,20 +1481,21 @@ static int faimtest_parse_oncoming(aim_session_t *sess, aim_frame_t *fr, ...)
                        (userinfo->flags&AIM_FLAG_AWAY)?" AWAY":"",
                        (userinfo->flags&AIM_FLAG_UNKNOWN40)?" UNKNOWN40":"",
                        (userinfo->flags&AIM_FLAG_UNKNOWN80)?" UNKNOWN80":"",
+                       userinfo->capspresent ? "present" : "not present",
                        userinfo->capabilities);
        return 1;
 }
 
 static int faimtest_parse_offgoing(aim_session_t *sess, aim_frame_t *fr, ...)
 {
-       struct aim_userinfo_s *userinfo;
+       aim_userinfo_t *userinfo;
        va_list ap;
        
        va_start(ap, fr);
-       userinfo = va_arg(ap, struct aim_userinfo_s *);
+       userinfo = va_arg(ap, aim_userinfo_t *);
        va_end(ap);
 
-       dvprintf("%ld  %s is now offline (flags: %04x = %s%s%s%s%s%s%s%s) (caps = 0x%04x)\n",
+       dvprintf("%ld  %s is now offline (flags: %04x = %s%s%s%s%s%s%s%s) (caps = %s = 0x%04x)\n",
                         time(NULL),
                         userinfo->sn, userinfo->flags,
                         (userinfo->flags&AIM_FLAG_UNCONFIRMED)?" UNCONFIRMED":"",
@@ -1499,6 +1506,7 @@ static int faimtest_parse_offgoing(aim_session_t *sess, aim_frame_t *fr, ...)
                         (userinfo->flags&AIM_FLAG_AWAY)?" AWAY":"",
                         (userinfo->flags&AIM_FLAG_UNKNOWN40)?" UNKNOWN40":"",
                         (userinfo->flags&AIM_FLAG_UNKNOWN80)?" UNKNOWN80":"",
+                        userinfo->capspresent ? "present" : "not present",
                         userinfo->capabilities);
 
        return 1;
@@ -1510,7 +1518,7 @@ static int faimtest_parse_genericerr(aim_session_t *sess, aim_frame_t *fr, ...)
        fu16_t reason;
 
        va_start(ap, fr);
-       reason = va_arg(ap, fu16_t);
+       reason = (fu16_t)va_arg(ap, unsigned int);
        va_end(ap);
 
        dvprintf("faimtest: snac threw error (reason 0x%04x: %s)\n", reason, (reason<msgerrreasonslen)?msgerrreasons[reason]:"unknown");
@@ -1525,7 +1533,7 @@ static int faimtest_parse_msgerr(aim_session_t *sess, aim_frame_t *fr, ...)
        fu16_t reason;
 
        va_start(ap, fr);
-       reason = va_arg(ap, fu16_t);
+       reason = (fu16_t)va_arg(ap, unsigned int);
        destsn = va_arg(ap, char *);
        va_end(ap);
 
@@ -1541,7 +1549,7 @@ static int faimtest_parse_locerr(aim_session_t *sess, aim_frame_t *fr, ...)
        fu16_t reason;
 
        va_start(ap, fr);
-       reason = va_arg(ap, fu16_t);
+       reason = (fu16_t)va_arg(ap, unsigned int);
        destsn = va_arg(ap, char *);
        va_end(ap);
 
@@ -1563,13 +1571,13 @@ static int faimtest_parse_misses(aim_session_t *sess, aim_frame_t *fr, ...)
 
        va_list ap;
        fu16_t chan, nummissed, reason;
-       struct aim_userinfo_s *userinfo;
+       aim_userinfo_t *userinfo;
 
        va_start(ap, fr);
-       chan = va_arg(ap, fu16_t);
-       userinfo = va_arg(ap, struct aim_userinfo_s *);
-       nummissed = va_arg(ap, fu16_t);
-       reason = va_arg(ap, fu16_t);
+       chan = (fu16_t)va_arg(ap, unsigned int);
+       userinfo = va_arg(ap, aim_userinfo_t *);
+       nummissed = (fu16_t)va_arg(ap, unsigned int);
+       reason = (fu16_t)va_arg(ap, unsigned int);
        va_end(ap);
 
        dvprintf("faimtest: missed %d messages from %s on channel %d (reason %d: %s)\n", nummissed, userinfo->sn, chan, reason, (reason<missedreasonslen)?missedreasons[reason]:"unknown");
@@ -1587,7 +1595,7 @@ static int faimtest_parse_msgack(aim_session_t *sess, aim_frame_t *fr, ...)
        char *sn = NULL;
 
        va_start(ap, fr);
-       type = va_arg(ap, fu16_t);
+       type = (fu16_t)va_arg(ap, unsigned int);
        sn = va_arg(ap, char *);
        va_end(ap);
 
@@ -1613,12 +1621,12 @@ static int faimtest_parse_ratechange(aim_session_t *sess, aim_frame_t *fr, ...)
        va_start(ap, fr); 
 
        /* See code explanations below */
-       code = va_arg(ap, fu16_t);
+       code = (fu16_t)va_arg(ap, unsigned int);
 
        /*
         * See comments above aim_parse_ratechange_middle() in aim_rxhandlers.c.
         */
-       rateclass = va_arg(ap, fu16_t);
+       rateclass = (fu16_t)va_arg(ap, unsigned int);
 
        /*
         * Not sure what this is exactly.  I think its the temporal 
@@ -1685,11 +1693,11 @@ static int faimtest_parse_evilnotify(aim_session_t *sess, aim_frame_t *fr, ...)
 {
        va_list ap;
        fu16_t newevil;
-       struct aim_userinfo_s *userinfo;
+       aim_userinfo_t *userinfo;
 
        va_start(ap, fr);
-       newevil = va_arg(ap, fu16_t);
-       userinfo = va_arg(ap, struct aim_userinfo_s *);
+       newevil = (fu16_t)va_arg(ap, unsigned int);
+       userinfo = va_arg(ap, aim_userinfo_t *);
        va_end(ap);
 
        /*
This page took 0.055063 seconds and 4 git commands to generate.