From 2ede0de60e1de35e97afb25e56325ac1a01ee35e Mon Sep 17 00:00:00 2001 From: PSYC Date: Tue, 3 Mar 2009 04:27:01 +0100 Subject: [PATCH] initial git creation --- .gitignore | 19 + ANNOUNCE | 73 + CHANGELOG | 116 + COPYING.LIB | 481 + COPYRIGHT | 77 + CREDITS | 281 + FAQ | 22 + HELP | 21 + INSTALL | 323 + README | 26 + TODO | 90 + etc/README | 14 + etc/lpc-mode.el | 382 + etc/lpc.vim | 447 + etc/lpc.xml | 152 + etc/memusage | 96 + etc/psyclpc.ebuild | 94 + etc/savefile-parse.pl | 209 + mudlib/ACCESS.ALLOW | 80 + mudlib/README | 22 + mudlib/astar.c | 196 + mudlib/dhrystone.c | 365 + mudlib/dhrystone2.c | 381 + mudlib/dns_resolve.c | 112 + mudlib/erq-tool.c | 214 + mudlib/master_skeleton.c | 1255 ++ mudlib/pgsql.c | 171 + mudlib/psyc-tls.c | 108 + mudlib/query_ip_name.c | 40 + mudlib/simul_efun-dr.c | 449 + mudlib/sys/comm.h | 11 + mudlib/sys/commands.h | 50 + mudlib/sys/debug_info.h | 240 + mudlib/sys/debug_message.h | 18 + mudlib/sys/driver_hook.h | 35 + mudlib/sys/erq.h | 59 + mudlib/sys/files.h | 29 + mudlib/sys/functionlist.h | 69 + mudlib/sys/idn.h | 26 + mudlib/sys/include_list.h | 9 + mudlib/sys/inherit_list.h | 10 + mudlib/sys/input_to.h | 18 + mudlib/sys/lpctypes.h | 68 + mudlib/sys/objectinfo.h | 83 + mudlib/sys/pgsql.h | 23 + mudlib/sys/regexp.h | 43 + mudlib/sys/rtlimits.h | 24 + mudlib/sys/sent.h | 10 + mudlib/sys/strings.h | 10 + mudlib/sys/struct_info.h | 38 + mudlib/sys/telnet.h | 217 + mudlib/sys/time.h | 18 + mudlib/sys/tls.h | 87 + mudlib/sys/trace.h | 18 + mudlib/sys/wizlist.h | 22 + mudlib/telnetneg.c | 1247 ++ mudlib/telnetneg.h | 277 + mudlib/test_master.c | 315 + mudlib/uni-crasher/README | 14 + mudlib/uni-crasher/crasher.c | 831 + mudlib/uni-crasher/crashleak.c | 686 + mudlib/uni-crasher/secure.inc | 152 + psyclpc.1 | 332 + src/C_COMPILER_BUGS | 81 + src/Makefile.in | 619 + src/access_check.c | 491 + src/access_check.h | 17 + src/actions.c | 2787 +++ src/actions.h | 42 + src/alloca.c | 219 + src/array.c | 3209 +++ src/array.h | 137 + src/authlocal.c | 430 + src/authlocal.h | 48 + src/autoconf/Makefile | 7 + src/autoconf/acconfig.h | 138 + src/autoconf/configure.head | 12 + src/autoconf/configure.in | 2894 +++ src/backend.c | 1552 ++ src/backend.h | 63 + src/bitstrings.c | 1073 + src/bitstrings.h | 24 + src/bytecode.h | 291 + src/call_out.c | 847 + src/call_out.h | 29 + src/closure.c | 7154 +++++++ src/closure.h | 144 + src/comm.c | 9428 +++++++++ src/comm.h | 487 + src/config.h.in | 711 + src/configure | 20134 +++++++++++++++++++ src/contrib/empty-mapping-check-fix.patch | 39 + src/contrib/find_object.patch | 80 + src/contrib/get_eval_number.patch | 105 + src/contrib/improve-statistics.patch | 81 + src/contrib/load_object.patch | 27 + src/contrib/zesstra-foreach.patch | 12 + src/driver.h | 169 + src/dumpstat.c | 432 + src/dumpstat.h | 12 + src/ed.c | 4044 ++++ src/ed.h | 31 + src/efuns.c | 8919 +++++++++ src/efuns.h | 96 + src/exec.h | 994 + src/files.c | 1829 ++ src/files.h | 26 + src/filestat.h | 51 + src/func_spec | 816 + src/gcollect.c | 3032 +++ src/gcollect.h | 140 + src/hash.c | 165 + src/hash.h | 18 + src/heartbeat.c | 565 + src/heartbeat.h | 30 + src/hosts/GnuWin32/GnuWin32.h | 35 + src/hosts/GnuWin32/socket.c | 50 + src/hosts/GnuWin32/socket.h | 50 + src/hosts/README | 4 + src/hosts/amiga/README | 15 + src/hosts/amiga/README.Amiga | 151 + src/hosts/amiga/README.Amiga.info | Bin 0 -> 482 bytes src/hosts/amiga/StartMUD | 80 + src/hosts/amiga/StartMUD.info | Bin 0 -> 1780 bytes src/hosts/amiga/config.h | 547 + src/hosts/amiga/ldmud.info | Bin 0 -> 628 bytes src/hosts/amiga/machine.h | 265 + src/hosts/be/Makefile | 772 + src/hosts/be/be.h | 26 + src/hosts/be/beyacc | 10 + src/hosts/be/config.h | 540 + src/hosts/be/driver.r | 10 + src/hosts/be/driver.rsrc | Bin 0 -> 3368 bytes src/hosts/be/icon-16x16.raw | Bin 0 -> 256 bytes src/hosts/be/icon-32x32.raw | Bin 0 -> 1024 bytes src/hosts/be/machine.h | 305 + src/hosts/be/set-version | 68 + src/hosts/be/socketinc.h | 24 + src/hosts/crypt.c | 618 + src/hosts/defines.txt | 66 + src/hosts/unix.h | 42 + src/hosts/win32/Makefile | 410 + src/hosts/win32/Readme.rtf | Bin 0 -> 3660 bytes src/hosts/win32/config.h | 548 + src/hosts/win32/machine.h | 270 + src/hosts/win32/tubmud.bmp | Bin 0 -> 101470 bytes src/i-svalue_cmp.h | 112 + src/install-sh | 250 + src/interpret.c | 20700 ++++++++++++++++++++ src/interpret.h | 244 + src/lex.c | 7971 ++++++++ src/lex.h | 305 + src/machine.h.in | 361 + src/main.c | 3328 ++++ src/main.h | 77 + src/make_func.y | 3540 ++++ src/mapping.c | 4698 +++++ src/mapping.h | 234 + src/md5.c | 608 + src/md5.h | 35 + src/mempools.c | 1033 + src/mempools.h | 63 + src/mk-patchlevel.sh | 30 + src/mkfunc.c | 22 + src/mkinstalldirs | 40 + src/mregex.c | 1333 ++ src/mregex.h | 41 + src/mstrings.c | 1865 ++ src/mstrings.h | 259 + src/my-alloca.h | 51 + src/my-rusage.h | 88 + src/my-stdint.h | 49 + src/object.c | 9315 +++++++++ src/object.h | 381 + src/otable.c | 352 + src/otable.h | 21 + src/parse.c | 1822 ++ src/parse.h | 20 + src/parser.c | 23 + src/patchlevel.h.in | 31 + src/pcre/AUTHORS | 6 + src/pcre/COPYING | 54 + src/pcre/ChangeLog | 1475 ++ src/pcre/LICENCE | 54 + src/pcre/NEWS | 154 + src/pcre/README | 365 + src/pcre/README.LDMUD | 6 + src/pcre/config.h | 107 + src/pcre/dftables.c | 167 + src/pcre/get.c | 349 + src/pcre/internal.h | 682 + src/pcre/maketables.c | 140 + src/pcre/pcre.c | 8306 ++++++++ src/pcre/pcre.h | 193 + src/pcre/pcreposix.c | 305 + src/pcre/pcreposix.h | 88 + src/pcre/study.c | 472 + src/pkg-alists.c | 619 + src/pkg-alists.h | 17 + src/pkg-expat.c | 242 + src/pkg-expat.h | 30 + src/pkg-foo.c.template | 43 + src/pkg-foo.h.template | 20 + src/pkg-idna.c | 231 + src/pkg-idna.h | 18 + src/pkg-mccp.c | 453 + src/pkg-mccp.h | 30 + src/pkg-mysql.c | 871 + src/pkg-mysql.h | 27 + src/pkg-odbc.c | 1128 ++ src/pkg-odbc.h | 103 + src/pkg-pcre.c | 35 + src/pkg-pcre.h | 27 + src/pkg-pgsql.c | 1231 ++ src/pkg-pgsql.h | 33 + src/pkg-sqlite.c | 549 + src/pkg-sqlite.h | 25 + src/pkg-tls.c | 1772 ++ src/pkg-tls.h | 67 + src/port.c | 422 + src/port.h | 470 + src/prolang.h | 44 + src/prolang.y | 16798 ++++++++++++++++ src/ptmalloc.c | 42 + src/ptmalloc/arena.c | 752 + src/ptmalloc/config.h | 11 + src/ptmalloc/hooks.c | 632 + src/ptmalloc/malloc.c | 5796 ++++++ src/ptmalloc/malloc.h | 256 + src/ptmalloc/thread-m.h | 307 + src/ptrtable.c | 282 + src/ptrtable.h | 33 + src/random.c | 274 + src/random.h | 9 + src/regexp.c | 1457 ++ src/regexp.h | 62 + src/sent.h | 152 + src/settings/psyced | 354 + src/sha1.c | 389 + src/sha1.h | 74 + src/simul_efun.c | 550 + src/simul_efun.h | 57 + src/simulate.c | 5540 ++++++ src/simulate.h | 306 + src/slaballoc.c | 4364 +++++ src/slaballoc.h | 29 + src/smalloc.c | 4009 ++++ src/smalloc.h | 28 + src/sprintf.c | 2478 +++ src/sprintf.h | 10 + src/strfuns.c | 1303 ++ src/strfuns.h | 47 + src/string_spec | 242 + src/structs.c | 1568 ++ src/structs.h | 225 + src/svalue.h | 597 + src/swap.c | 2556 +++ src/swap.h | 36 + src/switch.h | 208 + src/sysmalloc.c | 227 + src/sysmalloc.h | 17 + src/typedefs.h | 52 + src/udns.h | 745 + src/util/Makefile.in | 87 + src/util/README | 10 + src/util/erq/Makefile.in | 69 + src/util/erq/erq.c | 2634 +++ src/util/erq/erq.h | 60 + src/util/erq/srv.c | 218 + src/util/erq/srv.h | 36 + src/util/fixinclude | 17 + src/util/overhead.c | 93 + src/version.sh | 29 + src/wiz_list.c | 869 + src/wiz_list.h | 70 + src/xalloc.c | 1653 ++ src/xalloc.h | 186 + src/xptmalloc.c | 255 + 278 files changed, 230984 insertions(+) create mode 100644 .gitignore create mode 100644 ANNOUNCE create mode 100644 CHANGELOG create mode 100644 COPYING.LIB create mode 100644 COPYRIGHT create mode 100644 CREDITS create mode 100644 FAQ create mode 100644 HELP create mode 100644 INSTALL create mode 100644 README create mode 100644 TODO create mode 100644 etc/README create mode 100644 etc/lpc-mode.el create mode 100644 etc/lpc.vim create mode 100644 etc/lpc.xml create mode 100755 etc/memusage create mode 100644 etc/psyclpc.ebuild create mode 100644 etc/savefile-parse.pl create mode 100644 mudlib/ACCESS.ALLOW create mode 100644 mudlib/README create mode 100644 mudlib/astar.c create mode 100644 mudlib/dhrystone.c create mode 100644 mudlib/dhrystone2.c create mode 100644 mudlib/dns_resolve.c create mode 100644 mudlib/erq-tool.c create mode 100644 mudlib/master_skeleton.c create mode 100644 mudlib/pgsql.c create mode 100644 mudlib/psyc-tls.c create mode 100644 mudlib/query_ip_name.c create mode 100644 mudlib/simul_efun-dr.c create mode 100644 mudlib/sys/comm.h create mode 100644 mudlib/sys/commands.h create mode 100644 mudlib/sys/debug_info.h create mode 100644 mudlib/sys/debug_message.h create mode 100644 mudlib/sys/driver_hook.h create mode 100644 mudlib/sys/erq.h create mode 100644 mudlib/sys/files.h create mode 100644 mudlib/sys/functionlist.h create mode 100644 mudlib/sys/idn.h create mode 100644 mudlib/sys/include_list.h create mode 100644 mudlib/sys/inherit_list.h create mode 100644 mudlib/sys/input_to.h create mode 100644 mudlib/sys/lpctypes.h create mode 100644 mudlib/sys/objectinfo.h create mode 100644 mudlib/sys/pgsql.h create mode 100644 mudlib/sys/regexp.h create mode 100644 mudlib/sys/rtlimits.h create mode 100644 mudlib/sys/sent.h create mode 100644 mudlib/sys/strings.h create mode 100644 mudlib/sys/struct_info.h create mode 100644 mudlib/sys/telnet.h create mode 100644 mudlib/sys/time.h create mode 100644 mudlib/sys/tls.h create mode 100644 mudlib/sys/trace.h create mode 100644 mudlib/sys/wizlist.h create mode 100644 mudlib/telnetneg.c create mode 100644 mudlib/telnetneg.h create mode 100644 mudlib/test_master.c create mode 100644 mudlib/uni-crasher/README create mode 100644 mudlib/uni-crasher/crasher.c create mode 100644 mudlib/uni-crasher/crashleak.c create mode 100644 mudlib/uni-crasher/secure.inc create mode 100644 psyclpc.1 create mode 100644 src/C_COMPILER_BUGS create mode 100644 src/Makefile.in create mode 100644 src/access_check.c create mode 100644 src/access_check.h create mode 100644 src/actions.c create mode 100644 src/actions.h create mode 100644 src/alloca.c create mode 100644 src/array.c create mode 100644 src/array.h create mode 100755 src/authlocal.c create mode 100755 src/authlocal.h create mode 100644 src/autoconf/Makefile create mode 100644 src/autoconf/acconfig.h create mode 100644 src/autoconf/configure.head create mode 100644 src/autoconf/configure.in create mode 100644 src/backend.c create mode 100644 src/backend.h create mode 100644 src/bitstrings.c create mode 100644 src/bitstrings.h create mode 100644 src/bytecode.h create mode 100644 src/call_out.c create mode 100644 src/call_out.h create mode 100644 src/closure.c create mode 100644 src/closure.h create mode 100644 src/comm.c create mode 100644 src/comm.h create mode 100644 src/config.h.in create mode 100755 src/configure create mode 100644 src/contrib/empty-mapping-check-fix.patch create mode 100644 src/contrib/find_object.patch create mode 100644 src/contrib/get_eval_number.patch create mode 100755 src/contrib/improve-statistics.patch create mode 100644 src/contrib/load_object.patch create mode 100644 src/contrib/zesstra-foreach.patch create mode 100644 src/driver.h create mode 100644 src/dumpstat.c create mode 100644 src/dumpstat.h create mode 100644 src/ed.c create mode 100644 src/ed.h create mode 100644 src/efuns.c create mode 100644 src/efuns.h create mode 100644 src/exec.h create mode 100644 src/files.c create mode 100644 src/files.h create mode 100644 src/filestat.h create mode 100644 src/func_spec create mode 100644 src/gcollect.c create mode 100644 src/gcollect.h create mode 100644 src/hash.c create mode 100644 src/hash.h create mode 100644 src/heartbeat.c create mode 100644 src/heartbeat.h create mode 100644 src/hosts/GnuWin32/GnuWin32.h create mode 100644 src/hosts/GnuWin32/socket.c create mode 100644 src/hosts/GnuWin32/socket.h create mode 100644 src/hosts/README create mode 100644 src/hosts/amiga/README create mode 100644 src/hosts/amiga/README.Amiga create mode 100644 src/hosts/amiga/README.Amiga.info create mode 100644 src/hosts/amiga/StartMUD create mode 100644 src/hosts/amiga/StartMUD.info create mode 100644 src/hosts/amiga/config.h create mode 100644 src/hosts/amiga/ldmud.info create mode 100644 src/hosts/amiga/machine.h create mode 100644 src/hosts/be/Makefile create mode 100644 src/hosts/be/be.h create mode 100755 src/hosts/be/beyacc create mode 100644 src/hosts/be/config.h create mode 100644 src/hosts/be/driver.r create mode 100644 src/hosts/be/driver.rsrc create mode 100644 src/hosts/be/icon-16x16.raw create mode 100644 src/hosts/be/icon-32x32.raw create mode 100644 src/hosts/be/machine.h create mode 100755 src/hosts/be/set-version create mode 100644 src/hosts/be/socketinc.h create mode 100644 src/hosts/crypt.c create mode 100644 src/hosts/defines.txt create mode 100644 src/hosts/unix.h create mode 100644 src/hosts/win32/Makefile create mode 100644 src/hosts/win32/Readme.rtf create mode 100644 src/hosts/win32/config.h create mode 100644 src/hosts/win32/machine.h create mode 100644 src/hosts/win32/tubmud.bmp create mode 100644 src/i-svalue_cmp.h create mode 100755 src/install-sh create mode 100644 src/interpret.c create mode 100644 src/interpret.h create mode 100644 src/lex.c create mode 100644 src/lex.h create mode 100644 src/machine.h.in create mode 100644 src/main.c create mode 100644 src/main.h create mode 100644 src/make_func.y create mode 100644 src/mapping.c create mode 100644 src/mapping.h create mode 100644 src/md5.c create mode 100644 src/md5.h create mode 100644 src/mempools.c create mode 100644 src/mempools.h create mode 100755 src/mk-patchlevel.sh create mode 100644 src/mkfunc.c create mode 100644 src/mkinstalldirs create mode 100644 src/mregex.c create mode 100644 src/mregex.h create mode 100644 src/mstrings.c create mode 100644 src/mstrings.h create mode 100644 src/my-alloca.h create mode 100644 src/my-rusage.h create mode 100644 src/my-stdint.h create mode 100644 src/object.c create mode 100644 src/object.h create mode 100644 src/otable.c create mode 100644 src/otable.h create mode 100644 src/parse.c create mode 100644 src/parse.h create mode 100644 src/parser.c create mode 100644 src/patchlevel.h.in create mode 100644 src/pcre/AUTHORS create mode 100644 src/pcre/COPYING create mode 100644 src/pcre/ChangeLog create mode 100644 src/pcre/LICENCE create mode 100644 src/pcre/NEWS create mode 100644 src/pcre/README create mode 100644 src/pcre/README.LDMUD create mode 100644 src/pcre/config.h create mode 100644 src/pcre/dftables.c create mode 100644 src/pcre/get.c create mode 100644 src/pcre/internal.h create mode 100644 src/pcre/maketables.c create mode 100644 src/pcre/pcre.c create mode 100644 src/pcre/pcre.h create mode 100644 src/pcre/pcreposix.c create mode 100644 src/pcre/pcreposix.h create mode 100644 src/pcre/study.c create mode 100644 src/pkg-alists.c create mode 100644 src/pkg-alists.h create mode 100644 src/pkg-expat.c create mode 100644 src/pkg-expat.h create mode 100644 src/pkg-foo.c.template create mode 100644 src/pkg-foo.h.template create mode 100644 src/pkg-idna.c create mode 100644 src/pkg-idna.h create mode 100644 src/pkg-mccp.c create mode 100644 src/pkg-mccp.h create mode 100644 src/pkg-mysql.c create mode 100644 src/pkg-mysql.h create mode 100644 src/pkg-odbc.c create mode 100644 src/pkg-odbc.h create mode 100644 src/pkg-pcre.c create mode 100644 src/pkg-pcre.h create mode 100644 src/pkg-pgsql.c create mode 100644 src/pkg-pgsql.h create mode 100644 src/pkg-sqlite.c create mode 100644 src/pkg-sqlite.h create mode 100644 src/pkg-tls.c create mode 100644 src/pkg-tls.h create mode 100644 src/port.c create mode 100644 src/port.h create mode 100644 src/prolang.h create mode 100644 src/prolang.y create mode 100644 src/ptmalloc.c create mode 100644 src/ptmalloc/arena.c create mode 100644 src/ptmalloc/config.h create mode 100644 src/ptmalloc/hooks.c create mode 100644 src/ptmalloc/malloc.c create mode 100644 src/ptmalloc/malloc.h create mode 100644 src/ptmalloc/thread-m.h create mode 100644 src/ptrtable.c create mode 100644 src/ptrtable.h create mode 100644 src/random.c create mode 100644 src/random.h create mode 100644 src/regexp.c create mode 100644 src/regexp.h create mode 100644 src/sent.h create mode 100755 src/settings/psyced create mode 100644 src/sha1.c create mode 100644 src/sha1.h create mode 100644 src/simul_efun.c create mode 100644 src/simul_efun.h create mode 100644 src/simulate.c create mode 100644 src/simulate.h create mode 100644 src/slaballoc.c create mode 100644 src/slaballoc.h create mode 100644 src/smalloc.c create mode 100644 src/smalloc.h create mode 100644 src/sprintf.c create mode 100644 src/sprintf.h create mode 100644 src/strfuns.c create mode 100644 src/strfuns.h create mode 100644 src/string_spec create mode 100644 src/structs.c create mode 100644 src/structs.h create mode 100644 src/svalue.h create mode 100644 src/swap.c create mode 100644 src/swap.h create mode 100644 src/switch.h create mode 100644 src/sysmalloc.c create mode 100644 src/sysmalloc.h create mode 100644 src/typedefs.h create mode 100644 src/udns.h create mode 100644 src/util/Makefile.in create mode 100644 src/util/README create mode 100644 src/util/erq/Makefile.in create mode 100644 src/util/erq/erq.c create mode 100644 src/util/erq/erq.h create mode 100644 src/util/erq/srv.c create mode 100644 src/util/erq/srv.h create mode 100644 src/util/fixinclude create mode 100644 src/util/overhead.c create mode 100644 src/version.sh create mode 100644 src/wiz_list.c create mode 100644 src/wiz_list.h create mode 100644 src/xalloc.c create mode 100644 src/xalloc.h create mode 100644 src/xptmalloc.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a8ed7c6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +CVS +.config +~$* +.DS_Store +.metadata +.actionScriptProperties +.#* +world/net/place/_*.c +world/net/include/place.i +*~ +*.swf +*.swp +*.rej +*.log +*.pem +*old +*bak +*diff +*orig diff --git a/ANNOUNCE b/ANNOUNCE new file mode 100644 index 0000000..7a2ce4e --- /dev/null +++ b/ANNOUNCE @@ -0,0 +1,73 @@ +CODE RELEASE: [lpmud driver] psyclpc 4.0.6 - derivate of LDMud + +ladies & gentlemen, + +wanted to inform you in accordance with Lars we have started shipping +our own LDMUD distribution as it was getting just too complicated to +maintain all necessary patches in our installation procedure for the +psyced server (multi-protocol chat/messaging server). + +wrapping up our own tars has simplified distributing psyced a lot. +we also dared to change the name (1) to make it less confusing for +our users that "ldmud" belongs to "psyced" and (2) not to have to +fulfil the high expectations you would put into an LDMud product. ;) + +psyclpc is a derivate of ldmud 3.3.714 (the current version in the +ldmud repository since over a year) with the following changes: + + 1. The driver has been modularized in such a way that you can turn + each function, many of them typically needed for MUD use, on or + off. The optional modules are: + + * actions (MUD command parser) + * built-in editor 'ed' + * inventories, environments and light + * paranoid reference checks + * shadowing + * socket snooping + * swapping + + Turning any of these off makes your driver lighter and faster, + which is quite nice. ;) + + 2. New optional packages have been added: + + * expat XML parser + * DNS SRV resolution + * JSON parser + * automatic localhost telnet authentication via /proc. + + 3. TLS support has been improved a lot. + + 4. Minor fixes concerning 64 bit compilation, Solaris compilation, + UTF-8 support, outgoing connections and multi-homed connects for + dynamic DNS. + + 5. Debugging message style has been revamped and the secondary debug + log made optional, but you can switch it back to ldmud compatible + whenever you want. + + 6. All new functions are neatly configurable using the settings files + introduced by LDMud. + +all in all no big deal, but it is being run in various places and +seems to perform flawlessly, so that in itself is nice (the bugfixes +submitted on mantis are really good!). + +we didn't remove anything of the MUD support, just made it all optional +and configurable, so you can still run an LPMud on this. there is even a +new field in the configure.in letting you put the "ldmud" name back in +place, or whatever you want your driver to call itself. :) + +by the way, you may be interested that the psyced's "mudlib" is architected +in a way that you can merge it into an existing mud. this brings PSYC, XMPP, +IRC, RSS and several other features into your system - there has even been +an experimental adaption of intermud over PSYC.. sort of an intermud 4. + +here are all the links: + psyclpc http://lpc.psyc.eu + psyced http://www.psyced.org + psyc http://about.psyc.eu + +questions? telnet psyced.org + diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..b19eefa --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,116 @@ +2008-05-28 (fippo/lynX) (4.0.8) + + new efuns: + string strftime(string, int default: F_TIME); + int strptime(string, string); + + temporary efun tls_want_peer_certificate() + - SSL_set_shutdown() hopefully fixes openssl crasher on SSL_ERROR_SYSCALL + +2008-01-21 (fippo) (4.0.7) + + new enable_binary() efun to allow for binary networking (EXPERIMENTAL) + + new ieee754_to_string(float) and string_to_ieee754(string) + efuns to support this specific flavour of floating point notation + +2008-01-12 (fippo) + - fixed erq SRV support on 64 bit architectures + +2008-01-02 (lynX) + - repaired builtin pcre utf8 support + + use builtin pcre by default until utf8 support becomes more popular + in distributions (can be an unnecessary complication otherwise) + +2007-10-07 (Lars) + - foreach(int i: ) recognizes if is negative + and throws an error. (Bug #503, from ldmud) + - (configure) When testing for libiconv, reference a real libiconv method. + This catches situations where libiconv exists, but is of the + wrong architecture. + +2007-08-29 (lynX) (4.0.6) + + #define USE_RESTORED_OBJECTS in object.c teaches + save_object() to store object names using a `name` syntax and + restore_object() to put it back in circulation in form of strings. + + enable_use_restored_objects activates this (but we don't use it yet) + + erq now terminates peacefully whenever the driver shuts down + - cleaned up a lot of debug output behaviour and put it into + #ifdef VERBOSE and #ifdef USE_LDMUD_COMPATIBILITY + + enable_use_debug_log=no sends all debug output to stdout + - enable_backtrace_always and enable_ldmud_compatibility + replaced by enable_use_ldmud_compatibility + - replaced enable_use_paranoid_refs by enable_use_paranoia which now + also ifdefs the "strict checks" code + + added enable_use_experimental + + EXPERIMENTAL: send TLSv1 handshake when acting as TLS client + +2007-08-19 (lynX) (4.0.5) + + enable_use_builtin_editor=no disables the built-in text editor 'ed'. + + enable_use_inventories=no removes all MUD-related functionality + concerning inventories and environments. + + enable_use_snooping=no disables all socket snooping code. + + enable_use_actions=no disables all MUD-style command parser facilities. + + enable_use_socket_limits=no disables limits on amount of entered lines + per second including get/set_max_commands() efuns. + + enable_use_shadowing=no disables various forms of shadowing. + + enable_use_swap=no disables the ability to swap program bytecode to disk. + + enable_use_paranoid_refs=no disables paranoid runtime checks, you only + need this if you are making dangerous changes to the driver code + or looking for mysterious crashes. + + enable_ldmud_compatibility=no mostly affects unnecessary debug messages + which will otherwise appear for maximum compatibility. + + optimized outconn management with num_pending_outconns & extra_jobs_to_do + +2007-08-16 (lynX) (4.0.4) + + added detection of #include which seems to + determine the availability of DNS SRV extensions + - erq will be compiled without SRV instead of failing to compile + + __NO_SRV__ is added to the predefines in lex.c if SRV is unavailable + + enable_backtrace_always=yes stops the stupid behaviour of hiding away + backtraces in the debug log (the debug log should only be necessary + for driver developers, not lpc coders). It doesn't have to be like php, + where the end user sees the full backtrace, but at least the admin should + be considered sufficiently competent. :) + + new RE_UTF8 flag mirrors the PCRE_UTF8 flag and allows operating on + unicode character ranges using regexps. + +2007-07-06 (lynX) (4.0.3) + + added zippo's 64 bit patches. apparently do not break 32 bit architectures. + thx to Casey Zacek; Zippo @ EotL; mud.eotl.org 2010 + +2007-05-07 (lynX) (4.0.2) + + moved program name ('psyclpc' formerly 'ldmud') into configure.in + +2007-05-04 (lynX) (4.0.2) + - fixed a compilation problem on Solaris derivates + + added authlocal + + added --with_max_net_connects, --with-size_socket_buffer + and forced settings when running ./configure without args + - applied http://mantis.bearnip.com/view.php?id=472 to fix zero byte + output in tell_object(), tell_room() and say() + + fixed multihomed connect to improve dynamic dns support + +2007-05-03 (fippo) (4.0.1) + - removed TLS CRL implementation as it isn't being used currently + and crashes on some systems + +2007-04-17 (lynX) (4.0.0) + + using new major version number to avoid conflicts with LDMUD. + +2007-04-08 (lynX) + - removed doc, mud, src/util/xerq, HISTORY, src/settings. + - crippled CHANGELOG. + - updated COPYRIGHT and README. + + created new CVS and introduced the pragmatic name 'psyclpc' + - some values adjusted to heavy networking use + +2007-02-16 (fippo) + - TLS fixed + + support for TLS CRLs + + JSON (javascript object notation) efuns + - set_combine_charset allows newline and null to be combined + - some minor patches + + pkg-expat + +2006-07-09 (Lars Duening) (3.3.714) + - Created snapshot. + +For prior CHANGELOG and HISTORY see the LDMud distribution. + diff --git a/COPYING.LIB b/COPYING.LIB new file mode 100644 index 0000000..bbe3fe1 --- /dev/null +++ b/COPYING.LIB @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100644 index 0000000..a0364a0 --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,77 @@ +psyclpc, an LDMud with a couple of patches and optimizations for psyced. +Patched by fippo and lynX. +Our patches usually also merge into LDMud eventually. + +LDMud, a LPmud gamedriver. +Copyright 1997-2006 by Lars Duening. + +LDMud is based on LPmud, which is +Copyright 1989-1991 by Lars Pensjö, and, starting with version 3.1.2, +Copyright 1991-1997 by Joern Rennecke. + +These copyrights notices are actually incorrect, as each of the many +authors below is still owner of his or her copyright. Also, since about +1990, LPmud contains GPL code, making the original restrictive licensing +scheme invalid. At the same time the COPYLEFT was added, which is now +to be considered the only viable licensing scheme for LPmud and its +derivates. + +Ever from the start LPMud used the GNU malloc implementation, it +was thus never fit to become restricted from GPL-incompliant use. +The only code in this driver which originates from the CD driver is +the UDP implementation. In 1993 Jacob Hallen +writes "The UDP stuff is to be considered public domain." + + ------------------------------------------------------------------------ + +LDMud contains contributions of many volunteers as listed in the file CREDITS. +Of these, the following packages are subject of their own copyright when +used outside the context of this gamedriver; please refer to the appropriate +files for details. + +The regexp package is based on the code written by Henry Spencer. + +The portable crypt() implementation is Copyright by Eric Young. + +The smalloc allocator was written by Sean T. Barrett and put into the +public domain. + +The 'ed' editor (with the exception of the indentation code) is Copyright +by Brian Beattie, Kees Bot and others. + +The non-corrupting indentation code for the 'ed' editor was written and +contributed by Felix A. Croes () from his DGD gamedriver. + +The sprintf() efun was written by Sean A. Reith and put into the public +domain. + +All code taken from the MudOS driver is Copyright by Tim Hollebeek and +the original authors. Use for other purposes than LPmud drivers or under +licenses significantly different from the original LPmud license needs +explicite permission. + +The random() efun is implemented using the Mersenne Twister generator which is +Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, and subject +to a BSD-style license. The implementation is the faster implementation based +on Shawn Cokus and Matthew Belle's improvements. See random.c for the full +text of the license. + +The MD5 message digest algorithm is Copyright (C) 1991-2, RSA Data Security, +Inc. + +The Apache-compatible MD5 password encryption is Copyright (C) 2000 Apache +Software Foundation. + +The PCRE (Perl Compatible Regular Expression) is Copyright (C) 1997-2001 by +Philip Hazel. LDMud contains just the files required for the driver (with +small modifications); see pcre/LICENCE for the licence terms and the location +of the full package, and pcre/README.LDMUD for an explanation of the changes. + +The lpc-mode.el for EMACS is Copyright (C) 2002 Vivek Dasmohapatra +, and distributed under the GPL. + +The PostgreSQL package is based on code written and donated 2001 by Florian +Heinz. + +The MCCP implementation was originally written for Finalfrontier by +Bastian Hoyer. diff --git a/CREDITS b/CREDITS new file mode 100644 index 0000000..b30a499 --- /dev/null +++ b/CREDITS @@ -0,0 +1,281 @@ +The program was originally written by + +Lars Pensj|, April 1989 (lars@cd.chalmers.se (no longer valid)). + +Lars gives the following credit: + + The regexp package was made by Henry Spencer. + + The ed package was not done by me. See the file ed.c for information. + + Bit manipulations was implemented by pell@lysator.liu.se who also found + several bugs that had eluded me for months. + + Valuable help and hints from: Mark Nagel, James Seidman, Moonchilde and more. + + Roland Dunkerley III fixed for-loops, do-while and the operators ++ and --. + + Sean T Barrett made smalloc.c. + + Lennart Augustsson convinced me to implement a compiler for a virtual + stack machine. He also implemented the built-in preprocessor. + + John S. Price found and fixed many bugs. + + The shadow idea was "forwarded" to me by John S. Price from Team Cthulhu + (Bill Burdick, Roy Riggs, Mitch Adler). + + Michael Malone, Michael O'Reilly, Klaus Rennecke, J|rn Rennecke and + Germano Caronni found and fixed a large amount of bugs. + + Petri Wessman fixed changes for SCO unix and AIX. + + ----------------------------------------------------------------------------- + +Joern Rennecke ( amylaar@cs.tu-berlin.de ) gives this credit: + + The non-corrupting indentation code for ed was written by Felix A. Croes, + aka Dworkin () and originates from his DGD. + + Mud-sprintf() is from Lynscar (Sean A Reith, and + was donated into the Public Domain. + + The alist based mapping implementation was supplied by Dworkin. + + The idea for query_actions and an implementation that has been partially used + is from Peter Eriksson (aka lpd) pen@lysator.liu.se + + The port to Amiga was done by Mateese ( Lars Duening ) + + The udp connectivity is from the CD driver, and was fitted in by deepthought. + + Demos, Freaky, Hurl, Hyp, Mateese, Pepel and Jof did a lot of alpha + testing. + + Reimer Behrends located a lot of bugs. He also supplied a portable macro to + test numbers for having but a single bit set, a mergesort based + sort_array() and variadic function support. + + get_object_actions() was supplied by herp. + + Marcus Meissner found and fixed many bugs. + + Carl White, Mark (ec179@city.ac.uk), Archimedes (Robert Fuller), Eric Blade, + Mitchell Brandsma, Sam Bobroff, Jim Cogbill, Ben Fennema, + Sorva (Ed Zielinski), Loke@Wonderland (Solem), Claus S. Jensen, Nils Magnus, + samo@MorgenGrauen, Frobozz (Bryan Schuler), Sique@Nightfall, APJ, + Deathknight, Tero Jyri Michael Pelander (tpeland@utu.fi), + Willem van der Oord (willem@marble.dcr.net), Hate@MorgenGrauen, + Bob Farmer, Randor@EoP, Trevor Phillips, Robert M. Zigweid, Inspiral, + Brian Gerst, Rasmus H. Hansen, Demodian (John Kurtz), William J. Burton, + Patrick Li, Niilo Paasivirta, Frank Stolze, Penelope@Avalon, + Nathan@Unholy Lands, mubo@SiliconDream, Sunblood@Tubmud, Alfe@Tubmud, + Tatu Saloranta, Chameloid@Tubmud and Martin Brenner (deepthought) reported bugs. + + Foslay did the OS/2 port. + + Ray Gilbert originally did the MSDOS port, which was modified later by + Rasmus Hellbug Hansen. + + Marcus Meissner contributed regreplace(). + + Slider@Tubmud supplied GnuWin32 patches. + + ----------------------------------------------------------------------------- + +Lars Duening thanks: + + - Dana Durkee and the magnificient Wessex for enhancing my life. + - the citizens of One Step Beyond, PK-Mud and UNItopia for enduring my + driver experiments. + - Malcom Tester (malcom.tester@comcast.net) for providing me with access to + a Solaris system for testing. + - Elric (elric@lpmud.com) for providing me with access to + a FreeBSD system for testing. + - Blackcat (?) for providing me with access to a Linux system for testing. + - Freaky for providing me with access to an Irix system for testing, numerous + bug reports, and lots of patience when new versions crashed even faster + than the old ones. + - Kees Leune for providing me with access to a Linux/Sparc system for + testing. + - Stefan Petri and contributors for the extensive documentation of the + Amylaar driver (see also doc/README). + - the MudOS programmers for the efun terminal_colour() and Michael Schaefer + for adapting it for LDMud. + - Martin Brenner: initial multi-port implementation, inetd compatibility + code. + - Brian Gerst (bgerst@quark.vpplus.com) for the xerq daemon. + - Reinhard Pfau (Reinhard.Pfau@unix-ag.org, Mubo@SiliconDream) brought + the autoconf mechanism up to date. + - Ron Koerner (ron.koerner@gmx.de, Righ@FinalFrontier) provided the + initial implementation of inline closures modelled after MudOS' syntax. + - Uwe (uwe@6bone.informatik.uni-leipzig.de) provided the basic IPv6 support. + - Mark Daniel Reidel (Karm@Nightfall) did the first implementation of + the mySQL efuns. + - Dennis VanHoey (devanhoe@usol.com) did the compiling and testing for the + Darwin port. + - Bart van Driessche (bart@multi.franken.de, Hunter@FinalFrontier) did the + new OS/2 port. + - Menaures added the tab character conversion to the editor, and gleefully + found new ways to crash the driver. + - Adam Helps donated the LPC implementation of the A* pathfinding algorithm. + - Christian Welzel adapted ptmalloc (a threadsafe variant of Doug Lea's + allocator) for LDMud and extended it to support garbage collection. + - for bug reports, critics, fixes, patches and other support: + Adam Helps (ahelps@cs.byu.edu, acius@simud.org) + Alex@TubMud (at16@st-andrews.ac.uk) + Alexander Fetke (alfebtcd@cs.tu-berlin.de, Alfe@Tubmud) + Alexander Dobrinescu (ad@artifacts.de, Lev@FinalFrontier) + Anders Strandloev Elkjaer (ase@cs.auc.dk) + Andre Meiske (guandalug@magellan.tat.physik.uni-tuebingen.de) + Andreas Grammlich (andreas.grammlich@prepress.de, Gum@Wunderland) + Andre Grosse (ag17@irz.inf.tu-dresden.de, Patryn@Morgengrauen) + Andreas Fischer (andreas.fischer@physik.tu-chemnitz.de) + Andreas Klauer (menaures@metamorpher.de, Menaures@Unitopia) + Andreas Weller (aw6@informatik.uni-ulm.de, Zwirch@Carledon) + Andres Cvitkovich (ac@twig.mond.at, ac@zwerg.at, Woody@Silberland) + Andrew Weisz (elarke01@snet.net) + Andy Zeneski (jaz@zsolv.com) + Arne @ Elridion + Athanasia Steele (azurite@mail1.nai.net) + Baba@Avalon + Bastian Hoyer (hoyer@wisc.de, dafire@dafire.de) + Ben Fennema (bfennema@ix.netcom.com) + Bertram Felgenhauer (bf3@irz.inf.uni-dresden.de, Fuchur@Wunderland) + Bill Andrulonis (bill.andrulonis@citrix.com, Bofin@Realmsmud) + Billy Pembroke (wpem@comcast.net) + Blackcat@PK-Mud (amuelle1@htwm.de) + Brandon (pothole@darkspyre.quad.net) + Brandon Mathis (brandon.mathis@medsolutions.com) + Bruce Mitchell (mitchell@manly.delconet.com, Klahn@Manly Mud) + Carlo v. Loesch (psyc://psyced.org/~lynX) + Carsten Pluntke (su0289@studserver.uni-dortmund.de, Vejar@ForgottenDreams) + Casey Zacek (cz@netspire.net, zippo@eotl) + Chris Bender (chris.bender@attbi.com) + Christian "Leonidas" Becker (cbecker@informatik.hu-berlin.de) + Christian Fiedler (fido2@gmx.net) + Christian Kirschbaum (chrissy@cs.tu-berlin.de, Chameloid@Tubmud) + Christian Mudra (c_mudra@informatik.uni-kl.de, Coogan@Tubmud) + Christian Welzel (gawain@wh9.tu-dresden.de, Sir_Gawain@camlann.de, + Gawain@Regenbogen) + Craig Venz (Craig Venz@citrix.com, Kilan@Realmsmud) + croft@UNItopia.rus.uni-stuttgart.de + Collin Baillie (sanac@optushome.com.au) + Dale "Elric" Perkins (dale_perkins@mac.com, dale@lpmud.com) + Daniel von Dincklage (daniel@ozet.de, Sunblade@SiliconDream), + Daniel Fischer (dfischer@gmx.de, Dan@Gueldenland) + Daniel Sloan (sloand@alphalink.com.au) + Daryth Kendrickson (stavros@deadofnight.com) + David Gibbs (ishara@btinternet.com) + David 'Greyelk' Gibby (oop_apprentice@yahoo.com) + Dennis VanHoey (dvanhoe@usol.com) + Derek Baron (dbaron_ks@hotmail.com) + Dominik Zanettin (zhan@opossum.htu.tuwien.ac.at, Zhan@Beutelland) + Edward S. Marshall (esm@logic.net) + Enrico Bauermeister (ebauermeister@t-online.de, Enrico@FinalFrontier) + Eivind (ekj@ekj.vestdata.no) + Erik Meusel (emeusel@prinz-atm.CS.Uni-Magdeburg.De) + Fantom (Fantom@Tharsis-Gate.org) + Fini Jastrow (Fiona@Wunderland, ujastrow@mail.desy.de) + Florian Heinz (ctx@amail.dereference.de) + Frank Kirschner (freaky@unitopia.uni-stuttgart.de) + Frank Stolze (fstolze@iName.com) + Frank Syse (syseworks@mac.com) + Gerhard Schmidt (estartu@augusta.de) + Gimli@Unitopa (gimli@schlumpf.net) + "Gnomi" (gnomi@UNItopia.rus.uni-stuttgart.de) + Gunnar Kreitz (gunnark@chello.se) + Heiko Kopp (hkopp@informatik.uni-rostock.de, bardioc@bardioc.com, + Bardioc@Evermore) + Henk Stokhorst (Tha@wxs.nl) + Holger Kremss (jur94ewp@studserv.uni-leipzig.de, Holger@web.de, + Holger@Wunderland) + Jaroslaw Sitek (aron@bobas.nowytarg.pl) + Jason Hitt (jhitt25@swbell.net) + Jean-Stephane Jokeit (jokeit@gmx.de, xtian@avalon) + Joern Rennecke (amylaar@cygnus.co.uk) + Jose Manuel Roman (roman@wol.es, Theuzifan uzi@simauria.upv.es) + Joseph Graham (randalar@earthlink.net) + Josh Rollyson (jrollyson@sosdg.org) + Juergen Weickert (Sissi@UNItopia) + Karl N. Matthias (karmat@matthias.org) + Kathrin Paschen (paschen@ira.uka.de) + Kees Leune (c.j.leune@kub.nl) + Kent Chilson (kentiepoo@hotmail.com) + Kirnan@Avalon + Krystal-Anne Rubenstein (punkette@hotmail.com) + Kirnan@Avalon + Largo@Wunderland (emeusel@csmd.cs.uni-magdeburg.de) + Lasse Fuglsang Pedersen (volmer@qeep.dk, Zordiac@DeeperTrouble2) + Lee Salzman (lee.salzman@lvdi.net) + Logic (logic@logic.net) + "Mammi" (mammi@unitopia.uni-stuttgart.de) + Manu Mäki (mtmaki@pultti.turkuai.fi, Cendor@Winterkill) + Mark Daniel Reidel (Karm@Nightfall, + reidelm@rbg.informatik.tu-darmstadt.de) + Markus Peter (warp@spin.de, warp@hip.spin.de) + Martin (mandragon@morgengrauen) + Mat@Maethos + Mats Carlberg (matca@lysator.liu.se) + Matthew Julius (julius.2@wright.edu) + Michael Fedrowitz (mfedrowi@ix.urz.uni-heidelberg.de, + Michael_Fedrowiz@gmx.net, Rhodry@ForgottenDreams) + Michael Sporn (sporn@mathematik.hu-berlin.de, sunblood@tubmud) + Mike Conley (mpc@sgi.net, Tamarindo@Sovereign) + mudder@Furtual.ORG + "Nathan@Unholy Lands" (mud@pc181.iaee.tuwien.ac.at) + Neil McBride (neil@castinian.org) + Nepomuck@UNItopia + Nick Derewianka (nickd@e-media.com.au) + Nico Ehemann (n.ehemann@wzl.rwth-aachen.de) + Niels Boehm (bohmmrwc@minet.uni-jena.de, Mariko@Regenbogen) + Nuutti Kotivuori (naked@iki.fi) + Oskar Linde (d98-oli@nada.kth.se) + Parsec + Patrick May (patrick.may@cedelgroup.com) + Paul Apgar (tiresius@usa.net, tiresius@Cosmos) + Philipp Hancke (psyc://goodadvice.pages.de/~fippo) + Rainer Doerntge (rainer.doerntge@dlh.de) + Rajko Albrecht (ral@alwins-word.de, Alwin@Avalon) + Ralph (ralphi@vkr.k-net.dk) + Ralph Zitz (RZ@zitz.dk, Nostradamus@OSB) + Reimer Behrends (Macbeth@Tubmud) + Reinhard Pfau (reinhard@netlab1.hrz.uni-siegen.de, mubo@SiliconDream), + Reinhard Vicinus (vicinus@rhrk.uni-kl.de, Risky@Unitopia) + "Remsgost" (remsgost@blitzstrahl, radm@remsnet.de) + Robb Townsend (meecham@infonline.net) + Robert Forshaw (postmaster@rbf.org.uk) + Robert Reither (mud@klein.htu.tuwien.ac.at, Nathan@Unholy.Lands) + Robert Treml (robert@des.glaubst.net) + Rodney Quaye (sark@oberon.krans.com) + Ron Dawson (rondawson@syd.eastlink.ca, rdawson@cgc.ns.ca, Caper@PixieMud) + Sebastian Huss (huss@informatik.hu-berlin.de, baba@avalon) + Shinarae Lluminus@Batmud (shinarae_lluminus@hotmail.com) + Slava "DieHARD" Ignatjev (root@impar.com, slava@intersfera.lt) + Sieni (sampsa@netsonic.fi) + Simon Fischer (firebat@redcrown.de) + Stefan Budweiser (Stefan.Budweiser@compaq.com) + Stefan Riemer (stefan.riemer@bauing.uni-weimar.de, Peng@FinalFrontier) + Stephan Lichtenhagen (lichti@amethyst.chemie.uni-dortmund.de, + stephan@lichtenhagen.de, Tiamak@Morgengrauen) + Steve Goucher (su2996@eclipse.co.uk) + Steve Willoughby (steve@alchemy.com, Ragnarok) + Tatu P. Saloranta (doomdark@cc.hut.fi) + Terry Penn (terry@simaril.net) + TheFinn (thefinn@ar.com.au) + Thomas Feldmeier (tfeldmei@student.informatik.uni-ulm.de, Zora@Carledon, + zora@alpha.universalware.de) + Thorsten Klose (Thorsten.Klose@infineon.com, Avatar@avalon) + Tiberian@Unitopia + Tmm@UNItopia? (Tmm@gmx.de) + Tobias Josefowitz (tobij@goodadvice.pages.de) + Tomas (Vandergnome@aol.com) + Tomi Valkeinen (tomi.valkeinen@taikatech.com, Tomba@Batmud) + Tucita@UNItopia + Urv (urv@hispeed.ch) + Volker Behr (Sorcerer@AbendDaemmerung, vrbehr@cip.physik.uni-wuerzburg.de) + Wayne Woods (w.woods@optusnet.com.au) + Willem van der Oort (willem@dcr.net) + Wolf Dieter Dallinger (Pulami@Unitopia, wolf.dieter@dallinger.de) + Zonk@FinalFrontier (zonk@finalfrontier.mud.de, rueschi@berit-broese.de) + The Wizards of Evermore diff --git a/FAQ b/FAQ new file mode 100644 index 0000000..9c347ad --- /dev/null +++ b/FAQ @@ -0,0 +1,22 @@ +=============================================================================== +Why our own derivate of the LDMud? + +* Expecting our psyced admins to find a suitable version made installation + unnecessarily complicated, and every now and then an ldmud release does + indeed not work for psyced. +* We love the work mateese has been doing and still does, and we will + surely continue to share all gotchas and improvements so that both + variants of LDMud strive. Only we catch ourselves needing to have a + shorter change inclusion and release cycle. We asked mateese before + taking this step. +* For that reason we had been making the psyced install procedure too + complicated, as it was always trying to patch some things in the ldmud + source, even when it didn't know which ldmud version it was working on. +* Now to have psyced and its driver bundled in a pair which is safely known + to be happily working together is a simple yet great step forward. +* This makes the whole psyced installation base more homogeneous. We don't + have to deal with deployed instances that do not properly do this or that. + +It should still be possible to run psyced with an off-the-mill ldmud and +counterwise run a MUD installation with a psyclpc. +=============================================================================== diff --git a/HELP b/HELP new file mode 100644 index 0000000..8f60a08 --- /dev/null +++ b/HELP @@ -0,0 +1,21 @@ +[CONTACT] +psyclpc is being maintained by fippo & lynX. + + fippo is available at psyc://goodadvice.pages.de/~fippo + or xmpp:fippo@goodadvice.pages.de + + lynX is available as psyc://psyced.org/~lynx + +You can reach us at psyc://psyced.org/@welcome + +[HISTORY] +psyclpc is a programming language for intense multi-user network applications +such as psyced. it's a recent fork of LDMud with some features and many +bug fixes. we kept it compatible to LDMud, so you can run a MUD with it, too. +It is available from . + +LDMud itself is a continuation of the Amylaar LPMud Gamedriver 3.1.2. +See also . + +psyclpc is released under the GNU LIBRARY GENERAL PUBLIC LICENSE, Version 2. + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..ddc2eb7 --- /dev/null +++ b/INSTALL @@ -0,0 +1,323 @@ +Topics covered: + + - psyclpc & LDMud Notes + - Unix or Unix-like systems, with additional details for FreeBSD, AIX 3.4, + and DEC Ultrix. + - IPv6 + - mySQL + - BeOS + - Windows 95/98/NT + - OS/2 + + +psyclpc & LDMud Notes +--------------------- + + psyclpc is a variant of the LPC language optimized for psyced. + When using this driver distribution "./configure" will restart + itself as "./configure --with-setting psyced". This will run + configure with all the sane options necessary for a pleasant + psyclpc experience tuned to psyced requirements. + + See also http://lpc.psyc.eu and http://about.psyc.eu/psyclpc + + Should you want to make a very traditional driver close to the + LDMud original instead, copy your own settings file to the + settings directory and run it. All the new functions of psyclpc + will then automatically default to LDMud-compatible behaviour. + + Also running "./configure" with *any* parameters will keep it + from loading psyced behaviour. Expect psyced not to work with + such a driver. It will probably fail with one of these messages: + + psyclpc: Unknown option '--tls-key'. + + Failed to load master object 'secure/master'. + + +Unix or Unix-like system +------------------------ + + The driver uses a standard autoconfiguration system which on most + systems does all the work for you (for exceptions see below). + To prepare the compilation, execute the 'configure' script from + within the src/ directory. + + configure checks for a number of site specific settings and uses this + information to create the files machine.h (from machine.h.in), Makefile + (from Makefile.in) and config.h (from config.h.in). We'll come back to + config.h below. + + configure takes a lot of arguments (--help will tell you everything), + but the most important are these: + + --prefix=PREFIX: the base directory for the mud installation, + defaults to /usr/local/mud . + --bindir=DIR: the directory to install the executables in, + defaults to ${PREFIX}/bin . + --libdir=DIR: the directory where the mudlib is found, + defaults to ${PREFIX}/lib . + --includedir=DIR: the directory where driver's LPC include files + are supposed to live. + defaults to ${PREFIX}/include (which is usually wrong). + --libexecdir=DIR: the directory where the programs for the ERQ are found, + defaults to ${PREFIX}/libexec . + + These settings are written into the Makefile and compiled into the driver, + just the mudlib directory setting can be changed with a commandline + argument. + + A lot of the drivers parameters can be tweaked for better performance; these + parameters are defined in config.h . This file too is created by configure, + which provides sensible defaults for all parameters for which no explicite + setting is provided. To tweak a setting yourself, pass the argument + '--enable-