libpurple/protocols/gg/edisc.c

changeset 41212
9f0f4c23132e
parent 41091
fa2d6b0a4912
child 41214
b0b7d118475f
equal deleted inserted replaced
41211:2e804c9c0919 41212:9f0f4c23132e
34 #include <json-glib/json-glib.h> 34 #include <json-glib/json-glib.h>
35 35
36 #include <glib/gi18n-lib.h> 36 #include <glib/gi18n-lib.h>
37 37
38 #include <purple.h> 38 #include <purple.h>
39 #include "libpurple/soupcompat.h"
39 40
40 #define GGP_EDISC_OS "WINNT x86-msvc" 41 #define GGP_EDISC_OS "WINNT x86-msvc"
41 #define GGP_EDISC_TYPE "desktop" 42 #define GGP_EDISC_TYPE "desktop"
42 #define GGP_EDISC_API "6" 43 #define GGP_EDISC_API "6"
43 44
265 ggp_ggdrive_auth_done(G_GNUC_UNUSED SoupSession *session, SoupMessage *msg, 266 ggp_ggdrive_auth_done(G_GNUC_UNUSED SoupSession *session, SoupMessage *msg,
266 gpointer user_data) 267 gpointer user_data)
267 { 268 {
268 PurpleConnection *gc = user_data; 269 PurpleConnection *gc = user_data;
269 ggp_edisc_session_data *sdata = ggp_edisc_get_sdata(gc); 270 ggp_edisc_session_data *sdata = ggp_edisc_get_sdata(gc);
271 SoupStatus status_code;
270 JsonParser *parser; 272 JsonParser *parser;
271 JsonObject *result; 273 JsonObject *result;
272 int status = -1; 274 int status = -1;
273 275
274 g_return_if_fail(sdata != NULL); 276 g_return_if_fail(sdata != NULL);
275 277
276 sdata->auth_request = NULL; 278 sdata->auth_request = NULL;
277 279
278 if (!SOUP_STATUS_IS_SUCCESSFUL(msg->status_code)) { 280 status_code = soup_message_get_status(msg);
281 if (!SOUP_STATUS_IS_SUCCESSFUL(status_code)) {
279 purple_debug_misc("gg", 282 purple_debug_misc("gg",
280 "ggp_ggdrive_auth_done: authentication failed due to " 283 "ggp_ggdrive_auth_done: authentication failed due to "
281 "unsuccessful request (code = %d)", 284 "unsuccessful request (code = %d)",
282 msg->status_code); 285 status_code);
283 ggp_ggdrive_auth_results(gc, FALSE); 286 ggp_ggdrive_auth_results(gc, FALSE);
284 return; 287 return;
285 } 288 }
286 289
287 parser = ggp_json_parse(msg->response_body->data); 290 parser = ggp_json_parse(msg->response_body->data);
454 457
455 g_return_if_fail(sdata != NULL); 458 g_return_if_fail(sdata != NULL);
456 459
457 edisc_xfer->msg = NULL; 460 edisc_xfer->msg = NULL;
458 461
459 if (!SOUP_STATUS_IS_SUCCESSFUL(msg->status_code)) { 462 if (!SOUP_STATUS_IS_SUCCESSFUL(soup_message_get_status(msg))) {
460 int error_id = ggp_edisc_parse_error(msg->response_body->data); 463 int error_id = ggp_edisc_parse_error(msg->response_body->data);
461 if (error_id == 206) /* recipient not logged in */ 464 if (error_id == 206) /* recipient not logged in */
462 ggp_edisc_xfer_error(xfer, 465 ggp_edisc_xfer_error(xfer,
463 _("Recipient not logged in")); 466 _("Recipient not logged in"));
464 else if (error_id == 207) /* bad sender recipient relation */ 467 else if (error_id == 207) /* bad sender recipient relation */
602 605
603 g_return_if_fail(edisc_xfer != NULL); 606 g_return_if_fail(edisc_xfer != NULL);
604 607
605 edisc_xfer->msg = NULL; 608 edisc_xfer->msg = NULL;
606 609
607 if (!SOUP_STATUS_IS_SUCCESSFUL(msg->status_code)) { 610 if (!SOUP_STATUS_IS_SUCCESSFUL(soup_message_get_status(msg))) {
608 ggp_edisc_xfer_error(xfer, _("Error while sending a file")); 611 ggp_edisc_xfer_error(xfer, _("Error while sending a file"));
609 return; 612 return;
610 } 613 }
611 614
612 parser = ggp_json_parse(msg->response_body->data); 615 parser = ggp_json_parse(msg->response_body->data);
739 } 742 }
740 743
741 edisc_xfer = GGP_XFER(xfer); 744 edisc_xfer = GGP_XFER(xfer);
742 edisc_xfer->msg = NULL; 745 edisc_xfer->msg = NULL;
743 746
744 if (!SOUP_STATUS_IS_SUCCESSFUL(msg->status_code)) { 747 if (!SOUP_STATUS_IS_SUCCESSFUL(soup_message_get_status(msg))) {
745 ggp_edisc_xfer_error(xfer, _("Cannot confirm file transfer.")); 748 ggp_edisc_xfer_error(xfer, _("Cannot confirm file transfer."));
746 return; 749 return;
747 } 750 }
748 751
749 purple_debug_info("gg", "ggp_edisc_xfer_recv_ack_done: [%s]\n", 752 purple_debug_info("gg", "ggp_edisc_xfer_recv_ack_done: [%s]\n",
840 if (purple_xfer_is_cancelled(xfer)) 843 if (purple_xfer_is_cancelled(xfer))
841 return; 844 return;
842 845
843 edisc_xfer->msg = NULL; 846 edisc_xfer->msg = NULL;
844 847
845 if (!SOUP_STATUS_IS_SUCCESSFUL(msg->status_code)) { 848 if (!SOUP_STATUS_IS_SUCCESSFUL(soup_message_get_status(msg))) {
846 ggp_edisc_xfer_error(xfer, _("Error while receiving a file")); 849 ggp_edisc_xfer_error(xfer, _("Error while receiving a file"));
847 return; 850 return;
848 } 851 }
849 852
850 if (purple_xfer_get_bytes_remaining(xfer) == 0) { 853 if (purple_xfer_get_bytes_remaining(xfer) == 0) {
905 ggp_edisc_session_data *sdata; 908 ggp_edisc_session_data *sdata;
906 909
907 const gchar *ticket_id, *file_name, *send_mode_str; 910 const gchar *ticket_id, *file_name, *send_mode_str;
908 uin_t sender, recipient; 911 uin_t sender, recipient;
909 int file_size; 912 int file_size;
910 913 SoupStatus status_code;
911 if (!SOUP_STATUS_IS_SUCCESSFUL(msg->status_code)) { 914
915 status_code = soup_message_get_status(msg);
916 if (!SOUP_STATUS_IS_SUCCESSFUL(status_code)) {
912 purple_debug_error("gg", 917 purple_debug_error("gg",
913 "ggp_edisc_xfer_recv_ticket_update_got: cannot " 918 "ggp_edisc_xfer_recv_ticket_update_got: cannot "
914 "fetch update for ticket (code=%d)", 919 "fetch update for ticket (code=%d)",
915 msg->status_code); 920 status_code);
916 return; 921 return;
917 } 922 }
918 923
919 sdata = ggp_edisc_get_sdata(gc); 924 sdata = ggp_edisc_get_sdata(gc);
920 g_return_if_fail(sdata != NULL); 925 g_return_if_fail(sdata != NULL);

mercurial