]> andersk Git - libfaim.git/blob - aim_buddylist.c
More printfs.
[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
16    if( !sn )
17       return -1;
18
19    if (conn)
20      newpacket.conn = conn;
21    else
22      newpacket.conn = aim_getconn_type(sess, AIM_CONN_TYPE_BOS);
23
24    newpacket.lock = 1;
25    newpacket.type = 0x0002;
26    newpacket.commandlen = 11 + strlen( sn );
27    newpacket.data = (char *)malloc( newpacket.commandlen );
28
29    aim_putsnac(newpacket.data, 0x0003, 0x0004, 0x0000, sess->snac_nextid);
30
31    /* length of screenname */ 
32    newpacket.data[10] = strlen( sn );
33
34    memcpy( &(newpacket.data[11]), sn, strlen( sn ) );
35
36    aim_tx_enqueue(sess, &newpacket );
37
38    {
39       struct aim_snac_t snac;
40     
41       snac.id = sess->snac_nextid;
42       snac.family = 0x0003;
43       snac.type = 0x0004;
44       snac.flags = 0x0000;
45
46       snac.data = malloc( strlen( sn ) + 1 );
47       memcpy( snac.data, sn, strlen( sn ) + 1 );
48
49       aim_newsnac(sess, &snac);
50    }
51
52    return( sess->snac_nextid++ );
53 }
54
55 u_long aim_remove_buddy(struct aim_session_t *sess,
56                         struct aim_conn_t *conn, 
57                         char *sn )
58 {
59    struct command_tx_struct newpacket;
60
61    if( !sn )
62       return -1;
63
64    if (conn)
65      newpacket.conn = conn;
66    else
67      newpacket.conn = aim_getconn_type(sess, AIM_CONN_TYPE_BOS);
68
69    newpacket.lock = 1;
70    newpacket.type = 0x0002;
71    newpacket.commandlen = 11 + strlen(sn);
72    newpacket.data = (char *)malloc( newpacket.commandlen );
73
74    aim_putsnac(newpacket.data, 0x0003, 0x0005, 0x0000, sess->snac_nextid);
75
76    /* length of screenname */ 
77    newpacket.data[10] = strlen( sn );
78
79    memcpy( &(newpacket.data[11]), sn, strlen( sn ) );
80
81    aim_tx_enqueue(sess,  &newpacket );
82
83    {
84       struct aim_snac_t snac;
85     
86       snac.id = sess->snac_nextid;
87       snac.family = 0x0003;
88       snac.type = 0x0005;
89       snac.flags = 0x0000;
90
91       snac.data = malloc( strlen( sn ) + 1 );
92       memcpy( snac.data, sn, strlen( sn ) + 1 );
93
94       aim_newsnac(sess, &snac );
95    }
96
97    return( sess->snac_nextid++ );
98 }
99
This page took 0.161264 seconds and 5 git commands to generate.