/soulfind

Soulfind is a Soulseek server, written in D

Primary LanguageDGNU General Public License v3.0GPL-3.0

To build Soulfind, just type :
	make
The Makefile uses DMD by  default to build Soulfind (since it's easier
to install,  more up-to-date, etc). Set the DC environment variable to
'gdc' to compile with GDC instead :
	DC=gdc make
(it's a shame DMD doesn't use the same options as GDC)

Valid targets are :
	- all (default target)
	- soulfind
	- soulsetup
	- install
	- install_soulfind
	- install_soulsetup


You can find gdc at :
	http://home.earthlink.net/~dvdfrdmn/d
and dmd at :
	http://www.digitalmars.com/d/dcompiler.html

You'll also need to have the sqlite3 library installed, since it's the
database Soulfind uses to store its configuration and user info.


Case sensitivity for usernames :
Case sensitivity can be configured through soulsetup. When in case-in-
sensitive mode, the case used is the one used at the first  connection
to the server, for example : "User" logs in for the first time.  He is
registered as "User". If he later connects as "user", he will still be
shown as "User".
Case-insensitivity will only work for ASCII characters (not even other
iso-8859-15 characters like é/É, à/À, ô/Ô, etc), this is  because of a
SQLite limitation and may change someday,  or depend on the version of
the SQLite library used.
It is also not  recommended to  switch to case-insensitive mode with a
database that already has registered users, since if two username with
a different case an a different password are registered, case-insensi-
tivity will prevent the most  recent one from logging into the server.


Soulfind doesn't  use a configuration file anymore. Instead, it stores
all its configuration  in the  sqlite database. When starting, it will
look for the file soulfind.db, and create it with the following tables
if it doesn't exist :
	- users
	- admins
	- conf

Only the 'conf' table is filled with some default values :
	- port             : 2241
	- max_users        : 65535
	- max_message_size : 16384
	- max_offline_pms  : 15
	- motd             : "Soulfind <version>"


You can edit the database  yourself with the sqlite3  utility, but the
easiest is to use  soulsetup instead.  You need to add the first admin
yourself,  since you have to be an admin  already to add an admin when
connected to the server (though Soulfind runs fine without any admin).


Soulsetup now automatically updates  old databases  to the new format.
Notice that the default  filename has changed  from "user.db" in older
versions to "/var/db/soulfind/soulfind.db".


Contact me  at seeschloss@seeschloss.org if you have anything  to say.