[ekg2-commit] r4132 - in trunk: ekg plugins/gg plugins/irc plugins/jabber: trunk/ekg/protocol.c trunk/ekg/protocol.h trunk/plugins/gg/commands.c trunk/plugins/gg/gg.c trunk/plugins/irc/irc.c trunk/plugins/irc/misc.c trunk/plugins/jabber/commands.c trunk/plugins/jabber/jabber.c trunk/plugins/jabber/jabber_handlers.c

SVN commit svn w toxygen.net
Sob, 19 Lip 2008, 13:08:43 CEST


Author: darkjames
Date: 2008-07-19 13:08:42 +0200 (Sat, 19 Jul 2008)
New Revision: 4132

Modified:
   trunk/ekg/protocol.c
   trunk/ekg/protocol.h
   trunk/plugins/gg/commands.c
   trunk/plugins/gg/gg.c
   trunk/plugins/irc/irc.c
   trunk/plugins/irc/misc.c
   trunk/plugins/jabber/commands.c
   trunk/plugins/jabber/jabber.c
   trunk/plugins/jabber/jabber_handlers.c
Log:
much better idea than creating variables just to pass pointer to query_emit()



Modified: trunk/ekg/protocol.c
===================================================================
--- trunk/ekg/protocol.c	2008-07-18 11:59:22 UTC (rev 4131)
+++ trunk/ekg/protocol.c	2008-07-19 11:08:42 UTC (rev 4132)
@@ -250,6 +250,10 @@
 	return 0;
 }
 
+int protocol_disconnected_emit(const session_t *s, const char *reason, int type) {
+       return query_emit_id_ro(NULL, PROTOCOL_DISCONNECTED, &(s->uid), &reason, &type);
+}
+
 /**
  * protocol_connected()
  *
@@ -299,6 +303,10 @@
 	return 0;
 }
 
+int protocol_connected_emit(const session_t *s) {
+       return query_emit_id_ro(NULL, PROTOCOL_CONNECTED, &(s->uid));
+}
+
 /*
  * protocol_status()
  *
@@ -484,6 +492,10 @@
 	return 0;
 }
 
+int protocol_status_emit(const session_t *s, const char *uid, int status, char *descr, time_t when) {
+       return query_emit_id_ro(NULL, PROTOCOL_STATUS, &(s->uid), &uid, &status, &descr, &when);
+}
+
 /*
  * message_print()
  *
@@ -836,6 +848,10 @@
 	return 0;
 }
 
+int protocol_message_emit(const session_t *s, const char *uid, char **rcpts, const char *text, const uint32_t *format, time_t sent, int class, const char *seq, int dobeep, int secure) {
+       return query_emit_id_ro(NULL, PROTOCOL_MESSAGE, &(s->uid), &uid, &rcpts, &text, &format, &sent, &class, &seq, &dobeep, &secure);
+}
+
 /**
  * protocol_message_ack()
  *

Modified: trunk/ekg/protocol.h
===================================================================
--- trunk/ekg/protocol.h	2008-07-18 11:59:22 UTC (rev 4131)
+++ trunk/ekg/protocol.h	2008-07-19 11:08:42 UTC (rev 4132)
@@ -85,6 +85,12 @@
 
 char *message_print(const char *session, const char *sender, const char **rcpts, const char *text, const uint32_t *format,
 		time_t sent, int class, const char *seq, int dobeep, int secure);
+
+int protocol_connected_emit(const session_t *s);
+int protocol_disconnected_emit(const session_t *s, const char *reason, int type);
+int protocol_message_emit(const session_t *s, const char *uid, char **rcpts, const char *text, const uint32_t *format, time_t sent, int class, const char *seq, int dobeep, int secure);
+int protocol_status_emit(const session_t *s, const char *uid, int status, char *descr, time_t when);
+
 #endif
 
 typedef enum {

Modified: trunk/plugins/gg/commands.c
===================================================================
--- trunk/plugins/gg/commands.c	2008-07-18 11:59:22 UTC (rev 4131)
+++ trunk/plugins/gg/commands.c	2008-07-19 11:08:42 UTC (rev 4132)
@@ -101,11 +101,9 @@
 				printq("not_connected", session_name(session));
 
 		} else {
-			char *__session = xstrdup(session->uid);
 			const char *__reason = params[0];
 			char *myreason;
 			char *tmp;
-			int __type = EKG_DISCONNECT_USER;
 
 			if (session->autoaway)
 				session_status_set(session, EKG_STATUS_AUTOBACK);
@@ -130,10 +128,9 @@
 			gg_free_session(g->sess);
 			g->sess = NULL;
 
-			query_emit_id(NULL, PROTOCOL_DISCONNECTED, &__session, &myreason, &__type, NULL);
+			protocol_disconnected_emit(session, myreason, EKG_DISCONNECT_USER);
 
 			xfree(myreason);
-			xfree(__session);
 		}
 	}
 
@@ -808,16 +805,12 @@
 
 	if (valid && !quiet) {
 		char **rcpts = xmalloc(sizeof(char *) * 2);
-		const int ekgbeep = EKG_TRY_BEEP;
-		char *me = xstrdup(session_uid_get(session));
-		const time_t sent = time(NULL);
 		
 		rcpts[0] = xstrdup(nick);
 		rcpts[1] = NULL;
 
-		query_emit_id(NULL, PROTOCOL_MESSAGE, &me, &me, &rcpts, &raw_msg, &ekg_format, &sent, &class, &seq, &ekgbeep, &secure);
+		protocol_message_emit(session, session->uid, rcpts, raw_msg, ekg_format, time(NULL), class, seq, EKG_TRY_BEEP, secure);
 
-		xfree(me);
 		xfree(rcpts[0]);
 		xfree(rcpts);
 	}

Modified: trunk/plugins/gg/gg.c
===================================================================
--- trunk/plugins/gg/gg.c	2008-07-18 11:59:22 UTC (rev 4131)
+++ trunk/plugins/gg/gg.c	2008-07-19 11:08:42 UTC (rev 4132)
@@ -704,7 +704,6 @@
 	gg_private_t *g = s->priv;
 
 	int status;
-	char *__session;
 	int _status;
 	char *descr;
 	char *cpdescr; 
@@ -714,9 +713,7 @@
 		return;
 	}
 
-	__session = xstrdup(session_uid_get(s));
-	query_emit_id(NULL, PROTOCOL_CONNECTED, &__session);
-	xfree(__session);
+	protocol_connected_emit(s);
 
 	gg_userlist_send(g->sess, s->userlist);
 
@@ -799,16 +796,7 @@
 	gg_free_session(g->sess);
 	g->sess = NULL;
 
-	{
-		char *__session = xstrdup(session_uid_get(s));
-		char *__reason = xstrdup(format_find(reason));
-		int __type = EKG_DISCONNECT_FAILURE;
-
-		query_emit_id(NULL, PROTOCOL_DISCONNECTED, &__session, &__reason, &__type, NULL);
-
-		xfree(__reason);
-		xfree(__session);
-	}
+	protocol_disconnected_emit(s, format_find(reason), EKG_DISCONNECT_FAILURE);
 }
 
 /*
@@ -819,15 +807,8 @@
 static void gg_session_handler_disconnect(session_t *s) {
 	gg_private_t *g = s->priv;
 
-	char *__session	= xstrdup(s->uid);
-	char *__reason	= NULL;
-	int __type	= EKG_DISCONNECT_FORCED;
+	protocol_disconnected_emit(s, NULL, EKG_DISCONNECT_FORCED);
 
-	query_emit_id(NULL, PROTOCOL_DISCONNECTED, &__session, &__reason, &__type);
-
-	xfree(__session);
-	xfree(__reason);
-
 	gg_logoff(g->sess);		/* zamknie gniazdo */
 	gg_free_session(g->sess);
 	g->sess = NULL;
@@ -839,11 +820,8 @@
  * obsługa zmiany stanu przez użytkownika.
  */
 static void gg_session_handler_status(session_t *s, uin_t uin, int status, const char *descr, uint32_t ip, uint16_t port, int protocol) {
-	char *__session	= xstrdup(session_uid_get(s));
 	char *__uid	= saprintf(("gg:%d"), uin);
-	int __status	= gg_status_to_text(status);
 	char *__descr	= gg_cp_to_locale(xstrdup(descr));
-	time_t when	= time(NULL);
 	int i, j, dlen, state = 0, m = 0;
 
 	{
@@ -888,11 +866,11 @@
 		}
 
 	}
-	query_emit_id(NULL, PROTOCOL_STATUS, &__session, &__uid, &__status, &__descr, &when);
 
+	protocol_status_emit(s, __uid, gg_status_to_text(status), __descr, time(NULL));
+
 	xfree(__descr);
 	xfree(__uid);
-	xfree(__session);
 }
 
 /*
@@ -1022,20 +1000,12 @@
 	if (image && check_inv) {
 		print("gg_we_are_being_checked", session_name(s), format_user(s, __sender));
 	} else {
-		char *__session = xstrdup(session_uid_get(s));
-		char *__seq	= NULL;
-		time_t __sent	= e->event.msg.time;
 		int __class	= e->event.msg.sender ? EKG_MSGCLASS_CHAT : EKG_MSGCLASS_SYSTEM;
-		int ekgbeep	= EKG_TRY_BEEP;
-		int secure	= 0;
 
 /*		if (!check_inv || xstrcmp(__text, ""))
 			printq("generic", "image in message.\n"); - or something
  */
-		query_emit_id(NULL, PROTOCOL_MESSAGE, &__session, &__sender, &__rcpts, &__text, &__format, &__sent, &__class, &__seq, &ekgbeep, &secure);
-		xfree(__session);
-
-/*		xfree(__seq); */
+		protocol_message_emit(s, __sender, __rcpts, __text, __format, e->event.msg.time, __class, NULL, EKG_TRY_BEEP, 0);
 	}
 	
 	xfree(__text);
@@ -1132,19 +1102,8 @@
 									c_timer->session = s;
 									timer_add(&gg_plugin, NULL, interval, 0, gg_inv_check_handler, c_timer);
 								}
-								if (u->status == EKG_STATUS_NA) {
-									char *session	= xstrdup(session_uid_get(s));
-									char *uid	= xstrdup(tmp);
-									int status	= EKG_STATUS_INVISIBLE;
-									char *descr	= xstrdup(u->descr);
-									time_t when	= time(NULL);
-									
-									query_emit_id(NULL, PROTOCOL_STATUS, &session, &uid, &status, &descr, &when);
-									
-									xfree(session);
-									xfree(uid);
-									xfree(descr);
-								}
+								if (u->status == EKG_STATUS_NA)
+									protocol_status_emit(s, tmp, EKG_STATUS_INVISIBLE, u->descr, time(NULL));
 							} else
 								print("gg_user_is_connected", session_name(s), format_user(s, tmp));
 							xfree(c->uid);
@@ -1300,14 +1259,8 @@
 
 	if (type == 2) {
 		if (g->sess->state != GG_STATE_CONNECTING_GG) {
-			char *__session = xstrdup(s->uid);
-			char *__reason = NULL;
-			int __type = EKG_DISCONNECT_FAILURE;
+			protocol_disconnected_emit(s, NULL, EKG_DISCONNECT_FAILURE);
 
-			query_emit_id(NULL, PROTOCOL_DISCONNECTED, &__session, &__reason, &__type);
-
-			xfree(__reason);
-			xfree(__session);
 			gg_free_session(g->sess);
 			g->sess = NULL;
 
@@ -1319,15 +1272,8 @@
 	}
 
 	if (!(e = gg_watch_fd(g->sess))) {
-		char *__session = xstrdup(s->uid);
-		char *__reason = NULL;
-		int __type = EKG_DISCONNECT_NETWORK;
+		protocol_disconnected_emit(s, NULL, EKG_DISCONNECT_NETWORK);
 
-		query_emit_id(NULL, PROTOCOL_DISCONNECTED, &__session, &__reason, &__type);
-
-		xfree(__reason);
-		xfree(__session);
-
 		gg_free_session(g->sess);
 		g->sess = NULL;
 

Modified: trunk/plugins/irc/irc.c
===================================================================
--- trunk/plugins/irc/irc.c	2008-07-18 11:59:22 UTC (rev 4131)
+++ trunk/plugins/irc/irc.c	2008-07-19 11:08:42 UTC (rev 4132)
@@ -694,8 +694,7 @@
  * EKG_DISCONNECT_USER    @ irc_command_disconnect when we do /disconnect when we are connected.
  */
 	irc_private_t	*j = irc_private(s);
-        char		*__session, *__reason;
-        int		__type = type;
+        char		*__reason;
 
 	if (!j) {
 		debug("[irc_ierror] @irc_handle_disconnect j == NULL");
@@ -740,16 +739,13 @@
 			 */
 	}
 	__reason  = xstrdup(format_find(reason));
-	__session = xstrdup(session_uid_get(s));
 	
 	if (!xstrcmp(__reason, "")) {
 		xfree(__reason);
 		__reason = xstrdup(reason);
 	}
-			
-	query_emit_id(NULL, PROTOCOL_DISCONNECTED, &__session, &__reason, &__type, NULL);
+	protocol_disconnected_emit(s, __reason, type);
 	xfree(__reason);
-	xfree(__session);
 }
 
 static WATCHER_LINE(irc_handle_resolver) {
@@ -1122,10 +1118,6 @@
 	char		*head, *coloured;
 	const char	*frname; /* formatname */
 
-        int		class = EKG_MSGCLASS_SENT | EKG_NO_THEMEBIT;
-	int		ekgbeep = EKG_NO_BEEP;
-	const time_t	sent = time(NULL);
-	char		*format=NULL, *seq=NULL;
 	int		secure = 0;
 	
 	char **rcpts;
@@ -1186,9 +1178,9 @@
 		query_emit_id(NULL, IRC_PROTOCOL_MESSAGE, &(sid), &(j->nick), &mline[1], &isour, &xosd_to_us, &xosd_is_priv, &uid);
 
 		query_emit_id(NULL, MESSAGE_ENCRYPT, &sid, &uid, &__msg, &secure);
-				
-		query_emit_id(NULL, PROTOCOL_MESSAGE, &sid, &sid, &rcpts, &coloured, &format, &sent, &class, &seq, &ekgbeep, &secure);
 
+		protocol_message_emit(session, session->uid, rcpts, coloured, NULL, time(NULL), (EKG_MSGCLASS_SENT | EKG_NO_THEMEBIT), NULL, EKG_NO_BEEP, secure);
+
 		/* "Thus, there are 510 characters maximum allowed for the command and its parameters." [rfc2812]
 		 * yes, I know it's a nasty variable reusing ;)
 		 */

Modified: trunk/plugins/irc/misc.c
===================================================================
--- trunk/plugins/irc/misc.c	2008-07-18 11:59:22 UTC (rev 4131)
+++ trunk/plugins/irc/misc.c	2008-07-19 11:08:42 UTC (rev 4132)
@@ -458,13 +458,12 @@
 {
 	int		i, k;
 	char		*t;
-	char		*__session = xstrdup(session_uid_get(s));
 	connector_t	*temp;
 	switch (irccommands[ecode].num)
 	{
 		case 1:
 			temp = j->conntmplist->data;
-			query_emit_id(NULL, PROTOCOL_CONNECTED, &__session);
+			protocol_connected_emit(s);
 			t = xstrchr(param[3], '!');
 			xfree(j->host_ident);
 			if (t)  j->host_ident=xstrdup(++t); 
@@ -537,8 +536,6 @@
 		default:
 			break;
 	}
-
-	xfree(__session);
 	return 0;
 }
 
@@ -1074,7 +1071,7 @@
  */
 IRC_COMMAND(irc_c_msg)
 {
-	char		*t, *dest, *me, *form=NULL, *seq=NULL, *format;
+	char		*t, *dest, *me, *format;
 	char		*head, *xosd_nick, *xosd_chan, **rcpts = NULL;
 	char		*ctcpstripped, *coloured, *pubtous, tous, prefix[2];
 	int		class, ekgbeep= EKG_NO_BEEP;
@@ -1082,7 +1079,6 @@
 	window_t	*w = NULL;
 	people_t	*person;
 	people_chan_t	*perchn = NULL;
-	time_t		sent;
 	int		secure = 0, xosd_to_us = 0, xosd_is_priv = 0;
 	char		*ignore_nick = NULL;
 	char *recoded;
@@ -1231,14 +1227,12 @@
 		xfree(ctcpstripped);
 		xfree(coloured);
 		xfree(me);
-		me = xstrdup(session_uid_get(s));
-		sent = time(NULL);
+		me = NULL;
 		class |= EKG_NO_THEMEBIT;
 
 		ignore_nick = saprintf("%s%s", IRC4, OMITCOLON(param[0]));
 		if (xosd_is_priv || !(ignored_check(s, ignore_nick) & IGNORE_MSG))
-			query_emit_id(NULL, PROTOCOL_MESSAGE, &me, &dest, &rcpts, &head,
-					&form, &sent, &class, &seq, &ekgbeep, &secure);
+			protocol_message_emit(s, dest, rcpts, head, NULL, time(NULL), class, NULL, ekgbeep, secure);
 		xfree(ignore_nick);
 
 		xfree(head);

Modified: trunk/plugins/jabber/commands.c
===================================================================
--- trunk/plugins/jabber/commands.c	2008-07-18 11:59:22 UTC (rev 4131)
+++ trunk/plugins/jabber/commands.c	2008-07-19 11:08:42 UTC (rev 4132)
@@ -401,14 +401,10 @@
 
 msgdisplay:
 	if (!quiet && !ismuc) { /* if (1) ? */ 
-		char *me 	= xstrdup(session_uid_get(session));
 		char **rcpts 	= xcalloc(2, sizeof(char *));
 		char *msg	= xstrdup(params[1]);
-		time_t sent 	= time(NULL);
 		int class 	= (chat) ? EKG_MSGCLASS_SENT_CHAT : EKG_MSGCLASS_SENT;
-		int ekgbeep 	= EKG_NO_BEEP;
 		uint32_t *format= jabber_msg_format(msg, NULL /*XXX: pass htmlmsg as xmlnode_t ...*/);
-		char *seq 	= NULL;
 
 		rcpts[0] 	= xstrdup(uid);
 		rcpts[1] 	= NULL;
@@ -416,10 +412,9 @@
 		if (ismuc)
 			class |= EKG_NO_THEMEBIT;
 		
-		query_emit_id(NULL, PROTOCOL_MESSAGE, &me, &me, &rcpts, &msg, &format, &sent, &class, &seq, &ekgbeep, &secure);
+		protocol_message_emit(session, session->uid, rcpts, msg, format, time(NULL), class, NULL, EKG_NO_BEEP, secure);
 
 		xfree(msg);
-		xfree(me);
 		array_free(rcpts);
 
 		if (!session_connected_get(session))

Modified: trunk/plugins/jabber/jabber.c
===================================================================
--- trunk/plugins/jabber/jabber.c	2008-07-18 11:59:22 UTC (rev 4131)
+++ trunk/plugins/jabber/jabber.c	2008-07-19 11:08:42 UTC (rev 4132)
@@ -417,7 +417,7 @@
 	if (!s->connected && !s->connecting)
 		return;
 
-	query_emit_id_ro(NULL, PROTOCOL_DISCONNECTED, &(s->uid), &reason, &type, NULL);
+	protocol_disconnected_emit(s, reason, type);
 	
 	if (j->send_watch) {
 		j->send_watch->type = WATCH_NONE;

Modified: trunk/plugins/jabber/jabber_handlers.c
===================================================================
--- trunk/plugins/jabber/jabber_handlers.c	2008-07-18 11:59:22 UTC (rev 4131)
+++ trunk/plugins/jabber/jabber_handlers.c	2008-07-19 11:08:42 UTC (rev 4132)
@@ -993,11 +993,7 @@
 	}
 
 	if (nbody || nsubject) {
-		char *me	= xstrdup(session_uid_get(s));
-		int ekgbeep 	= EKG_TRY_BEEP;
 		int secure	= (x_encrypted != NULL);
-		char **rcpts 	= NULL;
-		char *seq 	= NULL;
 		time_t sent	= bsent;
 		char *text	= tlenjabber_unescape(body->str);
 		uint32_t *format= jabber_msg_format(text, nhtml);
@@ -1017,7 +1013,6 @@
 		/* jesli (bsent != 0) wtedy mamy do czynienia z backlogiem */
 
 			class	|= EKG_NO_THEMEBIT;	/* XXX: maybe some core-side support instead of forcing our themes? */
-			ekgbeep	= EKG_NO_BEEP;
 
 			if (nick) {	/* XXX !!! */
 				char attr[2] = { ' ', 0 };
@@ -1046,23 +1041,17 @@
 				formatted = format_string(format_find("jabber_muc_notice"), session_name(s), uid+5, text);
 			}
 
-			query_emit_id(NULL, PROTOCOL_MESSAGE, &me, &uid, &rcpts, &formatted, &format, &sent, &class, &seq, &ekgbeep, &secure);
+			protocol_message_emit(s, uid, NULL, formatted, format, sent, class, NULL, EKG_NO_BEEP, secure);
 
 			xfree(uid2);
 			xfree(nick);
 			xfree(formatted);
 			xfree(format);
 		} else {
-			query_emit_id(NULL, PROTOCOL_MESSAGE, &me, &uid, &rcpts, &text, &format, &sent, &class, &seq, &ekgbeep, &secure);
+			protocol_message_emit(s, uid, NULL, text, format, sent, class, NULL, EKG_TRY_BEEP, secure);
 		}
 
-		xfree(me);
 		xfree(text);
-		array_free(rcpts);
-/*
-		xfree(seq);
-		xfree(format);
-*/
 	}
 	xfree(x_encrypted);
 
@@ -1673,7 +1662,7 @@
 		if (!when)
 			when = time(NULL);
 
-		query_emit_id_ro(NULL, PROTOCOL_STATUS, &(s->uid), &uid, &status, &descr, &when);
+		protocol_status_emit(s, uid, status, descr, when);
 		xfree(descr);
 	}
 	xfree(uid);
@@ -1681,15 +1670,14 @@
 
 static void jabber_session_connected(session_t *s) {
 	jabber_private_t *j = jabber_private(s);
-	char *__session = xstrdup(session_uid_get(s));
 
 	s->connecting = 0;
 
-	query_emit_id(NULL, PROTOCOL_CONNECTED, &__session);
+	protocol_connected_emit(s);
 
 	if (session_get(s, "__new_account")) {
-		print("register", __session);
-		if (!xstrcmp(session_get(s, "password"), "foo")) print("register_change_passwd", __session, "foo");
+		print("register", s->uid);
+		if (!xstrcmp(session_get(s, "password"), "foo")) print("register_change_passwd", s->uid, "foo");
 		session_set(s, "__new_account", NULL);
 	}
 
@@ -1716,7 +1704,6 @@
 			"<iq type=\"get\" id=\"gmail%d\"><query xmlns=\"google:mail:notify\"/></iq>",
 			j->id++);
 	}
-	xfree(__session);
 }
 
 static void newmail_common(session_t *s) { /* maybe inline? */



Więcej informacji o liście dyskusyjnej ekg2-commit