4 Deals with the authorizer.
10 /* this just pushes the passed cookie onto the passed connection -- NO SNAC! */
11 int aim_auth_sendcookie(struct aim_conn_t *conn, char *chipsahoy)
13 struct command_tx_struct newpacket;
19 newpacket.conn = aim_getconn_type(AIM_CONN_TYPE_AUTH);
21 newpacket.conn = conn;
23 newpacket.type = 0x0001; /* channel 1 (no SNACs, you know) */
25 newpacket.commandlen = 4 + 2 + 2 + 0x100;
26 newpacket.data = (char *) calloc(1, newpacket.commandlen);
28 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0000);
29 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0001);
30 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0006);
31 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0100);
32 memcpy(&(newpacket.data[curbyte]), chipsahoy, 0x100);
34 aim_tx_enqueue(&newpacket);
39 u_long aim_auth_clientready(struct aim_conn_t *conn)
41 struct command_tx_struct newpacket;
47 newpacket.conn = aim_getconn_type(AIM_CONN_TYPE_AUTH);
49 newpacket.conn = conn;
51 newpacket.type = 0x0002;
53 newpacket.commandlen = 26;
54 newpacket.data = (char *) malloc(newpacket.commandlen);
56 curbyte += aim_putsnac(newpacket.data+curbyte, 0x0001, 0x0002, 0x0000, aim_snac_nextid);
57 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0001);
58 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0002);
59 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0001);
60 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0013);
61 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0007);
62 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0001);
63 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0001);
64 curbyte += aimutil_put16(newpacket.data+curbyte, 0x0001);
66 aim_tx_enqueue(&newpacket);
69 struct aim_snac_t snac;
71 snac.id = aim_snac_nextid;
81 return (aim_snac_nextid++);
84 u_long aim_auth_changepasswd(struct aim_conn_t *conn, char *new, char *current)
86 struct command_tx_struct newpacket;
92 newpacket.conn = aim_getconn_type(AIM_CONN_TYPE_AUTH);
94 newpacket.conn = conn;
96 newpacket.type = 0x0002;
98 newpacket.commandlen = 10 + 4 + strlen(current) + 4 + strlen(new);
99 newpacket.data = (char *) malloc(newpacket.commandlen);
101 aim_putsnac(newpacket.data, 0x0007, 0x0004, 0x0000, aim_snac_nextid);
103 /* current password TLV t(0002) */
105 newpacket.data[i++] = 0x00;
106 newpacket.data[i++] = 0x02;
107 newpacket.data[i++] = 0x00;
108 newpacket.data[i++] = strlen(current) & 0xff;
109 memcpy(&(newpacket.data[i]), current, strlen(current));
110 i += strlen(current);
112 /* new password TLV t(0012) */
113 newpacket.data[i++] = 0x00;
114 newpacket.data[i++] = 0x12;
115 newpacket.data[i++] = 0x00;
116 newpacket.data[i++] = strlen(new) & 0xff;
117 memcpy(&(newpacket.data[i]), new, strlen(new));
120 aim_tx_enqueue(&newpacket);
123 struct aim_snac_t snac;
125 snac.id = aim_snac_nextid;
126 snac.family = 0x0001;
135 return (aim_snac_nextid++);