bug in login greeting logic

This commit is contained in:
psyc://psyced.org/~lynX 2010-05-17 22:16:14 +02:00
parent 13b4af8098
commit 36ade907c4
5 changed files with 53 additions and 46 deletions

View File

@ -3,9 +3,15 @@ vim:nosmarttab:syntax=diff
| This file contains TODO and CHANGES (at EOF) rolled into one.
| Essentially: whenever you fix something, move that line to the end of file.
| - marks bugs & fixes, + marks new features, ? marks issues, * marks big stuff
|
| This file is mostly being used by lynX. The public bug tracker for psyced
| resides at https://projects.x-net.hu/projects/psyced/ and contains the
| same stuff in a more multiuser accessible fashion.
________________________________________________________________________
== SERIOUS!!! ==========================================================
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- remote psycers do not always show up properly via jabber client + MUC
- /m freenode:symlynx hey
Sorry, _message_private is not supported by the IRC gateway.
huh? wasn't that once the point to make them? debug...
@ -58,6 +64,8 @@ ________________________________________________________________________
________________________________________________________________________
== currently being inspected ===========================================
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- https://psyced.org/~lynX should use web browser language, not mine
- install.sh/configure doesn't *ensure* libidn is available
- newbies are allowed to open new owned rooms
@ -1875,6 +1883,10 @@ see also: http://about.psyc.eu/SPAM
+ some irc clients do not implement their own pinging, and some NATs really
kill your irc session if it is too quiet too long. we need optional server
side pings
+ since pinging has become so frequent, and packet sizes aren't of much
relevance as long as they are below the MTU (1492 for DSL, 576 for ISDN)
we might aswell answer those dumb ISON poll requests instead of just
doing ping pong. => implement irc-style notify/ison in irc/user.c
- (psyc://allo.homeunix.org/~allo) allo: hm, die userlist hier hat sich bei deinem nickchange nicht angepasst im ircgateway
saga: ja, das ist ein bug, der mich auch immer wieder nervt
@ -2182,23 +2194,6 @@ ________________________________________________________________________
the UNI). still my friends need to be able to do all of this with a psyconaut..
- checkout the fileshare stuff in perlpsyc/bin/
________________________________________________________________________
> MISCELLANEOUS STUFF:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
? irc-notify suckt, aber als reines client-interface kann man es doch
eigentlich erlauben? ison polling nervt, kann man hoffentlich vermeiden,
aber die presence notifications cann man auch als ison replies rausgeben,
umstellbar mittels einem +set vielleicht. warum? weil dann clients wie
gaim die presence info sinnvoll nutzen statt jedes mal ein popup aufzumachen
welches nur sagt, dass ich da bin.
? ifdef in der textdb: was ist wenn wir templates on-compile unterschiedlich
rendern wollen? also eher ein {if} als ein [if]? dachte gerade daran, dass
für presence->ISON die textdb sich unterschiedlich verhalten müsste..
? tobi hatte doch da in pike schonmal was gecoded.
was ich mir wünschen würde wäre eine if-ueberpruefung, ob ne var
gesetzt ist
________________________________________________________________________
========================================================================
*** CHANGELOG ***
@ -3978,4 +3973,11 @@ userthreads, threads, accept etc
#define _flag_enable_module_microblogging
+ twitter submit
+ signatures
=== 201005 ============================================================
net/user
- bug in login greeting logic
net/circuit
? raised size of queue from 123 to 3303 since i have seen errors
caused by queue being too short. not sure if this solves a problem
or postpones it to become a bigger problem later ;)

View File

@ -189,7 +189,7 @@ circuit(ho, po, transport, srv, whoami, sysQ, uniform) {
#else
unless(whoami) whoami = ho || ME;
#endif
qInit(me = whoami, 123, 12);
qInit(me = whoami, 3303, 12);
D1( if (q[me]) PP(("%O using %O's queue: %O\n", ME, me, sizeof(q[me]) > 2 ? sizeof(q[me]) : q[me])); )
waitforme = CONNECT_RETRY;
retry = 0;

View File

@ -1198,30 +1198,31 @@ static privmsg(args, text, req) {
text = text[..<2];
}
#endif
if (index(args, ',') > 0) {
if (args) {
if (index(args, ',') > 0) {
w("_failure_unsupported_targets_multiple",
"We do not allow sending to several recipients at once. Why did your client ignore our MAXTARGETS=1 directive?");
return 0;
}
if (room = channel2place(args)) {
if (!place || !v("place") || stricmp(room, v("place"))) {
if (t = find_place(room)) {
place = t;
// this makes positive use of the psyc notion
// of a "current" room even if irc doesn't support
// that protocolwise..
vSet("place", room);
} else { // should the caller print this on privmsg() == 0?
w("_error_illegal_name_place", "Room name contains illegal "
"characters."); // uh. might be a lie
return 0;
}
}
} else {
if (lower_case(args) == "nickserv") return parsecmd(text);
person = args;
if (room = channel2place(args)) {
if (!place || !v("place") || stricmp(room, v("place"))) {
if (t = find_place(room)) {
place = t;
// this makes positive use of the psyc notion
// of a "current" room even if irc doesn't support
// that protocolwise..
vSet("place", room);
} else { // should the caller print this on privmsg() == 0?
w("_error_illegal_name_place", "Room name contains illegal "
"characters."); // uh. might be a lie
return 0;
}
}
} else {
if (lower_case(args) == "nickserv") return parsecmd(text);
person = args;
}
}
unless (text = decode(text, person, req)) return;
// unless (args) speak(text);

View File

@ -683,6 +683,7 @@ PSYC _color
#PSYC _degree_mood
PSYC _description_private
PSYC _description_presence
# erm.. _flag here?
PSYC _select_filter_presence
PSYC _flag_action_speak_visible
PSYC _flag_colors_ignore

View File

@ -1555,6 +1555,7 @@ logon() {
// makeToken() isn't a good idea here, apparently
sTextPath(v("layout"), v("language"), t);
// cannot if (greeting) this since jabber:iq:auth depends on this
// also greeting will only be defined after ::logon()
// (use another w() maybe?)
w("_notice_login", 0, ([ "_nick": MYNICK,
"_page_network": "http://www.psyc.eu/",
@ -1567,15 +1568,6 @@ logon() {
autojoin();
cmdchar = (v("commandcharacter") ||
T("_MISC_character_command", "/"))[0..0];
#ifndef _flag_disable_info_session
if (greeting) {
w("_warning_usage_set_language",
"Mittels \"/set language de\" kann zur deutschen Sprache gewechselt werden.");
if (cmdchar != "/") w("_warning_modified_command_character",
"Beware, \"[_command_character]\" is configured as your command character.",
([ "_command_character" : cmdchar ]) );
}
#endif
cmdchar = cmdchar[0];
actchar = v("actioncharacter") || T("_MISC_character_action",":");
@ -1597,6 +1589,17 @@ logon() {
#endif
::logon( query_ip_name(ME) ||
(this_interactive() && query_ip_name(this_interactive())) );
#ifndef _flag_disable_info_session
// greeting is only defined after ::logon has run
if (greeting) {
w("_warning_usage_set_language",
"Mittels \"/set language de\" kann zur deutschen Sprache gewechselt werden.");
if (cmdchar != "/") w("_warning_modified_command_character",
"Beware, \"[_command_character]\" is configured as your command character.",
([ "_command_character" : cmdchar ]) );
}
#endif
}
// net/jabber/user filters this call, so this is never executed for