]> andersk Git - libfaim.git/blob - aim_chat.c
Fix last bugfix.
[libfaim.git] / aim_chat.c
1 /*
2  * aim_chat.c
3  *
4  * Routines for the Chat service.  Nothing works (yet).
5  *
6  */
7
8 #include <faim/aim.h> 
9
10 /*
11  * FIXME: Doesn't work.
12  *
13  */
14 u_long aim_chat_join(struct aim_session_t *sess,
15                      struct aim_conn_t *conn, 
16                      const char *roomname)
17 {
18   struct command_tx_struct newpacket;
19   
20   newpacket.lock = 1;
21   if (conn)
22     newpacket.conn = conn;
23   else
24     newpacket.conn = aim_getconn_type(sess, AIM_CONN_TYPE_BOS);
25
26   newpacket.type = 0x0002;
27   
28   newpacket.commandlen = 12+7+strlen(roomname)+6;
29   newpacket.data = (char *) malloc(newpacket.commandlen);
30   memset(newpacket.data, 0x00, newpacket.commandlen);
31   
32   aim_putsnac(newpacket.data, 0x0001, 0x0004, 0x0000, sess->snac_nextid);
33
34   newpacket.data[10] = 0x00;
35   newpacket.data[11] = 0x0e;
36   newpacket.data[12] = 0x00;
37   newpacket.data[13] = 0x01;
38   newpacket.data[14] = 0x00;
39   newpacket.data[15] = 0x0c;
40   newpacket.data[16] = 0x00;
41   newpacket.data[17] = 0x04;
42   newpacket.data[18] = strlen(roomname) & 0x00ff;
43   memcpy(&(newpacket.data[19]), roomname, strlen(roomname));
44   
45   {
46     u_int i = 0;
47     printf("\n\n\n");
48     for (i = 0;i < newpacket.commandlen; i++)
49       printf("0x%02x ", newpacket.data[i]);
50     printf("\n\n\n");
51   }
52
53   aim_tx_enqueue(sess, &newpacket);
54
55   {
56     struct aim_snac_t snac;
57     
58     snac.id = sess->snac_nextid;
59     snac.family = 0x0001;
60     snac.type = 0x0004;
61     snac.flags = 0x0000;
62
63     snac.data = malloc(strlen(roomname));
64     memcpy(snac.data, roomname, strlen(roomname));
65
66     aim_newsnac(sess, &snac);
67   }
68
69   return (sess->snac_nextid++);
70 }
This page took 0.206284 seconds and 5 git commands to generate.