_amount_users_loaded

This commit is contained in:
psyc://psyced.org/~lynX 2009-03-07 17:39:25 +01:00
parent 227eb4fbfd
commit 1b9b468ecf
10 changed files with 85 additions and 90 deletions

View File

@ -13,62 +13,6 @@ ________________________________________________________________________
________________________________________________________________________ ________________________________________________________________________
== currently being inspected =========================================== == currently being inspected ===========================================
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- remote IRC place does not send names listing on /join
- remote IRC /part shows no reaction at first attempt
+++ not limited to IRC!! thx marenz
- XMPP: first reply to a stranger's remote psyc message did not show up in psi
- IRC shows "*** k kindly asks for your friendship." for remote
friendship requests. eh! where's the uniform!?
- remote /topic shows wrong nick (abolish _nick and this problem disappears)
- /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...
- tjgillies ponders: connecting to psyced.org with psi pops up a
profile window everytime
- tjgillies: meebo doesn't let you put * in MUC name
AFAIK the xmpp: uri does not forbid * from the URI RFC thus
meebo should be incorrect here. we'll have to talk to them..
- google talk also makes funny errors, maybe because of the '*'
<message to='XXX@gmail.com' type='groupchat' from='*demo@ve.symlynx.com/lynX'><body>/me asks: you see me?</body></message>
<message to="*demo@ve.symlynx.com/lynX" type="error" from="XXX@gmail.com">
<body>/me asks: you see me?</body>
<error code="503" type="cancel">
<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</message>
- spam by unregistered users: limit unregistered users to 1 per minute for now?
or force them to do web-based registration? or even.. trustee-based?
it's the real thing.....!
? archetype.gen & other places: current privilege model sux.
qAide(), qOwner(), boss(source), v("topic-user")
.. how does this fit with confctrl, _duty and qAllowExternal?
.. and in some cases you just want to check for isMember
- filter strangers is off by default, but we still seem to get a warning
+ we should put _trustee into messages to strangers, so we can talk with
people who we have friends in common with, by default. *TRUST*
? in gui clients this could be a menu option in a buddy list:
"contact a common friend" .. and of course when /surf'ing
? is it a good idea to use SIGS in user:cmd, too? not sure!!
- experimental rename fails sometimes:
Attempt to rename to existing object '~nautilutz'
possible fix: separate user identity from user access interface (see below)
- REGISTERED_USERS_ONLY does not behave properly on IRC port
(see also NO_NEWBIES ... clean up and rename?)
? tg reports inconsistent display of availability states in friend contextes
so far unable to reproduce
________________________________________________________________________ ________________________________________________________________________
== psyced 1.0 ========================================================== == psyced 1.0 ==========================================================
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
@ -134,6 +78,10 @@ AUTOALIASES & ALIASES FOR PLACES
or we should look at presence/subscribe integration first (where the or we should look at presence/subscribe integration first (where the
distinction of users and rooms becomes less relevant). distinction of users and rooms becomes less relevant).
! whenever a _context is output, its nick will be auto-added to raliases ! whenever a _context is output, its nick will be auto-added to raliases
problems that should disappear when we move away from _nick's:
- IRC shows "*** k kindly asks for your friendship." for remote
friendship requests. eh! where's the uniform!?
- remote /topic shows wrong nick
PRESENCE STATUS PRESENCE STATUS
+ all _status_person need to be upgraded to _status_presence with + all _status_person need to be upgraded to _status_presence with
@ -192,6 +140,23 @@ see also http://about.psyc.eu/subscription
+ FRIEND_ECHO ... send echo for /fr type commands from recipient + FRIEND_ECHO ... send echo for /fr type commands from recipient
not from own UNI (see #ifdef FRIEND_ECHO) not from own UNI (see #ifdef FRIEND_ECHO)
... or just rewrite it all into context subscription!! ... or just rewrite it all into context subscription!!
ARCHETYPE PLACES
? archetype.gen & other places: current privilege model sux.
qAide(), qOwner(), boss(source), v("topic-user")
.. how does this fit with confctrl, _duty and qAllowExternal?
.. and in some cases you just want to check for isMember
- REGISTERED_USERS_ONLY does not behave properly on IRC port
(see also NO_NEWBIES ... clean up and rename?)
? is it a good idea to use SIGS in user:cmd, too? not sure!!
- filter strangers is off by default, but we still seem to get a warning
+ we should put _trustee into messages to strangers, so we can talk with
people who we have friends in common with, by default. *TRUST*
? in gui clients this could be a menu option in a buddy list:
"contact a common friend" .. and of course when /surf'ing
________________________________________________________________________ ________________________________________________________________________
== TOP DELEGATES for 1.0 =============================================== == TOP DELEGATES for 1.0 ===============================================
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
@ -349,15 +314,6 @@ ________________________________________________________________________
? apply more TAGGING (tagged callbacks also avoid the monster switches) ? apply more TAGGING (tagged callbacks also avoid the monster switches)
/lusers shows: There are 441 users on this server.
no, this is not a number from smtp spam links.
- either we keep an extra counter for people who are _really_ online
or we avoid summoning people just to hand them out a _notice_presence.
the latter makes sense really.
- also, offline users are never unloaded apparently, so the problem is
somewhere in the reset() or clean_up() procedure. we first need to
unload them, then we can look into not loading them in the first place
CIRCUITRY CIRCUITRY
- _request_circuit_shutdown isnt issued or doesnt arrive - _request_circuit_shutdown isnt issued or doesnt arrive
or is the disconnected-detection buggy? or is the disconnected-detection buggy?
@ -538,12 +494,14 @@ JYNX möchte mit Dir Freundschaft schließen.
- falls /set entersilent off so erhalten bleibt, dokumentieren - falls /set entersilent off so erhalten bleibt, dokumentieren
PROGRAMMABLE USER IDENTIFICATIONS & MULTIPLE CLIENT INTERFACES PROGRAMMABLE USER IDENTIFICATIONS & MULTIPLE CLIENT INTERFACES
+ fippo insists on the uni/client split.. - experimental rename fails sometimes:
Attempt to rename to existing object '~nautilutz'
possible fix: separate user identity from user access interface
+ fippo insists on the uni/client split and saga has been asking for years..
= separate user identity from user access interface = separate user identity from user access interface
(and saga has been asking for years) .. read also 'person.gen' below but it is a messy piece of work (i tried to do it and stashed the branch)
- this would probably also solve the issue with the ~nick object name plan
+ and it allows for multiple jabber resources, of course + and it allows for multiple jabber resources, of course
(but it means we need to actively support UNRs for UNLs) (but it means we need to actively support UNRs for UNLs in entities)
? one day we could have a person.gen to create all sorts of user ? one day we could have a person.gen to create all sorts of user
objects from, but it sure is confusing that each of them still needs to objects from, but it sure is confusing that each of them still needs to
be able to call upon the various protocols.. this may either need a be able to call upon the various protocols.. this may either need a
@ -745,6 +703,27 @@ remoteMUC:
________________________________________________________________________ ________________________________________________________________________
== JABBER CLIENT ISSUES (...experimental is justified...) ============== == JABBER CLIENT ISSUES (...experimental is justified...) ==============
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
? XMPP: connecting to psyced.org with psi pops up a profile window everytime
? XMPP: first reply to a stranger's remote psyc message did not show up in psi
? neulich wurde 'stanly' beim runterfahren von psi nicht aus dem MUC genommen.
als er miranda hochfuhr war er bei uns immernoch im MUC und bekam die
MUC meldungen. ob der fehler bei psi oder uns liegt, k.A.
... is this still happening with the new fixes?
ASTERISK IN XMPP: UNIFORMS
- tjgillies: meebo doesn't let you put * in MUC name
AFAIK the xmpp: uri does not forbid * from the URI RFC thus
meebo should be incorrect here. we'll have to talk to them..
- google talk also makes funny errors, maybe because of the '*'
<message to='XXX@gmail.com' type='groupchat' from='*demo@ve.symlynx.com/lynX'><body>/me asks: you see me?</body></message>
<message to="*demo@ve.symlynx.com/lynX" type="error" from="XXX@gmail.com">
<body>/me asks: you see me?</body>
<error code="503" type="cancel">
<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</message>
- is psi having a problem with this, too?
- accurate availability values from friends aren't stored and delivered - accurate availability values from friends aren't stored and delivered
- re-subscribe isn't properly handled (so we do friend(0) earlier instead) - re-subscribe isn't properly handled (so we do friend(0) earlier instead)
@ -869,10 +848,6 @@ ________________________________________________________________________
- iChat sends /me with a newline after <body> and before the /me - iChat sends /me with a newline after <body> and before the /me
.. it doesn't get seen as /me, but it doesn't get output either!? .. it doesn't get seen as /me, but it doesn't get output either!?
? neulich wurde 'stanly' beim runterfahren von psi nicht aus dem MUC genommen.
als er miranda hochfuhr war er bei uns immernoch im MUC und bekam die
MUC meldungen. ob der fehler bei psi oder uns liegt, k.A.
? wenn wir psyc die eintragung von beliebigen weiteren identifications und ? wenn wir psyc die eintragung von beliebigen weiteren identifications und
locations pro user beibringen, könnte man dann diesen user via jabber locations pro user beibringen, könnte man dann diesen user via jabber
transports in seine im-logins einloggen? transports in seine im-logins einloggen?
@ -1416,6 +1391,10 @@ mapping rvars msg(source, mc, data, vars, rvars);
________________________________________________________________________ ________________________________________________________________________
* GATEBOT / IRCGATE / etc * GATEBOT / IRCGATE / etc
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- /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...
- msg from irc to remote psyc user doesn't work: - msg from irc to remote psyc user doesn't work:
ERQ could not resolve "symlynX". ERQ could not resolve "symlynX".
(it tries to resolve the irc:nick) (it tries to resolve the irc:nick)
@ -1745,7 +1724,7 @@ SHOW STATUS?
- psyctext() hängt sich auf wenn ein [ nicht wieder mit ] geschlossen wird - psyctext() hängt sich auf wenn ein [ nicht wieder mit ] geschlossen wird
SPAM / FLOOD CONTROL SPAM / FLOOD CONTROL
+ connect flood protection (against icaruz from pD9E3F294.dip.t-dialin.net) + connect flood protection (against icaruz from XX.XX.XX.XX)
1. introduce #define MAX_CONNECTIONS_FROM_ONE_IP 1. introduce #define MAX_CONNECTIONS_FROM_ONE_IP
2. warn admins via monitor when MAX_CONNECTIONS_FROM_ONE_IP * 70% 2. warn admins via monitor when MAX_CONNECTIONS_FROM_ONE_IP * 70%
is reached is reached
@ -1755,6 +1734,9 @@ SPAM / FLOOD CONTROL
maximum number of connections per ipmask, defaulting to 0 maximum number of connections per ipmask, defaulting to 0
6. maybe MAX_CONNECTIONS_FROM_ONE_IP can also be lowered 6. maybe MAX_CONNECTIONS_FROM_ONE_IP can also be lowered
interactively using "/block * 200" interactively using "/block * 200"
- spam by unregistered users: limit unregistered users to 1 per minute for now?
or force them to do web-based registration? or even.. trustee-based?
it's the real thing.....!
see also: http://about.psyc.eu/SPAM see also: http://about.psyc.eu/SPAM
== FRIENDSNETS / FRIENDSHIP DEGREES / WEB OF TRUST TODO: =============== == FRIENDSNETS / FRIENDSHIP DEGREES / WEB OF TRUST TODO: ===============

View File

@ -1543,8 +1543,8 @@ _status_version_agent
_status_version _status_version
|Version: [_nick] verwendet "[_version_description]" ([_version]). |Version: [_nick] verwendet "[_version_description]" ([_version]).
_status_users _status_user_amount
|Es sind [_amount_users] Nutzer auf diesem Server angemeldet. |Es sind [_amount_users_loaded] Nutzer auf Server [_source] geladen.
_status_friends _status_friends
|Anwesende Freunde: [_friends]. |Anwesende Freunde: [_friends].

View File

@ -366,4 +366,4 @@ _status_place_members_end_verbose
|#315 [_INTERNAL_nick_me] #[_nick_place] :End of /WHO list. |#315 [_INTERNAL_nick_me] #[_nick_place] :End of /WHO list.
_status_user_amount _status_user_amount
|#251 [_INTERNAL_nick_me] :There are [_amount_users_online] users on [_source]'s server |#251 [_INTERNAL_nick_me] :{_status_user_amount}

View File

@ -1409,6 +1409,9 @@ _status_version_agent
_status_version _status_version
|Version: [_nick] is using "[_version_description]" ([_version]). |Version: [_nick] is using "[_version_description]" ([_version]).
_status_user_amount
|There are [_amount_users_loaded] users loaded on server [_source].
_notice_presence_here_talkative _notice_presence_here_talkative
|Presence: [_nick] is willing to talk. [_description_presence] |Presence: [_nick] is willing to talk. [_description_presence]

View File

@ -956,7 +956,7 @@ _notice_friendship_removed_implied
|Automatischerweise kündigt auch [_nick] Dir die Freundschaft. |Automatischerweise kündigt auch [_nick] Dir die Freundschaft.
_status_user_amount _status_user_amount
|[_amount_users_online] utenti sono connessi tramite questo server. |[_amount_users_loaded] utenti caricati su [_source].
_status_friends _status_friends
|Anwesende Freunde: [_friends]. |Anwesende Freunde: [_friends].

View File

@ -102,8 +102,9 @@ int msg(string source, string mc, string data,
break; break;
} }
} }
return ({ $1, "_status_user_amount", return ({ $1, "_status_user_amount", 0,
"There are [_amount_users] people online, [_amount_users_registered] accounts on this server.", // generic formats shouldn't be hanging around in net/jabber...!?
// "There are [_amount_users_loaded] people loaded, [_amount_users_registered] accounts on this server.",
$2 }); $2 });
} else } else
return ({ $1, "_error_request_users_amount", return ({ $1, "_error_request_users_amount",

View File

@ -1982,7 +1982,7 @@ case "_notice_presence_here_busy":
t = v("locations")[0]; t = v("locations")[0];
if (t && t != source) { if (t && t != source) {
// no psyctext rendering happening in this variant // no psyctext rendering happening in this variant
# ifndef _flag_disable_circuit_proxy_multiplexing # ifdef _flag_enable_circuit_proxy_multiplexing
vars["_target_forward"] = t; vars["_target_forward"] = t;
# endif # endif
sendmsg(t, mc, data, vars, source); sendmsg(t, mc, data, vars, source);

View File

@ -110,17 +110,27 @@ msg(source, mc, data, vars, showingLog, target) {
case "_query_users_amount": // old, please remove case "_query_users_amount": // old, please remove
case "_request_user_amount": case "_request_user_amount":
# ifdef _flag_disable_query_amount_users_online # ifdef _flag_disable_query_amount_users_online
rv["_amount_users_online"] = -1; rv["_amount_users_loaded"] = -1;
# else # else
rv["_amount_users_online"] = amount_people(); // this actually shows the number of loaded user entities
// which is higher than the actual number of users online
rv["_amount_users_loaded"] = amount_people();
# endif # endif
rv["_amount_users_registered"] = -1; // how to get this? rv["_amount_users_registered"] = -1; // how to get this?
// <kuchn> maybe read in the user directory so you have the amount of registered users. // <kuchn> maybe read in the user directory so you have the amount of registered users.
// <lynX> i think it isn't anybody's business... // <lynX> i think it isn't anybody's business...
// in the name of privacy we should be // in the name of privacy we should be
// giving out random numbers instead of -1.. ;) // giving out random numbers instead of -1.. ;)
sendmsg(source, "_status_user_amount", sendmsg(source, "_status_user_amount", 0, rv);
"[_source] has [_amount_users_online] users online.", rv); // ircds tell a lot of things in reply to /lusers:
//
// 251 x :There are 25079 listed and 22070 unlisted users on 38 servers
// 252 x 39 :flagged staff members
// 254 x 22434 :channels formed
// 255 x :I have 2180 clients and 0 servers
// 265 x :Current local users: 2180 Max: 2714
// 266 x :Current global users: 47149 Max: 55541
// 250 x :Highest connection count: 2715 (2714 clients) (228789 since server was (re)started)
return 1; return 1;
#endif // _flag_disable_query_server #endif // _flag_disable_query_server
case "_error": case "_error":

View File

@ -1338,7 +1338,7 @@ w(string mc, string data, mapping vars, mixed source, int showingLog) {
#else #else
# echo No LPC? Wow. Good luck! # echo No LPC? Wow. Good luck!
#endif #endif
#ifndef _flag_disable_circuit_proxy_multiplexing #ifdef _flag_enable_circuit_proxy_multiplexing
// this is necessary when a single proxy is emulating // this is necessary when a single proxy is emulating
// several clients for several users. to figure out // several clients for several users. to figure out
// which context stuff is forwarded to which client // which context stuff is forwarded to which client
@ -1349,8 +1349,8 @@ w(string mc, string data, mapping vars, mixed source, int showingLog) {
// for them instead of accepting forwards from each UNI // for them instead of accepting forwards from each UNI
vars["_target_forward"] = loc; vars["_target_forward"] = loc;
// maybe this can be avoided when no _context is set...? // maybe this can be avoided when no _context is set...?
#endif
P3(("%O user:w forwarding %O to %O\n", ME, mc, vars["_target_forward"])) P3(("%O user:w forwarding %O to %O\n", ME, mc, vars["_target_forward"]))
#endif
sendmsg(loc, mc, nudata, vars); sendmsg(loc, mc, nudata, vars);
// PT(("PSYCW: %s -> %O (%O)\n", mc, loc, vars)) // PT(("PSYCW: %s -> %O (%O)\n", mc, loc, vars))
#if DEBUG > 1 #if DEBUG > 1

View File

@ -266,9 +266,8 @@ cmd(a, args, dest, command) {
// erzeugen sollte.. no? ausserdem sind die vars und // erzeugen sollte.. no? ausserdem sind die vars und
// das fmt unterschiedlich. und fast derselbe käse steht // das fmt unterschiedlich. und fast derselbe käse steht
// nochmal in net/irc/common... TODO // nochmal in net/irc/common... TODO
w("_status_user_amount", w("_status_user_amount", 0,
"There are [_amount_users] users on this server.", ([ "_amount_users_loaded" : amount_people() ]) );
([ "_amount_users" : amount_people() ]) );
} }
#else #else
if (sizeof(args) > 1 && is_formal(args[1])) t = args[1]; if (sizeof(args) > 1 && is_formal(args[1])) t = args[1];