Mercurial > pidgin.yaz
comparison libpurple/protocols/yahoo/libymsg.c @ 29995:2292d8896b0b
merged with im.pidgin.pidgin
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Tue, 16 Mar 2010 12:07:06 +0900 |
parents | f44718de8b06 c4fe6afad87a |
children | 1e59677a2035 |
comparison
equal
deleted
inserted
replaced
29919:10c2702ecfff | 29995:2292d8896b0b |
---|---|
1858 g_free(auth_data->seed); | 1858 g_free(auth_data->seed); |
1859 g_free(auth_data); | 1859 g_free(auth_data); |
1860 return; | 1860 return; |
1861 } | 1861 } |
1862 else if (len > 0 && ret_data && *ret_data) { | 1862 else if (len > 0 && ret_data && *ret_data) { |
1863 PurpleAccount *account = purple_connection_get_account(gc); | |
1863 gchar **split_data = g_strsplit(ret_data, "\r\n", -1); | 1864 gchar **split_data = g_strsplit(ret_data, "\r\n", -1); |
1864 int totalelements = 0; | 1865 int totalelements = 0; |
1865 int response_no = -1; | 1866 int response_no = -1; |
1866 char *token = NULL; | 1867 char *token = NULL; |
1867 | 1868 |
1868 totalelements = g_strv_length(split_data); | 1869 totalelements = g_strv_length(split_data); |
1869 | 1870 |
1870 if(totalelements == 1) | 1871 if(totalelements == 1) { /* Received an error code */ |
1871 response_no = strtol(split_data[0], NULL, 10); | 1872 response_no = strtol(split_data[0], NULL, 10); |
1872 else if(totalelements >= 2) { | 1873 } else if(totalelements == 2 || totalelements == 3 ) { /* received valid data */ |
1873 response_no = strtol(split_data[0], NULL, 10); | 1874 response_no = strtol(split_data[0], NULL, 10); |
1874 token = g_strdup(split_data[1] + strlen("ymsgr=")); | 1875 token = g_strdup(split_data[1] + strlen("ymsgr=")); |
1876 } else { /* It looks like a transparent proxy has returned a document we don't want */ | |
1877 response_no = -1; | |
1875 } | 1878 } |
1876 | 1879 |
1877 g_strfreev(split_data); | 1880 g_strfreev(split_data); |
1878 | 1881 |
1879 if(response_no != 0) { | 1882 if(response_no != 0) { |
1888 error = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; | 1891 error = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; |
1889 break; | 1892 break; |
1890 case 1212: | 1893 case 1212: |
1891 /* Password incorrect */ | 1894 /* Password incorrect */ |
1892 /* Set password to NULL. Avoids account locking. Brings dialog to enter password if clicked on Re-enable account */ | 1895 /* Set password to NULL. Avoids account locking. Brings dialog to enter password if clicked on Re-enable account */ |
1893 if (!purple_account_get_remember_password(purple_connection_get_account(gc))) | 1896 if (!purple_account_get_remember_password(account)) |
1894 purple_account_set_password(purple_connection_get_account(gc), NULL); | 1897 purple_account_set_password(account, NULL); |
1895 error_reason = g_strdup(_("Incorrect password")); | 1898 error_reason = g_strdup(_("Incorrect password")); |
1896 error = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; | 1899 error = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; |
1897 break; | 1900 break; |
1898 case 1213: | 1901 case 1213: |
1899 /* security lock from too many failed login attempts */ | 1902 /* security lock from too many failed login attempts */ |
1931 g_free(token); | 1934 g_free(token); |
1932 } | 1935 } |
1933 else { | 1936 else { |
1934 /* OK to login, correct information provided */ | 1937 /* OK to login, correct information provided */ |
1935 PurpleUtilFetchUrlData *url_data = NULL; | 1938 PurpleUtilFetchUrlData *url_data = NULL; |
1936 PurpleAccount *account = purple_connection_get_account(gc); | |
1937 char *url = NULL; | 1939 char *url = NULL; |
1938 gboolean yahoojp = yahoo_is_japan(account); | 1940 gboolean yahoojp = yahoo_is_japan(account); |
1939 gboolean proxy_ssl = purple_account_get_bool(account, "proxy_ssl", FALSE); | 1941 gboolean proxy_ssl = purple_account_get_bool(account, "proxy_ssl", FALSE); |
1940 | 1942 |
1941 url = g_strdup_printf(yahoojp ? YAHOOJP_LOGIN_URL : YAHOO_LOGIN_URL, token); | 1943 url = g_strdup_printf(yahoojp ? YAHOOJP_LOGIN_URL : YAHOO_LOGIN_URL, token); |
2735 gint val_13 = 0; | 2737 gint val_13 = 0; |
2736 gint val_11 = 0; | 2738 gint val_11 = 0; |
2737 PurpleAccount *account; | 2739 PurpleAccount *account; |
2738 YahooFriend *f; | 2740 YahooFriend *f; |
2739 | 2741 |
2740 /* if status is not 1 ie YAHOO_STATUS_BRB, the packet bounced back, so contains our own ip */ | 2742 /* if status is not YAHOO_STATUS_BRB or YAHOO_STATUS_P2P, the packet bounced back, |
2741 if(!(pkt->status == YAHOO_STATUS_BRB)) | 2743 * so it contains our own ip */ |
2744 if(pkt->status != YAHOO_STATUS_BRB && pkt->status != YAHOO_STATUS_P2P) | |
2742 return ; | 2745 return ; |
2743 | 2746 |
2744 while (l) { | 2747 while (l) { |
2745 struct yahoo_pair *pair = l->data; | 2748 struct yahoo_pair *pair = l->data; |
2746 | 2749 |