aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--protocols/skype/skype.c15
-rw-r--r--protocols/skype/skyped.py7
2 files changed, 14 insertions, 8 deletions
diff --git a/protocols/skype/skype.c b/protocols/skype/skype.c
index 80279c54..6a3e6393 100644
--- a/protocols/skype/skype.c
+++ b/protocols/skype/skype.c
@@ -911,8 +911,11 @@ static void skype_parse_chat(struct im_connection *ic, char *line)
if (gc)
imcb_chat_free(gc);
if (!strcmp(info, "STATUS MULTI_SUBSCRIBED")) {
- gc = imcb_chat_new(ic, id);
- imcb_chat_name_hint(gc, id);
+ gc = bee_chat_by_title(ic->bee, ic, id);
+ if (!gc) {
+ gc = imcb_chat_new(ic, id);
+ imcb_chat_name_hint(gc, id);
+ }
skype_printf(ic, "GET CHAT %s ADDER\n", id);
skype_printf(ic, "GET CHAT %s TOPIC\n", id);
} else if (!strcmp(info, "STATUS DIALOG") && sd->groupchat_with) {
@@ -1197,6 +1200,9 @@ static void skype_logout(struct im_connection *ic)
skype_printf(ic, "SET USERSTATUS OFFLINE\n");
+ while( ic->groupchats )
+ imcb_chat_free(ic->groupchats->data);
+
for (i = 0; i < g_list_length(sd->groups); i++) {
struct skype_group *sg = (struct skype_group *)g_list_nth_data(sd->groups, i);
skype_group_free(sg, FALSE);
@@ -1391,10 +1397,7 @@ void skype_chat_invite(struct groupchat *gc, char *who, char *message)
struct im_connection *ic = gc->ic;
char *ptr, *nick;
- /* Unused parameter */
- who = who;
-
- nick = g_strdup(message);
+ nick = g_strdup(who);
ptr = strchr(nick, '@');
if (ptr)
*ptr = '\0';
diff --git a/protocols/skype/skyped.py b/protocols/skype/skyped.py
index 023c1f81..c9bfc2ce 100644
--- a/protocols/skype/skyped.py
+++ b/protocols/skype/skyped.py
@@ -179,7 +179,10 @@ def bitlbee_idle_handler(skype):
def server(host, port, skype = None):
global options
- sock = socket.socket()
+ if ":" in host:
+ sock = socket.socket(socket.AF_INET6)
+ else:
+ sock = socket.socket()
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((host, port))
sock.listen(1)
@@ -359,7 +362,7 @@ Options:
-c --config path to configuration file (default: %s)
-d --debug enable debug messages
-h --help this help
- -H --host set the tcp host (default: %s)
+ -H --host set the tcp host, supports IPv4 and IPv6 (default: %s)
-l --log set the log file in background mode (default: none)
-n --nofork don't run as daemon in the background
-p --port set the tcp port (default: %s)