summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2013-04-06 13:14:46 +0200
committerPaul Buetow <paul@buetow.org>2013-04-06 13:14:46 +0200
commit07706f56cd421bf8b101a5c0fe44674d36e161a0 (patch)
treebec8b45765788370fbd148d68e05d8b437e60670
parent56187184e11b085b82584d3b088c62f427aae83c (diff)
tagging ychat-0.5.1ychat-0.5.1
-rw-r--r--[-rwxr-xr-x]COPYING1
-rw-r--r--ChangeLog484
-rwxr-xr-xMakefile.in2
-rwxr-xr-xREADME318
-rwxr-xr-xbase.cpp97
-rwxr-xr-xbase.h61
-rwxr-xr-xchat.cpp80
-rwxr-xr-xchat.h16
-rwxr-xr-xcmnd.cpp2
-rw-r--r--cmnd/yc_getrusage.cpp51
-rwxr-xr-xconf.cpp10
-rwxr-xr-xconf.h4
-rwxr-xr-xconf.txt46
-rwxr-xr-xconfigure1618
-rwxr-xr-xcont.cpp2
-rwxr-xr-xcont.h1
-rwxr-xr-xglob.h14
-rw-r--r--hmap.cpp9
-rw-r--r--hmap.h6
-rwxr-xr-xhtml.cpp40
-rwxr-xr-xhtml.h6
-rw-r--r--[-rwxr-xr-x]html/favicon.icobin2238 -> 2238 bytes
-rwxr-xr-xhtml/frameset.html12
-rwxr-xr-xhtml/index.html21
-rwxr-xr-xhtml/input.html52
-rwxr-xr-xhtml/notfound.html4
-rwxr-xr-xhtml/online.html21
-rwxr-xr-xhtml/stream.html42
-rw-r--r--[-rwxr-xr-x]html/style.css0
-rwxr-xr-xmain.cpp48
-rwxr-xr-xmsgs.h12
-rwxr-xr-xmutx.cpp4
-rwxr-xr-xmutx.h4
-rwxr-xr-xname.cpp2
-rwxr-xr-xname.h4
-rwxr-xr-xpool.cpp48
-rwxr-xr-xreqp.cpp113
-rwxr-xr-xreqp.h6
-rwxr-xr-xroom.h4
-rw-r--r--s_conf.h2
-rw-r--r--s_tool.cpp28
-rw-r--r--s_tool.h1
-rwxr-xr-xsock.cpp70
-rwxr-xr-xsock.h16
-rwxr-xr-xthrd.cpp5
-rwxr-xr-xtodo.txt14
-rwxr-xr-xuser.cpp37
-rwxr-xr-xuser.h15
48 files changed, 2831 insertions, 622 deletions
diff --git a/COPYING b/COPYING
index 27058a5..a43ea21 100755..100644
--- a/COPYING
+++ b/COPYING
@@ -106,6 +106,7 @@ above, provided that you also meet all of these conditions:
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.)
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..b3ada67
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,484 @@
+2003-09-14 16:55 snooper
+
+ * cmnd/yc_version.cpp: Added /version command.
+
+2003-09-14 16:48 snooper
+
+ * README, msgs.h: Changed Version to 0.5 ( Will be released as soon
+ as possible ).
+
+2003-09-14 16:34 snooper
+
+ * msgs.h: Changed version description.
+
+2003-09-14 16:31 snooper
+
+ * README, conf.txt, glob.h, reqp.cpp, sock.cpp, cmnd/compile.sh:
+ Fixed all known bugs which already have been fixed in yChat++
+ Advanced.
+
+2003-09-13 20:52 snooper
+
+ * gfx/y_ani_black.gif, gfx/y_ani_white.gif, html/favicon.ico: [no
+ log message]
+
+2003-09-07 14:49 snooper
+
+ * pool.cpp:
+ Removed a pthread_cond_signal which has been set twice!
+
+2003-09-06 23:34 rover
+
+ * pool.cpp: fixed a typo ( multi thread bug )
+
+2003-09-03 18:30 rover
+
+ * reqp.cpp: modified End-Of-Headers to RFC compliant version
+
+2003-07-26 14:30 snooper
+
+ * reqp.cpp: Added Pragma: no-cache and Expires: 0 to the HTTP
+ header. ( this is a bugfix ).
+
+2003-04-19 21:39 rover
+
+ * chat.cpp, reqp.cpp, sess.cpp, sess.h, sman.h, sock.cpp, user.h:
+ identification now only depends on session
+
+2003-04-19 18:16 rover
+
+ * Makefile.in, chat.cpp, chat.h, conf.txt, main.cpp, s_sman.cpp,
+ sess.cpp, sman.cpp, s_sman.h, sess.h, sman.h: added session
+ manager and session object.
+
+2003-04-10 17:36 rover
+
+ * logd.cpp: fixed a typo
+
+2003-04-07 15:24 rover
+
+ * hmap.cpp: added a really really important newline ( this is just
+ a loginfo test )
+
+2003-04-07 15:18 rover
+
+ * msgs.h: message templates are now replaced by language manager
+
+2003-04-05 00:17 rover
+
+ * Makefile.in: language support
+
+2003-04-05 00:14 rover
+
+ * chat.cpp, chat.h, conf.txt, lang.cpp, lang.h, main.cpp,
+ s_lang.cpp, s_lang.h, sock.cpp, user.cpp, user.h, lang/de,
+ lang/en: support for different languages in chat output
+
+2003-04-04 23:35 rover
+
+ * conf.cpp, conf.txt, glob.h, s_conf.h, sock.cpp: another bug that
+ was caused due sed conversion
+
+2003-04-04 17:42 rover
+
+ * Makefile.in: added log_daemon
+
+2003-04-04 17:19 rover
+
+ * conf.txt, logd.cpp, logd.h, reqp.cpp, reqp.h, sock.cpp, sock.h:
+ added access log compatible logging
+
+2003-04-04 13:13 rover
+
+ * sock.cpp: added IP / PORT to map_params to make logging possible
+ with only this map
+
+2003-04-04 12:41 rover
+
+ * s_tool.cpp, s_tool.h: added trim() function to strip whitespaces
+ at the beginning and end of a string
+
+2003-04-04 12:40 rover
+
+ * reqp.cpp, reqp.h: http headers are now stored in the requestmap
+
+2003-04-03 01:01 snooper
+
+ * s_modl.cpp, s_modl.h, user.h: Minor modifications. New static
+ class wrapper.
+
+2003-04-02 23:57 snooper
+
+ * Makefile.in, chat.h, conf.txt, main.cpp, modl.cpp, sock.cpp,
+ user.cpp, user.h, cmnd/yc_q.cpp: Added first command. /q ...
+ Todo: each user should have his own hashmap of executable
+ modules. Right now all users use the same module hash map.
+
+2003-04-02 15:23 rover
+
+ * modl.cpp, modl.h: module loader
+
+2003-04-02 12:52 snooper
+
+ * dltest.cpp, yc_test.cpp, cmnd/yc_q.cpp, cmnd/yc_test.cpp: [no log
+ message]
+
+2003-04-02 12:50 snooper
+
+ * Makefile.in, README, base.cpp, base.h, chat.cpp, chat.h,
+ conf.cpp, dltest.cpp, glob.h, hmap.cpp, hmap.h, html.cpp, msgs.h,
+ reqp.cpp, reqp.h, sock.cpp: Dynamic module loader class. Better
+ hash map functionality. Some bugfixes.
+
+2003-03-30 15:40 paul
+
+ * hmap.h:
+ Implementation of operator[].
+
+2003-03-30 13:12 volker
+
+ * html/: style.css, y_black.gif: added stylesheet and an image
+
+2003-03-30 03:48 paul
+
+ * todo.txt: [no log message]
+
+2003-03-30 03:35 paul
+
+ * base.cpp, conf.txt, hmap.cpp, hmap.h: The hach map now supports
+ explicit key bindings on each value. The [] operator still has to
+ be implemented.
+
+2003-03-30 01:34 volker
+
+ * conf.txt, html/index.html, html/input.html, html/online.html,
+ html/stream.html: modified appearance and added css
+
+2003-03-30 01:26 paul
+
+ * README, README.txt, cont.h: Renamed.
+
+2003-03-30 01:14 paul
+
+ * base.cpp, base.h, hmap.cpp, hmap.h: All user objects and all room
+ objects are stored in a hash map.
+
+2003-03-30 01:06 volker
+
+ * conf.txt, reqp.cpp, reqp.h, s_tool.cpp, s_tool.h: support for
+ different content-types
+
+2003-03-30 00:21 paul
+
+ * hmap.cpp, hmap.h, main.cpp: Now handles pointer of data objects
+ instead of references.
+
+2003-03-30 00:18 volker
+
+ * html.cpp: removed possible deadlock
+
+2003-03-30 00:11 volker
+
+ * conf.txt, html.cpp: changed format how files are read into
+ templatecache
+
+2003-03-28 17:16 volker
+
+ * todo.txt: todo is now up to date
+
+2003-03-28 03:51 paul
+
+ * data.h:
+
+ Removed data.h
+
+2003-03-28 03:51 paul
+
+ * README.txt, base.h, chat.h, data.h, room.h:
+
+ Put data.h and base.h together.
+
+2003-03-28 03:08 paul
+
+ * README.txt:
+
+ Actualizing because of the new configure script.
+
+2003-03-28 03:02 volker
+
+ * configure, configure.in: [no log message]
+
+2003-03-28 02:59 volker
+
+ * configure, configure.in: -ldl is not needed under *bsd. Added a
+ check
+
+2003-03-28 02:38 volker
+
+ * Makefile, Makefile.in, configure, configure.in: added support for
+ bsd
+
+2003-03-28 01:38 volker
+
+ * base.cpp: changed a bug in cvs keywords
+
+2003-03-28 01:32 volker
+
+ * base.cpp: [no log message]
+
+2003-03-28 01:27 volker
+
+ * COPYING, configure.in: this file should be in every repository ;)
+
+2003-03-28 01:18 volker
+
+ * Makefile, Makefile.in, configure, configure.in: configure
+ dependent files
+
+2003-03-28 00:22 paul
+
+ * hmap.cpp, hmap.h:
+
+ Optimization of the hash map.
+
+2003-03-27 17:14 volker
+
+ * dltest.cpp, yc_test.cpp: Dynamic module test
+
+2003-03-26 18:50 paul
+
+ * html/index.html:
+
+ Changed POST back to GET due read bug.
+
+2003-03-26 17:40 paul
+
+ * reqp.cpp:
+
+ Bugfix.
+
+2003-03-26 16:44 paul
+
+ * reqp.cpp, sock.cpp, sock.h:
+
+ Fixed segfault bug. ( stream.html request without existing user
+ object ).
+
+2003-03-26 16:17 paul
+
+ * sock.cpp:
+
+ Deletion of variables which are no longer needed after procession
+ ( e.g. map_params ).
+
+2003-03-26 15:57 paul
+
+ * thrd.cpp:
+
+ Bugfix. Now every socket connection will be closed the right way
+ ;).
+
+2003-03-26 00:03 paul
+
+ * chat.cpp, chat.h, sock.cpp:
+
+ Bugfix + added to the class chat a private bool b_strip_html
+ member.
+
+2003-03-25 23:52 paul
+
+ * chat.cpp:
+
+ Style fix.
+
+2003-03-25 23:41 paul
+
+ * msgs.h, sock.cpp:
+
+ Bugfix.
+
+2003-03-25 23:21 paul
+
+ * name.h:
+
+ Bugfix.
+
+2003-03-25 23:19 paul
+
+ * Makefile, README.txt, base.cpp, base.h, conf.txt, data.h,
+ hmap.cpp, hmap.h, name.cpp, name.h:
+
+ Changed because of hashmap integration. base.cpp and base.h still
+ have to be modified. Afterwards, all user and rooms will be
+ stored in a hash map.
+
+2003-03-25 21:06 paul
+
+ * Makefile, hmap.cpp, hmap.h, user.h:
+
+ Hash Map implementation.
+
+2003-03-25 20:12 volker
+
+ * chat.cpp, conf.txt, s_tool.cpp, s_tool.h: added possibility to
+ turn html tags on/off in chat messages
+
+2003-03-25 19:53 paul
+
+ * conf.txt, html.cpp:
+
+ Bugfix.
+
+2003-03-25 18:44 paul
+
+ * conf.txt:
+
+ Bugfix.
+
+2003-03-25 17:22 volker
+
+ * conf.txt, main.cpp: removed some typos that where created due to
+ sed conversation
+
+2003-03-25 15:54 volker
+
+ * CHAT.cpp, CHAT.h, CONF.cpp, CONF.h, HTML.cpp, HTML.h, MUTX.cpp,
+ MUTX.h, Makefile, README.txt, SOCK.cpp, SOCK.h, TOOL.cpp, TOOL.h,
+ chat.cpp, chat.h, cmnd.cpp, conf.cpp, conf.h, conf.txt, cont.cpp,
+ data.h, glob.h, html.cpp, html.h, main.cpp, msgs.h, mutx.cpp,
+ mutx.h, pool.cpp, reqp.cpp, s_chat.cpp, s_chat.h, s_conf.cpp,
+ s_conf.h, s_html.cpp, s_html.h, s_mutx.cpp, s_mutx.h, s_sock.cpp,
+ s_sock.h, s_tool.cpp, s_tool.h, sock.cpp, sock.h, thrd.cpp,
+ user.cpp: changed filenames to windows compatible ones
+
+2003-03-25 00:49 paul
+
+ * README.txt:
+
+ Bugfixes.
+
+2003-03-25 00:40 paul
+
+ * todo.txt:
+
+ New brainstorming.
+
+2003-03-25 00:16 paul
+
+ * TOOL.cpp, TOOL.h, chat.cpp, msgs.h:
+
+ Added check routine if a login nick is alphanumeric or not. If
+ not a message will appear on the startpage instead of logging in
+ which may would end in a segmentation fault.
+
+2003-03-24 23:45 paul
+
+ * main.cpp: [no log message]
+
+2003-03-24 23:43 paul
+
+ * README.txt, chat.cpp, msgs.h, user.cpp, user.h:
+
+ Added support for chat commands ( chat commands still have to be
+ implemented ). If you type "/testhere" ychat will tell that
+ there is no such command!
+
+2003-03-24 00:30 paul
+
+ * Makefile, cmnd.cpp, main.cpp, msgs.h, reqp.cpp, reqp.h, sock.cpp,
+ sock.h, thrd.cpp, user.cpp, user.h: [no log message]
+
+2003-03-23 23:34 vrichter
+
+ * reqp.cpp: removed bogus sock.h
+
+2003-03-23 23:29 vrichter
+
+ * reqp.cpp, sock.cpp: bugfix POST system
+
+2003-03-23 20:03 vrichter
+
+ * html/index.html: changed the method of the login form to POST
+
+2003-03-23 20:02 vrichter
+
+ * reqp.cpp, reqp.h: the request parser now supports POST
+
+2003-03-23 16:16 paul
+
+ * pool.cpp:
+
+ Fixed changing date! ( System clock was set wrong ),
+
+2003-03-23 16:05 paul
+
+ * pool.cpp: [no log message]
+
+2003-03-23 12:33 paul
+
+ * conf.txt, pool.cpp: [no log message]
+
+2003-03-23 06:41 paul
+
+ * base.cpp, chat.cpp, conf.cpp, cont.cpp, html.cpp, main.cpp,
+ mutx.cpp, name.cpp, reqp.cpp, room.cpp, thrd.cpp, user.cpp,
+ msgs.h: [no log message]
+
+2003-03-23 06:26 paul
+
+ * pool.cpp: [no log message]
+
+2003-03-23 05:55 paul
+
+ * Makefile, README.txt, conf.txt, glob.h, main.cpp, msgs.h,
+ pool.cpp, pool.h, reqp.h, sock.cpp, sock.h: [no log message]
+
+2003-03-22 23:07 paul
+
+ * README.txt: [no log message]
+
+2003-03-22 22:56 paul
+
+ * html.h: [no log message]
+
+2003-03-22 07:40 vrichter
+
+ * reqp.h: fixed a paste error
+ ----------------------------------------------------------------------
+
+2003-03-21 20:38 vrichter
+
+ * yc.tgz, ychat: removed binary files that were transfered
+
+2003-03-21 19:31 vrichter
+
+ * reqp.cpp, reqp.h, ychat: added url decoding
+
+2003-03-21 16:54 root
+
+ * CHAT.cpp, CHAT.h, CONF.cpp, CONF.h, HTML.cpp, HTML.h, MUTX.cpp,
+ MUTX.h, Makefile, README.txt, SOCK.cpp, SOCK.h, TOOL.cpp, TOOL.h,
+ base.cpp, base.h, chat.cpp, chat.h, cmnd.cpp, cmnd.h, conf.cpp,
+ conf.h, conf.txt, cont.cpp, cont.h, data.h, glob.h, html.cpp,
+ html.h, incl.h, main.cpp, msgs.h, mutx.cpp, mutx.h, name.cpp,
+ name.h, reqp.cpp, reqp.h, room.cpp, room.h, sock.cpp, sock.h,
+ thrd.cpp, thrd.h, todo.txt, user.cpp, user.h, yc.tgz, ychat,
+ gfx/y_ani_black.gif, gfx/y_ani_white.gif, html/blank.html,
+ html/frameset.html, html/index.html, html/input.html,
+ html/notfound.html, html/online.html, html/stream.html,
+ html/y_ani.gif: Initial revision
+
+2003-03-21 16:54 root
+
+ * CHAT.cpp, CHAT.h, CONF.cpp, CONF.h, HTML.cpp, HTML.h, MUTX.cpp,
+ MUTX.h, Makefile, README.txt, SOCK.cpp, SOCK.h, TOOL.cpp, TOOL.h,
+ base.cpp, base.h, chat.cpp, chat.h, cmnd.cpp, cmnd.h, conf.cpp,
+ conf.h, conf.txt, cont.cpp, cont.h, data.h, glob.h, html.cpp,
+ html.h, incl.h, main.cpp, msgs.h, mutx.cpp, mutx.h, name.cpp,
+ name.h, reqp.cpp, reqp.h, room.cpp, room.h, sock.cpp, sock.h,
+ thrd.cpp, thrd.h, todo.txt, user.cpp, user.h, yc.tgz, ychat,
+ gfx/y_ani_black.gif, gfx/y_ani_white.gif, html/blank.html,
+ html/frameset.html, html/index.html, html/input.html,
+ html/notfound.html, html/online.html, html/stream.html,
+ html/y_ani.gif: imported files into ychat cvs
+
diff --git a/Makefile.in b/Makefile.in
index 7c2a0c1..300d035 100755
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-SRCS=base.cpp chat.cpp s_chat.cpp cmnd.cpp conf.cpp s_conf.cpp cont.cpp html.cpp s_html.cpp main.cpp mutx.cpp s_mutx.cpp name.cpp pool.cpp reqp.cpp room.cpp sock.cpp s_sock.cpp thrd.cpp s_tool.cpp user.cpp
+SRCS=chat.cpp s_chat.cpp cmnd.cpp conf.cpp s_conf.cpp cont.cpp html.cpp s_html.cpp lang.cpp s_lang.cpp logd.cpp main.cpp modl.cpp s_modl.cpp mutx.cpp s_mutx.cpp name.cpp pool.cpp reqp.cpp room.cpp sock.cpp s_sock.cpp thrd.cpp s_tool.cpp user.cpp sess.cpp sman.cpp s_sman.cpp
OBJS=$(SRCS:.cpp=.o)
CC=g++
LDFLAGS=@LDFLAGS@ -lstdc++ -g
diff --git a/README b/README
index 5b94c8c..3ae4b74 100755
--- a/README
+++ b/README
@@ -1,7 +1,5 @@
-yhttpd; Homepage: www.yhttpd.org; Version 0.7.1-RELEASE
-
+yChat++ Basic; Homepage: www.yChat.org; Version 0.5.1
Copyright (C) 2003 Paul C. Buetow, Volker Richter
-Copyright (C) 2004 Paul C. Buetow
-----------------------------------------------------------------
This program is free software; you can redistribute it and/or
@@ -17,246 +15,221 @@ 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.
------------------------------------------------------------------
-YHTTPD TABLE OF CONTENTS:
+-----------------------------------------------------------------
+0.0.0 YCHAT++ BASIC TABLE OF CONTENTS
1.0.0 REQUIREMENTS
1.1.0 TESTED PLATFORMS
-1.2.0 IMPORTANT NOTICES
-1.3.0 HOW TO OBTAIN YHTTPD
+1.2.0 IMPORTANT NOTES
+1.3.0 HOW TO OBTAIN YCHAT++
1.3.1 INSTALLATION
-1.3.2 INSTALLATION QUICK-START
-1.4.0 HOW TO USE SCREEN WITH YHTTPD
1.5.0 CUSTOMIZATION
1.6.0 FILES
1.7.0 WRITING BUG REPORTS
1.8.0 CONTACT
-
1.0.0 REQUIREMENTS:
-- GNU GCC G++ 3.4 or 3.3 or 3.2 or 3.1
- The GNU C++ compiler. G++ version 3.0 or 2.x does NOT work.
+- gcc 3.2
+ The GNU C++ compiler.
-- 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.
- yhttpd Makefiles only have been tested with GNU make and may not work with
- other make versions.
+1.1.0 TESTED PLATFORMS:
-- ncurses 5.x
- Includes libncurses and the ncurses.h header files.
+The following platforms have been tested with success:
-- Screen
- Only needed if yhttpd should run in background with
- ncurses or CLI enabled.
+- Linux with GCC 3.2.0, GNU make 3.79.1
+- FreeBSD 5.1-RELEASE-p2, GCC 3.2.2, GNU make 3.80 ( standard make does not seem work on FreeBSD ).
-- Perl 5.x
- Is needed for some scripts. Is not needed if you use precompiled binaries.
+1.2.0 IMPORTANT NOTES:
-1.1.0 TESTED PLATFORMS:
+Before you compile the source you have to be sure to use at least GCC
+version 3.x with pthreads enabled. ( Type gcc -v to check it ).
+GCC 2.95 did not work while testing on linux 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.
-The following platforms have been tested with success. If you find out that
-a listed platform did not work at all please contact me:
+1.3.0 HOW TO OBTAIN YCHAT++:
- Operating system (arch) GNU G++ GNU make
-- FreeBSD 5.2.1-RELEASE (i386) 3.3.3 3.80
-- FreeBSD 4.9-RELEASE (i386) 3.3.4 3.80
-- FreeBSD 4.10-RELEASE (i386) 3.4.1 3.80
-- Gentoo Linux 2004.2 (i386) 3.3.2 3.80
-- OpenBSD 3.6 MP (i386) 3.3.2 3.80
-- Slackware Linux 10.0 (i386) 3.4.0 3.80
-- SUSE Linux 8.0, G (i386) 3.3.1 3.80
+yChat can be downloaded as a source package or through CVS.
-Other platforms like Linux based systems, other BSD-Systems or UNICES
-are very likely to work too.
+The packages are located at http://www.yChat.org -> Sourcecode ->
+Packages or go to http://programming.buetow.org/CPP-yChat .
-1.2.0 IMPORTANT NOTICES:
+For CVS download type also look at the homepage please.
-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 yhttpd++, please write us an email and tell what
-you can/like/would help ;-]. Please also take a look at the yhttpd++
-homepage which is located at http://www.yhttpd.org.
+1.3.1 INSTALLATION:
-1.3.0 HOW TO OBTAIN YHTTPD++:
+Invoke "./configure" and afterwards "make", edit the conf.txt.
-yhttpd can be downloaded as a source package or through CVS.
+Now we want to compile all the dynamic loadable modules of ychat.
+Invoke "cd cmnd && ./compile.sh && cd -". All command modules should get
+compiled.
-The packages are located at http://www.yhttpd.org -> Sourcecode ->
-Packages or go to http://pub.buetow.org/yhttpd/CPP-yhttpd .
+Now its time to run the server with ./ychat.
+Then point your webbrowser to http://yourip:port !
-For CVS download type:
+... have fun :-).
-cvs -d:pserver:anonymous@buetow.org:/usr/home/cvs/cvsroot login
-( You will be asked for a password. Use "just enter" ).
+1.5.0 CUSTOMIZATION:
-vs -z3 -d:pserver:anonymous@buetow.org:/usr/home/cvs/cvsroot co yhttpd
-( The sources will be copied into your local folder )
+If you like to customize the design/layout/language of yChat, you will have
+to edit msgs.h and glob.h before you compile the sources. Afterwards you can
+change the html-template files which are placed in the html/ subdirectory.
+Dynamic loadable modules can be found in the cmnd/ subdirectory.
-cvs -d:pserver:anonymous@buetow.org:/usr/home/cvs/cvsroot logout
-( Logs your CVS session out ).
+1.6.0 FILES: ( This list is not complete )
-Now you may continue with the installation.
+conf.txt - The yChat configuration file. ( read by conf.cpp ).
-1.3.1 INSTALLATION:
+base.cpp - Encapsulates vector fields of room's or user ( may be later
+ hash_maps ) and provides methods for manipulating data
+ objects.
-Invoke "./configure". Afterwards you will get prompted with the before-compile
-options of yhttpd. After choosing those options you are ready to type "gmake"
-afterwards.
-
-
-You may also invoke gmake with the following options (the PREFIX can be set
-in the yhttpd configurator which will be launched by the top configure script
-or gmake config):
-
- gmake or gmake all (compiles everything, also modules)
- 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 config (runs yhttpd configurator)
- gmake deinstall (deinstalls yhttpd from PREFIX)
- gmake gpl (shows the GNU General Public License)
- gmake help (shows all available yhttpd gmake targets)
- gmake install (installs yhttpd to PREFIX)
- 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 start (compiles everything and starts the server)
- gmake stats (generates yhttpd statistics)
- gmake uninstall (same as deinstall)
- gmake version (shows the current version of yhttpd)
-
-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/yhttpd.
-
-Aferwards point your webbrowser to http://yourip:port !
+hmap.cpp - The hash map implementation which is a very fast data
+ structure. is needed for saving users, rooms and so on.
-... have fun :-).
+main.cpp - This includes the required manager headers for starting
+ the server and finally regulates the correct starting.
-1.3.2 INSTALLATION QUICK START:
+modl.cpp - The module loader. Stores pointers of all dynamic loaded
+ yChat modules in a hash map object and loads new modules
+ if desired or returns their pointers.
-If you in hury, then you may just type gmake setup. In the yhttpd configurator
-you may just choose all the default values. If done, yhttpd will get compiled
-and is ready to run with ./bin/yhttpd!
+pool.cpp - The implementation of the thread pool. all threads are stored
+ in a queue. Each thread will be reused if the assigned job is
+ finished.
+reqp.cpp - This class implements the http request parser. If a client
+ starts a request to the server the reqp class will be
+ invoked.
-1.4.0 HOW TO USE SCREEN WITH YHTTPD:
+room.cpp - Specifies a chat room. For each chat room an instance of
+ this class exists.
-If you are running yhttpd in ncurses mode you might want to install
-the tool which is called "screen". This will enable you putting the
-ncurses interface into the background, closing the terminal session
-and reusing the interface later through another terminal.
+thrd.cpp - This class is needed by sock.cpp while creating a POSIX thread.
+ All data which a thread needs to do its tasks are stored in a
+ thrd object and then a pointer to it will be passed to the
+ POSIX thread function.
-Just do:
-
- screen -S yhttpd ./bin/yhttpd ( creates a new session and starts yhttpd in it )
- ctrl+d+a ( will detach the yhttpd session )
- ( closing the terminal )
- ( opening a new terminal )
- screen -r yhttpd ( will return you to the yhttpd process )
+user.cpp - Specifies a chat user. For each chat user an instance of
+ this class exists.
-Screen will terminate automaticaly if all processes in its sessions are
-terminated.
+Abstract classes:
-For a closer look read the screen manual page ( man screen ).
+cont.cpp - All classes which need to store "key - value" data sets
+ inherit from this class. ( cont for content ).
-1.5.0 CUSTOMIZATION:
+name.cpp - All classes which own a private member string name inherit
+ from this class. It also provides public get_name and
+ set_name methods.
+
+As described ( main.cpp ), there are so called managers. Managers are
+accessible through their assigned wrapper classes and may be
+instanciated only once.
+
+chat.cpp - The chat manager. Is responsible for managing the internal
+ data structure of the system and also covers a lot of
+ important methods of the system.
+
+conf.cpp - The config manager. Parses the config file specified in
+ glob.h and stores all the values of it in a map.
-If you like to customize the design/layout/language of yhttpd, you will have
-to edit src/msgs.h and src/glob.h before you compile the sources. Afterwards
-you can change the html-template files which are placed in the html/
-subdirectory and the language-templates which are placed in the XML config
-file (etc/yhttpd.conf).
+html.cpp - The html-template manager. Reads the requested html-template
+ files, stores them in an internal cache ( averts reading
+ template-files from hd twice or more ) and parses the