diff --git a/CHANGESTODO b/CHANGESTODO index 7bc39cb..2201658 100644 --- a/CHANGESTODO +++ b/CHANGESTODO @@ -4,6 +4,10 @@ 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 ________________________________________________________________________ +== NEXT RELEASE ======================================================== +¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ +? support tls multiplexing on all suitable ports +________________________________________________________________________ == currently being inspected =========================================== ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ - remote IRC place does not send names listing on /join @@ -60,22 +64,18 @@ ________________________________________________________________________ - REGISTERED_USERS_ONLY does not behave properly on IRC port (see also NO_NEWBIES ... clean up and rename?) -- still UTF8 problems, once a day typically: - [Thu Jul 31 22:10:57 2008] C:xmpp:somewhere "*regexp: bad UTF-8 data -" "/me würde auf '96 tippen - ? tg reports inconsistent display of availability states in friend contextes so far unable to reproduce ________________________________________________________________________ -== NEXT RELEASE ======================================================== -¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ -+ before doing an announced new release, psyced should accept old psyc - syntax but send new psyc syntax by default! - -? support tls multiplexing on all suitable ports -________________________________________________________________________ == psyced 1.0 ========================================================== ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ +SPYC (implementation of http://about.psyc.eu/Specification) +* to activate spyc support, defined USE_SPYC + it will attempt to use new syntax on outgoing links by default +* to debug verification, define USE_VERIFICATION +* to spend an extra round trip time negotiating, define USE_FEATURES +- net/spyc is buggy and incomplete + INVITE ISSUES - remote /invite is shown without uniform, just #nick_place remote invite thus doesn't work for ircers.. @@ -173,16 +173,10 @@ see also http://about.psyc.eu/subscription ________________________________________________________________________ == TOP DELEGATES for 1.0 =============================================== ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ -- bartman sagt: psyconf erkennt keine absoluten pfade bei _path_PEM_key und _path_PEM_certificate - - world/static/index.html should be generated to contain applet port - fix member list in applet * see also APPLET, ANNOUNCEMENT, JABBER, FILE TRANSFER -- el: und irc bekommt keinen join fuer den raum - welche? bei newsräumen ist das richtig so - .. obwohl? überhaupt keine bestätigung!? - + login message that tells you about amount of pending/offered friendships etc. + Fix the /surf HTML code, see http://about.psyc.eu/Talk:Style @@ -1030,6 +1024,7 @@ ________________________________________________________________________ + elmex says: ./install.sh -d(efault)/-l(astrun) to skip all the questions? just ask? "Would you like to skip the questions and use last run's inputs?" +? but why? you shouldn't need to run install.sh more than once! + rpms! debs! ebuilds fertig machen und submitten! - psyced.ebuild: saga meint wir sollten conf.d verwenden statt @@ -2029,11 +2024,6 @@ thoughts from buddy-heggy.txt: + /set speakactionpossessive Meinung ist Jemandens Meinung ist: ach leck mich doch -== INTEGRATION OF VIDEO/TELEPHONY ====================================== -+ support launch of video chat apps using infos provided by UNLs -das ding hier wollte ich einfach mal aufschreiben.. -is natürlich politisch inkorrekt: www.telwell.de - == OPTIONAL PERFORMANCE IMPROVEMENTS =================================== - replace(args[2], "%", "@"); would probably be faster if done as i = index(str, '%'); if (i >= 0) str[i] = '@'; @@ -2099,49 +2089,10 @@ MISCELLANEOUS STUFF: was ich mir wünschen würde wäre eine if-ueberpruefung, ob ne var gesetzt ist -? befehl zum (re)starten/stoppen des muves (kill -1 ..).. - wird von psyconf nach etc/init.d erzeugt - könnte aber auch nach bin.. aber dann braucht er einen anderen namen - -? nei suggests we should pass encrypted jabber messages on to other protocols. - irc clients may be able to decrypt them. i think the problem only exists - for PGP while OTR should work. - this is currently blocked by the ldmud which has problems handling large tcp - packets - ? fippo findet, psyc sollte zumindest das nodeprep von xmpp übernehmen am besten auch noch saslprep benutzen, nameprep sowies. Bahnhof? http://about.psyc.eu/Stringprep -== LDMUD ISSUES ======================================================== -... normally belong into http://mantis.bearnip.com - but it isn't always -up and running. and maybe we should keep a list of _our_ issues with it -ourselves, anyway - -- #define MAX_OUTCONN 5 /* TODO: Move this into config.h */ -- minor: these defines in pkg-tls.h should go into ./configure & settings - #define TLS_DEFAULT_KEYFILE "key.pem" - #define TLS_DEFAULT_CERTFILE "cert.pem" - #define TLS_DEFAULT_TRUSTDIRECTORY "/etc/ssl/certs" - -== XML ISSUES ========================================================== -Ein kleines Parser-Issue: -» C:xmpp:amessage.de - -C:xmpp:amessage.de active for "amessage.de". opening with - ([ /* #1 */ - "stream": "http://etherx.jabber.org/streams", - "version": "1.0", - "id": "49f73b6a6b16a12d45af52be2b48444757d88b5a", - "xmlns": "jabber:server", - "db": "jabber:server:dialback" - ]) -Wie kommt er hier an das "db" im Parameter-Mapping? - == MOBILE APPS / GPRS / PSYCobile ====================================== Similar Projexx: http://freshmeat.net/projects/jimm/ diff --git a/world/drivers/ldmud/master/accept.c b/world/drivers/ldmud/master/accept.c index 0ac3534..00fff09 100644 --- a/world/drivers/ldmud/master/accept.c +++ b/world/drivers/ldmud/master/accept.c @@ -346,7 +346,12 @@ object compile_object(string file) { return rob; } if (abbrev("psyc:", file)) { +# ifdef USE_SPYC +# echo Using SPYC by default! Yeeha! + rob = clone_object(SPYC_PATH "active"); +# else rob = clone_object(PSYC_PATH "active"); +# endif D2(if (rob) PP(("NAMED CLONE: %O => %s\n", rob, file));) return rob; } diff --git a/world/net/psyc/active.c b/world/net/psyc/active.c index 5a98006..80d2d1e 100644 --- a/world/net/psyc/active.c +++ b/world/net/psyc/active.c @@ -5,7 +5,12 @@ #include #include +#ifdef SPYC +inherit SPYC_PATH "circuit"; +#else inherit PSYC_PATH "circuit"; +#endif + inherit NET_PATH "circuit"; volatile object super; @@ -37,7 +42,11 @@ int logon(int failure) { if (port && port != PSYC_SERVICE) peeraddr += ":"+port; // circuit::logon now also implies a full greeting // therefore it needs peeraddr, and the emit is redundant +# ifdef SPYC + SPYC_PATH "circuit"::logon(failure); +# else PSYC_PATH "circuit"::logon(failure); +# endif #endif return 1; } diff --git a/world/net/psyc/parse.i b/world/net/psyc/parse.i index fe0642c..ceb65e4 100644 --- a/world/net/psyc/parse.i +++ b/world/net/psyc/parse.i @@ -1127,7 +1127,7 @@ vamixed startParse(string a) { restart(); if (isServer()) greet(); } -# ifdef SPYC_PATH +# if defined(SPYC_PATH) && defined(USE_SPYC) else if (a == "|") { // new S_GLYPH_PACKET_DELIMITER object o = clone_object(SPYC_PATH "server"); unless (o && exec(o, ME) && o->logon(0)) { diff --git a/world/net/spyc/circuit.c b/world/net/spyc/circuit.c index 48966ce..de149d0 100644 --- a/world/net/spyc/circuit.c +++ b/world/net/spyc/circuit.c @@ -25,7 +25,7 @@ volatile string netloc; // this is completely anti-psyc. it should take mcs as arguments // and look up the actual message from textdb.. FIXME -#define CIRCUITERROR(reason) { debug_message("PSYC CIRCUIT ERROR: " reason); \ +#define CIRCUITERROR(reason) { debug_message("SPYC CIRCUIT: " reason "\n"); \ croak("_error_circuit", "circuit error: " \ reason); \ return 0; \ @@ -61,6 +61,25 @@ varargs mixed croak(string mc, string data, vamapping vars, vamixed source) { return 0; } +#ifdef USE_VERIFICATION +// request sender authentication and/or target acknowledgement +// from the remote side +void sender_verification(array(string) sourcehosts, array(string) targethosts) +{ + // FIXME: wrong variables here + mapping vars = ([ "_list_sources_hosts" : sourcehosts, + "_list_targets_hosts" : targethosts, + "_tag" : RANDHEXSTRING ]); + // assumption: we have already resolved all targethosts and + // they point to the remote ip + foreach(string ho : targethosts) { + sAuthenticated(ho); + } + + msg(0, "_request_verification", 0, vars); +} +#endif + // gets called during socket logon int logon(int failure) { sAuthHosts(([ ])); // reset authhosts @@ -134,7 +153,20 @@ int logon(int failure) { // FIXME unless(isServer()) { emit("|\n"); // initial greeting +#ifdef USE_FEATURES + // we have no features to request or offer msg(0, "_request_features", 0); +#else +# ifdef USE_VERIFICATION + // start hostname verification + // rather: look at Q and look for the hostnames we need + sender_verification(({ SERVER_HOST }), ({ peerhost })); +# else + if (function_exists("runQ")) { + runQ(); + } +# endif +#endif } return 1; } @@ -192,23 +224,6 @@ mapping process_header(mixed varops) { #define PSYC_TCP #include "dispatch.i" -// request sender authentication and/or target acknowledgement -// from the remote side -void sender_verification(array(string) sourcehosts, array(string) targethosts) -{ - // FIXME: wrong variables here - mapping vars = ([ "_list_sources_hosts" : sourcehosts, - "_list_targets_hosts" : targethosts, - "_tag" : RANDHEXSTRING ]); - // assumption: we have already resolved all targethosts and - // they point to the remote ip - foreach(string ho : targethosts) { - sAuthenticated(ho); - } - - msg(0, "_request_verification", 0, vars); -} - // receives a msg from the remote side // note: this is circuit-messaging void circuit_msg(string mc, mapping vars, string data) { @@ -245,13 +260,13 @@ void circuit_msg(string mc, mapping vars, string data) { } else { // FIXME!!!! CIRCUITERROR("sorry, no more than one element in _list_sources_hosts currently"); + P0(("more than one element in _list_sources_hosts: %O\n", vars["_list_sources_hosts"])) } // keep tag if present!!! // resolve all of _list_sources_hosts // look at _list_targets_hosts and determine localhostiness } else { CIRCUITERROR("_request_verification is not allowed on TLS circuits."); - // _request_verification is not allowed on tls circuits } break; case "_notice_features": @@ -262,15 +277,19 @@ void circuit_msg(string mc, mapping vars, string data) { flags -= TCP_PENDING_TIMEOUT; } sTextPath(); +#ifdef USE_FEATURES if (tls_query_connection_state(ME) == 0) { +# ifdef USE_VERIFICATION // start hostname verification // rather: look at Q and look for the hostnames we need sender_verification(({ SERVER_HOST }), ({ peerhost })); +# endif } else { if (function_exists("runQ")) { runQ(); } } +#endif break; case "_notice_verification": P0(("_notice verification with %O\n", vars)) diff --git a/world/net/spyc/dispatch.i b/world/net/spyc/dispatch.i index fc7eb3c..2e996ad 100644 --- a/world/net/spyc/dispatch.i +++ b/world/net/spyc/dispatch.i @@ -29,14 +29,16 @@ void dispatch(mixed header_vars, mixed varops, mixed method, mixed body) { if ((t = vars["_context"] || vars["_source"])) { array(mixed) u; unless (u = parse_uniform(t)) { - DISPATCHERROR("logical source is not an uniform\n") + DISPATCHERROR("logical source is not a uniform\n") } -#ifdef PSYC_TCP +#ifdef USE_VERIFICATION +# ifdef PSYC_TCP unless (qAuthenticated(NAMEPREP(u[UHost]))) { DISPATCHERROR("non-authenticated host\n") } -#else +# else // TODO? +# endif #endif } // check that _target is hosted by us