mirror of
git://git.psyced.org/git/psyclpc
synced 2024-08-15 03:20:16 +00:00
113 lines
5.9 KiB
Text
113 lines
5.9 KiB
Text
FROM LDMUD
|
|
- ldmud has made quite some progress, although not exactly in the areas
|
|
that we are active in. syncing with ldmud is a good idea.
|
|
|
|
BUGS
|
|
- erq doesn't conform to fortify code safety standards. this is ugly and
|
|
should be fixed but it is okay to just turn off fortify because erq is
|
|
fed exclusively with sanitized data from psyced, so buffer overruns are
|
|
possible but only theoretical.
|
|
- configure should warn more vehemently when libidn is missing
|
|
- libpsyc isnt recognized even if properly installed
|
|
- x86_64 seems to require -ldl explicitly at the end of libs
|
|
- sometimes -lpsyc and -lpcre are added twice to $LIBS !?
|
|
- should autoconf to sysmalloc also for osol (OpenSolaris)
|
|
- #define USE_EXPAT und JSON werden trotzdem gesetzt in config.h
|
|
auch wenn configure keine libs gefunden hat (egal, wir verwenden beide nicht)
|
|
- Because of some funny bug the driver will probably not bind properly
|
|
to _basic_host_IP as it also needs _basic_host_name and _basic_host_domain
|
|
to be provided. Hopefully this shortcoming will soon be history.
|
|
- what's the use of a traceback on stdout if the actual error goes to stderr?
|
|
Error loading place: *Error in loading object: 'place/testotest'.
|
|
Warning: place "/place/testotest" did not return ME on load()
|
|
2009.04.21 12:35:19 ERROR caught. Backtrace:
|
|
' parse' in ' net/irc/user.c' (' net/irc/user#User') line 32
|
|
[...]
|
|
' CATCH' in ('drivers/ldmud/library/library')
|
|
- libpsyc detection fails on BSD, hotfix by adding #define HAS_PSYC manually
|
|
- BSD needs -liconv in generated makefile
|
|
|
|
WINDOWS SUPPORT
|
|
+ with the new __NO_SRV__ detection psyclpc compiles under cygwin but it
|
|
doesn't provide SRV which makes it a suboptimal XMPP router.. just in
|
|
case you want that.
|
|
fippo suggests to put http://delta.affinix.com/jdns/ into psyclpc
|
|
http://www.chiark.greenend.org.uk/~ian/adns/ requires a locally running
|
|
nameserver.. and i don't think it even runs on cygwin.. other ideas?
|
|
|
|
COMPLAINTS
|
|
-* QA Notice: Package has poor programming practices which may compile
|
|
* fine but exhibit random runtime failures.
|
|
* interpret.c:7224: warning: dereferencing type-punned pointer will break strict-aliasing rules
|
|
|
|
MISC IDEAS
|
|
- make more MUD features optional: more d_flag stuff?
|
|
? USE_RESETS time_of_ref USE_CLEANUP load_id USE_WIZLIST USE_EXPAT USE_EVALUATION_COST
|
|
- disabling with_input_escape does not disable the input_escape handling source code
|
|
+ teach ldmud to exec() so that, together with --args, we can run it as a
|
|
regular daemon without kludgy shellscripts. zesstra suggests we could have
|
|
a C wrapper process instead of a shell script. and what about init, can't
|
|
we monitor and restart the driver from init?
|
|
(http://ldmud.eu/mantis/view.php?id=55)
|
|
+ provide a query_shutdown_progress() efun to inform about progress
|
|
and the intention to either shutdown or restart. maybe even a reason?
|
|
+ optimize f_lower_case by adding an 'already lowercase' flag to the
|
|
string data structure
|
|
+ ldap package erproben und fertigmachen
|
|
+ put errno() back in
|
|
+ psyctext() in C ... see psyced/CHANGESTODO for details
|
|
? bugless says there is an ioctl() to obtain a descriptor's owner uid
|
|
thus avoid the authlocal /proc hack
|
|
? have a seperate package for the LPC documentation and update it a bit
|
|
since ldmud?
|
|
+ fip thinks we should have a new operator with arguments rather than
|
|
clone_object and subsequent -> calls. pike doesn't even have the "new"
|
|
because unlike C++ and LPC it forbids static use of classes (aka "blueprints")
|
|
+ fippo suggests to look into http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html
|
|
+ DMSG_FLUSH for incremental debug messages :)
|
|
- for pike compatibility allow string[-1] just like string[<1]
|
|
+ would be nice if sprintf %O would indent data structure according to depth.
|
|
currently outputting a parsed xml node is quite confusing
|
|
|
|
ENCRYPTION (see http://about.psyc.eu/Talk:Encryption)
|
|
? link libpurple to this for protocol supports and OTR hahahahaha
|
|
? or link libotr only?
|
|
? or is OTR too expensive anyway and we should try SS-TLS?
|
|
|
|
USE_RESTORED_OBJECTS
|
|
+ object names need to be able to be identical to uniforms
|
|
then it doesn't matter if they came back from persistence as strings
|
|
as sendmsg() can handle both objects and uniforms - we just need to
|
|
deal with mappings where both the object and the uniform could be the key..
|
|
(members & routes of places)
|
|
|
|
NETWORKING
|
|
- add_message("%s", "\n*** Text lost in transmission ***\n");
|
|
should be passed to master instead.
|
|
+ _length: <eL> somebody implement a new input_to(#'get_data, length).
|
|
? replace ERQ with c-ares http://c-ares.haxx.se/ for async dns lookups
|
|
? MAYBE the whole networking should be replaced by libevent!??
|
|
+ support epoll() / kqueue (or just libevent?)
|
|
|
|
? allow port definition from lpc:master.c or even dynamic listen()
|
|
so we can add port config to the web configurator
|
|
..egal, machen wir jetzt über psyconf
|
|
|
|
CHARSET
|
|
-? keeping track of charset everywhere to avoid any unnecessary conversion
|
|
would lead to so much overhead, that occasional unnecessary conversion is
|
|
the cheaper option. that's why we should convert in the driver close to
|
|
the network operations:
|
|
comm.c:3055: if(ip->tls_inited)
|
|
l = tls_read(ip, ip->text + ip->text_end, (size_t)l);
|
|
else if (!(ip->tls_want))
|
|
l = socket_read(ip->socket, ip->text + ip->text_end, ...
|
|
+ since network read operations are much more efficient than input_to-lines
|
|
iconv charset conversions should happen right after socket/tls_read()
|
|
into a pre-buffer, then copy-converted into the interactive's buffer
|
|
+ outgoing transmissions need to find the same treatment, before
|
|
socket_write() and also before optional compression.
|
|
+ socket charset is stored in interactive_s and given by an efun
|
|
+ charset is compared to SYSTEM_CHARSET which is given by config.h/configure
|
|
- http://ldmud.eu/mantis/view.php?id=117 ... try //TRANSLIT again?
|