Skip to content

AfrazHussain/tpserver-cpp

 
 

Repository files navigation

This is the server for Thousand Parsec.
More info at
http://www.thousandparsec.net/tp/

Requires a Unix-like environment, because it uses dynamic loading.
Tested under Linux.

REQUIRES (to build also requires the dev packages/headers)
========
pthreads (part of libc, standard)
libtprl 0.1.2 or later (replaces/uses readline) (www.thousandparsec.net/tp/) [GPL]
Boost 1.32.1 or later (www.boost.org) [Boost License]
Boost.Signals (as above)

OPTIONAL
========
libgnutls12 (common in latest distros, optional needed for secure sockets) [GPL]
Version 1.2.10 or higher.

mysql (www.mysql.com) [GPL]
MySQL is optional, but is needed for the mysql persistence backend. The client
side library is required.
 - note: see ./configure --help for options and env vars.

Avahi (avahi.org) [LGPL]
Version 0.6.0 or higher
Needed for zeroconf/mDNS support

OPTIONS (need one or the other)
=======
The configuration will try to locate these packages and will give an error if
neither is found. Both can be present and will be built.

mzscheme (www.plt-scheme.org) [LGPL]
 - note: you will probably need to pass the directory to the plt
   to configure, and it will generally be /usr/lib/plt (as in 
   debian), therefore, your configure command will be:
     ./configure --with-mzscheme=/usr/lib/plt
   You may also need to add the lib subdirectory to /etc/ld.so.conf
   and run ldconfig as root before tpserver-cpp will run.

Guile (www.gnu.org/software/guile/) [GPL]
Should be on most systems already.
Version 1.6 or higher.



SETTINGS/CONF FILE
==================
By default the settings are taken from
    /etc/tpserver-cpp/tpserver.conf
but this can be overridden by adding these command line args
    -C /dir/to/settingsfile.conf
or
    --configure /dir/to/settingsfile.conf
or
    --config_file /dir/to/settingsfile.conf
All settings can set on the console once the server is running.


SETTING UP SECURE SOCKETS
=========================
These instructions are for a self-signed certificate.

First, create private key (priv.pem):
certtool -p --outfile priv.pem

Second, create public (encrypting, tls web server?) self-signed cert 
(cert.pem):
certtool -s --load-privkey priv.pem --outfile cert.pem

In config or set on console:
x509_cert_file = cert.pem
x509_key_file = priv.pem
x509_tls = yes
tps = yes
https = yes
https_port = 8088 #or whatever


For certificates signed by a different authority, you will need the
certificate(s) of the signer and set x509_trust_file to point to that
file.

About

Project containing the work I did during my GSoC 2008. This repo is NOT the main repo, see site. My work lies at the URL below.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 73.0%
  • M4 11.4%
  • Shell 9.3%
  • C 4.9%
  • Makefile 1.3%
  • Roff 0.1%