# HG changeset patch # User John Bailey # Date 1200549205 0 # Node ID 0d7d0a60d42d1c3ae7488f7d49ce4f02d409383e # Parent 840e7e1b6dac03099dcb4f9c25e237985dfab9be# Parent d59cdfcb6ed1dedee2fbb082d83496396ac9ae4a merge of '773c6dde93b5b2109d9c627dca717dd6c5468094' and 'd25af79abd2f50e0aba4985544f0ca976d0e7788' diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/dnssrv.c --- a/libpurple/dnssrv.c Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/dnssrv.c Thu Jan 17 05:53:25 2008 +0000 @@ -358,9 +358,12 @@ /* Child */ if (pid == 0) { + g_free(query); + close(out[0]); close(in[1]); resolve(in[0], out[1]); + /* resolve() does not return */ } close(out[1]); diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/protocols/irc/dcc_send.c --- a/libpurple/protocols/irc/dcc_send.c Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/protocols/irc/dcc_send.c Thu Jan 17 05:53:25 2008 +0000 @@ -56,7 +56,7 @@ l = htonl(xfer->bytes_sent); result = write(xfer->fd, &l, sizeof(l)); if (result != sizeof(l)) { - purple_debug_error("irc", "unable to send acknowledgement: %s\n", strerror(errno)); + purple_debug_error("irc", "unable to send acknowledgement: %s\n", g_strerror(errno)); /* TODO: We should probably close the connection here or something. */ } } diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/protocols/msnp9/notification.c --- a/libpurple/protocols/msnp9/notification.c Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/protocols/msnp9/notification.c Thu Jan 17 05:53:25 2008 +0000 @@ -1012,7 +1012,7 @@ { purple_debug_error("msn", "Error opening temp passport file: %s\n", - strerror(errno)); + g_strerror(errno)); } else { @@ -1061,7 +1061,7 @@ { purple_debug_error("msn", "Error closing temp passport file: %s\n", - strerror(errno)); + g_strerror(errno)); g_unlink(session->passport_info.file); g_free(session->passport_info.file); diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/protocols/msnp9/servconn.c --- a/libpurple/protocols/msnp9/servconn.c Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/protocols/msnp9/servconn.c Thu Jan 17 05:53:25 2008 +0000 @@ -392,7 +392,7 @@ return; else if (len <= 0) { - purple_debug_error("msn", "servconn read error, len: %d error: %s\n", len, strerror(errno)); + purple_debug_error("msn", "servconn read error, len: %d error: %s\n", len, g_strerror(errno)); msn_servconn_got_error(servconn, MSN_SERVCONN_ERROR_READ); return; diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/protocols/oscar/family_buddy.c --- a/libpurple/protocols/oscar/family_buddy.c Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/protocols/oscar/family_buddy.c Thu Jan 17 05:53:25 2008 +0000 @@ -219,8 +219,9 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, &userinfo); - if (snac->subtype == SNAC_SUBTYPE_BUDDY_ONCOMING) - aim_locate_requestuserinfo(od, userinfo.sn); + if (snac->subtype == SNAC_SUBTYPE_BUDDY_ONCOMING && userinfo.flags & AIM_FLAG_AWAY) + aim_locate_autofetch_away_message(od, userinfo.sn); + aim_info_free(&userinfo); return ret; diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/protocols/oscar/family_locate.c --- a/libpurple/protocols/oscar/family_locate.c Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/protocols/oscar/family_locate.c Thu Jan 17 05:53:25 2008 +0000 @@ -386,11 +386,11 @@ } void -aim_locate_requestuserinfo(OscarData *od, const char *sn) +aim_locate_autofetch_away_message(OscarData *od, const char *sn) { struct userinfo_node *cur; - /* Make sure we haven't already requested info for this buddy */ + /* Make sure we haven't already made an info request for this buddy */ for (cur = od->locate.requested; cur != NULL; cur = cur->next) if (aim_sncmp(sn, cur->sn) == 0) return; @@ -401,7 +401,7 @@ cur->next = od->locate.requested; od->locate.requested = cur; - aim_locate_getinfoshort(od, cur->sn, 0x00000003); + aim_locate_getinfoshort(od, cur->sn, 0x00000002); } aim_userinfo_t *aim_locate_finduserinfo(OscarData *od, const char *sn) { diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/protocols/oscar/oscar.c Thu Jan 17 05:53:25 2008 +0000 @@ -1735,7 +1735,6 @@ int type = 0; gboolean buddy_is_away = FALSE; const char *status_id; - char *itmsurl = NULL; va_list ap; aim_userinfo_t *info; @@ -1783,11 +1782,6 @@ status_id = OSCAR_STATUS_ID_AVAILABLE; } - if (info->itmsurl_encoding && info->itmsurl && info->itmsurl_len) - /* Grab the iTunes Music Store URL */ - itmsurl = oscar_encoding_to_utf8(account, info->itmsurl_encoding, - info->itmsurl, info->itmsurl_len); - if (info->flags & AIM_FLAG_WIRELESS) { purple_prpl_got_user_status(account, info->sn, OSCAR_STATUS_ID_MOBILE, NULL); @@ -1795,27 +1789,31 @@ purple_prpl_got_user_status_deactive(account, info->sn, OSCAR_STATUS_ID_MOBILE); } - if (!strcmp(status_id, OSCAR_STATUS_ID_AVAILABLE)) + if (status_id == OSCAR_STATUS_ID_AVAILABLE) { char *message = NULL; + char *itmsurl = NULL; if (info->status != NULL && info->status[0] != '\0') /* Grab the available message */ message = oscar_encoding_to_utf8(account, info->status_encoding, info->status, info->status_len); + if (info->itmsurl_encoding && info->itmsurl && info->itmsurl_len) + /* Grab the iTunes Music Store URL */ + itmsurl = oscar_encoding_to_utf8(account, info->itmsurl_encoding, + info->itmsurl, info->itmsurl_len); + purple_prpl_got_user_status(account, info->sn, status_id, "message", message, "itmsurl", itmsurl, NULL); g_free(message); + g_free(itmsurl); } else { - purple_prpl_got_user_status(account, info->sn, status_id, - "itmsurl", itmsurl, NULL); - } - - g_free(itmsurl); + purple_prpl_got_user_status(account, info->sn, status_id, NULL); + } /* Login time stuff */ if (info->present & AIM_USERINFO_PRESENT_ONLINESINCE) diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/protocols/oscar/oscar.h --- a/libpurple/protocols/oscar/oscar.h Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/protocols/oscar/oscar.h Thu Jan 17 05:53:25 2008 +0000 @@ -1074,7 +1074,7 @@ /* 0x000f */ int aim_locate_setinterests(OscarData *od, const char *interest1, const char *interest2, const char *interest3, const char *interest4, const char *interest5, guint16 privacy); /* 0x0015 */ int aim_locate_getinfoshort(OscarData *od, const char *sn, guint32 flags); -void aim_locate_requestuserinfo(OscarData *od, const char *sn); +void aim_locate_autofetch_away_message(OscarData *od, const char *sn); guint32 aim_locate_getcaps(OscarData *od, ByteStream *bs, int len); guint32 aim_locate_getcaps_short(OscarData *od, ByteStream *bs, int len); void aim_info_free(aim_userinfo_t *); diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/protocols/zephyr/zephyr.c --- a/libpurple/protocols/zephyr/zephyr.c Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/protocols/zephyr/zephyr.c Thu Jan 17 05:53:25 2008 +0000 @@ -165,7 +165,7 @@ size_t len = strlen(zsubstr); result = write(zephyr->totzc[ZEPHYR_FD_WRITE],zsubstr,len); if (result != len) { - purple_debug_error("zephyr", "Unable to write a message: %s\n", strerror(errno)); + purple_debug_error("zephyr", "Unable to write a message: %s\n", g_strerror(errno)); } else { ret_val = ZERR_NONE; } @@ -1380,7 +1380,7 @@ size_t len = strlen(zlocstr); size_t result = write(zephyr->totzc[ZEPHYR_FD_WRITE],zlocstr,len); if (result != len) { - purple_debug_error("zephyr", "Unable to write a message: %s\n", strerror(errno)); + purple_debug_error("zephyr", "Unable to write a message: %s\n", g_strerror(errno)); } g_free(zlocstr); } @@ -2293,7 +2293,7 @@ len = strlen(zlocstr); result = write(zephyr->totzc[ZEPHYR_FD_WRITE],zlocstr,len); if (result != len) { - purple_debug_error("zephyr", "Unable to write a message: %s\n", strerror(errno)); + purple_debug_error("zephyr", "Unable to write a message: %s\n", g_strerror(errno)); } g_free(zlocstr); } @@ -2322,7 +2322,7 @@ len = strlen(zexpstr); result = write(zephyr->totzc[ZEPHYR_FD_WRITE],zexpstr,len); if (result != len) { - purple_debug_error("zephyr", "Unable to write message: %s\n", strerror(errno)); + purple_debug_error("zephyr", "Unable to write message: %s\n", g_strerror(errno)); } g_free(zexpstr); } @@ -2336,7 +2336,7 @@ len = strlen(zexpstr); result = write(zephyr->totzc[ZEPHYR_FD_WRITE],zexpstr,len); if (result != len) { - purple_debug_error("zephyr", "Unable to write message: %s\n", strerror(errno)); + purple_debug_error("zephyr", "Unable to write message: %s\n", g_strerror(errno)); } g_free(zexpstr); } diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/prpl.c --- a/libpurple/prpl.c Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/prpl.c Thu Jan 17 05:53:25 2008 +0000 @@ -87,7 +87,7 @@ } const char * -purple_attention_type_get_name(PurpleAttentionType *type) +purple_attention_type_get_name(const PurpleAttentionType *type) { g_return_val_if_fail(type != NULL, NULL); @@ -95,7 +95,7 @@ } const char * -purple_attention_type_get_incoming_desc(PurpleAttentionType *type) +purple_attention_type_get_incoming_desc(const PurpleAttentionType *type) { g_return_val_if_fail(type != NULL, NULL); @@ -103,7 +103,7 @@ } const char * -purple_attention_type_get_outgoing_desc(PurpleAttentionType *type) +purple_attention_type_get_outgoing_desc(const PurpleAttentionType *type) { g_return_val_if_fail(type != NULL, NULL); @@ -111,7 +111,7 @@ } const char * -purple_attention_type_get_icon_name(PurpleAttentionType *type) +purple_attention_type_get_icon_name(const PurpleAttentionType *type) { g_return_val_if_fail(type != NULL, NULL); @@ -122,7 +122,7 @@ } const char * -purple_attention_type_get_unlocalized_name(PurpleAttentionType *type) +purple_attention_type_get_unlocalized_name(const PurpleAttentionType *type) { g_return_val_if_fail(type != NULL, NULL); diff -r 840e7e1b6dac -r 0d7d0a60d42d libpurple/prpl.h --- a/libpurple/prpl.h Thu Jan 17 05:53:12 2008 +0000 +++ b/libpurple/prpl.h Thu Jan 17 05:53:25 2008 +0000 @@ -491,7 +491,7 @@ * @return The name. * @since 2.4.0 */ -const char *purple_attention_type_get_name(PurpleAttentionType *type); +const char *purple_attention_type_get_name(const PurpleAttentionType *type); /** * Get the attention type's description shown when the event is received. @@ -500,7 +500,7 @@ * @return The description. * @since 2.4.0 */ -const char *purple_attention_type_get_incoming_desc(PurpleAttentionType *type); +const char *purple_attention_type_get_incoming_desc(const PurpleAttentionType *type); /** * Get the attention type's description shown when the event is sent. @@ -509,7 +509,7 @@ * @return The description. * @since 2.4.0 */ -const char *purple_attention_type_get_outgoing_desc(PurpleAttentionType *type); +const char *purple_attention_type_get_outgoing_desc(const PurpleAttentionType *type); /** * Get the attention type's icon name. @@ -519,7 +519,7 @@ * @note Icons are optional for attention events. * @since 2.4.0 */ -const char *purple_attention_type_get_icon_name(PurpleAttentionType *type); +const char *purple_attention_type_get_icon_name(const PurpleAttentionType *type); /** * Get the attention type's unlocalized name; this is useful for some UIs. @@ -528,7 +528,7 @@ * @return The unlocalized name. * @since 2.4.0 */ -const char *purple_attention_type_get_unlocalized_name(PurpleAttentionType *type); +const char *purple_attention_type_get_unlocalized_name(const PurpleAttentionType *type); /*@}*/