comparison libpurple/protocols/yahoo/libymsg.c @ 27517:b00f138c850a

Fix denying auth requests from MSN buddies, and fix a leak.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Thu, 09 Jul 2009 17:57:44 +0000
parents d4cfd179203b
children 07d09a987b86
comparison
equal deleted inserted replaced
27516:4fc04d98e1e8 27517:b00f138c850a
1161 yahoo_buddy_add_deny_cb(struct yahoo_add_request *add_req, const char *msg) 1161 yahoo_buddy_add_deny_cb(struct yahoo_add_request *add_req, const char *msg)
1162 { 1162 {
1163 struct yahoo_data *yd = add_req->gc->proto_data; 1163 struct yahoo_data *yd = add_req->gc->proto_data;
1164 struct yahoo_packet *pkt; 1164 struct yahoo_packet *pkt;
1165 char *encoded_msg = NULL; 1165 char *encoded_msg = NULL;
1166 PurpleAccount *account = purple_connection_get_account(add_req->gc); 1166 const char *who = add_req->who;
1167
1168 if (add_req->protocol == 2)
1169 who += 4; /* Skip 'msn/' */
1167 1170
1168 if (msg && *msg) 1171 if (msg && *msg)
1169 encoded_msg = yahoo_string_encode(add_req->gc, msg, NULL); 1172 encoded_msg = yahoo_string_encode(add_req->gc, msg, NULL);
1170 1173
1171 pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH_REQ_15, 1174 pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH_REQ_15,
1172 YAHOO_STATUS_AVAILABLE, 0); 1175 YAHOO_STATUS_AVAILABLE, 0);
1173 1176
1174 yahoo_packet_hash(pkt, "ssiiis", 1177 yahoo_packet_hash(pkt, "ssiiiis",
1175 1, purple_normalize(account, purple_account_get_username(account)), 1178 1, add_req->id,
1176 5, add_req->who, 1179 5, who,
1180 241, add_req->protocol,
1177 13, 2, 1181 13, 2,
1178 334, 0, 1182 334, 0,
1179 97, 1, 1183 97, 1,
1180 14, encoded_msg ? encoded_msg : ""); 1184 14, encoded_msg ? encoded_msg : "");
1181 1185
1289 struct yahoo_pair *pair = l->data; 1293 struct yahoo_pair *pair = l->data;
1290 1294
1291 switch (pair->key) { 1295 switch (pair->key) {
1292 case 4: 1296 case 4:
1293 temp = pair->value; 1297 temp = pair->value;
1294 add_req->who = g_strdup(pair->value);
1295 break; 1298 break;
1296 case 5: 1299 case 5:
1297 add_req->id = g_strdup(pair->value); 1300 add_req->id = g_strdup(pair->value);
1298 break; 1301 break;
1299 case 14: 1302 case 14: