$Id: README.in,v 1.32 2007/03/01 13:41:21 rav Exp $
***********************
**	DConnect Daemon
**	dcd 1.1.1
***********************


What is it?
-----------

DConnect Daemon is a D*rect Connect Hub clone for Linux. It allow people to
share their resources, i.e.: programs, graphics, all files ...


Features
--------

* fast, pure C implementation
* libwrap support (hosts.allow, hosts.deny)
* low memory per user consumption
* uses threads (no forking)
* nick pattern matching
* simple administration throught telnet console
* should work on every Unix system


License
-------

GPL version 2. See COPYRIGHT file shipped with sources for details.


Requirements
------------

To compile DConnect Daemon, you will need:

* libwrap(tcp_wrappers)
* libpthread
* automake (recommended min. 1.6)
* autoconf >= 2.50
* libtool
* gettext

Instalation
-----------

In most cases this procedure should work:

$ cd dcd-1.1.1
$ ./configure
$ make
$ make install

You may propably use some traditional configure options.
There are dcd-specific options, but you propably don't have to worry 
about it.

   --with-config-dir=PATH	- where to look for configuration file. 
   				You can use --sysconfdir too - there is no 
				difference.
   --with-libwrap-path=LIBPATH	- Where to look for libwrap?
   
   --with-user=USER		- Set default user. We STRONGLY advise to make
   				your own user and put it here. Default is daemon,
				because it's present in every Unix system.

   --with-group=GROUP		- Set default group. You should make your own group.
   				Default is set to daemon, because this group is
				present on every Unix system.

Usage
-----
In directory /etc or /etc/tcpd  you will find hosts.allow and hosts.deny, where you specify, 
who can connect to your hub and who can't.

NOTE: 
	This is only sample configuration. We do not provide any help with it. 
	If you want to know more about it, please read about libwrap/tcp_wrappers.

Syntax:
	hosts.allow
		ALL EXCEPT dcd:ALL
		dcd: host.domain.com			#host.domain.com is allowed
		dcd: .domain.com				#hosts which match mask *.domain.com are allowed
		dcd: 10.0.0.2					#ip 10.0.0.2 is allowed
		dcd: 10.0.0.0/255.255.255.0		#ips from 10.0.0.0 to 10.0.0.255 are allowed

	hosts.deny
		dcd: ALL						#nobody else is allowed to connect

In directory ${prefix}/etc/dcd you have config files. Most of them have sufficient
comments :)

console.allow	- from which hosts you can login to telnet console. By default
		here is only 127.0.0.1, but you may add other hosts too.
		Remember that this is clean tekst login!! Do this only in 
		trusted networks.

dcd.users	- file with users accounts. 
		Syntax:
			login:password:e-mail:description:permissions

		login - you know what is that :)

		password - written in clean text password. There will be soon
			option to put here crypted or somehow encrypted
			password.

		e-mail - this e-mail will be shown on userlist

		description - this will be shown on userlist too

		permisions - what this user can do on hub:
			c 		- access to console
			a 		- administrator
			s 		- more than administrator
			m 		- not testing minshare
			r 		- not testing minslots
			p 		- allows user to be in passive mode when passive is not allowed
			f		- allows user to specify his ip in client
			n/none  - regular user
			
dcd.banned	- users that are banned. 
		Syntax:
			include:name
				this will include a file. cannot be used in included file;	
			 
		
			IP:reason
				When user tries to enter he is disconnected after receiving reason.

dcd.conf	- main configuration of daemon. Look in config comments for details.

dcd.motd	- message that user will see after logging in.

dcd.rules	- message that user will see after using #rules command in chat

dcd.penalties	- contains punished hosts list and is updated every time op or sOP 
		punishes a person from a chat command, but it is read, 
		only when daemon starts. Every punishment must end with "\004\n"

		Syntaxt:
				IP:punished_nick:punisher_nick:penalties:start_time:duration:reason

				punished_nick - nick of person who was punished
				
				punisher_nick - nick of who punished person
				
				penalties:
						banned				+1
						no downloads		+2
						no public chat		+4
						no private chat		+8
						no search			+16
				
				start_time - the start time of penalty in "time(NULL);"
				
				duration: time in seconds

dcd.welcome	- message sent before login. Usefull to put rules.

nicks.allow	- patterns that nicks must match. Every line is one rule.

By default daemon binds to port 411(TCP/UDP) and telnet console to 511(TCP). 

You can login to console:
$ telnet localhost 511

type help to get command list.

If you like you can use a main chat window in your DC client after connecting to the hub
type #help to get command list.

You can reconfigure dcd sending HUP signal to the process or rehash
command from telnet console.

Bugs
----

We know that there are a lot of them... see BUGS
If you find any - tell us about it: dc-hub@ds.pg.gda.pl
