]> andersk Git - libfaim.git/blob - aim_buddylist.c
- The week prior to Fri Jun 16 19:37:09 UTC 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    {
32       struct aim_snac_t snac;
33     
34       snac.id = sess->snac_nextid;
35       snac.family = 0x0003;
36       snac.type = 0x0004;
37       snac.flags = 0x0000;
38
39       snac.data = malloc( strlen( sn ) + 1 );
40       memcpy( snac.data, sn, strlen( sn ) + 1 );
41
42       aim_newsnac(sess, &snac);
43    }
44
45    return( sess->snac_nextid++ );
46 }
47
48 u_long aim_remove_buddy(struct aim_session_t *sess,
49                         struct aim_conn_t *conn, 
50                         char *sn )
51 {
52    struct command_tx_struct *newpacket;
53    int i;
54
55    if(!sn)
56      return -1;
57
58    if (!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0002, conn, 10+1+strlen(sn))))
59      return -1;
60
61    newpacket->lock = 1;
62
63    i = aim_putsnac(newpacket->data, 0x0003, 0x0005, 0x0000, sess->snac_nextid);
64
65    i += aimutil_put8(newpacket->data+i, strlen(sn));
66    i += aimutil_putstr(newpacket->data+i, sn, strlen(sn));
67
68    aim_tx_enqueue(sess, newpacket);
69
70    {
71       struct aim_snac_t snac;
72     
73       snac.id = sess->snac_nextid;
74       snac.family = 0x0003;
75       snac.type = 0x0005;
76       snac.flags = 0x0000;
77
78       snac.data = malloc( strlen( sn ) + 1 );
79       memcpy( snac.data, sn, strlen( sn ) + 1 );
80
81       aim_newsnac(sess, &snac );
82    }
83
84    return( sess->snac_nextid++ );
85 }
86
This page took 0.056322 seconds and 5 git commands to generate.