]> andersk Git - libfaim.git/blobdiff - utils/faimtest/ft.c
- Wed Oct 3 11:07:22 PDT 2001
[libfaim.git] / utils / faimtest / ft.c
index c7168e675c488b478f7b84630ab15a4d1b1b6e62..cb20a71bfd5e0d2e52a4e7626c5a6d738f08e461 100644 (file)
@@ -1,44 +1,22 @@
 
 #include "faimtest.h"
 
-static int faimtest_directim_connect(aim_session_t *sess, aim_frame_t *fr, ...)
-{
-         va_list ap;
-         struct aim_directim_priv *priv;
-         
-         va_start(ap, fr);
-         priv = va_arg(ap, struct aim_directim_priv *);
-
-         va_end(ap);
-         
-         dprintf("faimtest: directim_connect\n");
-
-         return 1;
-}
-
-static int faimtest_directim_incoming(aim_session_t *sess, aim_frame_t *fr, ...)
+static int directim_incoming(aim_session_t *sess, aim_frame_t *fr, ...)
 {
        va_list ap;
-       char *msg;
-       aim_conn_t *conn;
-       struct aim_directim_priv *priv;
+       char *sn, *msg;
 
        va_start(ap, fr);
-       conn = va_arg(ap, aim_conn_t *);
+       sn = va_arg(ap, char *);
        msg = va_arg(ap, char *);
        va_end(ap);
 
-       if (!(priv = conn->priv)) {
-               dvprintf("faimtest: directim: no private struct on conn with fd %d\n", conn->fd);
-               return 0;
-       }
-
-       dvprintf("faimtest: Directim from %s: %s\n", priv->sn, msg);
+       dvprintf("faimtest: Directim from %s: %s\n", sn, msg);
 
-       if (!strncmp(msg, "sendmsg", 7)) {
+       if (strstr(msg, "sendmsg")) {
                int i;
 
-               i = atoi(msg+8);
+               i = atoi(strstr(msg, "sendmsg")+8);
                if (i < 10000) {
                        char *newbuf;
                        int z;
@@ -47,58 +25,34 @@ static int faimtest_directim_incoming(aim_session_t *sess, aim_frame_t *fr, ...)
                        for (z = 0; z < i; z++)
                                newbuf[z] = (z % 10)+0x30;
                        newbuf[i] = '\0';
-                       aim_send_im_direct(sess, conn, newbuf);
+                       aim_send_im_direct(sess, fr->conn, newbuf);
                        free(newbuf);
                }
 
-       } else if (!strncmp(msg, "goodday", 7)) {
+       } else if (strstr(msg, "goodday")) {
 
-               aim_send_im_direct(sess, conn, "Good day to you, too");
+               aim_send_im_direct(sess, fr->conn, "Good day to you, too");
 
        } else {
                char newmsg[1024];
 
                snprintf(newmsg, sizeof(newmsg), "unknown (%s)\n", msg);
-               aim_send_im_direct(sess, conn, newmsg);
+               aim_send_im_direct(sess, fr->conn, newmsg);
        }
 
        return 1;
 }
 
-static int faimtest_directim_disconnect(aim_session_t *sess, aim_frame_t *fr, ...)
+static int directim_typing(aim_session_t *sess, aim_frame_t *fr, ...)
 {
        va_list ap;
-       aim_conn_t *conn;
        char *sn;
 
        va_start(ap, fr);
-       conn = va_arg(ap, aim_conn_t *);
        sn = va_arg(ap, char *);
        va_end(ap);
 
-       dvprintf("faimtest: directim: disconnected from %s\n", sn);
-
-       aim_conn_kill(sess, &conn);
-
-       return 1;
-}
-
-static int faimtest_directim_typing(aim_session_t *sess, aim_frame_t *fr, ...)
-{
-       va_list ap;
-       aim_conn_t *conn;
-       struct aim_directim_priv *priv;
-
-       va_start(ap, fr);
-       conn = va_arg(ap, aim_conn_t *);
-       va_end(ap);
-
-       if (!(priv = (struct aim_directim_priv *)conn->priv)) {
-               dvprintf("faimtest: no private struct on conn with fd %d!\n", conn->fd);
-               return 0;
-       }
-
-       dvprintf("faimtest: ohmigod! %s has started typing (DirectIM). He's going to send you a message! *squeal*\n", priv->sn);
+       dvprintf("faimtest: ohmigod! %s has started typing (DirectIM). He's going to send you a message! *squeal*\n", sn);
 
        return 1;
 }
@@ -106,7 +60,6 @@ static int faimtest_directim_typing(aim_session_t *sess, aim_frame_t *fr, ...)
 static int faimtest_directim_initiate(aim_session_t *sess, aim_frame_t *fr, ...)
 {
        va_list ap;
-       struct aim_directim_priv *priv;
        aim_conn_t *newconn, *listenerconn;
 
        va_start(ap, fr);
@@ -117,17 +70,12 @@ static int faimtest_directim_initiate(aim_session_t *sess, aim_frame_t *fr, ...)
        aim_conn_close(listenerconn);
        aim_conn_kill(sess, &listenerconn);
 
-       priv = (struct aim_directim_priv *)newconn->priv;
-
-       dvprintf("faimtest: OFT: DirectIM: intitiate success to %s\n", priv->ip);
-
-       aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING, faimtest_directim_incoming, 0);
-       aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMDISCONNECT, faimtest_directim_disconnect, 0);
-       aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMTYPING, faimtest_directim_typing, 0);
+       aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING, directim_incoming, 0);
+       aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMTYPING, directim_typing, 0);
 
        aim_send_im_direct(sess, newconn, "goodday");
 
-       dvprintf("faimtest: OFT: DirectIM: connected to %s\n", priv->sn);
+       dvprintf("faimtest: OFT: DirectIM: connected to %s\n", aim_directim_getsn(newconn));
 
        return 1;
 }
@@ -442,7 +390,7 @@ void getfile_start(aim_session_t *sess, aim_conn_t *conn, const char *sn)
        return;
 }
 
-void getfile_requested(aim_session_t *sess, aim_conn_t *conn, struct aim_userinfo_s *userinfo, struct aim_incomingim_ch2_args *args)
+void getfile_requested(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch2_args *args)
 {
        struct faimtest_priv *priv = (struct faimtest_priv *)sess->aux_data;
        aim_conn_t *newconn;
@@ -484,8 +432,8 @@ void directim_start(aim_session_t *sess, aim_conn_t *conn, const char *sn)
        aim_conn_t *newconn;
 
        printf("faimtest: opening directim to %s\n", sn);
-       
-       newconn = aim_directim_initiate(sess, conn, NULL, sn);
+       
+       newconn = aim_directim_initiate(sess, conn, sn);
 
        if (!newconn || (newconn->fd == -1)) {
 
@@ -500,26 +448,25 @@ void directim_start(aim_session_t *sess, aim_conn_t *conn, const char *sn)
        return;
 }
 
-void directim_requested(aim_session_t *sess, aim_conn_t *conn, struct aim_userinfo_s *userinfo, struct aim_incomingim_ch2_args *args)
+void directim_requested(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch2_args *args)
 {
        aim_conn_t *newconn;
 
+       dvprintf("faimtest: OFT: DirectIM: request from %s (%s)\n", userinfo->sn, args->info.imimage.ip);
 
-       dvprintf("faimtest: OFT: DirectIM: request from %s (%s)\n", userinfo->sn, args->info.directim->ip);
-
-       /* XXX why does these need conn? */
-       newconn = aim_directim_connect(sess, conn, args->info.directim);
+       newconn = aim_directim_connect(sess, userinfo->sn, args->info.imimage.ip, args->cookie);
 
        if (!newconn || (newconn->fd == -1)) {
+
                dprintf("faimtest: icbm: imimage: could not connect\n");
 
                if (newconn)
                        aim_conn_kill(sess, &newconn);
+
        } else {
 
-               aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING, faimtest_directim_incoming, 0);
-               aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMDISCONNECT, faimtest_directim_disconnect, 0);
-               aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMTYPING, faimtest_directim_typing, 0);
+               aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING, directim_incoming, 0);
+               aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMTYPING, directim_typing, 0);
 
                dvprintf("faimtest: OFT: DirectIM: connected to %s\n", userinfo->sn);
 
This page took 0.062593 seconds and 4 git commands to generate.