Mercurial > pidgin.yaz
view libfaim/aim_auth.c @ 1401:bf041349b11e
[gaim-migrate @ 1411]
abliity to set accounts away independent of each other. also allows for all the other states (like in yahoo and icq). probably breaks MSN, so don't use it until rob fixes it.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Wed, 10 Jan 2001 22:15:24 +0000 |
parents | 920c86b753d7 |
children |
line wrap: on
line source
/* aim_auth.c Deals with the authorizer. */ #include <faim/aim.h> /* this just pushes the passed cookie onto the passed connection -- NO SNAC! */ faim_export int aim_auth_sendcookie(struct aim_session_t *sess, struct aim_conn_t *conn, unsigned char *chipsahoy) { struct command_tx_struct *newpacket; int curbyte=0; if (!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0001, conn, 4+2+2+AIM_COOKIELEN))) return -1; newpacket->lock = 1; curbyte += aimutil_put16(newpacket->data+curbyte, 0x0000); curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001); curbyte += aimutil_put16(newpacket->data+curbyte, 0x0006); curbyte += aimutil_put16(newpacket->data+curbyte, AIM_COOKIELEN); memcpy(newpacket->data+curbyte, chipsahoy, AIM_COOKIELEN); return aim_tx_enqueue(sess, newpacket); } faim_export unsigned long aim_auth_clientready(struct aim_session_t *sess, struct aim_conn_t *conn) { struct command_tx_struct *newpacket; int curbyte = 0; if (!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0002, conn, 26))) return -1; newpacket->lock = 1; curbyte += aim_putsnac(newpacket->data+curbyte, 0x0001, 0x0002, 0x0000, sess->snac_nextid); curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001); curbyte += aimutil_put16(newpacket->data+curbyte, 0x0002); curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001); curbyte += aimutil_put16(newpacket->data+curbyte, 0x0013); curbyte += aimutil_put16(newpacket->data+curbyte, 0x0007); curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001); curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001); curbyte += aimutil_put16(newpacket->data+curbyte, 0x0001); aim_tx_enqueue(sess, newpacket); aim_cachesnac(sess, 0x0001, 0x0004, 0x0000, NULL, 0); return sess->snac_nextid; } faim_export unsigned long aim_auth_changepasswd(struct aim_session_t *sess, struct aim_conn_t *conn, char *new, char *current) { struct command_tx_struct *newpacket; int i; if (!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0002, conn, 10+4+strlen(current)+4+strlen(new)))) return -1; newpacket->lock = 1; i = aim_putsnac(newpacket->data, 0x0007, 0x0004, 0x0000, sess->snac_nextid); /* current password TLV t(0002) */ i += aim_puttlv_str(newpacket->data+i, 0x0002, strlen(current), current); /* new password TLV t(0012) */ i += aim_puttlv_str(newpacket->data+i, 0x0012, strlen(new), new); aim_tx_enqueue(sess, newpacket); aim_cachesnac(sess, 0x0001, 0x0004, 0x0000, NULL, 0); return sess->snac_nextid; }