Mercurial > pidgin.yaz
comparison libpurple/protocols/jabber/presence.c @ 29403:a363b5aff793
jabber: Add a PurpleAccount convenience variable.
...because what jabber_presence_parse() needs is another function-scoped var.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Wed, 10 Feb 2010 05:22:00 +0000 |
parents | db0762fbb60b |
children | 9c9cfcd69181 |
comparison
equal
deleted
inserted
replaced
29402:db0762fbb60b | 29403:a363b5aff793 |
---|---|
500 JabberBuddy *jb; | 500 JabberBuddy *jb; |
501 JabberBuddyResource *jbr = NULL, *found_jbr = NULL; | 501 JabberBuddyResource *jbr = NULL, *found_jbr = NULL; |
502 PurpleConvChatBuddyFlags flags = PURPLE_CBFLAGS_NONE; | 502 PurpleConvChatBuddyFlags flags = PURPLE_CBFLAGS_NONE; |
503 gboolean delayed = FALSE; | 503 gboolean delayed = FALSE; |
504 const gchar *stamp = NULL; /* from <delayed/> element */ | 504 const gchar *stamp = NULL; /* from <delayed/> element */ |
505 PurpleAccount *account; | |
505 PurpleBuddy *b = NULL; | 506 PurpleBuddy *b = NULL; |
506 char *buddy_name; | 507 char *buddy_name; |
507 JabberBuddyState state = JABBER_BUDDY_STATE_UNKNOWN; | 508 JabberBuddyState state = JABBER_BUDDY_STATE_UNKNOWN; |
508 xmlnode *y; | 509 xmlnode *y; |
509 char *avatar_hash = NULL; | 510 char *avatar_hash = NULL; |
521 signal_return = GPOINTER_TO_INT(purple_signal_emit_return_1(purple_connection_get_prpl(js->gc), | 522 signal_return = GPOINTER_TO_INT(purple_signal_emit_return_1(purple_connection_get_prpl(js->gc), |
522 "jabber-receiving-presence", js->gc, type, from, packet)); | 523 "jabber-receiving-presence", js->gc, type, from, packet)); |
523 if (signal_return) | 524 if (signal_return) |
524 return; | 525 return; |
525 | 526 |
527 account = purple_connection_get_account(js->gc); | |
528 | |
526 jid = jabber_id_new(from); | 529 jid = jabber_id_new(from); |
527 if (jid == NULL) { | 530 if (jid == NULL) { |
528 purple_debug_error("jabber", "Ignoring presence with malformed 'from' " | 531 purple_debug_error("jabber", "Ignoring presence with malformed 'from' " |
529 "JID: %s\n", from); | 532 "JID: %s\n", from); |
530 return; | 533 return; |
557 state = JABBER_BUDDY_STATE_ERROR; | 560 state = JABBER_BUDDY_STATE_ERROR; |
558 jb->error_msg = msg ? msg : g_strdup(_("Unknown Error in presence")); | 561 jb->error_msg = msg ? msg : g_strdup(_("Unknown Error in presence")); |
559 } else if (g_str_equal(type, "subscribe")) { | 562 } else if (g_str_equal(type, "subscribe")) { |
560 struct _jabber_add_permit *jap = g_new0(struct _jabber_add_permit, 1); | 563 struct _jabber_add_permit *jap = g_new0(struct _jabber_add_permit, 1); |
561 gboolean onlist = FALSE; | 564 gboolean onlist = FALSE; |
562 PurpleAccount *account; | |
563 PurpleBuddy *buddy; | 565 PurpleBuddy *buddy; |
564 JabberBuddy *jb = NULL; | 566 JabberBuddy *jb = NULL; |
565 xmlnode *nick; | 567 xmlnode *nick; |
566 | 568 |
567 account = purple_connection_get_account(js->gc); | |
568 buddy = purple_find_buddy(account, from); | 569 buddy = purple_find_buddy(account, from); |
569 nick = xmlnode_get_child_with_namespace(packet, "nick", "http://jabber.org/protocol/nick"); | 570 nick = xmlnode_get_child_with_namespace(packet, "nick", "http://jabber.org/protocol/nick"); |
570 if (nick) | 571 if (nick) |
571 nickname = xmlnode_get_data(nick); | 572 nickname = xmlnode_get_data(nick); |
572 | 573 |
746 _("Create New Room"), | 747 _("Create New Room"), |
747 _("You are creating a new room. Would" | 748 _("You are creating a new room. Would" |
748 " you like to configure it, or" | 749 " you like to configure it, or" |
749 " accept the default settings?"), | 750 " accept the default settings?"), |
750 /* Default Action */ 1, | 751 /* Default Action */ 1, |
751 purple_connection_get_account(js->gc), NULL, chat->conv, | 752 account, NULL, chat->conv, |
752 chat, 2, | 753 chat, 2, |
753 _("_Configure Room"), G_CALLBACK(jabber_chat_request_room_configure), | 754 _("_Configure Room"), G_CALLBACK(jabber_chat_request_room_configure), |
754 _("_Accept Defaults"), G_CALLBACK(jabber_chat_create_instant_room)); | 755 _("_Accept Defaults"), G_CALLBACK(jabber_chat_create_instant_room)); |
755 } | 756 } |
756 } else if (g_str_equal(code, "210")) { | 757 } else if (g_str_equal(code, "210")) { |
955 g_return_if_reached(); | 956 g_return_if_reached(); |
956 } | 957 } |
957 } else { | 958 } else { |
958 buddy_name = g_strdup_printf("%s%s%s", jid->node ? jid->node : "", | 959 buddy_name = g_strdup_printf("%s%s%s", jid->node ? jid->node : "", |
959 jid->node ? "@" : "", jid->domain); | 960 jid->node ? "@" : "", jid->domain); |
960 if((b = purple_find_buddy(js->gc->account, buddy_name)) == NULL) { | 961 if((b = purple_find_buddy(account, buddy_name)) == NULL) { |
961 if (jb != js->user_jb) { | 962 if (jb != js->user_jb) { |
962 purple_debug_warning("jabber", "Got presence for unknown buddy %s on account %s (%p)\n", | 963 purple_debug_warning("jabber", "Got presence for unknown buddy %s on account %s (%p)\n", |
963 buddy_name, purple_account_get_username(js->gc->account), js->gc->account); | 964 buddy_name, purple_account_get_username(account), account); |
964 jabber_id_free(jid); | 965 jabber_id_free(jid); |
965 g_free(avatar_hash); | 966 g_free(avatar_hash); |
966 g_free(buddy_name); | 967 g_free(buddy_name); |
967 g_free(nickname); | 968 g_free(nickname); |
968 g_free(status); | 969 g_free(status); |
1002 (type && (g_str_equal(type, "unavailable") || | 1003 (type && (g_str_equal(type, "unavailable") || |
1003 g_str_equal(type, "unsubscribed")))) { | 1004 g_str_equal(type, "unsubscribed")))) { |
1004 PurpleConversation *conv; | 1005 PurpleConversation *conv; |
1005 | 1006 |
1006 jabber_buddy_remove_resource(jb, jid->resource); | 1007 jabber_buddy_remove_resource(jb, jid->resource); |
1007 if((conv = jabber_find_unnormalized_im_conv(from, js->gc->account))) | 1008 if((conv = jabber_find_unnormalized_im_conv(from, account))) |
1008 /* | 1009 /* |
1009 * If a resource went offline (or the buddy unsubscribed), | 1010 * If a resource went offline (or the buddy unsubscribed), |
1010 * send further messages to the bare JID. (This is also | 1011 * send further messages to the bare JID. (This is also |
1011 * updated in message.c when receiving a message) | 1012 * updated in message.c when receiving a message) |
1012 */ | 1013 */ |
1022 } | 1023 } |
1023 } | 1024 } |
1024 | 1025 |
1025 if((found_jbr = jabber_buddy_find_resource(jb, NULL))) { | 1026 if((found_jbr = jabber_buddy_find_resource(jb, NULL))) { |
1026 jabber_google_presence_incoming(js, buddy_name, found_jbr); | 1027 jabber_google_presence_incoming(js, buddy_name, found_jbr); |
1027 purple_prpl_got_user_status(js->gc->account, buddy_name, jabber_buddy_state_get_status_id(found_jbr->state), "priority", found_jbr->priority, "message", found_jbr->status, NULL); | 1028 purple_prpl_got_user_status(account, buddy_name, jabber_buddy_state_get_status_id(found_jbr->state), "priority", found_jbr->priority, "message", found_jbr->status, NULL); |
1028 purple_prpl_got_user_idle(js->gc->account, buddy_name, found_jbr->idle, found_jbr->idle); | 1029 purple_prpl_got_user_idle(account, buddy_name, found_jbr->idle, found_jbr->idle); |
1029 if (nickname) | 1030 if (nickname) |
1030 serv_got_alias(js->gc, buddy_name, nickname); | 1031 serv_got_alias(js->gc, buddy_name, nickname); |
1031 } else { | 1032 } else { |
1032 purple_prpl_got_user_status(js->gc->account, buddy_name, "offline", status ? "message" : NULL, status, NULL); | 1033 purple_prpl_got_user_status(account, buddy_name, "offline", status ? "message" : NULL, status, NULL); |
1033 } | 1034 } |
1034 g_free(buddy_name); | 1035 g_free(buddy_name); |
1035 } | 1036 } |
1036 | 1037 |
1037 if (caps && !type) { | 1038 if (caps && !type) { |