static unsigned char *buddyicon = NULL;
static int buddyiconlen = 0;
static time_t buddyiconstamp = 0;
+static unsigned short buddyiconsum = 0;
static void faimtest_debugcb(struct aim_session_t *sess, int level, const char *format, va_list va)
{
buddyicon = malloc(buddyiconlen);
fread(buddyicon, 1, st.st_size, f);
- dvprintf("read %d bytes of %s for buddy icon\n", buddyiconlen, buddyiconpath);
+ buddyiconsum = aim_iconsum(buddyicon, buddyiconlen);
+
+ dvprintf("read %d bytes of %s for buddy icon (sum 0x%08x)\n", buddyiconlen, buddyiconpath, buddyiconsum);
fclose(f);
char buddies[128];
/* this is the new profile */
char profile[256];
+ char awaymsg[] = {"blah blah blah Ole! blah blah blah"};
/* Caution: Buddy1 and Buddy2 are real people! (who I don't know) */
snprintf(buddies, sizeof(buddies), "Buddy1&Buddy2&%s&", ohcaptainmycaptain?ohcaptainmycaptain:"blah");
aim_bos_ackrateresp(sess, command->conn); /* ack rate info response */
aim_bos_reqpersonalinfo(sess, command->conn);
aim_bos_reqlocaterights(sess, command->conn);
- aim_bos_setprofile(sess, command->conn, profile, NULL, AIM_CAPS_BUDDYICON | AIM_CAPS_CHAT | AIM_CAPS_GETFILE | AIM_CAPS_SENDFILE | AIM_CAPS_IMIMAGE /*| AIM_CAPS_GAMES | AIM_CAPS_SAVESTOCKS*/);
+ aim_bos_setprofile(sess, command->conn, profile, awaymsg, AIM_CAPS_BUDDYICON | AIM_CAPS_CHAT | AIM_CAPS_GETFILE | AIM_CAPS_SENDFILE | AIM_CAPS_IMIMAGE /*| AIM_CAPS_GAMES | AIM_CAPS_SAVESTOCKS*/);
aim_bos_reqbuddyrights(sess, command->conn);
/* send the buddy list and profile (required, even if empty) */
args.msglen = strlen(iconmsg);
args.iconlen = buddyiconlen;
args.iconstamp = buddyiconstamp;
+ args.iconsum = buddyiconsum;
aim_send_im_ext(sess, command->conn, &args);
} else if (strstr(tmpstr, "sendicon") && buddyicon) {
- aim_send_icon(sess, command->conn, userinfo->sn, buddyicon, buddyiconlen, buddyiconstamp);
+ aim_send_icon(sess, command->conn, userinfo->sn, buddyicon, buddyiconlen, buddyiconstamp, buddyiconsum);
} else if (strstr(tmpstr, "warnme")) {