Fri, 13 Dec 2002 22:34:14 +0000
[gaim-migrate @ 4283]
So I made all them versions be the likes of winaim 5.1.3036. This
includes changing the ssi family/module version from 1 to 3. This
caused the SNAC flag 0x8000 to pop up in a few places, so I made a
change to rxhandlers.c that should take care of this.
This should allow you to add @mac.com buddies to your buddy list, as
well as get rid of the PleaseUpgrade000 buddies. It should also reduce
your risk of cancer by 5-10%.
Hopefully this won't break anything. Everything seems to be ok to me.
Baaaaah.
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
1 | /* |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
2 | * Family 0x0007 - Account Administration. |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
3 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
4 | * Used for stuff like changing the formating of your screen name, changing your |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
5 | * email address, requesting an account confirmation email, getting account info, |
|
4071
f0c425b22b92
[gaim-migrate @ 4283]
Mark Doliner <markdoliner@pidgin.im>
parents:
3952
diff
changeset
|
6 | * |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
7 | */ |
| 2086 | 8 | |
| 9 | #define FAIM_INTERNAL | |
| 10 | #include <aim.h> | |
| 11 | ||
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
12 | /* |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
13 | * Subtype 0x0002 - Request a bit of account info. |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
14 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
15 | * Info should be one of the following: |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
16 | * 0x0001 - Screen name formatting |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
17 | * 0x0011 - Email address |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
18 | * 0x0013 - Unknown |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
19 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
20 | */ |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
21 | faim_export int aim_admin_getinfo(aim_session_t *sess, aim_conn_t *conn, fu16_t info) |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
22 | { |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
23 | aim_frame_t *fr; |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
24 | aim_snacid_t snacid; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
25 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
26 | if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 14))) |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
27 | return -ENOMEM; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
28 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
29 | snacid = aim_cachesnac(sess, 0x0007, 0x0002, 0x0000, NULL, 0); |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
30 | aim_putsnac(&fr->data, 0x0007, 0x0002, 0x0000, snacid); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
31 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
32 | aimbs_put16(&fr->data, info); |
|
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
33 | aimbs_put16(&fr->data, 0x0000); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
34 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
35 | aim_tx_enqueue(sess, fr); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
36 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
37 | return 0; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
38 | } |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
39 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
40 | /* |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
41 | * Subtypes 0x0003 and 0x0005 - Parse account info. |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
42 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
43 | * Called in reply to both an information request (subtype 0x0002) and |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
44 | * an information change (subtype 0x0004). |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
45 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
46 | */ |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
47 | static int infochange(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) |
| 2086 | 48 | { |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
49 | aim_rxcallback_t userfunc; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
50 | char *url=NULL, *sn=NULL, *email=NULL; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
51 | fu16_t perms, tlvcount, err=0; |
| 2086 | 52 | |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
53 | perms = aimbs_get16(bs); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
54 | tlvcount = aimbs_get16(bs); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
55 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
56 | while (tlvcount && aim_bstream_empty(bs)) { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
57 | fu16_t type, length; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
58 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
59 | type = aimbs_get16(bs); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
60 | length = aimbs_get16(bs); |
| 2086 | 61 | |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
62 | switch (type) { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
63 | case 0x0001: { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
64 | sn = aimbs_getstr(bs, length); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
65 | } break; |
| 2086 | 66 | |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
67 | case 0x0004: { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
68 | url = aimbs_getstr(bs, length); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
69 | } break; |
| 2086 | 70 | |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
71 | case 0x0008: { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
72 | err = aimbs_get16(bs); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
73 | } break; |
| 2086 | 74 | |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
75 | case 0x0011: { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
76 | if (length == 0) { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
77 | email = (char*)malloc(13*sizeof(char)); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
78 | strcpy(email, "*suppressed*"); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
79 | } else |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
80 | email = aimbs_getstr(bs, length); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
81 | } break; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
82 | } |
| 2086 | 83 | |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
84 | tlvcount--; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
85 | } |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
86 | |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
87 | if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
88 | userfunc(sess, rx, (snac->subtype == 0x0005) ? 1 : 0, perms, err, url, sn, email); |
| 2086 | 89 | |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
90 | if (sn) free(sn); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
91 | if (url) free(url); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
92 | if (email) free(email); |
| 2086 | 93 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
94 | return 1; |
| 2086 | 95 | } |
| 96 | ||
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
97 | /* |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
98 | * Subtype 0x0004 - Set screenname formatting. |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
99 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
100 | */ |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
101 | faim_export int aim_admin_setnick(aim_session_t *sess, aim_conn_t *conn, const char *newnick) |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
102 | { |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
103 | aim_frame_t *fr; |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
104 | aim_snacid_t snacid; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
105 | aim_tlvlist_t *tl = NULL; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
106 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
107 | if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+2+2+strlen(newnick)))) |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
108 | return -ENOMEM; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
109 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
110 | snacid = aim_cachesnac(sess, 0x0007, 0x0004, 0x0000, NULL, 0); |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
111 | aim_putsnac(&fr->data, 0x0007, 0x0004, 0x0000, snacid); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
112 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
113 | aim_addtlvtochain_raw(&tl, 0x0001, strlen(newnick), newnick); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
114 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
115 | aim_writetlvchain(&fr->data, &tl); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
116 | aim_freetlvchain(&tl); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
117 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
118 | aim_tx_enqueue(sess, fr); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
119 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
120 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
121 | return 0; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
122 | } |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
123 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
124 | /* |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
125 | * Subtype 0x0004 - Change password. |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
126 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
127 | */ |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
128 | faim_export int aim_admin_changepasswd(aim_session_t *sess, aim_conn_t *conn, const char *newpw, const char *curpw) |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
129 | { |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
130 | aim_frame_t *fr; |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
131 | aim_tlvlist_t *tl = NULL; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
132 | aim_snacid_t snacid; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
133 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
134 | if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+4+strlen(curpw)+4+strlen(newpw)))) |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
135 | return -ENOMEM; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
136 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
137 | snacid = aim_cachesnac(sess, 0x0007, 0x0004, 0x0000, NULL, 0); |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
138 | aim_putsnac(&fr->data, 0x0007, 0x0004, 0x0000, snacid); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
139 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
140 | /* new password TLV t(0002) */ |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
141 | aim_addtlvtochain_raw(&tl, 0x0002, strlen(newpw), newpw); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
142 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
143 | /* current password TLV t(0012) */ |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
144 | aim_addtlvtochain_raw(&tl, 0x0012, strlen(curpw), curpw); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
145 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
146 | aim_writetlvchain(&fr->data, &tl); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
147 | aim_freetlvchain(&tl); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
148 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
149 | aim_tx_enqueue(sess, fr); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
150 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
151 | return 0; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
152 | } |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
153 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
154 | /* |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
155 | * Subtype 0x0004 - Change email address. |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
156 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
157 | */ |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
158 | faim_export int aim_admin_setemail(aim_session_t *sess, aim_conn_t *conn, const char *newemail) |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
159 | { |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
160 | aim_frame_t *fr; |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
161 | aim_snacid_t snacid; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
162 | aim_tlvlist_t *tl = NULL; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
163 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
164 | if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+2+2+strlen(newemail)))) |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
165 | return -ENOMEM; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
166 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
167 | snacid = aim_cachesnac(sess, 0x0007, 0x0004, 0x0000, NULL, 0); |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
168 | aim_putsnac(&fr->data, 0x0007, 0x0004, 0x0000, snacid); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
169 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
170 | aim_addtlvtochain_raw(&tl, 0x0011, strlen(newemail), newemail); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
171 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
172 | aim_writetlvchain(&fr->data, &tl); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
173 | aim_freetlvchain(&tl); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
174 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
175 | aim_tx_enqueue(sess, fr); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
176 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
177 | return 0; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
178 | } |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
179 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
180 | /* |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
181 | * Subtype 0x0006 - Request account confirmation. |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
182 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
183 | * This will cause an email to be sent to the address associated with |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
184 | * the account. By following the instructions in the mail, you can |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
185 | * get the TRIAL flag removed from your account. |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
186 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
187 | */ |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
188 | faim_export int aim_admin_reqconfirm(aim_session_t *sess, aim_conn_t *conn) |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
189 | { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
190 | return aim_genericreq_n(sess, conn, 0x0007, 0x0006); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
191 | } |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
192 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
193 | /* |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
194 | * Subtype 0x0007 - Account confirmation request acknowledgement. |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
195 | * |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
196 | */ |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
197 | static int accountconfirm(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) |
| 2086 | 198 | { |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
199 | aim_rxcallback_t userfunc; |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
200 | fu16_t status; |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
201 | aim_tlvlist_t *tl; |
| 2086 | 202 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
203 | status = aimbs_get16(bs); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
204 | /* This is 0x0013 if unable to confirm at this time */ |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
205 | |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
2979
diff
changeset
|
206 | tl = aim_readtlvchain(bs); |
| 2086 | 207 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
208 | if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
209 | return userfunc(sess, rx, status); |
| 2086 | 210 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
211 | return 0; |
| 2086 | 212 | } |
| 213 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
214 | static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) |
| 2086 | 215 | { |
| 216 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
217 | if ((snac->subtype == 0x0003) || (snac->subtype == 0x0005)) |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
218 | return infochange(sess, mod, rx, snac, bs); |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
219 | else if (snac->subtype == 0x0007) |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
220 | return accountconfirm(sess, mod, rx, snac, bs); |
| 2086 | 221 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
222 | return 0; |
| 2086 | 223 | } |
| 224 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
225 | faim_internal int admin_modfirst(aim_session_t *sess, aim_module_t *mod) |
| 2086 | 226 | { |
| 227 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
228 | mod->family = 0x0007; |
| 2672 | 229 | mod->version = 0x0001; |
|
4071
f0c425b22b92
[gaim-migrate @ 4283]
Mark Doliner <markdoliner@pidgin.im>
parents:
3952
diff
changeset
|
230 | mod->toolid = 0x0010; |
|
f0c425b22b92
[gaim-migrate @ 4283]
Mark Doliner <markdoliner@pidgin.im>
parents:
3952
diff
changeset
|
231 | mod->toolversion = 0x0629; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
232 | mod->flags = 0; |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
233 | strncpy(mod->name, "admin", sizeof(mod->name)); |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
234 | mod->snachandler = snachandler; |
| 2086 | 235 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
236 | return 0; |
| 2086 | 237 | } |