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>2013-04-19 12:39:16 +0400
committerEion Robb <eion@robbmob.com>2013-04-19 12:39:16 +0400
commite073f621c71c48ae0d5b8178df6a901faad3b26e (patch)
treec7706e201766e0d816d64c9b297469b488b9cd92
parentc06fd1f9b69c64e023451b6963bf0c0f7e2f897b (diff)
Fix for crash during reconnect, also handle version of Skype changing between reconnects
-rw-r--r--libskype.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/libskype.c b/libskype.c
index 54275a8..3041b27 100644
--- a/libskype.c
+++ b/libskype.c
@@ -1779,16 +1779,25 @@ skype_login_part2(PurpleAccount *acct)
//sync buddies after everything else has finished loading
purple_timeout_add_seconds(1, (GSourceFunc)skype_set_buddies, (gpointer)acct);
- if (!missedmessagestimout)
+ if (TRUE)
{
- gint version_int;
+ gint version_int = 0;
+ gchar *versionpos;
gchar *temp = skype_send_message("GET SKYPEVERSION");
gchar *version = g_strdup(&temp[13]);
g_free(temp);
- *strchr(version, '.') = '\0';
- version_int = atoi(version);
- if (version_int >= 5)
+ versionpos = strchr(version, '.');
+ if (versionpos)
+ {
+ *versionpos = '\0';
+ version_int = atoi(version);
+ }
+ if (version_int >= 5 && !missedmessagestimout) {
missedmessagestimout = purple_timeout_add_seconds(10, (GSourceFunc)skype_check_missedmessages, (gpointer)acct);
+ } else if (version_int < 5 && missedmessagestimout) {
+ purple_timeout_remove(missedmessagestimout);
+ missedmessagestimout = 0;
+ }
g_free(version);
}