summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES44
-rwxr-xr-xMakefile42
-rw-r--r--NEWS8
-rwxr-xr-xREADME33
-rw-r--r--TODO60
-rwxr-xr-xconfigure8
-rw-r--r--etc/ychat.conf28
-rwxr-xr-xhtml/help.html2
-rwxr-xr-xhtml/input.html10
-rwxr-xr-xhtml/online.html3
-rwxr-xr-xhtml/stream.html25
-rwxr-xr-xhtml/style.css22
-rwxr-xr-xscripts/astyle.sh2
-rwxr-xr-xscripts/buildnr.pl2
-rw-r--r--scripts/makeyhttpd.pl10
-rwxr-xr-xscripts/stats.pl24
-rwxr-xr-xsrc/chat/base.h154
-rwxr-xr-xsrc/chat/base.tmpl18
-rwxr-xr-xsrc/chat/chat.cpp467
-rwxr-xr-xsrc/chat/chat.h72
-rwxr-xr-xsrc/chat/gcol.cpp159
-rwxr-xr-xsrc/chat/gcol.h31
-rwxr-xr-xsrc/chat/perm.cpp69
-rwxr-xr-xsrc/chat/perm.h45
-rwxr-xr-xsrc/chat/room.cpp96
-rwxr-xr-xsrc/chat/room.h108
-rwxr-xr-xsrc/chat/sess.cpp39
-rwxr-xr-xsrc/chat/sess.h21
-rwxr-xr-xsrc/chat/sman.cpp117
-rwxr-xr-xsrc/chat/sman.h29
-rwxr-xr-xsrc/chat/user.cpp673
-rwxr-xr-xsrc/chat/user.h235
-rwxr-xr-xsrc/cli/cli.cpp443
-rwxr-xr-xsrc/cli/cli.h30
-rwxr-xr-xsrc/conf/conf.cpp192
-rwxr-xr-xsrc/conf/conf.h22
-rwxr-xr-xsrc/configure9
-rw-r--r--src/contrib/crypt/md5.cpp333
-rw-r--r--src/contrib/crypt/md5.h15
-rw-r--r--src/contrib/crypt/md5crypt.cpp233
-rw-r--r--src/contrib/xml/tinyxml.cpp1679
-rw-r--r--src/contrib/xml/tinyxml.h2242
-rw-r--r--src/contrib/xml/tinyxmlerror.cpp44
-rw-r--r--src/contrib/xml/tinyxmlparser.cpp2684
-rwxr-xr-xsrc/data/con.cpp48
-rwxr-xr-xsrc/data/con.h8
-rwxr-xr-xsrc/data/con_base.cpp5
-rwxr-xr-xsrc/data/con_base.h4
-rw-r--r--src/data/data.cpp262
-rw-r--r--src/data/data.h18
-rw-r--r--src/data/data_base.cpp232
-rw-r--r--src/data/data_base.h23
-rwxr-xr-xsrc/glob.h14
-rwxr-xr-xsrc/html.cpp163
-rwxr-xr-xsrc/html.h45
-rwxr-xr-xsrc/incl.h6
-rwxr-xr-xsrc/logd.cpp186
-rwxr-xr-xsrc/logd.h41
-rwxr-xr-xsrc/main.cpp210
-rw-r--r--src/maps/mtools.h6
-rw-r--r--src/maps/mtools.tmpl5
-rwxr-xr-xsrc/modl.cpp155
-rwxr-xr-xsrc/modl.h33
-rwxr-xr-xsrc/mods/Makefile9
-rw-r--r--src/mods/commands/yc_about.cpp74
-rwxr-xr-xsrc/mods/commands/yc_all.cpp77
-rwxr-xr-xsrc/mods/commands/yc_away.cpp126
-rwxr-xr-xsrc/mods/commands/yc_col.cpp127
-rwxr-xr-xsrc/mods/commands/yc_compopt.cpp21
-rwxr-xr-xsrc/mods/commands/yc_exec.cpp84
-rwxr-xr-xsrc/mods/commands/yc_fake.cpp43
-rwxr-xr-xsrc/mods/commands/yc_getroom.cpp70
-rwxr-xr-xsrc/mods/commands/yc_getrusage.cpp69
-rwxr-xr-xsrc/mods/commands/yc_help.cpp81
-rwxr-xr-xsrc/mods/commands/yc_invisible.cpp45
-rwxr-xr-xsrc/mods/commands/yc_j.cpp183
-rwxr-xr-xsrc/mods/commands/yc_ko.cpp88
-rwxr-xr-xsrc/mods/commands/yc_m.cpp65
-rwxr-xr-xsrc/mods/commands/yc_md5.cpp84
-rwxr-xr-xsrc/mods/commands/yc_me.cpp67
-rwxr-xr-xsrc/mods/commands/yc_morph.cpp77
-rwxr-xr-xsrc/mods/commands/yc_msg.cpp94
-rwxr-xr-xsrc/mods/commands/yc_q.cpp27
-rwxr-xr-xsrc/mods/commands/yc_reload.cpp29
-rwxr-xr-xsrc/mods/commands/yc_ren.cpp108
-rwxr-xr-xsrc/mods/commands/yc_s.cpp81
-rwxr-xr-xsrc/mods/commands/yc_set.cpp175
-rwxr-xr-xsrc/mods/commands/yc_template.cpp25
-rwxr-xr-xsrc/mods/commands/yc_time.cpp27
-rwxr-xr-xsrc/mods/commands/yc_topic.cpp138
-rwxr-xr-xsrc/mods/commands/yc_uptime.cpp27
-rwxr-xr-xsrc/mods/commands/yc_version.cpp21
-rw-r--r--src/mods/html/yc_admin.cpp119
-rwxr-xr-xsrc/mods/html/yc_colors.cpp52
-rwxr-xr-xsrc/mods/html/yc_help.cpp74
-rwxr-xr-xsrc/mods/html/yc_options.cpp81
-rwxr-xr-xsrc/mods/html/yc_register.cpp165
-rwxr-xr-x[-rw-r--r--]src/msgs.h37
-rwxr-xr-xsrc/name.cpp34
-rwxr-xr-xsrc/name.h20
-rwxr-xr-xsrc/ncur/menu.cpp149
-rwxr-xr-xsrc/ncur/menu.h27
-rwxr-xr-xsrc/ncur/ncur.cpp374
-rwxr-xr-xsrc/ncur/ncur.h50
-rwxr-xr-xsrc/reqp.cpp545
-rwxr-xr-xsrc/reqp.h61
-rwxr-xr-xsrc/sock/sock.cpp398
-rwxr-xr-xsrc/sock/sock.h80
-rw-r--r--src/stats.cpp167
-rw-r--r--src/stats.h23
-rwxr-xr-xsrc/thrd/pool.cpp315
-rwxr-xr-xsrc/thrd/pool.h108
-rw-r--r--src/thrd/thro.cpp23
-rw-r--r--src/thrd/thro.h26
-rwxr-xr-xsrc/time/timo.cpp24
-rwxr-xr-xsrc/time/timo.h12
-rwxr-xr-xsrc/time/timr.cpp201
-rwxr-xr-xsrc/time/timr.h81
-rw-r--r--src/tool/dir.cpp44
-rw-r--r--src/tool/dir.h26
-rw-r--r--src/tool/tool.cpp255
-rw-r--r--src/tool/tool.h96
-rwxr-xr-xsrc/wrap.cpp14
-rwxr-xr-xsrc/wrap.h106
124 files changed, 9325 insertions, 8650 deletions
diff --git a/CHANGES b/CHANGES
index c4e2d04..4bf7178 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,40 @@
-Changes from 0.7.2 to 0.7.3 RELEASE
+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)
@@ -8,7 +44,7 @@ Changes from 0.7.2 to 0.7.3 RELEASE
- 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
+Changes from 0.7.1 to 0.7.2-RELEASE:
New features:
- /morph
- Added the new standard html template design.
@@ -22,7 +58,7 @@ Bugfixes:
- /topic now prints the topic in the user's color.
- Fixed some typos.
-Changes from 0.7.0 to 0.7.1 RELEASE
+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.
@@ -33,7 +69,7 @@ Changes from 0.7.0 to 0.7.1 RELEASE
need MySQL at all.
- Added the chat.maxlength.word option.
-Changes from 0.6 to 0.7.0 RELEASE
+Changes from 0.6 to 0.7.0-RELEASE:
- Better stability
- Better performance (using more hmaps)
- HTML color switcher menu
diff --git a/Makefile b/Makefile
index 96266ea..e0b6e07 100755
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
-MAKE=`tail -1 make.version`
+MAKE=`tail -n 1 make.version`
PREFIX=`grep "define PREFIX" src/glob.h | cut -d'"' -f2`
-all: base modules version mail
+all: version base modules version
@echo "Now edit the ychat.conf and run ychat!"
@echo "The config file is searched in the following order:"
@echo " ./ychat.conf "
@@ -8,9 +8,12 @@ all: base modules version mail
@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.
mail:
@echo "VERSION:" > mail.tmp
- @gmake version >> mail.tmp
+ @${MAKE} version >> mail.tmp
@echo >> mail.tmp
@echo "UNAME:" >> mail.tmp
@uname -a >> mail.tmp
@@ -22,35 +25,12 @@ mail:
@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
- @echo "Instaling ychat to $(PREFIX)"
- @cp bin/ychat $(PREFIX)/bin
- @if ! test -d $(PREFIX)/lib/ychat; then mkdir -p $(PREFIX)/lib/ychat; fi
- @if ! test -d $(PREFIX)/share/ychat/log/rooms; then mkdir -p $(PREFIX)/share/ychat/log/rooms; fi
- @if ! test -d $(PREFIX)/etc; then mkdir $(PREFIX)/etc; fi
- @if test -d mods; then cp -Rp mods $(PREFIX)/lib/ychat/mods; fi
- @cp -Rp html $(PREFIX)/share/ychat/html
- @cp -Rp lang $(PREFIX)/share/ychat/lang
- @if test -f $(PREFIX)/etc/ychat.conf; then mv $(PREFIX)/etc/ychat.conf $(PREFIX)/etc/ychat.conf.bak; fi
- @cp etc/ychat.conf etc/ychat.conf.tmp
- @sed "s#mods/#$(PREFIX)/lib/ychat/mods/#" etc/ychat.conf.tmp > etc/ychat.conf.tmp.2 && mv etc/ychat.conf.tmp.2 etc/ychat.conf.tmp
- @sed "s#\"log/#\"$(PREFIX)/share/ychat/log/#" etc/ychat.conf.tmp > etc/ychat.conf.tmp.2 && mv etc/ychat.conf.tmp.2 etc/ychat.conf.tmp
- @sed "s#LANGUAGE_DIR=\"lang/#LANGUAGE_DIR=\"$(PREFIX)/share/ychat/lang/#" etc/ychat.conf.tmp > etc/ychat.conf.tmp.2 && mv etc/ychat.conf.tmp.2 etc/ychat.conf.tmp
- @sed "s#HTML_TEMPLATE_DIR=\"html/#HTML_TEMPLATE_DIR=\"$(PREFIX)/share/ychat/html/#" etc/ychat.conf.tmp > etc/ychat.conf.tmp.2 && mv etc/ychat.conf.tmp.2 etc/ychat.conf.tmp
- @mv etc/ychat.conf.tmp $(PREFIX)/etc/ychat.conf
- @echo "yChat configuration file can be found under"
- @echo " $(PREFIX)/etc/ychat.conf"
- @echo "Copy it to ~/.ychat/ychat.conf to use local settings :-)"
- @echo "Be sure that $(PREFIX)/share/ychat/logs is writable by your user or modify "
- @echo "logging dirs in the ychat.conf to a local directory."
- @echo "The most secure would be an additional user 'ychat'!"
+install: deinstall
uninstall: deinstall
deinstall:
- @echo "Deinstalling ychat from $(PREFIX)"
- @if test -f $(PREFIX)/bin/ychat; then rm -f $(PREFIX)/bin/ychat; fi
- @if test -d $(PREFIX)/lib/ychat; then rm -Rf $(PREFIX)/lib/ychat; fi
- @if test -d $(PREFIX)/share/ychat; then rm -Rf $(PREFIX)/share/ychat; fi
- @echo "Done. Please remove manually $(PREFIX)/etc/ychat.conf to complete"
+ @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:
@@ -99,6 +79,6 @@ mrproper: clean
@find . -name "*.add" | xargs rm -f
@ls | grep core | xargs rm -f
version:
- @echo "`grep VERSION src/msgs.h | cut -d'"' -f2`-`grep BRANCH src/msgs.h| cut -d'"' -f2` Build `grep BUILD src/msgs.h| cut -d' ' -f3`"
+ @./scripts/version.sh
debug:
@gdb bin/ychat ychat.core
diff --git a/NEWS b/NEWS
index 034d63d..f255184 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,11 @@
+::(21.02.05)::Released yChat 0.7.7. A major code cleanup has been made and the ANSI code formating is now being used. Bugfixes in the timer thread have been made and the standard demo HTML style has been renewed.
+::(17.02.05)::Released yChat 0.7.6. This release now uses the hash_map class from the SGI STL extension which is more stable then the old Hash Map used by yChat.
+::(14.02.05)::Released yChat 0.7.5. The garbage collector will now run once a hour. The dynamic thread pool has been improved. Removed thre equiv-http-refresh meta tag from the online list. Added a minor bugfix in the /topic command. Implemented an HTML based list of all logged in users and the /users command which does the same.
+::(13.02.05)::Released yChat 0.7.4.1 This new version includes a major bugfix made in the new dynamic thread pool which has been introdouced in 0.7.4. The bug resulted in a thread pool dead lock.. Tagged yChat 0.7.5-CURRENT into CVS.
+::(12.02.05)::Released yChat 0.7.4. This release includes a code cleanup and a dynamic increasing thread pool. Also, some other thread pool and session engine improvements were made. The Makefiles got more organized and the HTTPD header has got a Content-length line. The Content-type text/plain is now also supported. The command line interface has got the ! (bang) operator. So you can run programs of your shell through yChat. The HTML interface has got a scrolling checkbox to de/activate the scrolling of the chat stream. Last but not least some bugfixes were made.
+::(09.02.05)::Tagged yChat 0.7.4-PRERELEASE into CVS. The RELEASE will follow this week.
+::(08.01.05)::We passed the build number 3000! 3000 times yChat has been compiled during the devel