summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--[-rwxr-xr-x]COPYING0
-rw-r--r--CVS/Entries66
-rw-r--r--CVS/Entries.Log2
-rw-r--r--CVS/Root2
-rw-r--r--[-rwxr-xr-x]Makefile108
-rwxr-xr-xMakefile.in2
-rwxr-xr-xREADME664
-rwxr-xr-xbase.cpp22
-rwxr-xr-xbase.h21
-rwxr-xr-xchat.cpp9
-rwxr-xr-xchat.h7
-rw-r--r--cmnd/CVS/Entries4
-rw-r--r--cmnd/CVS/Root2
-rwxr-xr-xconf.cpp4
-rwxr-xr-xconf.txt29
-rwxr-xr-xconfigure1618
-rw-r--r--gfx/CVS/Entries2
-rw-r--r--gfx/CVS/Root2
-rwxr-xr-xgfx/y_ani_black.gifbin0 -> 61100 bytes
-rwxr-xr-xgfx/y_ani_white.gifbin0 -> 53536 bytes
-rwxr-xr-xglob.h14
-rw-r--r--hmap.cpp9
-rw-r--r--hmap.h6
-rwxr-xr-xhtml.cpp1
-rw-r--r--html/CVS/Entries1
-rw-r--r--html/CVS/Root2
-rwxr-xr-xhtml/frameset.html12
-rwxr-xr-xhtml/index.html46
-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.css45
-rwxr-xr-xmain.cpp14
-rwxr-xr-xmsgs.h11
-rwxr-xr-xpool.cpp2
-rwxr-xr-xreqp.cpp59
-rwxr-xr-xreqp.h5
-rw-r--r--s_conf.h2
-rw-r--r--s_tool.cpp28
-rw-r--r--s_tool.h1
-rwxr-xr-xsock.cpp38
-rwxr-xr-xsock.h4
-rwxr-xr-xuser.cpp23
-rwxr-xr-xuser.h7
45 files changed, 1846 insertions, 1167 deletions
diff --git a/COPYING b/COPYING
index a43ea21..a43ea21 100755..100644
--- a/COPYING
+++ b/COPYING
diff --git a/CVS/Entries b/CVS/Entries
index 9382269..749e7b2 100644
--- a/CVS/Entries
+++ b/CVS/Entries
@@ -1,70 +1,56 @@
/COPYING/1.1/Fri Mar 28 00:27:16 2003//
-/Makefile.in/1.7/Sat Apr 19 16:16:14 2003//
-/README/1.4/Sun Sep 14 14:48:45 2003//
-/base.cpp/1.8/Wed Apr 2 10:50:18 2003//
-/base.h/1.5/Wed Apr 2 10:50:18 2003//
-/chat.cpp/1.12/Sat Apr 19 19:39:17 2003//
-/chat.h/1.8/Sat Apr 19 16:16:14 2003//
+/Makefile.in/1.2/Fri Mar 28 01:38:07 2003//
+/README/1.1/Sun Mar 30 00:26:42 2003//
+/base.cpp/1.7/Sun Mar 30 01:35:21 2003//
+/base.h/1.4/Sun Mar 30 00:14:09 2003//
+/chat.cpp/1.8/Tue Mar 25 23:03:14 2003//
+/chat.h/1.4/Fri Mar 28 02:51:03 2003//
/cmnd.cpp/1.3/Tue Mar 25 14:54:07 2003//
/cmnd.h/1.1.1.1/Fri Mar 21 15:54:56 2003//
-/conf.cpp/1.5/Fri Apr 4 21:35:59 2003//
+/conf.cpp/1.3/Tue Mar 25 14:54:07 2003//
/conf.h/1.2/Tue Mar 25 14:54:07 2003//
-/conf.txt/1.19/Sun Sep 14 14:31:49 2003//
+/conf.txt/1.13/Sun Mar 30 01:35:21 2003//
/configure/1.4/Fri Mar 28 02:02:00 2003//
/configure.in/1.5/Fri Mar 28 02:02:00 2003//
/cont.cpp/1.3/Tue Mar 25 14:54:07 2003//
/cont.h/1.2/Sun Mar 30 00:26:42 2003//
-/glob.h/1.6/Sun Sep 14 14:31:49 2003//
-/hmap.cpp/1.8/Mon Apr 7 13:24:09 2003//
-/hmap.h/1.8/Wed Apr 2 10:50:18 2003//
-/html.cpp/1.7/Wed Apr 2 10:50:18 2003//
+/dltest.cpp/1.1/Thu Mar 27 16:14:44 2003//
+/glob.h/1.3/Tue Mar 25 14:54:07 2003//
+/hmap.cpp/1.6/Sun Mar 30 01:35:21 2003//
+/hmap.h/1.6/Sun Mar 30 01:35:21 2003//
+/html.cpp/1.6/Sat Mar 29 23:18:11 2003//
/html.h/1.3/Tue Mar 25 14:54:07 2003//
/incl.h/1.1.1.1/Fri Mar 21 15:54:56 2003//
-/lang.cpp/1.1/Fri Apr 4 22:14:35 2003//
-/lang.h/1.1/Fri Apr 4 22:14:35 2003//
-/logd.cpp/1.2/Thu Apr 10 15:36:10 2003//
-/logd.h/1.1/Fri Apr 4 15:19:11 2003//
-/main.cpp/1.11/Sat Apr 19 16:16:14 2003//
-/modl.cpp/1.2/Wed Apr 2 21:57:34 2003//
-/modl.h/1.1/Wed Apr 2 13:23:09 2003//
-/msgs.h/1.12/Sun Sep 14 14:48:45 2003//
+/main.cpp/1.8/Sat Mar 29 23:21:52 2003//
+/msgs.h/1.8/Tue Mar 25 22:41:35 2003//
/mutx.cpp/1.3/Tue Mar 25 14:54:07 2003//
/mutx.h/1.2/Tue Mar 25 14:54:08 2003//
/name.cpp/1.3/Tue Mar 25 22:19:51 2003//
/name.h/1.3/Tue Mar 25 22:21:26 2003//
-/pool.cpp/1.8/Sun Sep 7 12:49:46 2003//
+/pool.cpp/1.6/Tue Mar 25 14:54:08 2003//
/pool.h/1.1/Sun Mar 23 04:55:58 2003//
-/reqp.cpp/1.18/Sun Sep 14 14:31:49 2003//
-/reqp.h/1.10/Fri Apr 4 15:19:11 2003//
+/reqp.cpp/1.11/Sun Mar 30 00:06:57 2003//
+/reqp.h/1.7/Sun Mar 30 00:06:57 2003//
/room.cpp/1.2/Sun Mar 23 05:41:19 2003//
/room.h/1.2/Fri Mar 28 02:51:03 2003//
/s_chat.cpp/1.1/Tue Mar 25 14:54:08 2003//
/s_chat.h/1.1/Tue Mar 25 14:54:08 2003//
/s_conf.cpp/1.1/Tue Mar 25 14:54:08 2003//
-/s_conf.h/1.2/Fri Apr 4 21:35:59 2003//
+/s_conf.h/1.1/Tue Mar 25 14:54:08 2003//
/s_html.cpp/1.1/Tue Mar 25 14:54:08 2003//
/s_html.h/1.1/Tue Mar 25 14:54:08 2003//
-/s_lang.cpp/1.1/Fri Apr 4 22:14:35 2003//
-/s_lang.h/1.1/Fri Apr 4 22:14:35 2003//
-/s_modl.cpp/1.1/Wed Apr 2 23:01:20 2003//
-/s_modl.h/1.1/Wed Apr 2 23:01:20 2003//
/s_mutx.cpp/1.1/Tue Mar 25 14:54:08 2003//
/s_mutx.h/1.1/Tue Mar 25 14:54:08 2003//
-/s_sman.cpp/1.1/Sat Apr 19 16:16:15 2003//
-/s_sman.h/1.1/Sat Apr 19 16:17:09 2003//
/s_sock.cpp/1.1/Tue Mar 25 14:54:08 2003//
/s_sock.h/1.1/Tue Mar 25 14:54:08 2003//
-/s_tool.cpp/1.4/Fri Apr 4 10:41:12 2003//
-/s_tool.h/1.4/Fri Apr 4 10:41:12 2003//
-/sess.cpp/1.2/Sat Apr 19 19:39:17 2003//
-/sess.h/1.2/Sat Apr 19 19:39:17 2003//
-/sman.cpp/1.1/Sat Apr 19 16:16:15 2003//
-/sman.h/1.2/Sat Apr 19 19:39:17 2003//
-/sock.cpp/1.17/Sun Sep 14 14:31:49 2003//
-/sock.h/1.6/Fri Apr 4 15:19:11 2003//
+/s_tool.cpp/1.3/Sun Mar 30 00:06:57 2003//
+/s_tool.h/1.3/Sun Mar 30 00:06:57 2003//
+/sock.cpp/1.9/Wed Mar 26 15:44:09 2003//
+/sock.h/1.5/Wed Mar 26 15:44:09 2003//
/thrd.cpp/1.5/Wed Mar 26 14:57:04 2003//
/thrd.h/1.1.1.1/Fri Mar 21 15:54:56 2003//
/todo.txt/1.4/Sun Mar 30 01:48:46 2003//
-/user.cpp/1.7/Fri Apr 4 22:14:35 2003//
-/user.h/1.8/Sat Apr 19 19:39:17 2003//
+/user.cpp/1.5/Tue Mar 25 14:54:08 2003//
+/user.h/1.4/Tue Mar 25 20:06:34 2003//
+/yc_test.cpp/1.1/Thu Mar 27 16:14:44 2003//
D
diff --git a/CVS/Entries.Log b/CVS/Entries.Log
index c7be84c..3384330 100644
--- a/CVS/Entries.Log
+++ b/CVS/Entries.Log
@@ -1,5 +1,3 @@
A D/cmnd////
A D/gfx////
A D/html////
-A D/lang////
-A D/log////
diff --git a/CVS/Root b/CVS/Root
index a82e29e..4ab853d 100644
--- a/CVS/Root
+++ b/CVS/Root
@@ -1 +1 @@
-:pserver:anonymous@cvs.ychat.berlios.de:/cvsroot/ychat
+:pserver:volker@cvs.exa-ds.com:/home/cvsroot
diff --git a/Makefile b/Makefile
index 27a8d90..d3eaf7a 100755..100644
--- a/Makefile
+++ b/Makefile
@@ -1,95 +1,13 @@
-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
-ssltest:
- openssl genrsa -des3 -out privkey.pem 2048
- openssl req -new -x509 -key privkey.pem -out cert.pem -days 1095
- @mv -f privkey.pem cert.pem etc
-
-
-
+# Generated automatically from Makefile.in by configure.
+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
+OBJS=$(SRCS:.cpp=.o)
+CC=g++
+LDFLAGS=-ldl -lstdc++ -g
+LDADD=-pthread -D_THREAD_SAFE
+all: ychat
+$(SRCS):
+ $(CC) $(CFLAGS) -c $*.cpp
+ychat: $(OBJS)
+ $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDADD)
+clean:
+ rm *.o
diff --git a/Makefile.in b/Makefile.in
index 300d035..7c2a0c1 100755
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-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
+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
OBJS=$(SRCS:.cpp=.o)
CC=g++
LDFLAGS=@LDFLAGS@ -lstdc++ -g
diff --git a/README b/README
index 536c6e2..d75d16c 100755
--- a/README
+++ b/README
@@ -1,8 +1,7 @@
-yChat; Homepage: www.yChat.org; Version 0.8-RELEASE
-
+yChat++; Homepage: www.yChat.org; Version CVS
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
@@ -16,596 +15,161 @@ 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:
-
-1.0.0 GENERAL
-1.1.0 ABOUT RELEASES
-1.2.0 YCHAT FEATURES //<<
-2.0.0 INSTALLATION AND SETUP
-2.1.0 REQUIREMENTS
-2.2.0 TESTED PLATFORMS
-2.3.0 HOW TO OBTAIN YCHAT
-2.4.0 INSTALLATION QUICK-START
-2.4.1 INSTALLATION
-2.3.3 HOW TO USE OPENSSL WITH YCHAT
-2.3.4 HOW TO USE MYSQL WITH YCHAT //<<
-2.3.5 HOW TO USE SCREEN WITH YCHAT
-2.3.6 HOW TO USE SIGNALS WITH YCHAT
-2.4.0 CONFIGURING YCHAT
-2.5.0 YHTTPD CODE BASE GENERATION //<<
-3.0.0 EXTENDING YCHAT
-3.1.0 SOURCE FILES
-4.0.0 DIVERSE
-4.1.0 WRITING BUG REPORTS
-4.2.0 CONTACT ADDRESSES
-4.3.0 CREDITS
-
-1.0.0 GENERAL
-
-1.1.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.
-
-- Short names -
-
-In addition, each description also has short names: (short names are needed
-if your text space is limited which happens very fast in IRC channel topics)
-
-CURRENT aka CUR aka C
-RELEASE aka REL aka R
-LEGACY aka LEG aka L
-STABLE aka SBL aka S
-DEVEL aka DEV aka D
-PRE aka P
-
-STABLERELEASE aka STBREL aka SR
-PRERELEASE aka PREREL aka PR
-PRELEGACYRELEASE aka PRELEGREL aka PLR
-etc...
-
-The short name of the chat is "yC"
-The short name of the httpd is "yh"
-The short name of ycurses is "yu"
-
-//<<*
-1.2.0 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.
-Also, yChat supports secure hypertext transfer protocol (HTTPS) connections
-using the OpenSSL library. Then, all chat messages will be encrypted in a
-secure manner. HTTPS is optional to HTTP (unsecured connections).
-
-- 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.
-//*>>
-
-2.0.0 INSTALLATION AND SETUP
-
-2.1.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.
-
-- OpenSSL
- Includes libssl and the ssl header files of the open source SSL library.
- OpenSSL is only needed if you chose to compile yChat w/OpenSSL support.
-
-//<<*
-- mysql-client 4.x (3.x may do too but is not supported)
- Includes libmysqlclient and the mysql.h header files. mysql-client is only
- needed if you chose to compile yChat w/database support.
-
-//*>>
-- 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.
-
-2.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.4-RELEASE (i386) 3.4.2 3.80
-- 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.
-
-2.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.
-
-2.4.0 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! If you chose OpenSSL support, then
-also run gmake ssltest before starting yChat.
-
-2.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.
+Notes: I programmed this on FreeBSD but should also compile without
+big problems on Linux or other UNIX-like systems.
+If you have tested one of those then pleace write me the name of the OS,
+kernel version, make version and compiler & version. I will list it
+right here:
-//<<*
-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.
-//*>>
+The following platforms have been tested with success:
-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):
+- FreeBSD 5.0-RELEASE, GCC 3.2.1, FreeBSD 5.0 make and GNU make 3.80
- 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 ssltest (generates a self signed ssl test certificate)
- gmake version (shows the current version of yChat)
-//<<*
- gmake yhttpdbase (generates an yhttpd code base)
-//*>> (See section 1.9 to read about this marks)
+- Linux Kernel 2.4.19, GCC 3.2.0, GNU make 3.79.1
-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.
+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!
-Aferwards point your webbrowser to http://yourip:port !
+If you like to support yChat++, please write me an email and tell me
+what you can/like/would help ;-]. Please also take a look at the
+yChat++ homepage ( www.yChat.org ).
+Installation: Just invoke "./configure" and afterwards "make", edit the
+conf.txt and run the server with ./ychat. Then point your webbrowser
+to http://yourip:port/index.html
+( ignoring the index.html on the end of the url will not work! ).
... have fun :-).
-2.3.3 HOW TO USE OPENSSL WITH YCHAT
-
-If you chose to use OpenSSL support you have to have a valid SSL private and
-public key. If you are in hurry, use the gmake ssltest command from the top
-source tree directory and follow the instructions. Otherwise type the
-following commands manually:
-
-The private key can be created w/the following command:
-
- openssl genrsa -des3 -out privkey.pem 2048
-
-Afterwards, you can create a self-signed test certificate using the following
-command:
-
- openssl req -new -x509 -key privkey.pem -out cert.pem -days 1095
-
-Be sure to move the privkey.pem and cert.pem files into the ./etc directory
-or edit the path names in the ./etc/ychat.conf file. yChat wont start if there
-are no valid files found.
-
-To learn more about SSL certificates, visit http://www.openssl.org/docs/HOWTO/.
-
-Now use https:// and NOT http:// to connect to the yChat server.
-
-//<<*
-2.3.4 HOW TO USE MYSQL WITH YCHAT
-
-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</