Mercurial > pidgin.yaz
comparison libfaim/ft.c @ 1593:ec31e23aadc7
[gaim-migrate @ 1603]
libfaim updates and a bug fix for bad password.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Fri, 16 Mar 2001 14:29:54 +0000 |
parents | 001a79aec218 |
children | 109cacf1ff97 |
comparison
equal
deleted
inserted
replaced
1592:41cecde078c1 | 1593:ec31e23aadc7 |
---|---|
996 faimdprintf(sess, 2,"faim: rend: read2 error on %d (%d)\n", conn->fd, hdrlen); | 996 faimdprintf(sess, 2,"faim: rend: read2 error on %d (%d)\n", conn->fd, hdrlen); |
997 free(hdr); | 997 free(hdr); |
998 faim_mutex_unlock(&conn->active); | 998 faim_mutex_unlock(&conn->active); |
999 aim_conn_close(conn); | 999 aim_conn_close(conn); |
1000 return -1; | 1000 return -1; |
1001 } | 1001 } |
1002 hdrtype = aimutil_get16(hdr); | 1002 hdrtype = aimutil_get16(hdr); |
1003 | 1003 |
1004 switch (hdrtype) { | 1004 switch (hdrtype) { |
1005 case 0x0001: { /* directim */ | 1005 case 0x0001: { /* directim */ |
1006 int payloadlength = 0; | 1006 int payloadlength = 0; |
1017 payloadlength = aimutil_get32(hdr+22); | 1017 payloadlength = aimutil_get32(hdr+22); |
1018 flags = aimutil_get16(hdr+32); | 1018 flags = aimutil_get16(hdr+32); |
1019 snptr = (char *)hdr+38; | 1019 snptr = (char *)hdr+38; |
1020 strncpy(priv->sn, snptr, MAXSNLEN); | 1020 strncpy(priv->sn, snptr, MAXSNLEN); |
1021 | 1021 |
1022 faimdprintf(sess, 2, "faim: OFT frame: %04x / %04x / %04x / %s\n", hdrtype, payloadlength, flags, snptr); | 1022 faimdprintf(sess, 2, "faim: OFT frame: %04x / %04x / %04x / %s\n", hdrtype, payloadlength, flags, priv->sn); |
1023 | 1023 |
1024 free(hdr); | 1024 free(hdr); |
1025 hdr = NULL; | 1025 hdr = NULL; |
1026 | 1026 |
1027 if (flags == 0x000e) { | 1027 if (flags == 0x000e) { |
1028 faim_mutex_unlock(&conn->active); | 1028 faim_mutex_unlock(&conn->active); |
1029 if ( (userfunc = aim_callhandler(sess, conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMTYPING)) ) | 1029 if ( (userfunc = aim_callhandler(sess, conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMTYPING)) ) |
1030 return userfunc(sess, NULL, snptr); | 1030 return userfunc(sess, NULL, conn); |
1031 } else { | 1031 } else { |
1032 | 1032 |
1033 if ((flags == 0x0000) && payloadlength) { | 1033 if ((flags == 0x0000) && payloadlength) { |
1034 unsigned char *msg; | 1034 unsigned char *msg; |
1035 | 1035 |
1047 return -1; | 1047 return -1; |
1048 } | 1048 } |
1049 | 1049 |
1050 faim_mutex_unlock(&conn->active); | 1050 faim_mutex_unlock(&conn->active); |
1051 msg[payloadlength] = 0x00; | 1051 msg[payloadlength] = 0x00; |
1052 faimdprintf(sess, 2, "faim: directim: %s/%04x/%04x/%s\n", snptr, payloadlength, flags, msg); | 1052 faimdprintf(sess, 2, "faim: directim: %s/%04x/%04x/%s\n", priv->sn, payloadlength, flags, msg); |
1053 | 1053 |
1054 if ( (userfunc = aim_callhandler(sess, conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING)) ) | 1054 if ( (userfunc = aim_callhandler(sess, conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING)) ) |
1055 i = userfunc(sess, NULL, conn, snptr, msg); | 1055 i = userfunc(sess, NULL, conn, msg); |
1056 else { | 1056 else { |
1057 faimdprintf(sess, 0, "directim: %s/%04x/%04x/%s\n", snptr, payloadlength, flags, msg); | 1057 faimdprintf(sess, 0, "directim: %s/%04x/%04x/%s\n", priv->sn, payloadlength, flags, msg); |
1058 i = 1; | 1058 i = 1; |
1059 } | 1059 } |
1060 | 1060 |
1061 free(msg); | 1061 free(msg); |
1062 | 1062 |
1346 } | 1346 } |
1347 case 0x0204: { /* get file: finished. close it up */ | 1347 case 0x0204: { /* get file: finished. close it up */ |
1348 int i; | 1348 int i; |
1349 struct aim_fileheader_t *fh; | 1349 struct aim_fileheader_t *fh; |
1350 | 1350 |
1351 fh = aim_oft_getfh(hdr); | 1351 if(!(fh = aim_oft_getfh(hdr))) |
1352 return -1; | |
1352 | 1353 |
1353 free(hdr); | 1354 free(hdr); |
1354 hdr = NULL; | 1355 hdr = NULL; |
1355 | 1356 |
1356 faim_mutex_unlock(&conn->active); | 1357 faim_mutex_unlock(&conn->active); |
1376 faimdprintf(sess, 2,"faim: OFT frame: uknown type %04x\n", hdrtype); | 1377 faimdprintf(sess, 2,"faim: OFT frame: uknown type %04x\n", hdrtype); |
1377 faim_mutex_unlock(&conn->active); | 1378 faim_mutex_unlock(&conn->active); |
1378 break; | 1379 break; |
1379 } | 1380 } |
1380 } /* switch */ | 1381 } /* switch */ |
1382 | |
1381 if (hdr) { | 1383 if (hdr) { |
1382 faimdprintf(sess, 0, "hdr wasn't freed by a rendezvous switch case (hdrtype: %0x04x)!\n", hdrtype); | 1384 faimdprintf(sess, 0, "hdr wasn't freed by a rendezvous switch case (hdrtype: %0x04x)!\n", hdrtype); |
1383 free(hdr); | 1385 free(hdr); |
1384 hdr = NULL; | 1386 hdr = NULL; |
1385 } | 1387 } |