src/server.c

changeset 692
38c3f73d6230
parent 685
8bd655afd067
child 693
046ea97c01d2
--- a/src/server.c	Wed Aug 16 00:52:11 2000 +0000
+++ b/src/server.c	Wed Aug 16 01:00:27 2000 +0000
@@ -533,7 +533,7 @@
 	} else {
 		sprintf(debug_buff, "Attempting to join chat room %s.\n", name);
 		debug_print(debug_buff);
-		aim_chat_join(gaim_sess, gaim_conn, 0x0004, name);
+		aim_chat_join(gaim_sess, gaim_conn, exchange, name);
 	}
 }
 
@@ -570,37 +570,38 @@
 	        sflap_send(buf, -1, TYPE_DATA);
 	        g_free(buf);
 	} else {
-	GList *bcs = buddy_chats;
-	struct conversation *b = NULL;
-	struct chat_connection *c = NULL;
-	int count = 0;
+		GList *bcs = buddy_chats;
+		struct conversation *b = NULL;
+		struct chat_connection *c = NULL;
+		int count = 0;
 
-	while (bcs) {
-		count++;
-		b = (struct conversation *)bcs->data;
-		if (id == b->id)
-			break;
-		bcs = bcs->next;
-		b = NULL;
-	}
+		while (bcs) {
+			count++;
+			b = (struct conversation *)bcs->data;
+			if (id == b->id)
+				break;
+			bcs = bcs->next;
+			b = NULL;
+		}
 
-	if (!b)
-		return;
+		if (!b)
+			return;
 
-	sprintf(debug_buff, "Attempting to leave room %s (currently in %d rooms)\n",
-				b->name, count);
-	debug_print(debug_buff);
+		sprintf(debug_buff, "Attempting to leave room %s (currently in %d rooms)\n",
+					b->name, count);
+		debug_print(debug_buff);
 
-	aim_chat_leaveroom(gaim_sess, b->name);
-	c = find_oscar_chat(b->name);
-	if (c != NULL) {
-		oscar_chats = g_list_remove(oscar_chats, c);
-		gdk_input_remove(c->inpa);
-		g_free(c->name);
-		g_free(c);
-	}
-	/* we do this because with Oscar it doesn't tell us we left */
-	serv_got_chat_left(b->id);
+		aim_chat_leaveroom(gaim_sess, b->name);
+		c = find_oscar_chat(b->name);
+		if (c != NULL) {
+			aim_conn_kill(gaim_sess, &c->conn);
+			oscar_chats = g_list_remove(oscar_chats, c);
+			gdk_input_remove(c->inpa);
+			g_free(c->name);
+			g_free(c);
+		}
+		/* we do this because with Oscar it doesn't tell us we left */
+		serv_got_chat_left(b->id);
 	}
 }
 
@@ -904,7 +905,7 @@
 		gtk_widget_destroy(w2);
 	} else {
 		char *i = (char *)gtk_object_get_user_data(GTK_OBJECT(w2));
-		serv_join_chat(0, i); /* for oscar, it doesn't use the id anyway */
+		serv_join_chat(4, i);
 		g_free(i);
 		gtk_widget_destroy(w2);
 	}

mercurial