Mercurial > pidgin
changeset 4838:60d8c5ad77f9
[gaim-migrate @ 5163]
Aside from my usually bit o' cleanup, this commit changes the function
used to send away messages auto-responses.
The auto-response is now sent with the same function as normal messages,
instead of calling a simpler abstracted function in libfaim which then
called the normal function.
This has 2 positive effects:
1) Auto-responses will have the correct encoding set
2) Auto-responses will contain the "I have an icon" flag. If the other
user sends you 1 more message after they get your away message, they
are able to get your buddy icon.
Something about dreams as fragile as bubbles
Well perhaps it won't apply
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 20 Mar 2003 06:14:21 +0000 |
parents | 3411fdaa54fa |
children | 7d8d3470e7d5 |
files | src/protocols/oscar/im.c src/protocols/oscar/oscar.c |
diffstat | 2 files changed, 13 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/src/protocols/oscar/im.c Thu Mar 20 05:24:41 2003 +0000 +++ b/src/protocols/oscar/im.c Thu Mar 20 06:14:21 2003 +0000 @@ -350,16 +350,14 @@ aimbs_putraw(&fr->data, args->msg, args->msglen); } - /* Set the Request Acknowledge flag */ - if (args->flags & AIM_IMFLAGS_ACK) { - aimbs_put16(&fr->data, 0x0003); - aimbs_put16(&fr->data, 0x0000); - } - /* Set the Autoresponse flag */ if (args->flags & AIM_IMFLAGS_AWAY) { aimbs_put16(&fr->data, 0x0004); aimbs_put16(&fr->data, 0x0000); + } else if (args->flags & AIM_IMFLAGS_ACK) { + /* Set the Request Acknowledge flag */ + aimbs_put16(&fr->data, 0x0003); + aimbs_put16(&fr->data, 0x0000); } if (args->flags & AIM_IMFLAGS_OFFLINE) {
--- a/src/protocols/oscar/oscar.c Thu Mar 20 05:24:41 2003 +0000 +++ b/src/protocols/oscar/oscar.c Thu Mar 20 06:14:21 2003 +0000 @@ -4083,23 +4083,14 @@ int ret = 0; GError *err = NULL; - if (dim) { - if (dim->connected) { /* If we're not connected yet, send through server */ - /* XXX - The last parameter below is the encoding. Let Paco-Paco do something with it. */ - ret = aim_odc_send_im(od->sess, dim->conn, message, len == -1 ? strlen(message) : len, 0); - if (ret == 0) - return 1; - else return ret; - } - debug_printf("Direct IM pending, but not connected; sending through server\n"); + if (dim && dim->connected) { + /* If we're directly connected, send a direct IM */ + /* XXX - The last parameter below is the encoding. Let Paco-Paco do something with it. */ + ret = aim_odc_send_im(od->sess, dim->conn, message, len == -1 ? strlen(message) : len, 0); } else if (len != -1) { /* Trying to send an IM image outside of a direct connection. */ oscar_ask_direct_im(gc, name); - return -ENOTCONN; - } - - if (imflags & IM_FLAG_AWAY) { - ret = aim_im_sendch1(od->sess, name, AIM_IMFLAGS_AWAY, message); + ret = -ENOTCONN; } else { struct buddyinfo *bi; struct aim_sendimext_args args; @@ -4122,6 +4113,9 @@ args.featureslen = sizeof(features_aim); } + if (imflags & IM_FLAG_AWAY) + args.flags |= AIM_IMFLAGS_AWAY; + if (bi->ico_need) { debug_printf("Sending buddy icon request with message\n"); args.flags |= AIM_IMFLAGS_BUDDYREQ; @@ -4150,7 +4144,6 @@ bi->ico_informed = TRUE; } - fclose(file); g_free(buf); } @@ -4198,6 +4191,7 @@ ret = aim_im_sendch1_ext(od->sess, &args); } + if (ret >= 0) return 1; return ret;