Mercurial > pidgin.yaz
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: |