From 48629998bada0f93bd09aae40f37bcfbf20930d1 Mon Sep 17 00:00:00 2001
From: "psyc://psyced.org/~lynX" <@>
Date: Tue, 24 Mar 2009 23:17:13 +0100
Subject: [PATCH] -+-+
---
world/net/include/net.h | 4 ++++
world/net/jabber/server.c | 10 ++++++----
world/net/jabber/user.c | 2 +-
world/net/person.c | 14 +++++++++++---
4 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/world/net/include/net.h b/world/net/include/net.h
index f57a14b..5105075 100644
--- a/world/net/include/net.h
+++ b/world/net/include/net.h
@@ -225,6 +225,10 @@
# define _flag_log_hosts
#endif
+#ifdef DEVELOPMENT
+# define PARANOID
+#endif
+
#ifdef EXPERIMENTAL
# define USE_AUTOALIAS
// fippo's brilliant single-user channel emulation for jabber MUCs
diff --git a/world/net/jabber/server.c b/world/net/jabber/server.c
index 26c4028..cada632 100644
--- a/world/net/jabber/server.c
+++ b/world/net/jabber/server.c
@@ -75,7 +75,7 @@ promptForPassword(user) {
([ "_tag_reply" : authtag || "", "_nick" : nick,
"_resource" : resource ]) );
emitraw("");
- QUIT
+ QUIT // should we really close the stream here?
return; // ?
}
P2(("nick %O, pass %O\n", nick, pass))
@@ -213,7 +213,7 @@ jabberMsg(XMLNode node) {
// internal server error
STREAM_ERROR("internal-server-error",
"Oh dear! Internal server error")
- QUIT // too hard?
+ // QUIT
}
unless (user -> isNewbie()) {
// already registered to someone else
@@ -221,7 +221,9 @@ jabberMsg(XMLNode node) {
""
"";
emit(packet);
- QUIT
+ // elmex says, disconnect is wrong here:
+ // QUIT
+ // it should at least close the stream
} else unless ((t = helper["/username"]) &&
t[Cdata] &&
(t = helper["/password"]) &&
@@ -230,7 +232,7 @@ jabberMsg(XMLNode node) {
""
"";
emit(packet);
- QUIT
+ // QUIT
} else {
#if defined(REGISTERED_USERS_ONLY) || defined(_flag_disable_registration_XMPP)
// TODO: generate some error as above
diff --git a/world/net/jabber/user.c b/world/net/jabber/user.c
index 088ccf2..6a50921 100644
--- a/world/net/jabber/user.c
+++ b/world/net/jabber/user.c
@@ -569,7 +569,7 @@ iq(XMLNode node) {
target = jid2ppl(node["@to"]);
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);
unless(firstchild) {
switch(node["@type"]) {
diff --git a/world/net/person.c b/world/net/person.c
index ebd019b..4cfd1a6 100644
--- a/world/net/person.c
+++ b/world/net/person.c
@@ -2550,11 +2550,19 @@ quit(immediate, variant) {
P3(("person:QUIT(%O,%O) in %O\n", immediate,variant, ME))
// keeping services running while logging out should be possible.. but
+ // we currently don't do that
//linkDel(0);
- if (v("locations")) {
+ if (sizeof(v("locations"))) { // this should only trigger at first pass
linkCleanUp();
- // so the if should only trigger at first pass
- vDel("locations");
+#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)) {
rc = save();