--- a/libpurple/media/backend-fs2.c Tue Sep 15 21:40:59 2015 -0300
+++ b/libpurple/media/backend-fs2.c Sat Oct 17 20:41:26 2015 -0400
@@ -30,15 +30,10 @@
-#include <gst/farsight/fs-conference-iface.h>
-#include <gst/farsight/fs-element-added-notifier.h>
#include <farstream/fs-conference.h>
#include <farstream/fs-element-added-notifier.h>
#include <farstream/fs-utils.h>
#include <gst/gststructure.h>
/** @copydoc _PurpleMediaBackendFs2Class */
typedef struct _PurpleMediaBackendFs2Class PurpleMediaBackendFs2Class;
@@ -131,9 +126,7 @@
@@ -170,9 +163,7 @@
FsConference *conference;
FsElementAddedNotifier *notifier;
GHashTable *participants;
@@ -348,12 +339,10 @@
purple_debug_info("backend-fs2", "purple_media_backend_fs2_dispose\n");
g_object_unref(priv->notifier);
@@ -964,7 +953,7 @@
const gchar *error_msg = gst_structure_get_string(fs_error, "error-msg");
purple_media_error(media, "%s%s%s", error,
- error_msg ? _("\n\nMessage from Farsight: ") : "",
+ error_msg ? _("\n\nMessage from Farstream: ") : "", error_msg ? error_msg : "");
@@ -1035,11 +1024,7 @@
priv->conference != FS_CONFERENCE(src))
- if (gst_structure_has_name(structure, "farsight-error")) {
if (gst_structure_has_name(structure, "farstream-error")) {
gboolean error_emitted = FALSE;
gst_structure_get_enum(structure, "error-no",
@@ -1049,11 +1034,7 @@
purple_media_error_fs(priv->media,
_("Error initializing the call. "
"This probably denotes problem in "
- "installation of GStreamer or Farsight."),
"installation of GStreamer or Farstream."),
@@ -1080,34 +1061,9 @@
purple_media_end(priv->media, NULL, NULL);
- case FS_ERROR_NO_CODECS_LEFT:
- purple_media_error(priv->media,
- _("No codecs left. Your codec preferences "
- "in fs-codecs.conf are too strict."));
- purple_media_end(priv->media, NULL, NULL);
- case FS_ERROR_CONNECTION_FAILED:
- purple_media_error(priv->media,
- _("Could not connect to the remote party"));
- case FS_ERROR_UNKNOWN_CNAME:
- * Unknown CName is only a problem for the
- * multicast transmitter which isn't used.
- * It is also deprecated.
purple_debug_error("backend-fs2",
- "farsight-error: %i: %s\n",
"farstream-error: %i: %s\n",
gst_structure_get_string(structure, "error-msg"));
@@ -1115,21 +1071,12 @@
if (FS_ERROR_IS_FATAL(error_no)) {
- purple_media_error(priv->media,
- _("A non-recoverable Farsight2 error has occurred."));
purple_media_error(priv->media,
_("A non-recoverable Farstream error has occurred."));
purple_media_end(priv->media, NULL, NULL);
} else if (gst_structure_has_name(structure,
- "farsight-new-local-candidate")) {
"farstream-new-local-candidate")) {
FsCandidate *local_candidate;
@@ -1164,11 +1111,7 @@
session->id, name, candidate);
g_object_unref(candidate);
} else if (gst_structure_has_name(structure,
- "farsight-local-candidates-prepared")) {
"farstream-local-candidates-prepared")) {
FsParticipant *participant;
@@ -1186,11 +1129,7 @@
g_signal_emit_by_name(self, "candidates-prepared",
} else if (gst_structure_has_name(structure,
- "farsight-new-active-candidate-pair")) {
"farstream-new-active-candidate-pair")) {
FsCandidate *local_candidate;
@@ -1222,11 +1161,7 @@
g_object_unref(lcandidate);
g_object_unref(rcandidate);
} else if (gst_structure_has_name(structure,
- "farsight-recv-codecs-changed")) {
"farstream-recv-codecs-changed")) {
@@ -1236,18 +1171,10 @@
purple_debug_info("backend-fs2",
- "farsight-recv-codecs-changed: %s\n",
"farstream-recv-codecs-changed: %s\n",
} else if (gst_structure_has_name(structure,
- "farsight-component-state-changed")) {
"farstream-component-state-changed")) {
@@ -1283,19 +1210,11 @@
purple_debug_info("backend-fs2",
- "farsight-component-state-changed: "
"farstream-component-state-changed: "
"component: %u state: %s\n",
} else if (gst_structure_has_name(structure,
- "farsight-send-codec-changed")) {
"farstream-send-codec-changed")) {
@@ -1305,20 +1224,12 @@
codec_str = fs_codec_to_string(codec);
purple_debug_info("backend-fs2",
- "farsight-send-codec-changed: codec: %s\n",
"farstream-send-codec-changed: codec: %s\n",
} else if (gst_structure_has_name(structure,
- "farsight-codecs-changed")) {
"farstream-codecs-changed")) {
@@ -1495,17 +1406,12 @@
purple_media_is_initiator(media, sid, name))
- fs_stream_set_remote_candidates(stream->stream,
- stream->remote_candidates, &err);
if (stream->supports_add)
fs_stream_add_remote_candidates(stream->stream,
stream->remote_candidates, &err);
fs_stream_force_remote_candidates(stream->stream,
stream->remote_candidates, &err);
@@ -1585,9 +1491,7 @@
priv->conference = FS_CONFERENCE(
gst_element_factory_make(priv->conference_type, NULL));
@@ -1630,7 +1534,6 @@
default_props = fs_utils_get_default_element_properties(GST_ELEMENT(priv->conference));
if (default_props != NULL) {
priv->notifier = fs_element_added_notifier_new();
@@ -1638,7 +1541,6 @@
fs_element_added_notifier_set_properties_from_keyfile(priv->notifier, default_props);
g_signal_connect(G_OBJECT(bus), "message",
G_CALLBACK(gst_bus_cb), self);
@@ -1931,11 +1833,7 @@
participant = fs_conference_new_participant(
- priv->conference, name, &err);
purple_debug_error("backend-fs2",
@@ -1945,12 +1843,10 @@
if (g_object_class_find_property(G_OBJECT_GET_CLASS(participant),
g_object_set(participant, "cname", name, NULL);
if (!priv->participants) {
purple_debug_info("backend-fs2",
@@ -2144,7 +2040,6 @@
fsstream = fs_session_new_stream(session->session, participant,
initiator == TRUE ? type_direction :
(type_direction & FS_DIRECTION_RECV), &err);
@@ -2161,7 +2056,6 @@
"Error creating stream\n");
for (i = 0 ; i < num_params ; i++) {
if (purple_strequal(params[i].name, "relay-info")) {
@@ -2227,26 +2121,6 @@
- fsstream = fs_session_new_stream(session->session, participant,
- initiator == TRUE ? type_direction :
- (type_direction & FS_DIRECTION_RECV), transmitter,
- _num_params, _params, &err);
- if (fsstream == NULL) {
- purple_debug_error("backend-fs2",
- "Error creating stream: %s\n",
- err->message : "NULL");
- purple_debug_error("backend-fs2",
- "Error creating stream\n");
if (!fs_stream_set_transmitter(fsstream, transmitter,
_params, _num_params, &err)) {
purple_debug_error("backend-fs2",
@@ -2257,15 +2131,12 @@
stream = g_new0(PurpleMediaBackendFs2Stream, 1);
stream->participant = g_strdup(who);
stream->session = session;
stream->stream = fsstream;
stream->supports_add = !strcmp(transmitter, "nice");
priv->streams = g_list_append(priv->streams, stream);
@@ -2378,17 +2249,13 @@
if (purple_media_is_initiator(priv->media, sess_id, participant) ||
priv->media, sess_id, participant)) {
- fs_stream_set_remote_candidates(stream->stream,
- stream->remote_candidates, &err);
if (stream->supports_add)
fs_stream_add_remote_candidates(stream->stream,
stream->remote_candidates, &err);
fs_stream_force_remote_candidates(stream->stream,
stream->remote_candidates, &err);
purple_debug_error("backend-fs2", "Error adding remote"
@@ -2421,10 +2288,7 @@
PURPLE_MEDIA_SEND_APPLICATION |
PURPLE_MEDIA_SEND_VIDEO)) {
- g_object_get(session->session,
- "codecs-ready", &ret, NULL);
g_object_get(session->session,
@@ -2433,7 +2297,6 @@
fs_codec_list_destroy (codecs);
@@ -2447,12 +2310,7 @@
PURPLE_MEDIA_SEND_APPLICATION |
PURPLE_MEDIA_SEND_VIDEO)) {
- g_object_get(session->session,
- "codecs-ready", &ret, NULL);
g_object_get(session->session,
@@ -2464,7 +2322,6 @@
@@ -2702,9 +2559,7 @@
PurpleMediaBackendFs2Private *priv;
g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self));
@@ -2717,15 +2572,6 @@
- for (i = 0; i != num_params; ++i) {
- if (param_to_sdes_type(params[i].name)) {
- g_object_set(priv->conference,
- params[i].name, g_value_get_string(¶ms[i].value),
g_object_get(G_OBJECT(priv->conference), "sdes", &sdes, NULL);
for (i = 0; i != num_params; ++i) {
@@ -2740,7 +2586,6 @@
g_object_set(G_OBJECT(priv->conference), "sdes", sdes, NULL);
gst_structure_free(sdes);
-#endif /* HAVE_FARSIGHT */
send_dtmf_callback(gpointer userdata)
--- a/libpurple/protocols/yahoo/yahoo_profile.c Tue Sep 15 21:40:59 2015 -0300
+++ b/libpurple/protocols/yahoo/yahoo_profile.c Sat Oct 17 20:41:26 2015 -0400
@@ -413,7 +413,7 @@
@@ -426,11 +426,7 @@
- "自己PR", /* "Self description" comes before "Links" for yahoo.co.jp */
+ "おすすめサイト", /* XXX: this used to have a Yahoo Japan-specific annotation */ @@ -796,8 +792,7 @@
user_info = purple_notify_user_info_new();
- title = yd->jp ? _("Yahoo! Japan Profile") :
+ title = _("Yahoo! Profile"); /* Get the tooltip info string */
yahoo_extract_user_info_text(user_info, info_data);
@@ -821,7 +816,7 @@
/* Construct the correct profile URL */
s = g_string_sized_new(80); /* wild guess */
- g_string_printf(s, "%s%s", (yd->jp? YAHOOJP_PROFILE_URL: YAHOO_PROFILE_URL),
+ g_string_printf(s, "%s%s", YAHOO_PROFILE_URL, profile_url_text = g_string_free(s, FALSE);
@@ -949,7 +944,6 @@
YahooGetInfoStepTwoData *info2_data = _info2_data;
/* Temporary variables */
@@ -979,8 +973,6 @@
g_return_if_fail(strings != NULL);
- yd = purple_connection_get_protocol_data(info_data->gc);
fudged_buffer = purple_strcasereplace(url_buffer, "</dd>", "</dd><br>");
/* nuke the html, it's easier than trying to parse the horrid stuff */
stripped = purple_markup_strip_html(fudged_buffer);
@@ -1023,7 +1015,7 @@
/* extract their Yahoo! ID and put it in. Don't bother marking has_info as
* true, since the Yahoo! ID will always be there */
if (!purple_markup_extract_info_field(stripped, stripped_len, user_info,
- strings->yahoo_id_string, (yd->jp ? 2 : 10), "\n", 0,
+ strings->yahoo_id_string, 10, "\n", 0, NULL, _("Yahoo! ID"), 0, NULL, NULL))
@@ -1053,7 +1045,7 @@
/* extract their Email address and put it in */
found |= purple_markup_extract_info_field(stripped, stripped_len, user_info,
- strings->my_email_string, (yd->jp ? 4 : 1), " ", 0,
+ strings->my_email_string, 1, " ", 0, strings->private_string, _("Email"), 0, NULL, NULL);
/* extract the Nickname if it exists */
@@ -1063,27 +1055,27 @@
/* extract their RealName and put it in */
found |= purple_markup_extract_info_field(stripped, stripped_len, user_info,
- strings->realname_string, (yd->jp ? 3 : 1), "\n", '\n',
+ strings->realname_string, 1, "\n", '\n', NULL, _("Real Name"), 0, NULL, NULL);
/* extract their Location and put it in */
found |= purple_markup_extract_info_field(stripped, stripped_len, user_info,
- strings->location_string, (yd->jp ? 4 : 2), "\n", '\n',
+ strings->location_string, 2, "\n", '\n', NULL, _("Location"), 0, NULL, NULL);
/* extract their Age and put it in */
found |= purple_markup_extract_info_field(stripped, stripped_len, user_info,
- strings->age_string, (yd->jp ? 2 : 3), "\n", '\n',
+ strings->age_string, 3, "\n", '\n', NULL, _("Age"), 0, NULL, NULL);
/* extract their MaritalStatus and put it in */
found |= purple_markup_extract_info_field(stripped, stripped_len, user_info,
- strings->maritalstatus_string, (yd->jp ? 2 : 3), "\n", '\n',
+ strings->maritalstatus_string, 3, "\n", '\n', strings->no_answer_string, _("Marital Status"), 0, NULL, NULL);
/* extract their Gender and put it in */
found |= purple_markup_extract_info_field(stripped, stripped_len, user_info,
- strings->gender_string, (yd->jp ? 2 : 3), "\n", '\n',
+ strings->gender_string, 3, "\n", '\n', strings->no_answer_string, _("Gender"), 0, NULL, NULL);
/* extract their Occupation and put it in */
@@ -1096,12 +1088,11 @@
* can also not appear. The way we delimit them is to successively
* look for the next one that _could_ appear, and if all else fails,
* we end the section by looking for the 'Links' heading, which is the
- * next thing to follow this bunch. (For Yahoo Japan, we check for
- * the "Description" ("Self PR") heading instead of "Links".)
+ * next thing to follow this bunch. if (!purple_markup_extract_info_field(stripped, stripped_len, user_info,
- strings->hobbies_string, (yd->jp ? 3 : 1), strings->latest_news_string,
+ strings->hobbies_string, 1, strings->latest_news_string, '\n', "\n", _("Hobbies"), 0, NULL, NULL))
if (!purple_markup_extract_info_field(stripped, stripped_len, user_info,
@@ -1123,7 +1114,7 @@
'\n', "\n", _("Latest News"), 0, NULL, NULL))
found |= purple_markup_extract_info_field(stripped, stripped_len, user_info,
- strings->latest_news_string, (yd->jp ? 2 : 1), strings->links_string,
+ strings->latest_news_string, 1, strings->links_string, '\n', "\n", _("Latest News"), 0, NULL, NULL);
@@ -1135,8 +1126,6 @@
/* Home Page will either be "No home page specified",
* or "Home Page: " and a link.
- * For Yahoo! Japan, if there is no home page specified,
- * neither "No home page specified" nor "Home Page:" is shown.
if (strings->home_page_string) {
p = !strings->no_home_page_specified_string? NULL:
@@ -1182,8 +1171,8 @@
/* extract the Last Updated date and put it in */
found |= purple_markup_extract_info_field(stripped, stripped_len, user_info,
- last_updated_utf8_string, (yd->jp ? 2 : 1), (yd->jp ? "\n" : " "), (yd->jp ? 0 : '\n'), NULL,
- _("Last Update"), 0, NULL, (yd->jp ? NULL : yahoo_info_date_reformat));
+ last_updated_utf8_string, 1, " ", '\n', NULL, + _("Last Update"), 0, NULL, yahoo_info_date_reformat); } /* if (profile_state == PROFILE_STATE_DEFAULT) */
@@ -1266,5 +1255,5 @@
purple_http_connection_set_add(yd->http_reqs, purple_http_get_printf(gc,
yahoo_got_info, data, "%s%s",
- (yd->jp ? YAHOOJP_PROFILE_URL : YAHOO_PROFILE_URL), name));
+ YAHOO_PROFILE_URL, name)); --- a/libpurple/protocols/yahoo/ymsg.c Tue Sep 15 21:40:59 2015 -0300
+++ b/libpurple/protocols/yahoo/ymsg.c Sat Oct 17 20:41:26 2015 -0400
@@ -76,11 +76,6 @@
PurpleHttpResponse *response, gpointer _unused);
#endif /* TRY_WEBMESSENGER_LOGIN */
-static gboolean yahoo_is_japan(PurpleAccount *account)
- return purple_strequal(purple_account_get_protocol_id(account), "prpl-yahoojp");
static void yahoo_update_status(PurpleConnection *gc, const char *name, YahooFriend *f)
@@ -164,8 +159,6 @@
gboolean unicode = FALSE;
- YahooFederation fed = YAHOO_FEDERATION_NONE;
if (pkt->service == YAHOO_SERVICE_LOGOFF && pkt->status == -1) {
if (!purple_account_get_remember_password(account))
@@ -195,38 +188,8 @@
if (pair->value && g_utf8_validate(pair->value, -1, NULL)) {
- /* Look ahead to see if we have the federation info about the buddy */
- for (tmplist = l->next; tmplist; tmplist = tmplist->next) {
- struct yahoo_pair *p = tmplist->data;
- fed = strtol(p->value, NULL, 10);
- case YAHOO_FEDERATION_MSN:
- name = fedname = g_strconcat("msn/", name, NULL);
- case YAHOO_FEDERATION_OCS:
- name = fedname = g_strconcat("ocs/", name, NULL);
- case YAHOO_FEDERATION_IBM:
- name = fedname = g_strconcat("ibm/", name, NULL);
- case YAHOO_FEDERATION_NONE:
f = yahoo_friend_find_or_new(gc, name);
@@ -384,8 +347,6 @@
if(f && strtol(pair->value, NULL, 10))
f->version_id = strtol(pair->value, NULL, 10);
- case 241: /* Federated network buddy belongs to */
- break; /* We process this when get '7' */
purple_debug_warning("yahoo",
"Unknown status key %d\n", pair->key);
@@ -404,8 +365,6 @@
if (name) /* update the last buddy */
yahoo_update_status(gc, name, f);
static void yahoo_do_group_check(PurpleAccount *account, GHashTable *ht, const char *name, const char *group)
@@ -512,7 +471,6 @@
YahooFriend *f = NULL; /* It's your friends. They're going to want you to share your StarBursts. */
/* But what if you had no friends? */
- YahooFederation fed = YAHOO_FEDERATION_NONE;
ht = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_slist_free);
@@ -537,23 +495,8 @@
case 301: /* This is 319 before all s/n's in a group after the first. It is followed by an identical 300. */
- case YAHOO_FEDERATION_MSN:
- norm_bud = g_strconcat("msn/", temp, NULL);
- case YAHOO_FEDERATION_OCS:
- norm_bud = g_strconcat("ocs/", temp, NULL);
- case YAHOO_FEDERATION_IBM:
- norm_bud = g_strconcat("ibm/", temp, NULL);
- case YAHOO_FEDERATION_PBX:
- norm_bud = g_strconcat("pbx/", temp, NULL);
- case YAHOO_FEDERATION_NONE:
- norm_bud = g_strdup(temp);
+ norm_bud = g_strdup(temp); if (yd->current_list15_grp) {
/* This buddy is in a group */
f = yahoo_friend_find_or_new(gc, norm_bud);
@@ -568,19 +511,12 @@
purple_blist_add_buddy(b, NULL, g, NULL);
yahoo_do_group_check(account, ht, norm_bud, yd->current_list15_grp);
- purple_debug_info("yahoo", "Setting federation to %d\n", f->fed);
f->presence = YAHOO_PRESENCE_PERM_OFFLINE;
- /* set p2p status not connected and no p2p packet sent */
- if(fed == YAHOO_FEDERATION_NONE) {
- yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_NOT_CONNECTED);
- f->p2p_packet_sent = 0;
- yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_DO_NOT_CONNECT);
+ yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_NOT_CONNECTED); + f->p2p_packet_sent = 0; /* This buddy is on the ignore list (and therefore in no group) */
purple_debug_info("yahoo", "%s adding %s to the deny list because of the ignore list / no group was found\n", purple_account_get_username(account), norm_bud);
@@ -589,7 +525,6 @@
- fed = YAHOO_FEDERATION_NONE;
@@ -610,9 +545,6 @@
"got non-UTF-8 string for key %d\n", pair->key);
- case 241: /* user on federated network */
- fed = strtol(pair->value, NULL, 10);
case 59: /* somebody told cookies come here too, but im not sure */
if (g_utf8_validate(pair->value, -1, NULL)) {
yahoo_process_cookie(yd, pair->value);
@@ -624,8 +556,6 @@
case 317: /* Stealth Setting */
stealth = strtol(pair->value, NULL, 10);
- /* case 242: */ /* this seems related to 241 */
@@ -832,7 +762,6 @@
YahooData *yd = purple_connection_get_protocol_data(gc);
- YahooFederation fed = YAHOO_FEDERATION_NONE;
account = purple_connection_get_account(gc);
@@ -858,8 +787,6 @@
} else if (pair->key == 11) {
val_11 = strtol(pair->value, NULL, 10);
- } else if (pair->key == 241) {
- fed = strtol(pair->value, NULL, 10);
@@ -868,7 +795,7 @@
/* disconnect the peer if connected through p2p and sends wrong value for session id */
- if( (pkt_type == YAHOO_PKT_TYPE_P2P) && (val_11 != yd->session_id) ) {
+ if ((pkt_type == YAHOO_PKT_TYPE_P2P) && (val_11 != yd->session_id)) { purple_debug_warning("yahoo","p2p: %s sent us notify with wrong session id. Disconnecting p2p connection to peer\n", from);
/* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */
g_hash_table_remove(yd->peers, from);
@@ -878,32 +805,11 @@
if (!g_ascii_strncasecmp(msg, "TYPING", strlen("TYPING"))
&& (purple_account_privacy_check(account, from)))
- case YAHOO_FEDERATION_MSN:
- fed_from = g_strconcat("msn/", from, NULL);
- case YAHOO_FEDERATION_OCS:
- fed_from = g_strconcat("ocs/", from, NULL);
- case YAHOO_FEDERATION_IBM:
- fed_from = g_strconcat("ibm/", from, NULL);
- case YAHOO_FEDERATION_PBX:
- fed_from = g_strconcat("pbx/", from, NULL);
- case YAHOO_FEDERATION_NONE:
if (stat && *stat == '1')
- purple_serv_got_typing(gc, fed_from, 0, PURPLE_IM_TYPING);
+ purple_serv_got_typing(gc, from, 0, PURPLE_IM_TYPING); - purple_serv_got_typing_stopped(gc, fed_from);
+ purple_serv_got_typing_stopped(gc, from); } else if (!g_ascii_strncasecmp(msg, "GAME", strlen("GAME"))) {
PurpleBuddy *bud = purple_blist_find_buddy(account, from);
@@ -942,8 +848,6 @@
static void yahoo_process_sms_message(PurpleConnection *gc, struct yahoo_packet *pkt)
@@ -1049,8 +953,6 @@
- im->fed = YAHOO_FEDERATION_NONE;
- im->fed_from = g_strdup(im->from);
purple_debug_warning("yahoo", "yahoo_process_message "
"got non-UTF-8 string for key %d\n", pair->key);
@@ -1069,47 +971,23 @@
} else if (pair->key == 14) {
- } else if (im && pair->key == 241) {
- im->fed = strtol(pair->value, NULL, 10);
- case YAHOO_FEDERATION_MSN:
- im->fed_from = g_strconcat("msn/",im->from, NULL);
- case YAHOO_FEDERATION_OCS:
- im->fed_from = g_strconcat("ocs/",im->from, NULL);
- case YAHOO_FEDERATION_IBM:
- im->fed_from = g_strconcat("ibm/",im->from, NULL);
- case YAHOO_FEDERATION_PBX:
- im->fed_from = g_strconcat("pbx/",im->from, NULL);
- case YAHOO_FEDERATION_NONE:
- im->fed_from = g_strdup(im->from);
- purple_debug_info("yahoo", "Message from federated (%d) buddy %s.\n", im->fed, im->fed_from);
} else if (im && (pair->key == 11)) {
/* disconnect the peer if connected through p2p and sends wrong value for session id */
- if( (im->fed == YAHOO_FEDERATION_NONE) && (pkt_type == YAHOO_PKT_TYPE_P2P)
+ if( (pkt_type == YAHOO_PKT_TYPE_P2P) && (yd->session_id != strtol(pair->value, NULL, 10)) )
- purple_debug_warning("yahoo","p2p: %s sent us message with wrong session id. Disconnecting p2p connection to peer\n", im->fed_from);
+ purple_debug_warning("yahoo","p2p: %s sent us message with wrong session id. Disconnecting p2p connection to peer\n", im->from); /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */
- g_hash_table_remove(yd->peers, im->fed_from);
+ g_hash_table_remove(yd->peers, im->from); return; /* Not sure whether we should process remaining IMs in this packet */
} else if (im && pair->key == 63 && g_utf8_validate(pair->value, -1, NULL)) {
- /* Check for the Doodle IMV, no IMvironment for federated buddies */
- if (im->from != NULL && im->fed == YAHOO_FEDERATION_NONE)
+ /* Check for the Doodle IMV */ g_hash_table_replace(yd->imvironments, g_strdup(im->from), g_strdup(pair->value));
@@ -1120,7 +998,6 @@
if (!purple_account_privacy_check(account, im->from)) {
purple_debug_info("yahoo", "Doodle request from %s dropped.\n",
@@ -1154,18 +1031,16 @@
for (l = list; l; l = l->next) {
- if (!im->fed_from || !im->msg) {
- if (!purple_account_privacy_check(account, im->fed_from)) {
- purple_debug_info("yahoo", "Message from %s dropped.\n", im->fed_from);
+ if (!purple_account_privacy_check(account, im->from)) { + purple_debug_info("yahoo", "Message from %s dropped.\n", im->from); @@ -1203,11 +1078,10 @@
if (!strcmp(m, "<ding>")) {
- username = g_markup_escape_text(im->fed_from, -1);
+ username = g_markup_escape_text(im->from, -1); purple_protocol_got_attention(gc, username, YAHOO_BUZZ);
@@ -1215,20 +1089,8 @@
m2 = yahoo_codes_to_html(m);
- purple_serv_got_im(gc, im->fed_from, m2, 0, im->time);
+ purple_serv_got_im(gc, im->from, m2, 0, im->time);
- /* Official clients don't share buddy images with federated buddies */
- if (im->fed == YAHOO_FEDERATION_NONE) {
- if ((f = yahoo_friend_find(gc, im->from)) && im->buddy_icon == 2) {
- if (yahoo_friend_get_buddy_icon_need_request(f)) {
- yahoo_send_picture_request(gc, im->from);
- yahoo_friend_set_buddy_icon_need_request(f, FALSE);
@@ -1276,7 +1138,6 @@
@@ -1288,22 +1149,11 @@
const char *who = add_req->who;
pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH_REQ_15, YAHOO_STATUS_AVAILABLE, yd->session_id);
- yahoo_packet_hash(pkt, "ssiii",
- yahoo_packet_hash(pkt, "ssii",
+ yahoo_packet_hash(pkt, "ssii", yahoo_packet_send_and_free(pkt, yd);
@@ -1327,26 +1177,13 @@
pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH_REQ_15,
YAHOO_STATUS_AVAILABLE, yd->session_id);
- who += 4; /* Skip fed identifier (msn|ocs|ibm)/' */
- yahoo_packet_hash(pkt, "ssiiiis",
- 14, encoded_msg ? encoded_msg : "");
- yahoo_packet_hash(pkt, "ssiiis",
- 14, encoded_msg ? encoded_msg : "");
+ yahoo_packet_hash(pkt, "ssiiis", + 14, encoded_msg ? encoded_msg : ""); yahoo_packet_send_and_free(pkt, yd);
@@ -1391,22 +1228,14 @@
/* Buddy authorized/declined our addition */
- YahooFederation fed = YAHOO_FEDERATION_NONE;
struct yahoo_pair *pair = l->data;
- if (g_utf8_validate(pair->value, -1, NULL)) {
- purple_debug_warning("yahoo", "yahoo_buddy_auth_req_15 "
- "got non-UTF-8 string for key %d\n", pair->key);
response = strtol(pair->value, NULL, 10);
@@ -1414,29 +1243,10 @@
- fed = strtol(pair->value, NULL, 10);
- case YAHOO_FEDERATION_MSN:
- who = g_strconcat("msn/", temp, NULL);
- case YAHOO_FEDERATION_OCS:
- who = g_strconcat("ocs/", temp, NULL);
- case YAHOO_FEDERATION_IBM:
- who = g_strconcat("ibm/", temp, NULL);
- case YAHOO_FEDERATION_NONE:
if (response == 1) /* Authorized */
purple_debug_info("yahoo", "Received authorization from buddy '%s'.\n", who ? who : "(Unknown Buddy)");
else if (response == 2) { /* Declined */
@@ -1450,23 +1260,15 @@
else if (pkt->status == 3) {
struct yahoo_add_request *add_req;
const char *firstname = NULL, *lastname = NULL;
add_req = g_new0(struct yahoo_add_request, 1);
- add_req->fed = YAHOO_FEDERATION_NONE;
struct yahoo_pair *pair = l->data;
- if (g_utf8_validate(pair->value, -1, NULL)) {
- purple_debug_warning("yahoo", "yahoo_buddy_auth_req_15 "
- "got non-UTF-8 string for key %d\n", pair->key);
if (g_utf8_validate(pair->value, -1, NULL)) {
@@ -1487,9 +1289,6 @@
"got non-UTF-8 string for key %d\n", pair->key);
- add_req->fed = strtol(pair->value, NULL, 10);
if (g_utf8_validate(pair->value, -1, NULL)) {
@@ -1502,21 +1301,6 @@
- switch (add_req->fed) {
- case YAHOO_FEDERATION_MSN:
- add_req->who = g_strconcat("msn/", temp, NULL);
- case YAHOO_FEDERATION_OCS:
- add_req->who = g_strconcat("ocs/", temp, NULL);
- case YAHOO_FEDERATION_IBM:
- add_req->who = g_strconcat("ibm/", temp, NULL);
- case YAHOO_FEDERATION_NONE:
- add_req->who = g_strdup(temp);
if (add_req->id && add_req->who) {
char *alias = NULL, *dec_msg = NULL;
@@ -1725,6 +1509,7 @@
+ /* XXX: Is this related to Yahoo! Japan? If so, it should be removed. -mmcco */ if (strstr(text, "\033$B"))
converted = g_convert(new, n - new, OUT_CHARSET, "iso-2022-jp", NULL, NULL, NULL);
@@ -1737,11 +1522,10 @@
static void yahoo_process_mail(PurpleConnection *gc, struct yahoo_packet *pkt)
PurpleAccount *account = purple_connection_get_account(gc);
- YahooData *yd = purple_connection_get_protocol_data(gc);
const char *email = NULL;
- const char *yahoo_mail_url = (yd->jp? YAHOOJP_MAIL_URL: YAHOO_MAIL_URL);
+ const char *yahoo_mail_url = YAHOO_MAIL_URL; @@ -1865,12 +1649,12 @@
- 244, yd->jp ? YAHOOJP_CLIENT_VERSION_ID : YAHOO_CLIENT_VERSION_ID,
+ 244, YAHOO_CLIENT_VERSION_ID, - 98, purple_account_get_string(account, "room_list_locale", yd->jp ? "jp" : "us"),
- 135, yd->jp ? YAHOOJP_CLIENT_VERSION : YAHOO_CLIENT_VERSION);
+ 98, purple_account_get_string(account, "room_list_locale", "us"), + 135, YAHOO_CLIENT_VERSION); } else { /* don't try to send an empty B cookie - the server will be mad */
yahoo_packet_hash(pkt, "sssssssss",
@@ -1878,11 +1662,11 @@
- 244, yd->jp ? YAHOOJP_CLIENT_VERSION_ID : YAHOO_CLIENT_VERSION_ID,
+ 244, YAHOO_CLIENT_VERSION_ID, - 98, purple_account_get_string(account, "room_list_locale", yd->jp ? "jp" : "us"),
- 135, yd->jp ? YAHOOJP_CLIENT_VERSION : YAHOO_CLIENT_VERSION);
+ 98, purple_account_get_string(account, "room_list_locale", "us"), + 135, YAHOO_CLIENT_VERSION); if (yd->picture_checksum)
@@ -2096,14 +1880,10 @@
- /* OK to login, correct information provided */
- gboolean yahoojp = yahoo_is_japan(account);
req = purple_http_request_new(NULL);
- purple_http_request_set_url_printf(req,
- yahoojp ? YAHOOJP_LOGIN_URL : YAHOO_LOGIN_URL,
+ purple_http_request_set_url_printf(req, YAHOO_LOGIN_URL, token); purple_http_request_header_set(req, "User-Agent",
purple_http_connection_set_add(yd->http_reqs,
@@ -2119,12 +1899,10 @@
static void yahoo_auth16_stage1(PurpleConnection *gc, const char *seed)
YahooData *yd = purple_connection_get_protocol_data(gc);
- PurpleAccount *account = purple_connection_get_account(gc);
struct yahoo_auth_data *auth_data = NULL;
- gboolean yahoojp = yahoo_is_japan(account);
purple_debug_info("yahoo", "Authentication: In yahoo_auth16_stage1\n");
@@ -2141,8 +1919,7 @@
encoded_password = g_strdup(purple_url_encode(purple_connection_get_password(gc)));
req = purple_http_request_new(NULL);
- purple_http_request_set_url_printf(req,
- yahoojp ? YAHOOJP_TOKEN_URL : YAHOO_TOKEN_URL,
+ purple_http_request_set_url_printf(req, YAHOO_TOKEN_URL, encoded_username, encoded_password, purple_url_encode(seed));
purple_http_request_header_set(req, "User-Agent", YAHOO_CLIENT_USERAGENT);
purple_http_connection_set_add(yd->http_reqs, purple_http_request(gc,
@@ -2420,7 +2197,6 @@
YahooData *yd = purple_connection_get_protocol_data(gc);
- YahooFederation fed = YAHOO_FEDERATION_NONE;
struct yahoo_pair *pair = l->data;
@@ -2440,9 +2216,6 @@
- fed = strtol(pair->value, NULL, 10);
@@ -2453,35 +2226,16 @@
- case YAHOO_FEDERATION_MSN:
- who = g_strconcat("msn/", temp, NULL);
- case YAHOO_FEDERATION_OCS:
- who = g_strconcat("ocs/", temp, NULL);
- case YAHOO_FEDERATION_IBM:
- who = g_strconcat("ibm/", temp, NULL);
- case YAHOO_FEDERATION_NONE:
if (!err || (err == 2)) { /* 0 = ok, 2 = already on serv list */
f = yahoo_friend_find_or_new(gc, who);
yahoo_update_status(gc, who, f);
if( !g_hash_table_lookup(yd->peers, who) ) {
/* we are not connected as client, so set friend to not connected */
- yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_DO_NOT_CONNECT);
- yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_NOT_CONNECTED);
- f->p2p_packet_sent = 0;
+ yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_NOT_CONNECTED); + f->p2p_packet_sent = 0; else /* we are already connected. set friend to YAHOO_P2PSTATUS_WE_ARE_CLIENT */
yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_WE_ARE_CLIENT);
@@ -2508,7 +2262,7 @@
/*build the raw packet and send it to the host*/
- pkt_len = yahoo_packet_build(pkt, 0, 0, 0, &raw_packet);
+ pkt_len = yahoo_packet_build(pkt, 0, 0, &raw_packet); written = write(source, raw_packet, pkt_len);
if (written < 0 || (gsize)written != pkt_len)
purple_debug_warning("yahoo","p2p: couldn't write to the source\n");
@@ -2877,10 +2631,6 @@
if( !( f && (yahoo_friend_get_p2p_status(f) == YAHOO_P2PSTATUS_NOT_CONNECTED) && (f->p2p_packet_sent == 0)) )
- /* Dont send p2p packet to buddies of other protocols */
/* Finally, don't try to connect to buddies not online or on sms */
if( (f->status == YAHOO_STATUS_OFFLINE) || f->sms )
@@ -3706,15 +3456,10 @@
purple_debug_error("yahoo", "Unable to retrieve server info: %s\n",
purple_http_response_get_error(response));
- if(yahoo_is_japan(a)) { /* We don't know fallback hosts for Yahoo Japan :( */
+ if(purple_proxy_connect(gc, a, YAHOO_PAGER_HOST_FALLBACK, port, + yahoo_got_connected, gc) == NULL) { purple_connection_error(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
- _("Unable to connect: The server returned an empty response."));
- if(purple_proxy_connect(gc, a, YAHOO_PAGER_HOST_FALLBACK, port,
- yahoo_got_connected, gc) == NULL) {
- purple_connection_error(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
- _("Unable to connect"));
+ _("Unable to connect")); got_data = purple_http_response_get_data(response, NULL);
@@ -3741,16 +3486,11 @@
purple_debug_error("yahoo", "No CS address retrieved! Server "
"response:\n%s\n", got_data);
- if(yahoo_is_japan(a)) { /* We don't know fallback hosts for Yahoo Japan :( */
+ if(purple_proxy_connect(gc, a, YAHOO_PAGER_HOST_FALLBACK, port, + yahoo_got_connected, gc) == NULL) { purple_connection_error(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
- _("Unable to connect: The server's response did not contain "
- "the necessary information"));
- if(purple_proxy_connect(gc, a, YAHOO_PAGER_HOST_FALLBACK, port,
- yahoo_got_connected, gc) == NULL) {
- purple_connection_error(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
- _("Unable to connect"));
+ _("Unable to connect")); @@ -3775,7 +3515,6 @@
purple_connection_set_display_name(gc, purple_account_get_username(account));
- yd->jp = yahoo_is_japan(account);
yd->yahoo_local_p2p_server_fd = -1;
@@ -3800,8 +3539,7 @@
/* Get the pager server. Actually start connecting in the callback since we
* must have the contents of the HTTP response to proceed. */
- req = purple_http_request_new(yd->jp ? YAHOOJP_PAGER_HOST_REQ_URL :
- YAHOO_PAGER_HOST_REQ_URL);
+ req = purple_http_request_new(YAHOO_PAGER_HOST_REQ_URL); purple_http_request_header_set(req, "User-Agent", YAHOO_CLIENT_USERAGENT);
purple_http_connection_set_add(yd->http_reqs, purple_http_request(gc,
req, yahoo_got_pager_server, yd));
@@ -3928,9 +3666,6 @@
if (purple_presence_is_online(presence)) {
if (yahoo_friend_get_game(f))
@@ -4242,7 +3977,7 @@
- if (f && f->status != YAHOO_STATUS_OFFLINE && f->fed == YAHOO_FEDERATION_NONE) {
+ if (f && f->status != YAHOO_STATUS_OFFLINE) { act = purple_menu_action_new(_("Join in Chat"),
PURPLE_CALLBACK(yahoo_chat_goto_menu),
@@ -4282,12 +4017,10 @@
build_presence_submenu(f, gc));
m = g_list_append(m, act);
- if (f->fed == YAHOO_FEDERATION_NONE) {
- act = purple_menu_action_new(_("Start Doodling"),
- PURPLE_CALLBACK(yahoo_doodle_blist_node),
- m = g_list_append(m, act);
+ act = purple_menu_action_new(_("Start Doodling"), + PURPLE_CALLBACK(yahoo_doodle_blist_node), + m = g_list_append(m, act); /* XXX: it doesn't seems to work */
@@ -4329,7 +4062,6 @@
purple_http_conn_get_purple_connection(http_conn);
- YahooData *yd = purple_connection_get_protocol_data(gc);
PURPLE_ASSERT_CONNECTION_IS_VALID(gc);
@@ -4337,7 +4069,7 @@
purple_debug_error("yahoo",
"Requesting mail login token failed: %s\n",
purple_http_response_get_error(response));
- url = g_strdup(yd->jp ? YAHOOJP_MAIL_URL : YAHOO_MAIL_URL);
+ url = g_strdup(YAHOO_MAIL_URL); /* Should we not be hardcoding the rd url? */
@@ -4361,7 +4093,6 @@
static void yahoo_show_inbox(PurpleProtocolAction *action)
/* Setup a cookie that can be used by the browser */
- /* XXX I have no idea how this will work with Yahoo! Japan. */
PurpleConnection *gc = action->connection;
YahooData *yd = purple_connection_get_protocol_data(gc);
@@ -4570,11 +4301,9 @@
struct yahoo_p2p_data *p2p_data;
- YahooFederation fed = YAHOO_FEDERATION_NONE;
const gchar *rcpt = purple_message_get_recipient(pmsg);
msg2 = yahoo_string_encode(gc, msg, TRUE);
@@ -4594,8 +4323,6 @@
- fed = yahoo_get_federation_from_name(rcpt);
/* we have an sms to be sent */
@@ -4646,21 +4373,7 @@
pkt = yahoo_packet_new(YAHOO_SERVICE_MESSAGE, YAHOO_STATUS_OFFLINE, yd->session_id);
- case YAHOO_FEDERATION_MSN:
- case YAHOO_FEDERATION_OCS:
- case YAHOO_FEDERATION_IBM:
- case YAHOO_FEDERATION_PBX:
- case YAHOO_FEDERATION_NONE:
- yahoo_packet_hash(pkt, "ss", 1, purple_connection_get_display_name(gc), 5, fed_who);
- yahoo_packet_hash_int(pkt, 241, fed);
+ yahoo_packet_hash(pkt, "ss", 1, purple_connection_get_display_name(gc), 5, rcpt); yahoo_packet_hash_str(pkt, 97, "1"); /* UTF-8 */
yahoo_packet_hash_str(pkt, 14, msg2);
@@ -4700,14 +4413,13 @@
/* We may need to not send any packets over 2000 bytes, but I'm not sure yet. */
if ((YAHOO_PACKET_HDRLEN + yahoo_packet_length(pkt)) <= 2000) {
/* if p2p link exists, send through it. To-do: key 15, time value to be sent in case of p2p */
- if( (p2p_data = g_hash_table_lookup(yd->peers, rcpt)) && !fed) {
+ if( (p2p_data = g_hash_table_lookup(yd->peers, rcpt))) { yahoo_packet_hash_int(pkt, 11, p2p_data->session_id);
yahoo_p2p_write_pkt(p2p_data->source, pkt);
yahoo_packet_send(pkt, yd);
- yahoo_send_p2p_pkt(gc, rcpt, 0); /* send p2p packet, with val_13=0 */
+ yahoo_send_p2p_pkt(gc, rcpt, 0); /* send p2p packet, with val_13=0 */ @@ -4725,11 +4437,8 @@
YahooData *yd = purple_connection_get_protocol_data(gc);
struct yahoo_p2p_data *p2p_data;
- YahooFederation fed = YAHOO_FEDERATION_NONE;
struct yahoo_packet *pkt = NULL;
- fed = yahoo_get_federation_from_name(who);
/* Don't do anything if sms is being typed */
if( strncmp(who, "+", 1) == 0 )
@@ -4737,33 +4446,18 @@
pkt = yahoo_packet_new(YAHOO_SERVICE_NOTIFY, YAHOO_STATUS_TYPING, yd->session_id);
/* check to see if p2p link exists, send through it */
- if( (p2p_data = g_hash_table_lookup(yd->peers, who)) && !fed) {
+ if( (p2p_data = g_hash_table_lookup(yd->peers, who))) { yahoo_packet_hash(pkt, "sssssis", 49, "TYPING", 1, purple_connection_get_display_name(gc),
14, " ", 13, state == PURPLE_IM_TYPING ? "1" : "0",
5, who, 11, p2p_data->session_id, 1002, "1"); /* To-do: key 15 to be sent in case of p2p */
yahoo_p2p_write_pkt(p2p_data->source, pkt);
- else { /* send through yahoo server */
- const char *fed_who = who;
- case YAHOO_FEDERATION_MSN:
- case YAHOO_FEDERATION_OCS:
- case YAHOO_FEDERATION_IBM:
- case YAHOO_FEDERATION_PBX:
- case YAHOO_FEDERATION_NONE:
+ else { /* send through yahoo server */ yahoo_packet_hash(pkt, "ssssss", 49, "TYPING", 1, purple_connection_get_display_name(gc),
14, " ", 13, state == PURPLE_IM_TYPING ? "1" : "0",
- 5, fed_who, 1002, "1");
- yahoo_packet_hash_int(pkt, 241, fed);
yahoo_packet_send_and_free(pkt, yd);
@@ -5014,54 +4708,29 @@
struct yahoo_packet *pkt;
const char *group = NULL;
- YahooFederation fed = YAHOO_FEDERATION_NONE;
+ const char *bname = purple_buddy_get_name(buddy); - fed_bname = bname = purple_buddy_get_name(buddy);
if (!purple_account_privacy_check(purple_connection_get_account(gc), bname))
- fed = yahoo_get_federation_from_name(bname);
- if (fed != YAHOO_FEDERATION_NONE)
group = purple_group_get_name(purple_buddy_get_group(buddy));
group2 = yahoo_string_encode(gc, group, FALSE);
pkt = yahoo_packet_new(YAHOO_SERVICE_ADDBUDDY, YAHOO_STATUS_AVAILABLE, yd->session_id);
- yahoo_packet_hash(pkt, "sssssssisss",
- 1, purple_connection_get_display_name(gc),
- yahoo_packet_hash(pkt, "ssssssssss",
- 1, purple_connection_get_display_name(gc),
+ yahoo_packet_hash(pkt, "ssssssssss", + 1, purple_connection_get_display_name(gc), yahoo_packet_send_and_free(pkt, yd);
@@ -5077,13 +4746,11 @@
const char *bname, *gname;
- YahooFederation fed = YAHOO_FEDERATION_NONE;
bname = purple_buddy_get_name(buddy);
f = yahoo_friend_find(gc, bname);
gname = purple_group_get_name(group);
buddies = purple_blist_find_buddies(purple_connection_get_account(gc), bname);
@@ -5105,21 +4772,8 @@
cg = yahoo_string_encode(gc, gname, FALSE);
pkt = yahoo_packet_new(YAHOO_SERVICE_REMBUDDY, YAHOO_STATUS_AVAILABLE, yd->session_id);
- case YAHOO_FEDERATION_MSN:
- case YAHOO_FEDERATION_OCS:
- case YAHOO_FEDERATION_IBM:
- case YAHOO_FEDERATION_NONE:
yahoo_packet_hash(pkt, "sss", 1, purple_connection_get_display_name(gc),
- yahoo_packet_hash_int(pkt, 241, fed);
yahoo_packet_send_and_free(pkt, yd);
@@ -5127,7 +4781,6 @@
void yahoo_add_deny(PurpleConnection *gc, const char *who) {
YahooData *yd = purple_connection_get_protocol_data(gc);
struct yahoo_packet *pkt;
- YahooFederation fed = YAHOO_FEDERATION_NONE;
@@ -5135,14 +4788,9 @@
if (!who || who[0] == '\0')
- fed = yahoo_get_federation_from_name(who);
pkt = yahoo_packet_new(YAHOO_SERVICE_IGNORECONTACT, YAHOO_STATUS_AVAILABLE, yd->session_id);
- yahoo_packet_hash(pkt, "ssis", 1, purple_connection_get_display_name(gc), 7, who+4, 241, fed, 13, "1");
- yahoo_packet_hash(pkt, "sss", 1, purple_connection_get_display_name(gc), 7, who, 13, "1");
+ yahoo_packet_hash(pkt, "sss", 1, purple_connection_get_display_name(gc), 7, who, 13, "1"); yahoo_packet_send_and_free(pkt, yd);
@@ -5150,21 +4798,16 @@
void yahoo_rem_deny(PurpleConnection *gc, const char *who) {
YahooData *yd = purple_connection_get_protocol_data(gc);
struct yahoo_packet *pkt;
- YahooFederation fed = YAHOO_FEDERATION_NONE;
if (!who || who[0] == '\0')
- fed = yahoo_get_federation_from_name(who);
pkt = yahoo_packet_new(YAHOO_SERVICE_IGNORECONTACT, YAHOO_STATUS_AVAILABLE, yd->session_id);
- yahoo_packet_hash(pkt, "ssis", 1, purple_connection_get_display_name(gc), 7, who+4, 241, fed, 13, "2");
- yahoo_packet_hash(pkt, "sss", 1, purple_connection_get_display_name(gc), 7, who, 13, "2");
+ yahoo_packet_hash(pkt, "sss", 1, purple_connection_get_display_name(gc), 7, who, 13, "2"); yahoo_packet_send_and_free(pkt, yd);
@@ -5208,10 +4851,7 @@
/* If old and new are the same, we would probably
* end up deleting the buddy, which would be bad.
@@ -5226,14 +4866,9 @@
pkt = yahoo_packet_new(YAHOO_SERVICE_CHGRP_15, YAHOO_STATUS_AVAILABLE, yd->session_id);
- yahoo_packet_hash(pkt, "ssssissss", 1, purple_connection_get_display_name(gc),
- 302, "240", 300, "240", 7, temp, 241, f->fed, 224, gpo, 264, gpn, 301,
- yahoo_packet_hash(pkt, "ssssssss", 1, purple_connection_get_display_name(gc),
- 302, "240", 300, "240", 7, temp, 224, gpo, 264, gpn, 301,
+ yahoo_packet_hash(pkt, "ssssssss", 1, purple_connection_get_display_name(gc), + 302, "240", 300, "240", 7, temp, 224, gpo, 264, gpn, 301, yahoo_packet_send_and_free(pkt, yd);