From 9cd3ccffd5372dfde3af478e3f832f18db4be3f1 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 6 Apr 2013 13:14:41 +0200 Subject: tagging tags --- ychat-0.7.9.3/CHANGES | 149 ++ ychat-0.7.9.3/COPYING | 339 +++++ ychat-0.7.9.3/INSTALL | 1 + ychat-0.7.9.3/Makefile | 88 ++ ychat-0.7.9.3/README | 547 ++++++++ ychat-0.7.9.3/TODO | 42 + ychat-0.7.9.3/configure | 77 + ychat-0.7.9.3/docs/yhttpd.txt | 3 + ychat-0.7.9.3/etc/ychat.conf | 690 +++++++++ ychat-0.7.9.3/html/admin.html | 33 + ychat-0.7.9.3/html/blank.html | 4 + ychat-0.7.9.3/html/colors.html | 416 ++++++ ychat-0.7.9.3/html/demo.html | 27 + ychat-0.7.9.3/html/favicon.ico | Bin 0 -> 2238 bytes ychat-0.7.9.3/html/frameset.html | 22 + ychat-0.7.9.3/html/help.html | 28 + ychat-0.7.9.3/html/images/away.gif | Bin 0 -> 141 bytes ychat-0.7.9.3/html/images/blank.gif | Bin 0 -> 43 bytes ychat-0.7.9.3/html/images/guest.png | Bin 0 -> 260 bytes ychat-0.7.9.3/html/images/ircuser.png | Bin 0 -> 282 bytes ychat-0.7.9.3/html/images/rang0.png | Bin 0 -> 390 bytes ychat-0.7.9.3/html/images/rang1.png | Bin 0 -> 261 bytes ychat-0.7.9.3/html/images/rang2.png | Bin 0 -> 282 bytes ychat-0.7.9.3/html/index.html | 54 + ychat-0.7.9.3/html/input.html | 60 + ychat-0.7.9.3/html/loggedin.html | 27 + ychat-0.7.9.3/html/notfound.html | 12 + ychat-0.7.9.3/html/online.html | 20 + ychat-0.7.9.3/html/options.html | 50 + ychat-0.7.9.3/html/register.html | 53 + ychat-0.7.9.3/html/robots.txt | 2 + ychat-0.7.9.3/html/stream.html | 38 + ychat-0.7.9.3/html/style.css | 48 + ychat-0.7.9.3/html/test.cgi | 9 + ychat-0.7.9.3/html/urlredirect.html | 9 + ychat-0.7.9.3/log/.keepme | 0 ychat-0.7.9.3/log/rooms/.keepme | 0 ychat-0.7.9.3/scripts/README | 6 + ychat-0.7.9.3/scripts/astyle.sh | 14 + ychat-0.7.9.3/scripts/buildnr.pl | 26 + ychat-0.7.9.3/scripts/checkperl.sh | 13 + ychat-0.7.9.3/scripts/config.pl | 144 ++ ychat-0.7.9.3/scripts/makedist.sh | 27 + ychat-0.7.9.3/scripts/makeyhttpd.pl | 198 +++ ychat-0.7.9.3/scripts/modules/file.pm | 28 + ychat-0.7.9.3/scripts/screen.sh | 3 + ychat-0.7.9.3/scripts/setglobvals.pl | 32 + ychat-0.7.9.3/scripts/stats.pl | 95 ++ ychat-0.7.9.3/scripts/version.sh | 11 + ychat-0.7.9.3/src/Makefile.in | 21 + ychat-0.7.9.3/src/chat/base.h | 95 ++ ychat-0.7.9.3/src/chat/base.tmpl | 61 + ychat-0.7.9.3/src/chat/chat.cpp | 370 +++++ ychat-0.7.9.3/src/chat/chat.h | 63 + ychat-0.7.9.3/src/chat/gcol.cpp | 185 +++ ychat-0.7.9.3/src/chat/gcol.h | 43 + ychat-0.7.9.3/src/chat/perm.cpp | 83 ++ ychat-0.7.9.3/src/chat/perm.h | 42 + ychat-0.7.9.3/src/chat/room.cpp | 114 ++ ychat-0.7.9.3/src/chat/room.h | 93 ++ ychat-0.7.9.3/src/chat/sess.cpp | 56 + ychat-0.7.9.3/src/chat/sess.h | 31 + ychat-0.7.9.3/src/chat/sman.cpp | 129 ++ ychat-0.7.9.3/src/chat/sman.h | 42 + ychat-0.7.9.3/src/chat/user.cpp | 595 ++++++++ ychat-0.7.9.3/src/chat/user.h | 139 ++ ychat-0.7.9.3/src/cli/cli.cpp | 336 +++++ ychat-0.7.9.3/src/cli/cli.h | 61 + ychat-0.7.9.3/src/conf/conf.cpp | 180 +++ ychat-0.7.9.3/src/conf/conf.h | 29 + ychat-0.7.9.3/src/configure | 334 +++++ ychat-0.7.9.3/src/contrib/README | 5 + ychat-0.7.9.3/src/contrib/crypt/how | 1 + ychat-0.7.9.3/src/contrib/crypt/md5.cpp | 270 ++++ ychat-0.7.9.3/src/contrib/crypt/md5.h | 34 + ychat-0.7.9.3/src/contrib/crypt/md5crypt.cpp | 162 +++ ychat-0.7.9.3/src/contrib/xml/README | 504 +++++++ ychat-0.7.9.3/src/contrib/xml/tinyxml.cpp | 1428 +++++++++++++++++++ ychat-0.7.9.3/src/contrib/xml/tinyxml.h | 1630 ++++++++++++++++++++++ ychat-0.7.9.3/src/contrib/xml/tinyxmlerror.cpp | 51 + ychat-0.7.9.3/src/contrib/xml/tinyxmlparser.cpp | 1553 +++++++++++++++++++++ ychat-0.7.9.3/src/data/README | 4 + ychat-0.7.9.3/src/data/con.cpp | 44 + ychat-0.7.9.3/src/data/con.h | 22 + ychat-0.7.9.3/src/data/con_base.cpp | 19 + ychat-0.7.9.3/src/data/con_base.h | 19 + ychat-0.7.9.3/src/data/data.cpp | 203 +++ ychat-0.7.9.3/src/data/data.h | 29 + ychat-0.7.9.3/src/data/data_base.cpp | 227 +++ ychat-0.7.9.3/src/data/data_base.h | 48 + ychat-0.7.9.3/src/glob.h | 221 +++ ychat-0.7.9.3/src/html.cpp | 149 ++ ychat-0.7.9.3/src/html.h | 40 + ychat-0.7.9.3/src/incl.h | 13 + ychat-0.7.9.3/src/logd.cpp | 175 +++ ychat-0.7.9.3/src/logd.h | 37 + ychat-0.7.9.3/src/main.cpp | 106 ++ ychat-0.7.9.3/src/maps/hashmap.h | 53 + ychat-0.7.9.3/src/maps/hashmap.tmpl | 126 ++ ychat-0.7.9.3/src/maps/mtools.h | 11 + ychat-0.7.9.3/src/maps/mtools.tmpl | 12 + ychat-0.7.9.3/src/maps/nhashmap.h | 21 + ychat-0.7.9.3/src/maps/nhashmap.tmpl | 11 + ychat-0.7.9.3/src/maps/shashmap.h | 49 + ychat-0.7.9.3/src/maps/shashmap.tmpl | 155 ++ ychat-0.7.9.3/src/modl.cpp | 171 +++ ychat-0.7.9.3/src/modl.h | 39 + ychat-0.7.9.3/src/mods/Makefile | 9 + ychat-0.7.9.3/src/mods/commands/Makefile.in | 18 + ychat-0.7.9.3/src/mods/commands/yc_about.cpp | 59 + ychat-0.7.9.3/src/mods/commands/yc_all.cpp | 49 + ychat-0.7.9.3/src/mods/commands/yc_away.cpp | 72 + ychat-0.7.9.3/src/mods/commands/yc_col.cpp | 88 ++ ychat-0.7.9.3/src/mods/commands/yc_compopt.cpp | 23 + ychat-0.7.9.3/src/mods/commands/yc_exec.cpp | 66 + ychat-0.7.9.3/src/mods/commands/yc_fake.cpp | 30 + ychat-0.7.9.3/src/mods/commands/yc_getroom.cpp | 53 + ychat-0.7.9.3/src/mods/commands/yc_getrusage.cpp | 57 + ychat-0.7.9.3/src/mods/commands/yc_help.cpp | 52 + ychat-0.7.9.3/src/mods/commands/yc_invisible.cpp | 31 + ychat-0.7.9.3/src/mods/commands/yc_j.cpp | 104 ++ ychat-0.7.9.3/src/mods/commands/yc_ko.cpp | 72 + ychat-0.7.9.3/src/mods/commands/yc_m.cpp | 44 + ychat-0.7.9.3/src/mods/commands/yc_md5.cpp | 54 + ychat-0.7.9.3/src/mods/commands/yc_me.cpp | 45 + ychat-0.7.9.3/src/mods/commands/yc_morph.cpp | 52 + ychat-0.7.9.3/src/mods/commands/yc_msg.cpp | 68 + ychat-0.7.9.3/src/mods/commands/yc_q.cpp | 30 + ychat-0.7.9.3/src/mods/commands/yc_reload.cpp | 25 + ychat-0.7.9.3/src/mods/commands/yc_ren.cpp | 74 + ychat-0.7.9.3/src/mods/commands/yc_s.cpp | 48 + ychat-0.7.9.3/src/mods/commands/yc_set.cpp | 100 ++ ychat-0.7.9.3/src/mods/commands/yc_template.cpp | 25 + ychat-0.7.9.3/src/mods/commands/yc_time.cpp | 22 + ychat-0.7.9.3/src/mods/commands/yc_topic.cpp | 78 ++ ychat-0.7.9.3/src/mods/commands/yc_uptime.cpp | 22 + ychat-0.7.9.3/src/mods/commands/yc_users.cpp | 28 + ychat-0.7.9.3/src/mods/commands/yc_version.cpp | 23 + ychat-0.7.9.3/src/mods/configure | 26 + ychat-0.7.9.3/src/mods/html/Makefile.in | 18 + ychat-0.7.9.3/src/mods/html/yc_admin.cpp | 72 + ychat-0.7.9.3/src/mods/html/yc_colors.cpp | 37 + ychat-0.7.9.3/src/mods/html/yc_help.cpp | 50 + ychat-0.7.9.3/src/mods/html/yc_loggedin.cpp | 29 + ychat-0.7.9.3/src/mods/html/yc_options.cpp | 56 + ychat-0.7.9.3/src/mods/html/yc_register.cpp | 96 ++ ychat-0.7.9.3/src/monitor/dump.cpp | 117 ++ ychat-0.7.9.3/src/monitor/dump.h | 51 + ychat-0.7.9.3/src/monitor/stats.cpp | 150 ++ ychat-0.7.9.3/src/monitor/stats.h | 49 + ychat-0.7.9.3/src/msgs.h | 136 ++ ychat-0.7.9.3/src/name.cpp | 49 + ychat-0.7.9.3/src/name.h | 24 + ychat-0.7.9.3/src/ncur/menu.cpp | 117 ++ ychat-0.7.9.3/src/ncur/menu.h | 39 + ychat-0.7.9.3/src/ncur/ncur.cpp | 290 ++++ ychat-0.7.9.3/src/ncur/ncur.h | 51 + ychat-0.7.9.3/src/reqp.cpp | 376 +++++ ychat-0.7.9.3/src/reqp.h | 42 + ychat-0.7.9.3/src/sign.cpp | 68 + ychat-0.7.9.3/src/sign.h | 21 + ychat-0.7.9.3/src/sock/sock.cpp | 518 +++++++ ychat-0.7.9.3/src/sock/sock.h | 88 ++ ychat-0.7.9.3/src/thrd/pool.cpp | 157 +++ ychat-0.7.9.3/src/thrd/pool.h | 55 + ychat-0.7.9.3/src/thrd/thro.cpp | 43 + ychat-0.7.9.3/src/thrd/thro.h | 30 + ychat-0.7.9.3/src/time/timo.cpp | 38 + ychat-0.7.9.3/src/time/timo.h | 22 + ychat-0.7.9.3/src/time/timr.cpp | 194 +++ ychat-0.7.9.3/src/time/timr.h | 64 + ychat-0.7.9.3/src/tool/dir.cpp | 66 + ychat-0.7.9.3/src/tool/dir.h | 35 + ychat-0.7.9.3/src/tool/tool.cpp | 240 ++++ ychat-0.7.9.3/src/tool/tool.h | 29 + ychat-0.7.9.3/src/wrap.cpp | 145 ++ ychat-0.7.9.3/src/wrap.h | 130 ++ 177 files changed, 19528 insertions(+) create mode 100644 ychat-0.7.9.3/CHANGES create mode 100755 ychat-0.7.9.3/COPYING create mode 100755 ychat-0.7.9.3/INSTALL create mode 100755 ychat-0.7.9.3/Makefile create mode 100755 ychat-0.7.9.3/README create mode 100644 ychat-0.7.9.3/TODO create mode 100755 ychat-0.7.9.3/configure create mode 100644 ychat-0.7.9.3/docs/yhttpd.txt create mode 100644 ychat-0.7.9.3/etc/ychat.conf create mode 100755 ychat-0.7.9.3/html/admin.html create mode 100755 ychat-0.7.9.3/html/blank.html create mode 100755 ychat-0.7.9.3/html/colors.html create mode 100755 ychat-0.7.9.3/html/demo.html create mode 100755 ychat-0.7.9.3/html/favicon.ico create mode 100755 ychat-0.7.9.3/html/frameset.html create mode 100755 ychat-0.7.9.3/html/help.html create mode 100755 ychat-0.7.9.3/html/images/away.gif create mode 100755 ychat-0.7.9.3/html/images/blank.gif create mode 100755 ychat-0.7.9.3/html/images/guest.png create mode 100755 ychat-0.7.9.3/html/images/ircuser.png create mode 100755 ychat-0.7.9.3/html/images/rang0.png create mode 100755 ychat-0.7.9.3/html/images/rang1.png create mode 100755 ychat-0.7.9.3/html/images/rang2.png create mode 100755 ychat-0.7.9.3/html/index.html create mode 100755 ychat-0.7.9.3/html/input.html create mode 100755 ychat-0.7.9.3/html/loggedin.html create mode 100755 ychat-0.7.9.3/html/notfound.html create mode 100755 ychat-0.7.9.3/html/online.html create mode 100755 ychat-0.7.9.3/html/options.html create mode 100755 ychat-0.7.9.3/html/register.html create mode 100755 ychat-0.7.9.3/html/robots.txt create mode 100755 ychat-0.7.9.3/html/stream.html create mode 100755 ychat-0.7.9.3/html/style.css create mode 100755 ychat-0.7.9.3/html/test.cgi create mode 100755 ychat-0.7.9.3/html/urlredirect.html create mode 100755 ychat-0.7.9.3/log/.keepme create mode 100755 ychat-0.7.9.3/log/rooms/.keepme create mode 100644 ychat-0.7.9.3/scripts/README create mode 100755 ychat-0.7.9.3/scripts/astyle.sh create mode 100755 ychat-0.7.9.3/scripts/buildnr.pl create mode 100755 ychat-0.7.9.3/scripts/checkperl.sh create mode 100755 ychat-0.7.9.3/scripts/config.pl create mode 100755 ychat-0.7.9.3/scripts/makedist.sh create mode 100644 ychat-0.7.9.3/scripts/makeyhttpd.pl create mode 100755 ychat-0.7.9.3/scripts/modules/file.pm create mode 100755 ychat-0.7.9.3/scripts/screen.sh create mode 100755 ychat-0.7.9.3/scripts/setglobvals.pl create mode 100755 ychat-0.7.9.3/scripts/stats.pl create mode 100755 ychat-0.7.9.3/scripts/version.sh create mode 100755 ychat-0.7.9.3/src/Makefile.in create mode 100755 ychat-0.7.9.3/src/chat/base.h create mode 100755 ychat-0.7.9.3/src/chat/base.tmpl create mode 100755 ychat-0.7.9.3/src/chat/chat.cpp create mode 100755 ychat-0.7.9.3/src/chat/chat.h create mode 100755 ychat-0.7.9.3/src/chat/gcol.cpp create mode 100755 ychat-0.7.9.3/src/chat/gcol.h create mode 100755 ychat-0.7.9.3/src/chat/perm.cpp create mode 100755 ychat-0.7.9.3/src/chat/perm.h create mode 100755 ychat-0.7.9.3/src/chat/room.cpp create mode 100755 ychat-0.7.9.3/src/chat/room.h create mode 100755 ychat-0.7.9.3/src/chat/sess.cpp create mode 100755 ychat-0.7.9.3/src/chat/sess.h create mode 100755 ychat-0.7.9.3/src/chat/sman.cpp create mode 100755 ychat-0.7.9.3/src/chat/sman.h create mode 100755 ychat-0.7.9.3/src/chat/user.cpp create mode 100755 ychat-0.7.9.3/src/chat/user.h create mode 100755 ychat-0.7.9.3/src/cli/cli.cpp create mode 100755 ychat-0.7.9.3/src/cli/cli.h create mode 100755 ychat-0.7.9.3/src/conf/conf.cpp create mode 100755 ychat-0.7.9.3/src/conf/conf.h create mode 100755 ychat-0.7.9.3/src/configure create mode 100644 ychat-0.7.9.3/src/contrib/README create mode 100644 ychat-0.7.9.3/src/contrib/crypt/how create mode 100644 ychat-0.7.9.3/src/contrib/crypt/md5.cpp create mode 100644 ychat-0.7.9.3/src/contrib/crypt/md5.h create mode 100644 ychat-0.7.9.3/src/contrib/crypt/md5crypt.cpp create mode 100644 ychat-0.7.9.3/src/contrib/xml/README create mode 100644 ychat-0.7.9.3/src/contrib/xml/tinyxml.cpp create mode 100644 ychat-0.7.9.3/src/contrib/xml/tinyxml.h create mode 100644 ychat-0.7.9.3/src/contrib/xml/tinyxmlerror.cpp create mode 100644 ychat-0.7.9.3/src/contrib/xml/tinyxmlparser.cpp create mode 100644 ychat-0.7.9.3/src/data/README create mode 100755 ychat-0.7.9.3/src/data/con.cpp create mode 100755 ychat-0.7.9.3/src/data/con.h create mode 100755 ychat-0.7.9.3/src/data/con_base.cpp create mode 100755 ychat-0.7.9.3/src/data/con_base.h create mode 100644 ychat-0.7.9.3/src/data/data.cpp create mode 100644 ychat-0.7.9.3/src/data/data.h create mode 100644 ychat-0.7.9.3/src/data/data_base.cpp create mode 100644 ychat-0.7.9.3/src/data/data_base.h create mode 100755 ychat-0.7.9.3/src/glob.h create mode 100755 ychat-0.7.9.3/src/html.cpp create mode 100755 ychat-0.7.9.3/src/html.h create mode 100755 ychat-0.7.9.3/src/incl.h create mode 100755 ychat-0.7.9.3/src/logd.cpp create mode 100755 ychat-0.7.9.3/src/logd.h create mode 100755 ychat-0.7.9.3/src/main.cpp create mode 100644 ychat-0.7.9.3/src/maps/hashmap.h create mode 100644 ychat-0.7.9.3/src/maps/hashmap.tmpl create mode 100644 ychat-0.7.9.3/src/maps/mtools.h create mode 100644 ychat-0.7.9.3/src/maps/mtools.tmpl create mode 100644 ychat-0.7.9.3/src/maps/nhashmap.h create mode 100644 ychat-0.7.9.3/src/maps/nhashmap.tmpl create mode 100644 ychat-0.7.9.3/src/maps/shashmap.h create mode 100644 ychat-0.7.9.3/src/maps/shashmap.tmpl create mode 100755 ychat-0.7.9.3/src/modl.cpp create mode 100755 ychat-0.7.9.3/src/modl.h create mode 100755 ychat-0.7.9.3/src/mods/Makefile create mode 100755 ychat-0.7.9.3/src/mods/commands/Makefile.in create mode 100644 ychat-0.7.9.3/src/mods/commands/yc_about.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_all.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_away.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_col.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_compopt.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_exec.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_fake.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_getroom.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_getrusage.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_help.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_invisible.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_j.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_ko.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_m.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_md5.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_me.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_morph.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_msg.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_q.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_reload.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_ren.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_s.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_set.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_template.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_time.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_topic.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_uptime.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_users.cpp create mode 100755 ychat-0.7.9.3/src/mods/commands/yc_version.cpp create mode 100755 ychat-0.7.9.3/src/mods/configure create mode 100755 ychat-0.7.9.3/src/mods/html/Makefile.in create mode 100644 ychat-0.7.9.3/src/mods/html/yc_admin.cpp create mode 100755 ychat-0.7.9.3/src/mods/html/yc_colors.cpp create mode 100755 ychat-0.7.9.3/src/mods/html/yc_help.cpp create mode 100755 ychat-0.7.9.3/src/mods/html/yc_loggedin.cpp create mode 100755 ychat-0.7.9.3/src/mods/html/yc_options.cpp create mode 100755 ychat-0.7.9.3/src/mods/html/yc_register.cpp create mode 100644 ychat-0.7.9.3/src/monitor/dump.cpp create mode 100644 ychat-0.7.9.3/src/monitor/dump.h create mode 100644 ychat-0.7.9.3/src/monitor/stats.cpp create mode 100644 ychat-0.7.9.3/src/monitor/stats.h create mode 100755 ychat-0.7.9.3/src/msgs.h create mode 100755 ychat-0.7.9.3/src/name.cpp create mode 100755 ychat-0.7.9.3/src/name.h create mode 100755 ychat-0.7.9.3/src/ncur/menu.cpp create mode 100755 ychat-0.7.9.3/src/ncur/menu.h create mode 100755 ychat-0.7.9.3/src/ncur/ncur.cpp create mode 100755 ychat-0.7.9.3/src/ncur/ncur.h create mode 100755 ychat-0.7.9.3/src/reqp.cpp create mode 100755 ychat-0.7.9.3/src/reqp.h create mode 100644 ychat-0.7.9.3/src/sign.cpp create mode 100644 ychat-0.7.9.3/src/sign.h create mode 100755 ychat-0.7.9.3/src/sock/sock.cpp create mode 100755 ychat-0.7.9.3/src/sock/sock.h create mode 100755 ychat-0.7.9.3/src/thrd/pool.cpp create mode 100755 ychat-0.7.9.3/src/thrd/pool.h create mode 100644 ychat-0.7.9.3/src/thrd/thro.cpp create mode 100644 ychat-0.7.9.3/src/thrd/thro.h create mode 100755 ychat-0.7.9.3/src/time/timo.cpp create mode 100755 ychat-0.7.9.3/src/time/timo.h create mode 100755 ychat-0.7.9.3/src/time/timr.cpp create mode 100755 ychat-0.7.9.3/src/time/timr.h create mode 100644 ychat-0.7.9.3/src/tool/dir.cpp create mode 100644 ychat-0.7.9.3/src/tool/dir.h create mode 100644 ychat-0.7.9.3/src/tool/tool.cpp create mode 100644 ychat-0.7.9.3/src/tool/tool.h create mode 100755 ychat-0.7.9.3/src/wrap.cpp create mode 100755 ychat-0.7.9.3/src/wrap.h (limited to 'ychat-0.7.9.3') diff --git a/ychat-0.7.9.3/CHANGES b/ychat-0.7.9.3/CHANGES new file mode 100644 index 0000000..a1f06a9 --- /dev/null +++ b/ychat-0.7.9.3/CHANGES @@ -0,0 +1,149 @@ +-Changes from 0.7.9.2-RELEASE to 0.7.9.3-STABLERELEASE - +$ The 0.7 branch is now STABLE. +$ Modified the Makefiles, so that they produce valid output while using +$ the -j flag of gmake. +$ Fixed a mini bug in the src/configure script. +$ Backported some security related HTTP patches from the 0.8-CURRENT branch. + +-Changes from 0.7.9.1-RELEASE to 0.7.9.2-RELEASE - +$ Added monitor/dump, and the dump command to the CLI. +$ Fixed a bug in the session manager. +$ Added gmake dist do the README. +$ Added the charset to the HTTP-header. + +-Changes from 0.7.9-RELEASE to 0.7.9.1-RELEASE - +$ Fixed etc/ychat.conf (Its now valid XML) +$ Fixed some typos. +$ Added the scripts/makedist.sh script, which can be invoked by gmake dist. +$ yhttpd.org has been renamed to yChat.org. The yhttpd.org SLD will be +$ canceled! The yhttpd.org Homepage will remain on yChat.org! + +-Changes from 0.7.8-RELEASE to 0.7.9-RELEASE - +$ In the system messages will be the user printed which has requested the + specified module. +$ Removed the cursor from the ncurses interface. +$ Added wrap::init_wrappers -> The main.cpp is now shorter. +$ Added some Makefile modifications +$ Bugfix: cleanipcache shouldn run every minute but every 10! +$ Bugfix: scripts/stats.pl now counts all text-files properly. + +-Changes from 0.7.7.1-RELEASE to 0.7.8-RELEASE - +$ Updated the yhttpd generation script due new sources in src/memb. +$ Changd some hashmaps back into simple std::map objects, this might +$ has resulted in some bugs due slow hashmap initialization time. +$ Hashmaps now only should being used on permanent objects. +$ Rewrote the dynamic thread pool. +$ makeyhttpd now also removes the yChat specific form etc/yhttpd.conf +$ automatically. +$ Implemnted an IP Cache (makes yChat faster). +$ Implemented signal catcher: +$ SIGUSR1 will clear the html template cache. +$ SIGUSR2 will reload the dynamic modules. +$ SIGSEGV can be catched if defined in src/glob.h. +$ SIGHUP, SIGINT and SIGTERM will shutdown yChat cleanly. +$ Added Allow: GET to the HTTP header. +$ Bugfix: The httpd.logging.accesslines now will be read correctly. +$ Bugfix: JavaScript messages now wont be logged. + +-Changes from 0.7.7-RELEASE to 0.7.7.1-RELEASE - +$ Bugfix in main.cpp which resulted in a core dump on yChat startup. + +-Changes from 0.7.6-RELEASE to 0.7.7-RELEASE - +$ Major code cleanup. +$ Bugfix in /col. +$ Bugfix in gcol #1 (destroy session also if no database is used). +$ Bugfix in gcol #2 (now runs each hour not once a day). +$ Renew the style.css and stream.html. + +-Changes from 0.7.5-RELEASE to 0.7.6-RELEASE - +$ Removed the old hash maps and included the SGI C++ STL extenstion +$ hash_map. + +-Changes from 0.7.4.1-RELEASE to 0.7.5-RELEASE - +$ Garbage collector will now run once a hour rather than each ten minutes. +$ Dynamic thread pool improvements. +$ Removed equiv-http-refresh meta tag from the online list. +$ Minor bugfix in the /topic command. +$ Implemented "User list". + +-Changes from 0.7.4-RELEASE to 0.7.4.1-RELEASE - +$ Dynamic thread pool bugfix (dead lock). + +-Changes from 0.7.3-RELEASE to 0.7.4-RELEASE - +$ Code cleanup. +$ Made the thread pool increasing dynamic. +$ Added some thread pool optimazions. +$ Added some more ${MAKE} vars to the Makefiles. +$ Added Content-length to the HTTPD header. +$ Added the !command to the command line interface. +$ Added Content-type text/plain. +$ Added scrolling checkbox to input.html. +$ Removed modl from yhttpd. Dynamic modules are not needed in yhttpd yet. +$ Improved session engine. +$ Fixed auto logout bug. +$ Fixed newline bug (one \n too much for each html template). +$ Logging can now be completely disabled. + +-Changes from 0.7.2 to 0.7.3-RELEASE - +$ Added FreeBSD 5.3-RELEASE support. +$ Added chat.enableguest option. +$ Added the /all command (Global system message). +$ Renamed the /getstatus command into /about. +$ Fixed the &-bug (& should be allowed in messages). \AND is now a +$ synonym for & too. +$ Fixed the /msg bug (In /msg the string replacer should be activated). +$ Fixed logging bug (do not log any timestamps if there are no messages). + +-Changes from 0.7.1 to 0.7.2-RELEASE - +$ New features: +$ /morph. +$ Added the new standard html template design. +$ Bugfixes: +$ /away prints a . instead of a : if no away reason is given. +$ /ko message was wrong. Displayed not room name of the user to be kicked out. +$ /invisible command displayed wrong private messages. +$ /getstatus had no help text. +$ /msg and /s should now print the system time if printalwaystime == true. +$ Added a blank to the /uptime message. +$ /topic now prints the topic in the user's color. +$ Fixed some typos. + +-Changes from 0.7.0 to 0.7.1-RELEASE - +$ Added ${MAKE} to the config file because some Linux distros dont use +$ the "gmake" command for GNU make but just "make"! Modified the +$ configure script to generate a make.version file. +$ Removed some typos from the ychat.conf. +$ Fixed the auto away message. This one will be posted in the room +$ as public rather than only private to the auto-away-user. +$ Fixed some documentation stuff for yhttpd because yhttpd does not +$ need MySQL at all. +$ Added the chat.maxlength.word option. + +-Changes from 0.6 to 0.7.0-RELEASE - +$ Better stability . +$ Better performance (using more hmaps). +$ HTML color switcher menu. +$ New commands: /away /room /j /ren. +$ Simple garbage collector for old user and room objects. +$ Use of the database (MySQL). +$ Nick registration and password protection. +$ Status images for Operator, Half-Operator, Voiced user and Guests. +$ New Makefiles. +$ Useful Perl scripts for sourcecode stats generation etc. +$ Added system_log and room logging to access_log logging. +$ Added time-offset option. +$ Added to the admin interface new options. +$ Added Logout button. +$ Added string replacer there certain substr. of postings will be replaced by another string (such as smiley images). +$ Added Superuser levels and the /ko and /set commands. +$ Added admin CLI (Command Line Interface) mode. +$ Added memory rusage history which tracks memory usage for the last 10 days. +$ Added HTTP POST request parsing. +$ Made yChat more modular so yhttpd can be extracted from it +$ (scripts/makeyhttpd.pl). +$ Added CGI support. +$ Rewrote big parts of the Makefiles and the configure scripts. +$ Made it compatible to GNU G++ 3.4, 3.3, 3.2 and 3.1 (3.0 and earlier do not +$ work). +$ XML based configuration file (ychat.conf). +$ Added default operator option: chat.defaultop. diff --git a/ychat-0.7.9.3/COPYING b/ychat-0.7.9.3/COPYING new file mode 100755 index 0000000..a43ea21 --- /dev/null +++ b/ychat-0.7.9.3/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 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. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, 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 software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, 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 redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +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 give any other recipients of the Program a copy of this License +along with the Program. + +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 Program or any portion +of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +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 Program, 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 Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) 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; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, 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 executable. 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. + +If distribution of executable or 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 counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program 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. + + 5. 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 Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program 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. + + 7. 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 Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program 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 Program. + +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. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program 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. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 Program +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 Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, 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 + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), 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 Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. 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) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; 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. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/ychat-0.7.9.3/INSTALL b/ychat-0.7.9.3/INSTALL new file mode 100755 index 0000000..b112205 --- /dev/null +++ b/ychat-0.7.9.3/INSTALL @@ -0,0 +1 @@ +See the README file. diff --git a/ychat-0.7.9.3/Makefile b/ychat-0.7.9.3/Makefile new file mode 100755 index 0000000..b3c5ca8 --- /dev/null +++ b/ychat-0.7.9.3/Makefile @@ -0,0 +1,88 @@ +MAKE=`tail -n 1 make.version` +PREFIX=`grep "define PREFIX" src/glob.h | cut -d'"' -f2` +all: version base modules + @echo "Now edit the ychat.conf and run ychat!" + @echo "The config file is searched in the following order:" + @echo " ./ychat.conf " + @echo " ~/.ychat/ychat.conf " + @echo " ./etc/ychat.conf " + @echo " /etc/ychat.conf " + @echo " $(PREFIX)/etc/ychat.conf " + @echo If you want to help the yChat project please run gmake mail + @echo so that the developers receive an email about the platform + @echo being used. + @echo WARNING! This software is EXPERIMENTAL! +mail: + @echo "VERSION:" > mail.tmp + @${MAKE} version >> mail.tmp + @echo >> mail.tmp + @echo "UNAME:" >> mail.tmp + @uname -a >> mail.tmp + @echo >> mail.tmp + @echo "DATE:" >> mail.tmp + @date >> mail.tmp + @echo >> mail.tmp + @echo "COMPILER AND MAKE:" >> mail.tmp + @cat g++.version make.version >> mail.tmp + @cat mail.tmp | mail -s "Successfull build of yChat" successfullbuild@yhttpd.org + @rm -f mail.tmp +install: deinstall +uninstall: deinstall +deinstall: + @echo Install/deinstall is not supported! + @echo Start yChat with ./bin/ychat instead! + @exit 1 +modules: + @if test -d ./src/mods; then ${MAKE} -C ./src/mods; fi +clean_modules: + @if test -d ./src/mods; then ${MAKE} -C ./src/mods clean; fi +base: + @if test -f bin/ychat; then echo "Backing up old binary";if test -f bin/ychat.old; then rm -f bin/ychat.old; fi; mv bin/ychat bin/ychat.old; fi + @perl ./scripts/buildnr.pl + @perl ./scripts/setglobvals.pl + @${MAKE} -C ./src +clean_base: + @${MAKE} -C ./src clean +stats: + @perl scripts/stats.pl +run: + ./bin/ychat +base_start: base + ./bin/ychat +gpl: + @more COPYING +#//<<* +yhttpdbase: + @perl scripts/makeyhttpd.pl || echo "You need to have perl to do this!" + @echo yhttpd code base has been generated in ../yhttpd +#//*>> +clean: clean_base clean_modules +help: + @echo "You may run ${MAKE} with the following parameters:" + @grep "^ ${MAKE} " README + @echo "For more questions read the README file or contact mail@ychat.org!" +setup: + @./configure + @${MAKE} +config: + @sh -c "scripts/config.sh" + @echo If you run ${MAKE} config from the command line then you may need + @echo to rerun ./configure and recompile all now! + +mrproper: clean + @if test -f src/glob.h.org; then mv -f src/glob.h.org src/glob.h;fi + @if test -f g++.version; then rm -f g++.version; fi + @if test -f make.version; then rm -f make.version; fi + @if test -f src/Makefile; then rm -f src/Makefile; fi + @if test -f bin/ychat; then find bin/ -name "*ychat*" | xargs rm -f; fi + @if test -d src/mods; then find src/mods/*/ -name Makefile | xargs rm -f; fi + @find . -name "*.add" | xargs rm -f + @ls | grep core | xargs rm -f +version: + @./scripts/version.sh +debug: + @gdb bin/ychat ychat.core +confdebug: + ./configure -g3 -ggdb +dist: + @./scripts/makedist.sh diff --git a/ychat-0.7.9.3/README b/ychat-0.7.9.3/README new file mode 100755 index 0000000..cf2f810 --- /dev/null +++ b/ychat-0.7.9.3/README @@ -0,0 +1,547 @@ +yChat; Homepage: www.yChat.org; Version 0.7.9.3-RELEASES + +Copyright (C) 2003 Paul C. Buetow, Volker Richter +Copyright (C) 2004, 2005 Paul C. Buetow +----------------------------------------------------------------- +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +----------------------------------------------------------------- + +YCHAT TABLE OF CONTENTS: + +0.0.0 ABOUT RELEASES +0.0.1 YCHAT FEATURES //<< +1.0.0 REQUIREMENTS +1.1.0 TESTED PLATFORMS +1.2.0 IMPORTANT NOTICES +1.3.0 HOW TO OBTAIN YCHAT +1.3.1 INSTALLATION +1.3.2 INSTALLATION QUICK-START +1.3.3 MYSQL SETUP //<< +1.4.0 HOW TO USE SCREEN WITH YCHAT +1.4.1 HOW TO USE SIGNALS WITH YCHAT +1.5.0 CUSTOMIZATION +1.6.0 FILES +1.7.0 WRITING BUG REPORTS +1.8.0 CONTACT +1.9.0 YHTTPD CODE BASE GENERATION //<< +2.0.0 CREDITS + +0.0.0 ABOUT RELEASES + +There are several projects involved: + +- The chat - +Its a HTTP based chat server written in C++. Clients are normal web browsers +such as MSIE or Gecko based browsers using only CSS, HTML and JavaScript. + +- The httpd - +Its a small http server based on the chat's socket and threading engine. +yhttpd does not have as much features but is easy to use and faster than +apache. yhttpd is a subset of the chat. It can be generated using the +srcipts/yhttpdbase.pl script in the chat's source tree. + +- The ycurses - +ycurses is a easy to use and small C++ wrapper of the C ncurses API. + +There are different branches: + +- CURRENT - +The CURRENT branch is unstable, this is the bleeding developing edge with +all the new experimental features. + +A RELEASE of CURRENT can be referred as CURRENTRELEASE. + +- STABLE - +The STABLE branch is more stable than CURRENT. This branch may get new +features as well. But those will be more conservative compared to +CURRENT. + +A RELEASE of STABLE can be referred as STABLERELEASE. + +- LEGACY - +The LEGACY branch has no real support. This branch may get bugfixes and +updates and might get minor improvements. But there is no garuantee to +be bug free and stable at all. LEGACY versions are of historic meaning. + +- DEVEL - +DEVEL is only a meta name. If a version is labeled with DEVEL, then its +currently undefined if this is a CURRENT, STABLE or LEGACY branch. It +can be everything. Commonly DEVEL versions are CURRENT. + +There are also releases made: + +- RELEASE - +There can be RELEASEs made out of each branch. While a branch can get +new features, a RELEASE can not. A RELEASE of a branch is just like +a snapshot. RELEASEs are complete versions to test and use. But keep +in mind, that a RELEASE of the STABLE branch is recommended over a +RELEASE of a CURRENT or a LEGACY branch in a production environment. +RELEASEs of CURRENT are still the bleeding edge and RELEASEs of LEGACY +may be out of date. + +//<<* +0.0.1 YCHAT FEATURES + +- Its free & portable - +yChat is developed under the GNU general public license and is based on GNU +tools (gcc, gmake), other open source library stuff (such as libncurses etc.) +and should run on any POSIX capable operating system (such as all Linux based +systems, FreeBSD, NetBSD, OpenBSD and other BSD-Systems and on UNICES like +IRIX, HP-UX, Solaris etc.). + +- There is no need for special chat clients - +yChat is web based, that means clients may only connect to the chat server +with an normal web browser such as Microsoft Internet Explorer or any Gecko- +Engine powerd browsers like Mozilla, Firefox, Camino etc. + +- It has features of a real HTTP webserver - +yChat runs completely stand alone and does not need another webserver to build +on like Apache and does not need to be run via any kind of CGI. yChat creates +its own socket on a customized port (standard port: 2000) and seems to be a full +featured HTTP web server to the clients (web browsers). + +The yChat code base can be converted to an yhttpd code base automaticaly. yhttpd +is the webserver subset of yChat which runs completely stand alone and provides +normal websites to the net. It also supports Common Gateway Interface (CGI) +scripting. + +- Its fast and secure - +yChat is written in C++ which is faster than any Java based Chat-Server or any +server written in a scripting language like PHP, Python or Perl. As the +internal data structures hash maps are used to garuantee searching certain +values in O(1) amount of time. If a hash maps gets full, it will be rehashed. +Currently, yChat has been measured providing over 1000 hits/requests per second +on a FreeBSD based server box while using less than 2% of CPU usage +on a Athlon XP 1900+. Performance seems to be limited by your bandwith only. +Also, each user gets its own session id (random string) with a standard length +of 50 chars to authenticate each logged in user. The length of the session id +can be redefined as well. Also, the session id will get md5-hashed optionally +so thats even harder to reverse engineering the session ids of other users. + +- Its HTML template based and easy to customize via XML based configuration - +All HTML sites are predefined as HTML-Template files and can be easily modified +to use with an customized web design. Also, a lot of yChat preferences can be +set in the main configuration file (ychat.conf). ychat.conf is completely written +in XML 1.0 which makes it easier to use the configuration options in programs of +3rd persons which may want to write some usefull tools for yChat. +yChat caches all HTML and web images to improve overall performance. If needed, the +cache can be cleared to recache new versions of the template files. + +- Its language template based - +The administrator can easily create a new language in which all system messages +appear to the Chat-User. The predefined languages is english but others can be +added easily. The language can be edited in the XML based configuration file. + +- MySQL based database - +Registered users are stored in a MySQL database. C++ Programmers may feel free +to replace the database wrapper class (data.h) with another database routines +to use other databases such as PostgreSQL, SQLite or a text based database etc. +If wished, you can disable database support in the pre-compile options. + +- It has an administration interface - +yChat includes an ncurses based administration interface which tracks some +interesting statistics and system messages and enables you to do certain +administrative tasks. In addition, you can switch to the CLI (command line +interface) mode of the administration interface in order to be provided with +more available functions (like keeping track of the current system usage etc.). +If you dont like ncurses and/or the CLI you can disable both options in the pre- +compile options. + +- It has logging capabilities - +The logging manager keeps track to all yChat system messages (such as users +wich log in and out, modules which are loaded, MySQL queries etc.). Also, an +Apache-Style combined log file format is created by yChat (you can parse this +logfile with any Apache logfile parser like awstats etc.). And last but not +least, all public messages of all available rooms will be logged to disk as +well . To improve performance, you can define the logging puffer (standardly +new logs will be written to disk after each 20 lines). If you want to log +everything immediately, you can reset this option to 1 in ychat.conf. + +- Its modular through own command and dynamic HTML engine - +All chat commands are realized through dynamic loadable module files which can +be recompiled and reloaded without restarting the whole yChat server. Also +HTML-Sites with certain tasks can be compiled as a module like +mods/html/yc_register.so, mods/html/yc_options.so and mods/html/yc_colors.so +etc. so you can also program your dynamic yChat websites in C++. + +- Its multi threaded (POSIX threads) - +There is only one main process which spawns several threads, each for its own +unique task. For example one thread is used to handle the socket manager which +waits for incoming TCP/IP requests, another thread schedules the system timer +which proves if clients are still active or frees not needed memory in certain +time intervals (see also "Garbage collector"). Also, each Chat-User gets it own +thread. There is no need of memory wastage by creating for each task a new +process. All User-Threads are managed by a thread pool to avoid CPU wastage +creating every time a new thread by reusing thread objects which have done its +jobs already and have been readded into the queue of the thread pool. The +standard sizes of the queue and the total pool size can be set in ychat.conf. + +- Its using a smart garbage collection engine - +All users and rooms which dont have to be kept in the main memory (because the +user has logged out or the room has been destroyed because it was empty) will +not be deleted immediately but be placed for about 10 minutes in the yChat +garbage collector. Each time a new room is created the systems checks the +garbage to reuse an inactive room object. If a certain user wants to log in, the +system checks if he is already present in the garbage collector. If yes, he will +be reactivated without wasting expensive database queries to fetch the user's +options. This improves overall performance on heavily loaded yChat servers if a +lot of user and room objects are created and destroyed frequently. +//*>> + +1.0.0 REQUIREMENTS: + +- GNU GCC G++ + The GNU C++ compiler version 3.1 or up. + +- GNU make 3.80 (gmake) or higher + If you dont have a gmake executable but make is gnu make then you need + to add a symlink or alias from gmake to make. + yChat Makefiles only have been tested with GNU make and may not work with + other make versions. + +- SGI STL extension + Includes ext/hash_map which may be already default on every Linux distro. + On *BSD you have to install it first before compiling. On FreeBSD + /usr/ports/devel/stlport is your friend. + +//<<* +- mysql-client 4.x (3.x may do too but is not supported) + Includes libmysqlclient and the mysql.h header files. + +//*>> +- ncurses 5.x + Includes libncurses and the ncurses.h header files. + +- Screen + Only needed if yChat should run in background with + ncurses or CLI enabled. + +- Perl 5.x + Is needed for some scripts. Is not needed if you use precompiled binaries. + +1.1.0 TESTED PLATFORMS: + +The following platforms have been tested with success. If you find out that +a listed platform did not work at all please contact me: + + Operating system (arch) GNU G++ GNU make +- FreeBSD 5.3-RELEASE (i386) 3.4.2 3.80 + + Tested longer time before: +- FreeBSD 5.2.1-RELEASE (i386) 3.3.3 3.80 +- FreeBSD 4.10-RELEASE (i386) 3.4.1 3.80 +- FreeBSD 4.9-RELEASE (i386) 3.3.4 3.80 +- Gentoo Linux 2004 (i386) 3.3.2 3.80 +- OpenBSD 3.6 SMP (i386) 3.3.2 3.80 +- Red Hat Linux 8.0 SMP (i386) 3.2-7 3.79 +- Slackware Linux 10.0 (i386) 3.4.0 3.80 +- SUSE Linux 9.0 (i386) 3.3.1 3.80 +- SUSE Linux 8.1 (i386) 3.2 3.79.1 + +Other platforms like Linux based systems, other BSD-Systems or UNICES +are very likely to work too. + +1.2.0 IMPORTANT NOTICES: + +Before you compile the source you have to be sure to use at least GCC +version 3.1 with pthreads enabled. ( Type gcc -v to check it ). +GCC 2.95 and 3.0 did not work while testing and WON'T BE SUPPORTED! +If you like to support yChat, please write us an email and tell what +you can/like/would help ;-]. Please also take a look at the yChat +homepage which is located at http://www.yChat.org. + +1.3.0 HOW TO OBTAIN YCHAT: + +yChat can be downloaded as a source package or through CVS. + +The packages are located at http://www.yChat.org -> Sourcecode -> +Packages or go to http://pub.buetow.org/yChat/yChat . + +For CVS download type: + +cvs -d:pserver:anonymous@buetow.org:/usr/home/cvs/cvsroot login +( You will be asked for a password. Use "just enter" ). + +vs -z3 -d:pserver:anonymous@buetow.org:/usr/home/cvs/cvsroot co BRANCH +( The sources will be copied into your local folder ) + +cvs -d:pserver:anonymous@buetow.org:/usr/home/cvs/cvsroot logout +( Logs your CVS session out ). + +Now you may continue with the installation. + +here are different branches in the CVS: + +ychat: This is the latest CURRENT branch of yChat. +ychat-stable: This is the latest STABLE branch of yChat. +ychat-X.Y: This is the branch with the specified version prefix. +yhttpd: This is the latest CURRENT snapshot of yhttpd. + +The CURRENT branch of ychat is mostly untested and unstable, so don't +cry if you get errors. + +1.3.1 INSTALLATION: + +Invoke "./configure". Afterwards you will get prompted with the before-compile +options of yChat. After choosing those options you are ready to type "gmake" +afterwards. See below what gmake is doing. + +//<<* +If you have choosen MySQL database support, then take a look at section 1.3.2 +how to setup a valid database table. Be also sure to enter the valid MySQL +accessing data in the yChat configuration file which is normally located in +the etc/ychat.conf file if not changed by you with the yChat configurator. +//*>> + +You may also invoke gmake with the following options (the PREFIX can be set +in the yChat configurator which will be launched by the top configure script +or gmake config): + + gmake or gmake all (compiles everything, also modules and runs "gmake mail") + gmake base (only compiles the base) + gmake base_start (only compiles the base and starts the server) + gmake clean (cleans everything) + gmake clean_base (only cleans the base obj and rpo files) + gmake clean_modules (only cleans the modules .so files) + gmake confdebug (runs ./configure with enabling debugging) + gmake config (runs yChat configurator) + gmake debug (runs gdb on ./ychat.core) + gmake dist (creates a .tar.bz2 ball) + gmake gpl (shows the GNU General Public License) + gmake help (shows all available ychat gmake targets) + gmake mail (sends a mail to the yChat developers containing build opts.) + gmake modules (only compiles modules) + gmake mrproper (same as gmake clean plus removing all temp files) + gmake setup (runs all configure scripts and afterwards gmake all) + gmake stats (generates ychat statistics) + gmake version (shows the current version of yChat) +//<<* + gmake yhttpdbase (generates an yhttpd code base) +//*>> (See section 1.9 to read about this marks) + +Example: "gmake all install clean" compiles everything, installs it to PREFIX +and cleans the source directories. + +Now its time to run the server with ./bin/ychat. + +Aferwards point your webbrowser to http://yourip:port ! + +... have fun :-). + +1.3.2 INSTALLATION QUICK START: + +If you in hury, then you may just type gmake setup. In the yChat configurator +you may just choose all the default values. If done, yChat will get compiled +and is ready to run with ./bin/ychat! + + +//<<* +1.3.3 MYSQL SETUP + +If you chose to use MySQL database support you have to create a valid database +to use with yChat. + +Create a new MySQL database called 'ychat' and type the following command into +a MySQL command line client of your choice: + +USE ychat +CREATE TABLE `user` ( + `uid` int(10) NOT NULL auto_increment, + `nick` varchar(30) NOT NULL default '', + `password` varchar(30) NOT NULL default '', + `color1` varchar(30), + `color2` varchar(30), + `email` varchar(50) default '-', + `registerdate` varchar(30) default '-', + `logincounter` varchar(10) default '0', + `status