libfaim/aim_auth.c

Tue, 04 Jul 2000 21:40:42 +0000

author
Rob Flynn <gaim@robflynn.com>
date
Tue, 04 Jul 2000 21:40:42 +0000
changeset 461
182b7f8a2cb3
parent 445
f7ef3b61a842
child 840
b80a628d935f
permissions
-rw-r--r--

[gaim-migrate @ 471]
Woop

2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 aim_auth.c
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 Deals with the authorizer.
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 */
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7
283
dbf3342692e9 [gaim-migrate @ 293]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 237
diff changeset
8 #include <faim/aim.h>
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 /* this just pushes the passed cookie onto the passed connection -- NO SNAC! */
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
11 int aim_auth_sendcookie(struct aim_session_t *sess,
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
12 struct aim_conn_t *conn,
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
13 u_char *chipsahoy)
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 {
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
15 struct command_tx_struct *newpacket;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 int curbyte=0;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17
445
f7ef3b61a842 [gaim-migrate @ 455]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 283
diff changeset
18 if (!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0001, conn, 4+2+2+AIM_COOKIELEN)))
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
19 return -1;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
21 newpacket->lock = 1;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
22
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
23 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0000);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
24 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
25 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0006);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
26 curbyte += aimutil_put16(newpacket->data+curbyte, AIM_COOKIELEN);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
27 memcpy(newpacket->data+curbyte, chipsahoy, AIM_COOKIELEN);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
28
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
29 return aim_tx_enqueue(sess, newpacket);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
30 }
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
31
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
32 u_long aim_auth_clientready(struct aim_session_t *sess,
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
33 struct aim_conn_t *conn)
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
34 {
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
35 struct command_tx_struct *newpacket;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
36 int curbyte = 0;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
37
445
f7ef3b61a842 [gaim-migrate @ 455]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 283
diff changeset
38 if (!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0002, conn, 26)))
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
39 return -1;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
40
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
41 newpacket->lock = 1;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
42
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
43 curbyte += aim_putsnac(newpacket->data+curbyte, 0x0001, 0x0002, 0x0000, sess->snac_nextid);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
44 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
45 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0002);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
46 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
47 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0013);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
48 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0007);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
49 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
50 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001);
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
51 curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
52
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
53 aim_tx_enqueue(sess, newpacket);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
54
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
55 {
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
56 struct aim_snac_t snac;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
57
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
58 snac.id = sess->snac_nextid;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
59 snac.family = 0x0001;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
60 snac.type = 0x0004;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
61 snac.flags = 0x0000;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
62
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
63 snac.data = NULL;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
64
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
65 aim_newsnac(sess, &snac);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
66 }
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
67
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
68 return (sess->snac_nextid++);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
69 }
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
70
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
71 u_long aim_auth_changepasswd(struct aim_session_t *sess,
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
72 struct aim_conn_t *conn,
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
73 char *new, char *current)
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
74 {
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
75 struct command_tx_struct *newpacket;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
76 int i;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
77
445
f7ef3b61a842 [gaim-migrate @ 455]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 283
diff changeset
78 if (!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0002, conn, 10+4+strlen(current)+4+strlen(new))))
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
79 return -1;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
80
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
81 newpacket->lock = 1;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
82
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
83 i = aim_putsnac(newpacket->data, 0x0007, 0x0004, 0x0000, sess->snac_nextid);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
84
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
85 /* current password TLV t(0002) */
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
86 i += aim_puttlv_str(newpacket->data+i, 0x0002, strlen(current), current);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
87
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
88 /* new password TLV t(0012) */
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
89 i += aim_puttlv_str(newpacket->data+i, 0x0012, strlen(new), new);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
90
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
91 aim_tx_enqueue(sess, newpacket);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
92
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
93 {
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
94 struct aim_snac_t snac;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
95
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
96 snac.id = sess->snac_nextid;
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
97 snac.family = 0x0001;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
98 snac.type = 0x0004;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
99 snac.flags = 0x0000;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
100
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
101 snac.data = NULL;
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
102
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
103 aim_newsnac(sess, &snac);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
104 }
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
105
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2
diff changeset
106 return (sess->snac_nextid++);
2
62fbb00c531a [gaim-migrate @ 11]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
107 }

mercurial