From 221f014a6c6fea0f236fbdf3336d38852a7afe51 Mon Sep 17 00:00:00 2001 From: mom040267 Date: Thu, 20 Nov 2014 02:56:53 +0000 Subject: [PATCH] working on sqlite install --- Makefile.in | 3 ++ README.turnadmin | 4 +- README.turnserver | 6 +-- README.turnutils | 2 +- configure | 46 +++++++++++++++---- examples/etc/turnserver.conf | 4 +- .../secure_relay_with_db_sqlite.sh | 2 +- .../secure_relay_secret_with_db_sqlite.sh | 2 +- .../secure_relay_short_term_mech.sh | 4 +- man/man1/turnadmin.1 | 4 +- man/man1/turnserver.1 | 6 +-- man/man1/turnutils.1 | 2 +- src/apps/relay/mainrelay.c | 6 +-- src/apps/relay/userdb.h | 2 +- 14 files changed, 61 insertions(+), 32 deletions(-) diff --git a/Makefile.in b/Makefile.in index ea5ea7b0..60868365 100755 --- a/Makefile.in +++ b/Makefile.in @@ -104,6 +104,7 @@ distclean: clean install: all ${MAKE_DEPS} ${MKDIR} ${DESTDIR}${PREFIX} ${MKDIR} ${DESTDIR}${BINDIR} + ${MKDIR} ${DESTDIR}${LOCALSTATEDIR} ${MKDIR} ${DESTDIR}${MANPREFIX}/man/man1 ${MKDIR} ${DESTDIR}${CONFDIR} ${MKDIR} ${DESTDIR}${LIBDIR} @@ -147,10 +148,12 @@ install: all ${MAKE_DEPS} ${RMCMD} ${DESTDIR}${EXAMPLESDIR}/scripts/rfc5769.sh ${INSTALL_DIR} include/turn/client ${DESTDIR}${TURNINCLUDEDIR} ${INSTALL_DATA} include/turn/ns_turn_defs.h ${DESTDIR}${TURNINCLUDEDIR} + ${SQLITECMD} ${DESTDIR}${LOCALSTATEDIR}/turndb < turndb/schema.sql ${MORECMD} ${DESTDIR}${DOCSDIR}/postinstall.txt deinstall: ${MAKE_DEPS} ${PKILL_PROGRAM} turnserver || ${ECHO_CMD} OK + ${RMCMD} ${DESTDIR}${LOCALSTATEDIR}/turndb ${RMCMD} ${DESTDIR}${DOCSDIR} ${RMCMD} ${DESTDIR}${SCHEMADIR} ${RMCMD} ${DESTDIR}${BINDIR}/turnserver diff --git a/README.turnadmin b/README.turnadmin index a2f6b27d..269dfbbb 100644 --- a/README.turnadmin +++ b/README.turnadmin @@ -80,7 +80,7 @@ Commands: Options with required values: --b, --db, --userdb SQLite user database file name (default - /var/db/turndb). +-b, --db, --userdb SQLite user database file name (default - /var/turndb). See the same option in the turnserver section. -e, --psql-userdb PostgreSQL user database connection string. See the --psql-userdb option in the turnserver section. @@ -170,7 +170,7 @@ to see the man page. /etc/turnserver.conf -/var/db/turndb +/var/turndb /usr/local/etc/turnserver.conf diff --git a/README.turnserver b/README.turnserver index 867cfd5b..6bda58dd 100644 --- a/README.turnserver +++ b/README.turnserver @@ -81,7 +81,7 @@ Config file settings: User database settings: --b, --db, --userdb SQLite user database file name (default - /var/db/turndb). +-b, --db, --userdb SQLite user database file name (default - /var/turndb). -e, --psql-userdb User database connection string for PostgreSQL. This database can be used for long-term and short-term @@ -716,7 +716,7 @@ For the user database, the turnserver has the following options: Obviously, only a few users can be set that way, and their credentials are fixed for the turnserver process lifetime. -2) Users can be stored in SQLite DB. The default SQLite database file is /var/db/turndb. +2) Users can be stored in SQLite DB. The default SQLite database file is /var/turndb. 3) Users can be stored in PostgreSQL database, if the turnserver was compiled with PostgreSQL support. Each time turnserver checks user credentials, it reads the database (asynchronously, @@ -841,7 +841,7 @@ FILES /etc/turnserver.conf -/var/db/turndb +/var/turndb /usr/local/etc/turnserver.conf diff --git a/README.turnutils b/README.turnutils index 61757a28..42f9359a 100644 --- a/README.turnutils +++ b/README.turnutils @@ -251,7 +251,7 @@ FILES /etc/turnserver.conf -/var/db/turndb +/var/turndb /usr/local/etc/turnserver.conf diff --git a/configure b/configure index c722a509..b1ddc0d1 100755 --- a/configure +++ b/configure @@ -346,6 +346,11 @@ do -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) BINDIR=$ac_optarg ;; + -localstatedir | --localstatedir | --localstatedi | --localstated | --localstate | --localstat) + ac_prev=LOCALSTATEDIR ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* | --localstate=* | --localstat=*) + LOCALSTATEDIR=$ac_optarg ;; + -datadir | --datadir | --datadi | --datad | -schemadir | --schemadir) ac_prev=SCHEMADIR ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | -schemadir=* | --schemadir=*) @@ -432,9 +437,17 @@ fi if [ -z "${BINDIR}" ] ; then if [ -z "${bindir}" ] ; then - BINDIR=${PREFIX}/bin + BINDIR=${PREFIX}/bin else - BINDIR=${bindir} + BINDIR=${bindir} + fi +fi + +if [ -z "${LOCALSTATEDIR}" ] ; then + if [ -z "${localstatedir}" ] ; then + LOCALSTATEDIR=/var + else + LOCALSTATEDIR=${localstatedir} fi fi @@ -591,6 +604,14 @@ INSTALL_DIR="cp -rpf" MKBUILDDIR="mkdir -p" RMCMD="rm -rf" +type sqlite3 2>>/dev/null +ER=$? +if [ ${ER} -eq 0 ] ; then + SQLITECMD="sqlite3" +else + SQLITECMD="echo" +fi + ############################# # Adjustments for Solaris ############################# @@ -1043,14 +1064,16 @@ if [ -z "${TURN_NO_SQLITE}" ] ; then ${ECHO_CMD} "SQLite3 development library cannot be found." TURN_NO_SQLITE="-DTURN_NO_SQLITE" fi - - testsqlite_comp - ER=$? - if ! [ ${ER} -eq 0 ] ; then - ${ECHO_CMD} "SQLite development found." - else - ${ECHO_CMD} "SQLite development libraries are not installed properly in required location." - TURN_NO_SQLITE="-DTURN_NO_SQLITE" + + if [ -z "${TURN_NO_SQLITE}" ] ; then + testsqlite_comp + ER=$? + if ! [ ${ER} -eq 0 ] ; then + ${ECHO_CMD} "SQLite development found." + else + ${ECHO_CMD} "SQLite development libraries are not installed properly in required location." + TURN_NO_SQLITE="-DTURN_NO_SQLITE" + fi fi fi @@ -1184,6 +1207,8 @@ ${ECHO_CMD} "PREFIX = ${PREFIX}" >> Makefile ${ECHO_CMD} "prefix = ${PREFIX}" >> Makefile ${ECHO_CMD} "BINDIR = ${BINDIR}" >> Makefile ${ECHO_CMD} "bindir = ${BINDIR}" >> Makefile +${ECHO_CMD} "LOCALSTATEDIR = ${LOCALSTATEDIR}" >> Makefile +${ECHO_CMD} "localstatedir = ${LOCALSTATEDIR}" >> Makefile ${ECHO_CMD} "CONFDIR = ${CONFDIR}" >> Makefile ${ECHO_CMD} "confdir = ${CONFDIR}" >> Makefile ${ECHO_CMD} "MANPREFIX = ${MANPREFIX}" >> Makefile @@ -1203,6 +1228,7 @@ ${ECHO_CMD} "turnincludedir = ${TURNINCLUDEDIR}" >> Makefile ${ECHO_CMD} "#" >> Makefile ${ECHO_CMD} "ARCHIVERCMD = ${ARCHIVERCMD}" >> Makefile ${ECHO_CMD} "MKDIR = ${MKDIR}" >> Makefile +${ECHO_CMD} "SQLITECMD = ${SQLITECMD}" >> Makefile ${ECHO_CMD} "INSTALL_PROGRAM = ${INSTALL_PROGRAM}" >> Makefile ${ECHO_CMD} "PKILL_PROGRAM = ${PKILL_PROGRAM}" >> Makefile ${ECHO_CMD} "INSTALL_MAN = ${INSTALL_MAN}" >> Makefile diff --git a/examples/etc/turnserver.conf b/examples/etc/turnserver.conf index 3e6cd203..90c0d60c 100644 --- a/examples/etc/turnserver.conf +++ b/examples/etc/turnserver.conf @@ -250,9 +250,9 @@ # SQLite database file name. # -# Default file name is /var/db/turndb (turndb in the process' home directory). +# Default file name is /var/turndb. # -#userdb=/var/db/turndb +#userdb=/var/turndb # PostgreSQL database connection string in the case that we are using PostgreSQL # as the user database. diff --git a/examples/scripts/longtermsecuredb/secure_relay_with_db_sqlite.sh b/examples/scripts/longtermsecuredb/secure_relay_with_db_sqlite.sh index c160af38..a574cc00 100755 --- a/examples/scripts/longtermsecuredb/secure_relay_with_db_sqlite.sh +++ b/examples/scripts/longtermsecuredb/secure_relay_with_db_sqlite.sh @@ -31,5 +31,5 @@ fi export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib/:/usr/local/mysql/lib/ export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:/usr/local/lib/:/usr/local/mysql/lib/ -PATH="./bin/:../bin/:../../bin/:${PATH}" turnserver --server-name="blackdow.carleon.gov" -v --syslog -a -L 127.0.0.1 -L ::1 -E 127.0.0.1 -E ::1 --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 -r north.gov --db="var/db/turndb" --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout --cipher-list=ALL:SSLv2 --oauth $@ +PATH="./bin/:../bin/:../../bin/:${PATH}" turnserver --server-name="blackdow.carleon.gov" -v --syslog -a -L 127.0.0.1 -L ::1 -E 127.0.0.1 -E ::1 --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 -r north.gov --db="var/turndb" --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout --cipher-list=ALL:SSLv2 --oauth $@ diff --git a/examples/scripts/restapi/secure_relay_secret_with_db_sqlite.sh b/examples/scripts/restapi/secure_relay_secret_with_db_sqlite.sh index c4fa65e1..f2a47720 100755 --- a/examples/scripts/restapi/secure_relay_secret_with_db_sqlite.sh +++ b/examples/scripts/restapi/secure_relay_secret_with_db_sqlite.sh @@ -34,4 +34,4 @@ fi export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib/:/usr/local/mysql/lib/ export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:/usr/local/lib/:/usr/local/mysql/lib/ -PATH="./bin/:../bin/:../../bin/:${PATH}" turnserver -v --syslog -a -L 127.0.0.1 -L ::1 -E 127.0.0.1 -E ::1 --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 --use-auth-secret --realm=north.gov --db="var/db/turndb" --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout --cipher-list=ALL:SSLv2 $@ +PATH="./bin/:../bin/:../../bin/:${PATH}" turnserver -v --syslog -a -L 127.0.0.1 -L ::1 -E 127.0.0.1 -E ::1 --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 --use-auth-secret --realm=north.gov --db="var/turndb" --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout --cipher-list=ALL:SSLv2 $@ diff --git a/examples/scripts/shorttermsecure/secure_relay_short_term_mech.sh b/examples/scripts/shorttermsecure/secure_relay_short_term_mech.sh index 4cbfb0ed..cd757393 100755 --- a/examples/scripts/shorttermsecure/secure_relay_short_term_mech.sh +++ b/examples/scripts/shorttermsecure/secure_relay_short_term_mech.sh @@ -15,7 +15,7 @@ # 2) use fingerprints (-f) # 3) use 3 relay threads (-m 3) # 4) use min UDP relay port 32355 and max UDP relay port 65535 -# 5) --db="var/db/turndb" means that SQLite database "var/db/turndb" will be used. +# 5) --db="var/turndb" means that SQLite database "var/turndb" will be used. # 6) "--cert=example_turn_server_cert.pem" sets the OpenSSL certificate file name. # 7) "--pkey=example_turn_server_pkey.pem" sets the OpenSSL private key name. # 8) "--log-file=stdout" means that all log output will go to the stdout. @@ -31,4 +31,4 @@ fi export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib/:/usr/local/mysql/lib/ export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:/usr/local/lib/:/usr/local/mysql/lib/ -PATH="./bin/:../bin/:../../bin/:${PATH}" turnserver -v --syslog -A --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 --db="var/db/turndb" --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout -E 127.0.0.1 -E ::1 --cipher-list=ALL:SSLv2 $@ +PATH="./bin/:../bin/:../../bin/:${PATH}" turnserver -v --syslog -A --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 --db="var/turndb" --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout -E 127.0.0.1 -E ::1 --cipher-list=ALL:SSLv2 $@ diff --git a/man/man1/turnadmin.1 b/man/man1/turnadmin.1 index 85470c69..04a17b64 100644 --- a/man/man1/turnadmin.1 +++ b/man/man1/turnadmin.1 @@ -132,7 +132,7 @@ Options with required values: .TP .B \fB\-b\fP, \fB\-\-db\fP, \fB\-\-userdb\fP -SQLite user database file name (default \- /var/db/turndb). +SQLite user database file name (default \- /var/turndb). See the same option in the \fIturnserver\fP section. .TP .B @@ -261,7 +261,7 @@ to see the man page. /etc/turnserver.conf .PP -/var/db/turndb +/var/turndb .PP /usr/local/etc/turnserver.conf .PP diff --git a/man/man1/turnserver.1 b/man/man1/turnserver.1 index 5cdc166c..39b3bf2b 100644 --- a/man/man1/turnserver.1 +++ b/man/man1/turnserver.1 @@ -132,7 +132,7 @@ User database settings: .TP .B \fB\-b\fP, \fB\-\-db\fP, \fB\-\-userdb\fP -SQLite user database file name (default \- /var/db/turndb). +SQLite user database file name (default \- /var/turndb). .TP .B \fB\-e\fP, \fB\-\-psql\-userdb\fP @@ -971,7 +971,7 @@ Users can be set in the command line, with multiple \fB\-u\fP or \fB\-\-user\fP Obviously, only a few users can be set that way, and their credentials are fixed for the \fIturnserver\fP process lifetime. .IP 2) 4 -Users can be stored in SQLite DB. The default SQLite database file is /var/db/turndb. +Users can be stored in SQLite DB. The default SQLite database file is /var/turndb. .IP 3) 4 Users can be stored in PostgreSQL database, if the \fIturnserver\fP was compiled with PostgreSQL support. Each time \fIturnserver\fP checks user credentials, it reads the database (asynchronously, @@ -1096,7 +1096,7 @@ it would affect the performance. /etc/turnserver.conf .PP -/var/db/turndb +/var/turndb .PP /usr/local/etc/turnserver.conf .PP diff --git a/man/man1/turnutils.1 b/man/man1/turnutils.1 index b2a60223..979f6d58 100644 --- a/man/man1/turnutils.1 +++ b/man/man1/turnutils.1 @@ -374,7 +374,7 @@ to see the man page. /etc/turnserver.conf .PP -/var/db/turndb +/var/turndb .PP /usr/local/etc/turnserver.conf .PP diff --git a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c index 2266a5ae..79881b2f 100644 --- a/src/apps/relay/mainrelay.c +++ b/src/apps/relay/mainrelay.c @@ -95,7 +95,7 @@ LOW_DEFAULT_PORTS_BOUNDARY,HIGH_DEFAULT_PORTS_BOUNDARY,0,0,0,"", /////////////// MISC PARAMS //////////////// 0,0,0,0,0,SHATYPE_SHA1,':',0,0,TURN_CREDENTIALS_NONE,0,0,0,0,0,0, ///////////// Users DB ////////////// -{ 0, {"\0",NULL}, {0,NULL,NULL, {NULL,0}} } +{ (TURN_USERDB_TYPE)0, {"\0",NULL}, {0,NULL,NULL, {NULL,0}} } }; @@ -413,7 +413,7 @@ static char Usage[] = "Usage: turnserver [options]\n" " for the sessions, combined (input and output network streams are treated separately).\n" " -c Configuration file name (default - turnserver.conf).\n" #if !defined(TURN_NO_SQLITE) -" -b, , --db, --userdb SQLite database file name (default - /var/db/turndb).\n" +" -b, , --db, --userdb SQLite database file name (default - /var/turndb).\n" #endif #if !defined(TURN_NO_PQ) " -e, --psql-userdb, --sql-userdb PostgreSQL database connection string, if used (default - empty, no PostreSQL DB used).\n" @@ -587,7 +587,7 @@ static char AdminUsage[] = "Usage: turnadmin [command] [options]\n" " -G, --list-realm-options List realm params.\n" "\nOptions with mandatory values:\n\n" #if !defined(TURN_NO_SQLITE) - " -b, --db, --userdb SQLite database file, default value is /var/db/turndb.\n" + " -b, --db, --userdb SQLite database file, default value is /var/turndb.\n" #endif #if !defined(TURN_NO_PQ) " -e, --psql-userdb, --sql-userdb PostgreSQL user database connection string, if PostgreSQL DB is used.\n" diff --git a/src/apps/relay/userdb.h b/src/apps/relay/userdb.h index faf4504f..d25164a1 100644 --- a/src/apps/relay/userdb.h +++ b/src/apps/relay/userdb.h @@ -48,7 +48,7 @@ extern "C" { //////////// Defines ////////////////////////////// -#define DEFAULT_USERDB_FILE ("/var/db/turndb") +#define DEFAULT_USERDB_FILE ("/var/turndb") #define AUTH_SECRET_SIZE (512)