]> andersk Git - libfaim.git/blob - aim_buddylist.c
- Mon Aug 28 03:11:15 GMT 2000
[libfaim.git] / aim_buddylist.c
1
2 #include <faim/aim.h>
3
4 /*
5  * aim_add_buddy()
6  *
7  * Adds a single buddy to your buddy list after login.
8  *
9  */
10 u_long aim_add_buddy(struct aim_session_t *sess,
11                      struct aim_conn_t *conn, 
12                      char *sn )
13 {
14    struct command_tx_struct *newpacket;
15    int i;
16
17    if(!sn)
18      return -1;
19
20    if (!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0002, conn, 10+1+strlen(sn))))
21      return -1;
22
23    newpacket->lock = 1;
24
25    i = aim_putsnac(newpacket->data, 0x0003, 0x0004, 0x0000, sess->snac_nextid);
26    i += aimutil_put8(newpacket->data+i, strlen(sn));
27    i += aimutil_putstr(newpacket->data+i, sn, strlen(sn));
28
29    aim_tx_enqueue(sess, newpacket );
30
31 #if 0 /* do we really need this code? */
32    {
33       struct aim_snac_t snac;
34     
35       snac.id = sess->snac_nextid;
36       snac.family = 0x0003;
37       snac.type = 0x0004;
38       snac.flags = 0x0000;
39
40       snac.data = malloc( strlen( sn ) + 1 );
41       memcpy( snac.data, sn, strlen( sn ) + 1 );
42
43       aim_newsnac(sess, &snac);
44    }
45 #endif
46
47    return( sess->snac_nextid++ );
48 }
49
50 u_long aim_remove_buddy(struct aim_session_t *sess,
51                         struct aim_conn_t *conn, 
52                         char *sn )
53 {
54    struct command_tx_struct *newpacket;
55    int i;
56
57    if(!sn)
58      return -1;
59
60    if (!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0002, conn, 10+1+strlen(sn))))
61      return -1;
62
63    newpacket->lock = 1;
64
65    i = aim_putsnac(newpacket->data, 0x0003, 0x0005, 0x0000, sess->snac_nextid);
66
67    i += aimutil_put8(newpacket->data+i, strlen(sn));
68    i += aimutil_putstr(newpacket->data+i, sn, strlen(sn));
69
70    aim_tx_enqueue(sess, newpacket);
71
72    {
73       struct aim_snac_t snac;
74     
75       snac.id = sess->snac_nextid;
76       snac.family = 0x0003;
77       snac.type = 0x0005;
78       snac.flags = 0x0000;
79
80       snac.data = malloc( strlen( sn ) + 1 );
81       memcpy( snac.data, sn, strlen( sn ) + 1 );
82
83       aim_newsnac(sess, &snac );
84    }
85
86    return( sess->snac_nextid++ );
87 }
88
This page took 0.837932 seconds and 5 git commands to generate.