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