Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEion Robb <eion@robbmob.com>2019-05-20 07:49:17 +0300
committerGitHub <noreply@github.com>2019-05-20 07:49:17 +0300
commita7f8058e52f363e7c17d7f8395771286fa4f799f (patch)
treefe92cc15b031b9e2627145e5b9047c62516b70a0
parenta1f31838fd317a49eb1f23fd078d57f05a919da2 (diff)
parentfa250c95a88e5a966b2455dd74a2c02a01d19d97 (diff)
Merge pull request #641 from timgws/master
Give a detailed login failure message
-rw-r--r--skypeweb/skypeweb_login.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/skypeweb/skypeweb_login.c b/skypeweb/skypeweb_login.c
index 9a35916..d3f0748 100644
--- a/skypeweb/skypeweb_login.c
+++ b/skypeweb/skypeweb_login.c
@@ -156,6 +156,8 @@ skypeweb_login_got_t(PurpleHttpConnection *http_conn, PurpleHttpResponse *respon
PurpleHttpRequest *request;
GString *postdata;
gchar *magic_t_value; // T is for tasty
+ gchar *error_code;
+ gchar *error_text;
int tmplen;
const gchar *data;
gsize len;
@@ -163,7 +165,10 @@ skypeweb_login_got_t(PurpleHttpConnection *http_conn, PurpleHttpResponse *respon
data = purple_http_response_get_data(response, &len);
// <input type="hidden" name="t" id="t" value="...">
+ error_test = skypeweb_string_get_chunk(data, len, ",sErrTxt:'", "',Am:'");
+ error_code = skypeweb_string_get_chunk(data, len, ",sErrorCode:'", "',Ag:");
magic_t_value = skypeweb_string_get_chunk(data, len, "=\"t\" value=\"", "\"");
+
if (!magic_t_value) {
//No Magic T???? Maybe it be the mighty 2fa-beast
@@ -188,7 +193,22 @@ skypeweb_login_got_t(PurpleHttpConnection *http_conn, PurpleHttpResponse *respon
return;
}
}
+
+ if (error_test) {
+ GString *new_error;
+ new_error = g_string_new("");
+ g_string_append_printf(new_error, "%s: ", error_code);
+ g_string_append_printf(new_error, "%s", error_test);
+
+ gchar *error_msg = g_string_free(new_error, FALSE);
+
+ purple_connection_error(sa->pc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, error_msg);
+ g_free (error_msg);
+ return;
+ }
+
purple_connection_error(sa->pc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, _("Failed getting Magic T value, please try logging in via browser first"));
+
return;
}