fixed bug in autojoin logic for telnet and psyc users

This commit is contained in:
psyc://psyced.org/~lynX 2015-09-29 15:39:10 +02:00
parent 66626510e8
commit 9d8b68ed30
3 changed files with 24 additions and 27 deletions

View File

@ -299,8 +299,8 @@ qDescription(source, vars, profile, itsme) {
"xmpp:"+ MYLOWERNICK +"@"+ SERVER_HOST +" "+ "xmpp:"+ MYLOWERNICK +"@"+ SERVER_HOST +" "+
# endif # endif
# endif # endif
# ifdef ONION_HOST # ifdef ONION_IRC
"irc://"+ ONION_HOST +"/~"+ MYNICK, ONION_IRC +"/~"+ MYNICK,
# else # else
# ifdef __TLS__ # ifdef __TLS__
"ircs://" "ircs://"

View File

@ -2056,9 +2056,11 @@ showStatus(verbosity, al, person, mc, data, vars) {
([ "_identification": identification, ([ "_identification": identification,
#ifdef IRC_PATH #ifdef IRC_PATH
"_identification_alias": "_identification_alias":
# ifdef ONION_HOST # ifdef ONION_HTTP
"http://"+ ONION_HOST +"/"+ pathName() +" "+ ONION_HTTP +"/"+ pathName() +" "+
"irc://"+ ONION_HOST +"/"+ MYNICK +" "+ # endif
# ifdef ONION_IRC
ONION_IRC +"/"+ MYNICK +" "+
# endif # endif
# if HAS_PORT(HTTP_PORT, HTTP_PATH) || HAS_PORT(HTTPS_PORT, HTTP_PATH) # if HAS_PORT(HTTP_PORT, HTTP_PATH) || HAS_PORT(HTTPS_PORT, HTTP_PATH)
# ifdef PRO_PATH # ifdef PRO_PATH

View File

@ -1652,29 +1652,23 @@ autojoin() {
// a community-esq feature // a community-esq feature
vSet("place", DEFPLACE); vSet("place", DEFPLACE);
# endif # endif
P2(("autojoin with %O %O %O\n", v("place"), place, places)) P2(("autojoin with %O %O places=%O\n", v("place"), place, places))
// see also http://about.psyc.eu/Client_coders#Room_members // see also http://about.psyc.eu/Client_coders#Room_members
// checking sizeof(places) is unsafe.. exiting with /bye
// doesn't always clean them all out (FIXME?) which means
// that a new login may fail on rejoining subscriptions!
// i fix this by enforcing the foreach on subscriptions
// but there may be better fixes on earth.. then again,
// this is how irc's autojoin() has been doing it all the
// time.. so we should rather refactor that? then again
// the IRC clients really seem to need it differently.
// --lynX 2015
//
#if 0
if (sizeof(places)) { if (sizeof(places)) {
#if 0
if (v("scheme") != "irc" && v("scheme") != "psyc" &&
v("scheme") != "jabber") {
// ouch.. this has to be a notice! TODO!
sendmsg(place, "_status_person_present_netburp",
"[_nick] turns alive again.", ([
"_nick" : MYNICK ]) );
#if 0
// fake it - use _echo_place_enter_relinked?
// this message should only be displayed for IRC users
// well, psyc clients need it too..
foreach (o, s : places)
msg(o, "_echo_place_enter_relinked",
"You reenter [_nick_place] after interruption.",
([ "_nick_place" : s,
"_source_relay" : ME ]));
#endif
} else {
#endif
foreach (o, s : places) { foreach (o, s : places) {
P3(("%O relinking %O\n", ME, o))
# ifdef FORCE_PLACE_RESET # ifdef FORCE_PLACE_RESET
// we could have a v("leaveonreconnect") instead of an ifdef for this // we could have a v("leaveonreconnect") instead of an ifdef for this
placeRequest(o, placeRequest(o,
@ -1685,7 +1679,6 @@ autojoin() {
# endif # endif
"_netburp", 0, 1); "_netburp", 0, 1);
# else # else
P2(("%O relinking %O\n", ME, o))
placeRequest(o, placeRequest(o,
# ifdef SPEC # ifdef SPEC
"_request_context_enter" "_request_context_enter"
@ -1697,7 +1690,9 @@ autojoin() {
} }
// } // }
} }
else { else
#endif
{
# ifndef _flag_disable_place_default # ifndef _flag_disable_place_default
unless (v("place")) unless (v("place"))
vSet("place", T("_MISC_defplace", DEFPLACE)); vSet("place", T("_MISC_defplace", DEFPLACE));