Merge commit 'origin'

This commit is contained in:
psyc://psyced.org/~lynX 2009-04-12 20:58:29 +02:00
commit a32a31794e
7 changed files with 42 additions and 12 deletions

View File

@ -225,6 +225,10 @@
# define _flag_log_hosts # define _flag_log_hosts
#endif #endif
#ifdef DEVELOPMENT
# define PARANOID
#endif
#ifdef EXPERIMENTAL #ifdef EXPERIMENTAL
# define USE_AUTOALIAS # define USE_AUTOALIAS
// fippo's brilliant single-user channel emulation for jabber MUCs // fippo's brilliant single-user channel emulation for jabber MUCs

View File

@ -75,7 +75,7 @@ promptForPassword(user) {
([ "_tag_reply" : authtag || "", "_nick" : nick, ([ "_tag_reply" : authtag || "", "_nick" : nick,
"_resource" : resource ]) ); "_resource" : resource ]) );
emitraw("</stream:stream>"); emitraw("</stream:stream>");
QUIT QUIT // should we really close the stream here?
return; // ? return; // ?
} }
P2(("nick %O, pass %O\n", nick, pass)) P2(("nick %O, pass %O\n", nick, pass))
@ -213,7 +213,7 @@ jabberMsg(XMLNode node) {
// internal server error // internal server error
STREAM_ERROR("internal-server-error", STREAM_ERROR("internal-server-error",
"Oh dear! Internal server error") "Oh dear! Internal server error")
QUIT // too hard? // QUIT
} }
unless (user -> isNewbie()) { unless (user -> isNewbie()) {
// already registered to someone else // already registered to someone else
@ -221,7 +221,9 @@ jabberMsg(XMLNode node) {
"<conflict xmlns='" NS_XMPP "xmpp-stanzas'/>" "<conflict xmlns='" NS_XMPP "xmpp-stanzas'/>"
"</error></iq>"; "</error></iq>";
emit(packet); emit(packet);
QUIT // elmex says, disconnect is wrong here:
// QUIT
// it should at least close the stream
} else unless ((t = helper["/username"]) && } else unless ((t = helper["/username"]) &&
t[Cdata] && t[Cdata] &&
(t = helper["/password"]) && (t = helper["/password"]) &&
@ -230,7 +232,7 @@ jabberMsg(XMLNode node) {
"<not-acceptable xmlns='" NS_XMPP "xmpp-stanzas'/>" "<not-acceptable xmlns='" NS_XMPP "xmpp-stanzas'/>"
"</error></iq>"; "</error></iq>";
emit(packet); emit(packet);
QUIT // QUIT
} else { } else {
#if defined(REGISTERED_USERS_ONLY) || defined(_flag_disable_registration_XMPP) #if defined(REGISTERED_USERS_ONLY) || defined(_flag_disable_registration_XMPP)
// TODO: generate some error as above // TODO: generate some error as above

View File

@ -569,7 +569,7 @@ iq(XMLNode node) {
target = jid2ppl(node["@to"]); target = jid2ppl(node["@to"]);
isplacemsg = stringp(target) && strlen(target) && ISPLACEMSG(target); isplacemsg = stringp(target) && strlen(target) && ISPLACEMSG(target);
P3(("%O IQ node %O\n", ME, node)) P0(("+++ %O IQ node %O\n", ME, node))
firstchild = getfirstchild(node); firstchild = getfirstchild(node);
unless(firstchild) switch(node["@type"]) { unless(firstchild) switch(node["@type"]) {
case "get": case "get":

View File

@ -495,7 +495,7 @@ sLocation(string service, mixed data) {
} }
static linkSet(service, location, source) { static linkSet(service, location, source) {
P1(("linkSet(%O, %O, %O) called in %O: linking.\n", P2(("linkSet(%O, %O, %O) called in %O: linking.\n",
service, location, source, ME)); service, location, source, ME));
// sLocation? // sLocation?
unless (location) location = source; unless (location) location = source;
@ -536,7 +536,7 @@ static linkDel(service, source, variant) {
service, source, ME)); service, source, ME));
return 0; return 0;
} }
P1(("linkDel(%O, %O) called in %O: unlinking %O.\n", P2(("linkDel(%O, %O) called in %O: unlinking %O.\n",
service, source, ME, candidate)); service, source, ME, candidate));
unless (source) source = candidate; unless (source) source = candidate;
// sLocation? // sLocation?
@ -1318,6 +1318,11 @@ case "_message_echo":
case "_message_public": case "_message_public":
// avoid treating this as _message here // avoid treating this as _message here
break; break;
case "_message_video":
case "_message_audio":
// not being displayed to users other than psyc clients
data = 0;
break;
case "_message": case "_message":
// this is only visible in person.c, not user.c // this is only visible in person.c, not user.c
// therefore probably useless // therefore probably useless
@ -2568,10 +2573,19 @@ quit(immediate, variant) {
P3(("person:QUIT(%O,%O) in %O\n", immediate,variant, ME)) P3(("person:QUIT(%O,%O) in %O\n", immediate,variant, ME))
// keeping services running while logging out should be possible.. but // keeping services running while logging out should be possible.. but
// we currently don't do that
//linkDel(0); //linkDel(0);
if (sizeof(v("locations"))) { if (sizeof(v("locations"))) { // this should only trigger at first pass
// the if should only trigger at first pass
linkCleanUp(); linkCleanUp();
#if 1 //def PARANOID
if (sizeof(v("locations"))) {
P1(("%O * Hey, linkCleanUp left us with %O\n",
ME, v("locations")))
// we cannot vDel("locations") because the ONLINE macro
// breaks when we do
vSet("locations", ([]));
}
#endif
} }
if (immediate == 1 || (immediate && find_call_out(#'quit) != -1)) { if (immediate == 1 || (immediate && find_call_out(#'quit) != -1)) {
rc = save(); rc = save();

View File

@ -1069,7 +1069,7 @@ msg(source, mc, data, mapping vars) {
} }
// uni and unl differ // uni and unl differ
if (t != source) { if (t != source) {
P1(("ident: %O is really %O\n", t, source)) P2(("@%s knows: %O is really %O\n", MYNICK, t, source))
//source = t; //source = t;
// if (!member(vars, "_nick")) -- dont trust the UNL // if (!member(vars, "_nick")) -- dont trust the UNL
if (objectp(source)) { if (objectp(source)) {
@ -1414,8 +1414,8 @@ P1(("ident: %O is really %O\n", t, source))
return 0; return 0;
} }
// ist das die nette antwort auf /m channel ? // ist das die nette antwort auf /m channel ?
// vorsicht aber mit _message_public_question if (mc == "_message_private") mc = "_message_public";
if (!abbrev("_message_public", mc)) mc = "_message_public"; // vorsicht mit _message_public_question und _message_video
} }
/* if the source is not a member of the room and was allowed /* if the source is not a member of the room and was allowed
* because of qAllowExternal* we probably should use the rooms * because of qAllowExternal* we probably should use the rooms

View File

@ -615,6 +615,12 @@ case "_jabber_iq_set":
case "_jabber": case "_jabber":
P1(("%O got %O", ME, mc)) P1(("%O got %O", ME, mc))
break; break;
case "_message_video":
case "_message_audio":
// not being displayed to users other than psyc clients
if (v("scheme") != "psyc") return 1;
data = ""; // temporary for @welcome history
break;
case "_message_private_question": case "_message_private_question":
variant = "_ask" + variant; variant = "_ask" + variant;
m_delete(vars, "_action"); m_delete(vars, "_action");

View File

@ -1777,6 +1777,10 @@ case "_exit":
case "_quit": case "_quit":
// bye(vars["_reason"]); // bye(vars["_reason"]);
quit(); quit();
//
// this shouldn't be necessary!!
//call_out( (: destruct(ME) :) , 30);
// i hope it isnt..
return 1; return 1;
case "_show_log": // _list_log ? case "_show_log": // _list_log ?
case "_log": case "_log":