[ekg2-commit] ekg2: commands.c (HEAD) jabber.c (HEAD) jabber_handlers.c (HEAD) [darkjames]
CVS commit
cvs w toxygen.net
Pią, 11 Sty 2008, 19:39:30 CET
Module name: ekg2
Changes by: darkjames 2008-01-11 19:39:27
Modified files:
commands.c jabber.c jabber_handlers.c
Log message:
- add jabber_muc_notice format, and display where we don't get nick in groupchat.
- be less verbose in debug when we recv message.
- be more ,,red'' in debug when we recv unknown/unimplemented statuscode.
Index: commands.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jabber/commands.c,v
diff -d -u -r1.220 -r1.221
--- commands.c 11 Jan 2008 13:42:57 -0000 1.220
+++ commands.c 11 Jan 2008 18:39:27 -0000 1.221
@@ -1757,39 +1757,55 @@
return 0;
}
+/**
+ * jabber_muc_command_join()
+ *
+ * @param params [0] (<b>full channel name</b>)
+ * @param params [1] (<b>nickname</b>)
+ * @param params [2] (<b>password</b>)
+ *
+ * @todo make (session) variable jabber:default_muc && then if exists and params[0] has not specific server than append '@' jabber:default_muc and use it.
+ * @todo make (session) variable jabber:default_nickname.
+ * @todo history requesting, without history requesting.. etc
+ */
+
static COMMAND(jabber_muc_command_join) {
- /* params[0] - full channel name,
- * params[1] - nickname || default
- * params[2] - password || none
- *
- * XXX: make (session) variable jabber:default_muc && then if exists and params[0] has not specific server than append '@' jabber:default_muc and use it.
- * XXX: make (session) variable jabber:default_nickname.
- * XXX: history requesting, none history requesting.. etc
- */
jabber_private_t *j = session_private_get(session);
newconference_t *conf;
+
char *tmp;
char *username = (params[1]) ? xstrdup(params[1]) : (tmp = xstrchr(session->uid, '@')) ? xstrndup(session->uid+5, tmp-session->uid-5) : NULL;
char *password = (params[1] && params[2]) ? saprintf("<password>%s</password>", params[2]) : NULL;
- if (!username) { /* rather impossible */
+ char *mucuid;
+
+ if (!username) { /* shouldn't happen */
printq("invalid_params", name);
return -1;
}
if (!xstrncmp(target, "xmpp:", 5)) target += 5; /* remove xmpp: */
- watch_write(j->send_watch, "<presence to='%s/%s'><x xmlns='http://jabber.org/protocol/muc#user'>%s</x></presence>",
- target, username, password ? password : "");
- {
- char *uid = saprintf("xmpp:%s", target);
- conf = newconference_create(session, uid, 1);
- conf->private = xstrdup(username);
- xfree(uid);
+ mucuid = saprintf("xmpp:%s", target);
+
+#if 0
+ if (newconference_find(session, mucuid)) {
+ printq("conferences_already_joined", session_name(session), mucuid);
+ xfree(mucuid);
+ return 1;
}
+#endif
+
+ watch_write(j->send_watch, "<presence to='%s/%s'><x xmlns='http://jabber.org/protocol/muc'>%s</x></presence>",
+ target, username, password ? password : "");
+
+
+ conf = newconference_create(session, mucuid, 1);
+ conf->private = xstrdup(username);
xfree(username);
xfree(password);
+ xfree(mucuid);
return 0;
}
Index: jabber.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jabber/jabber.c,v
diff -d -u -r1.368 -r1.369
--- jabber.c 11 Jan 2008 11:58:04 -0000 1.368
+++ jabber.c 11 Jan 2008 18:39:27 -0000 1.369
@@ -1243,6 +1243,9 @@
format_add("jabber_muc_recv", "%B<%w%X%5%3%B>%n %4", 1);
format_add("jabber_muc_send", "%B<%n%X%5%W%3%B>%n %4", 1);
+ /* %1 - sessionname, %2 - mucjid %3 - text */
+ format_add("jabber_muc_notice", "%n-%P%2%n- %3", 1);
+
format_add("jabber_muc_room_created",
_("%> Room %W%2%n created, now to configure it: type %W/admin %g%2%n to get configuration form, or type %W/admin %g%2%n --instant to create instant one"), 1);
format_add("jabber_muc_banlist", _("%g|| %n %5 - %W%2%n: ban %c%3%n [%4]"), 1); /* %1 sesja %2 kanal %3 kto %4 reason %5 numerek */
Index: jabber_handlers.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jabber/jabber_handlers.c,v
diff -d -u -r1.149 -r1.150
--- jabber_handlers.c 11 Jan 2008 11:47:54 -0000 1.149
+++ jabber_handlers.c 11 Jan 2008 18:39:27 -0000 1.150
@@ -1007,32 +1007,35 @@
char *formatted;
userlist_t *u;
- char attr[2] = { ' ', 0 };
-
/* jesli (bsent != 0) wtedy mamy do czynienia z backlogiem */
class |= EKG_NO_THEMEBIT;
ekgbeep = EKG_NO_BEEP;
- if ((u = userlist_find_u(&(c->participants), nick))) {
- jabber_userlist_private_t *up = jabber_userlist_priv_get(u);
+ if (nick) { /* XXX !!! */
+ char attr[2] = { ' ', 0 };
- /* glupie, trzeba doszlifowac */
+ if ((u = userlist_find_u(&(c->participants), nick))) {
+ jabber_userlist_private_t *up = jabber_userlist_priv_get(u);
- if (!xstrcmp(up->aff, "owner")) attr[0] = '@';
- else if (!xstrcmp(up->aff, "admin")) attr[0] = '@';
+ /* glupie, trzeba doszlifowac */
- else if (!xstrcmp(up->role, "moderator")) attr[0] = '%';
+ if (!xstrcmp(up->aff, "owner")) attr[0] = '@';
+ else if (!xstrcmp(up->aff, "admin")) attr[0] = '@';
- else attr[0] = ' ';
+ else if (!xstrcmp(up->role, "moderator")) attr[0] = '%';
+ else attr[0] = ' ';
- } else debug_error("[MUC, MESSAGE] userlist_find_u(%s) failed\n", nick);
- formatted = format_string(format_find(isour ? "jabber_muc_send" : "jabber_muc_recv"),
- session_name(s), uid2, nick ? nick : uid2+5, text, attr);
-
- debug("[MUC,MESSAGE] uid2:%s uuid:%s message:%s\n", uid2, nick, text);
+ } else debug_error("[MUC, MESSAGE] userlist_find_u(%s) failed\n", nick);
+
+ formatted = format_string(format_find(isour ? "jabber_muc_send" : "jabber_muc_recv"),
+ session_name(s), uid2, nick, text, attr);
+ } else {
+ 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);
xfree(uid2);
@@ -1459,8 +1462,8 @@
switch (codenr) {
case 201: print_window(mucuid, s, 0, "jabber_muc_room_created", session_name(s), mucuid); break;
- case -1: debug("[jabber, iq, muc#user] codenr: -1 code: %s\n", code); break;
- default : debug("[jabber, iq, muc#user] XXX codenr: %d code: %s\n", codenr, code);
+ case -1: debug_error("[jabber, iq, muc#user] codenr: -1 code: %s\n", __(code)); break;
+ default : debug_error("[jabber, iq, muc#user] XXX codenr: %d code: %s\n", codenr, code);
}
} else if (!xstrcmp(child->name, "item")) { /* lista userow */
char *jid = jabber_unescape(jabber_attr(child->atts, "jid")); /* jid */
Więcej informacji o liście dyskusyjnej ekg2-commit