diff src/server.c @ 1768:9aae465eeb6e

[gaim-migrate @ 1778] Start of the queueing stuff committer: Tailor Script <tailor@pidgin.im>
author Rob Flynn <gaim@robflynn.com>
date Sat, 28 Apr 2001 02:01:28 +0000
parents 1e0613d9526b
children 68eddf56f419
line wrap: on
line diff
--- a/src/server.c	Fri Apr 27 23:53:19 2001 +0000
+++ b/src/server.c	Sat Apr 28 02:01:28 2001 +0000
@@ -309,12 +309,11 @@
 	serv_touch_idle(g);
 }
 
-
-
 void serv_got_im(struct gaim_connection *gc, char *name, char *message, int away, time_t mtime)
 {
 	struct conversation *cnv;
 	int new_conv = 0;
+	int hehe = away;
 
 	char *buffy = g_strdup(message);
 	char *angel = g_strdup(name);
@@ -368,9 +367,27 @@
 			return;
 		}
 		if (cnv != NULL) {
+
 			if (cnv->makesound && (sound_options & OPT_SOUND_RECV))
 				play_sound(RECEIVE);
+
+			if (gc->away)
+			{
+				struct queued_message *qm;
+
+				qm = (struct queued_message *)g_new0(struct queued_message, 1);
+				snprintf(qm->name, sizeof(qm->name), "%s", name);
+				qm->message = strdup(message);
+				qm->gc = gc;
+				qm->tm = mtime;
+
+				message_queue = g_slist_append(message_queue, qm);
+
+				printf("A message has been queued.\n");
+			}
+
 			write_to_conv(cnv, message, away | WFLAG_RECV, NULL, mtime);
+			
 		}
 
 	} else {
@@ -388,6 +405,22 @@
 			if (cnv->makesound && (sound_options & OPT_SOUND_RECV))
 				play_sound(RECEIVE);
 		}
+		
+		if (gc->away)
+		{
+			struct queued_message *qm;
+
+			qm = (struct queued_message *)g_new0(struct queued_message, 1);
+			snprintf(qm->name, sizeof(qm->name), "%s", name);
+			qm->message = strdup(message);
+			qm->gc = gc;
+			qm->tm = mtime;
+
+			message_queue = g_slist_append(message_queue, qm);
+
+			printf("A message has been queued.\n");
+		}
+
 		write_to_conv(cnv, message, away | WFLAG_RECV, NULL, mtime);
 	}