From 68f28329fc29b87b73be20dc7c5dab9dc5604a82 Mon Sep 17 00:00:00 2001 From: mom040267 Date: Thu, 20 Nov 2014 04:13:49 +0000 Subject: [PATCH] working on sqlite --- Makefile.in | 6 ++-- README.turnadmin | 6 ++-- README.turnserver | 9 +++-- README.turnutils | 3 +- configure | 12 +++++-- 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 | 6 ++-- man/man1/turnserver.1 | 9 +++-- man/man1/turnutils.1 | 3 +- postinstall.txt | 3 +- sqlite/turndb | Bin 0 -> 20480 bytes src/apps/relay/mainrelay.c | 32 ++++++++++++++++-- src/apps/relay/userdb.h | 2 -- 16 files changed, 73 insertions(+), 30 deletions(-) create mode 100644 sqlite/turndb diff --git a/Makefile.in b/Makefile.in index 60868365..7233ec47 100755 --- a/Makefile.in +++ b/Makefile.in @@ -104,7 +104,7 @@ distclean: clean install: all ${MAKE_DEPS} ${MKDIR} ${DESTDIR}${PREFIX} ${MKDIR} ${DESTDIR}${BINDIR} - ${MKDIR} ${DESTDIR}${LOCALSTATEDIR} + ${MKDIR} ${DESTDIR}${LOCALSTATEDIR}/db ${MKDIR} ${DESTDIR}${MANPREFIX}/man/man1 ${MKDIR} ${DESTDIR}${CONFDIR} ${MKDIR} ${DESTDIR}${LIBDIR} @@ -148,12 +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 + ${SQLITECMD} ${DESTDIR}${LOCALSTATEDIR}/db/turndb < turndb/schema.sql ${MORECMD} ${DESTDIR}${DOCSDIR}/postinstall.txt deinstall: ${MAKE_DEPS} ${PKILL_PROGRAM} turnserver || ${ECHO_CMD} OK - ${RMCMD} ${DESTDIR}${LOCALSTATEDIR}/turndb + ${RMCMD} ${DESTDIR}${LOCALSTATEDIR}/db/turndb ${RMCMD} ${DESTDIR}${DOCSDIR} ${RMCMD} ${DESTDIR}${SCHEMADIR} ${RMCMD} ${DESTDIR}${BINDIR}/turnserver diff --git a/README.turnadmin b/README.turnadmin index 269dfbbb..97012343 100644 --- a/README.turnadmin +++ b/README.turnadmin @@ -80,7 +80,8 @@ Commands: Options with required values: --b, --db, --userdb SQLite user database file name (default - /var/turndb). +-b, --db, --userdb SQLite user database file name (default - /var/db/turndb or + /usr/local/var/db/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 +171,8 @@ to see the man page. /etc/turnserver.conf -/var/turndb +/var/db/turndb +/usr/local/var/db/turndb /usr/local/etc/turnserver.conf diff --git a/README.turnserver b/README.turnserver index 6bda58dd..fc38c045 100644 --- a/README.turnserver +++ b/README.turnserver @@ -81,7 +81,8 @@ Config file settings: User database settings: --b, --db, --userdb SQLite user database file name (default - /var/turndb). +-b, --db, --userdb SQLite user database file name (default - /var/db/turndb or + /usr/local/var/db/turndb). -e, --psql-userdb User database connection string for PostgreSQL. This database can be used for long-term and short-term @@ -716,7 +717,8 @@ 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/turndb. +2) Users can be stored in SQLite DB. The default SQLite database file is /var/db/turndb +or /usr/local/var/db/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 +843,8 @@ FILES /etc/turnserver.conf -/var/turndb +/var/db/turndb +/usr/local/var/db/turndb /usr/local/etc/turnserver.conf diff --git a/README.turnutils b/README.turnutils index 42f9359a..7b93fe8e 100644 --- a/README.turnutils +++ b/README.turnutils @@ -251,7 +251,8 @@ FILES /etc/turnserver.conf -/var/turndb +/var/db/turndb +/usr/local/var/db/turndb /usr/local/etc/turnserver.conf diff --git a/configure b/configure index b1ddc0d1..953e3af9 100755 --- a/configure +++ b/configure @@ -445,7 +445,13 @@ fi if [ -z "${LOCALSTATEDIR}" ] ; then if [ -z "${localstatedir}" ] ; then - LOCALSTATEDIR=/var + + if [ "${PREFIX}" = "/usr" ] ; then + LOCALSTATEDIR=/var + else + LOCALSTATEDIR=${PREFIX}/var + fi + else LOCALSTATEDIR=${localstatedir} fi @@ -1176,7 +1182,7 @@ fi # So, what we have now: ############################### -OSCFLAGS="${OSCFLAGS} ${TURN_NO_THREAD_BARRIERS} ${TURN_NO_DTLS} ${TURN_NO_GCM} ${TURN_NO_TLS} -DINSTALL_PREFIX=${PREFIX}" +OSCFLAGS="${OSCFLAGS} ${TURN_NO_THREAD_BARRIERS} ${TURN_NO_DTLS} ${TURN_NO_GCM} ${TURN_NO_TLS} -DINSTALL_PREFIX=${PREFIX} -DTURNDB=${LOCALSTATEDIR}/db/turndb" if ! [ -z "${TURN_ACCEPT_RPATH}" ] ; then if [ -z "${TURN_DISABLE_RPATH}" ] ; then @@ -1185,7 +1191,7 @@ if ! [ -z "${TURN_ACCEPT_RPATH}" ] ; then fi fi -${ECHO_CMD} PREFIX="${PREFIX}" OSLIBS="${OSLIBS}" DBLIBS="${DBLIBS}" OSCFLAGS="${OSCFLAGS}" DBCFLAGS="${DBCFLAGS}" $@ +${ECHO_CMD} PREFIX="${PREFIX}" LOCALSTATEDIR="${LOCALSTATEDIR}" OSLIBS="${OSLIBS}" DBLIBS="${DBLIBS}" OSCFLAGS="${OSCFLAGS}" DBCFLAGS="${DBCFLAGS}" $@ ############################### # Make make: diff --git a/examples/etc/turnserver.conf b/examples/etc/turnserver.conf index 90c0d60c..9067758f 100644 --- a/examples/etc/turnserver.conf +++ b/examples/etc/turnserver.conf @@ -250,9 +250,9 @@ # SQLite database file name. # -# Default file name is /var/turndb. +# Default file name is /var/db/turndb or /usr/local/var/db/turndb. # -#userdb=/var/turndb +#userdb=/var/db/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 a574cc00..c160af38 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/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/db/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 f2a47720..c4fa65e1 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/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/db/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 cd757393..4cbfb0ed 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/turndb" means that SQLite database "var/turndb" will be used. +# 5) --db="var/db/turndb" means that SQLite database "var/db/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/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/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 $@ diff --git a/man/man1/turnadmin.1 b/man/man1/turnadmin.1 index 04a17b64..589a90df 100644 --- a/man/man1/turnadmin.1 +++ b/man/man1/turnadmin.1 @@ -132,7 +132,8 @@ Options with required values: .TP .B \fB\-b\fP, \fB\-\-db\fP, \fB\-\-userdb\fP -SQLite user database file name (default \- /var/turndb). +SQLite user database file name (default \- /var/db/turndb or +/usr/local/var/db/turndb). See the same option in the \fIturnserver\fP section. .TP .B @@ -261,7 +262,8 @@ to see the man page. /etc/turnserver.conf .PP -/var/turndb +/var/db/turndb +/usr/local/var/db/turndb .PP /usr/local/etc/turnserver.conf .PP diff --git a/man/man1/turnserver.1 b/man/man1/turnserver.1 index 39b3bf2b..8095505d 100644 --- a/man/man1/turnserver.1 +++ b/man/man1/turnserver.1 @@ -132,7 +132,8 @@ User database settings: .TP .B \fB\-b\fP, \fB\-\-db\fP, \fB\-\-userdb\fP -SQLite user database file name (default \- /var/turndb). +SQLite user database file name (default \- /var/db/turndb or +/usr/local/var/db/turndb). .TP .B \fB\-e\fP, \fB\-\-psql\-userdb\fP @@ -971,7 +972,8 @@ 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/turndb. +Users can be stored in SQLite DB. The default SQLite database file is /var/db/turndb +or /usr/local/var/db/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 +1098,8 @@ it would affect the performance. /etc/turnserver.conf .PP -/var/turndb +/var/db/turndb +/usr/local/var/db/turndb .PP /usr/local/etc/turnserver.conf .PP diff --git a/man/man1/turnutils.1 b/man/man1/turnutils.1 index 979f6d58..1007c87e 100644 --- a/man/man1/turnutils.1 +++ b/man/man1/turnutils.1 @@ -374,7 +374,8 @@ to see the man page. /etc/turnserver.conf .PP -/var/turndb +/var/db/turndb +/usr/local/var/db/turndb .PP /usr/local/etc/turnserver.conf .PP diff --git a/postinstall.txt b/postinstall.txt index ffd9f3ff..0dbc55dc 100644 --- a/postinstall.txt +++ b/postinstall.txt @@ -16,7 +16,8 @@ service, you have to: /usr/local/share/turnserver/schema.stats.redis as Redis status & statistics database schema description. - If you are using SQLite, the default database location is in /var/turndb. + If you are using SQLite, the default database location is in + /var/db/turndb or in /usr/local/var/db/turndb. c) add whatever is necessary to enable start-up daemon for the /usr/local/bin/turnserver. diff --git a/sqlite/turndb b/sqlite/turndb new file mode 100644 index 0000000000000000000000000000000000000000..45de984f9f0db6ab8e026b6297aeafb044ea24cc GIT binary patch literal 20480 zcmeI2?`zXQ7{_zTmaNt3`~eXJcQU3e+nAkJ1re-LR5sDgi429~wqDoJw5dtz+$+gI zeCt2ppX6Kr0AKnC_{KNhrCFM!>l_tBC{Ll={mk=xKhIqrw!4?>Ylh2k-LhNM#W$r1 z2_fkL#*!pW@$W_cJ^YCJ#9@X1Mv?Nc;*_-XR1SCVs|tbqc1z1P}lM*&vV?ZbY+sHrxU)fB+CkfdJ(H6d;2MAdpc4kpD9p7;p;+ zq(A`je+rPn1Q5t50m%Ou4Gg#i1X3UX`9B57U;+qalmO)aj0OhW0s<)zfc&2VWH12) zGD-mQe?|iXZUKQ52#EZzNk1j&C;E!M%dh1x%DnP61;eSE@NOVYpPxqub1vOBncKD7 zU5D8YG2LicezZ}oY*z7R<>6WtM|*G~kNL-D)NJAR)ZS@OyHGBz6mgB!Y1ee|_3MlN zkTz|x*oa*|nHl z?)k*YJa^ov=Z-t+ouAb7xjE!DL)VGJc5LQ*9u(C9$Ab>;ckTr7c~8x5GC;YGZM3Mp zk41!nF!+zV2Q*H3wuPicC& zjJ&P>rnYQj*Ju;hBL0RIuP>5lI}=lS)Ci%sH!1f1;j4b|Es)#_y?J~KJU*@JZ_2}@ z9c4Dy<_UMtdZlSiUtUHB=lU{zKZwtKp+7Kj6eYX{vQDvOaTI8LID2%KPG_$89-nJ0+9blfCf{5z?cw# z{68jv1Q|eJ1Okx%M}P)XfWVj#5cyw`FG=zx`Hk{zOhkcHv%}Laal9S7 zd69FC7IR$M>fmj0w&;evH~6ubY1Ek*fO!YoWp=Ey(X7=;gE|dT@3wbB6Sr?AEKrB= u3nSFr{o9b^9rZ~Z|CE4LXlGDu?7jl$#SimJGpb&l9Tv0@Fe!z_3x5EY9Hxo@ literal 0 HcmV?d00001 diff --git a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c index 79881b2f..5b40bb52 100644 --- a/src/apps/relay/mainrelay.c +++ b/src/apps/relay/mainrelay.c @@ -36,6 +36,30 @@ static int use_lt_credentials = 0; static int use_st_credentials = 0; static int anon_credentials = 0; +////// TURNDB ////////////// + +#if defined(TURNDB) + +#if defined(Q) +#undef Q +#endif + +#define Q(x) #x + +#if defined(QUOTE) +#undef QUOTE +#endif + +#define QUOTE(x) Q(x) + +#define DEFAULT_USERDB_FILE QUOTE(TURNDB) + +#else + +#define DEFAULT_USERDB_FILE "/usr/local/var/db/turndb" + +#endif + //////TURN PARAMS STRUCTURE DEFINITION ////// #define DEFAULT_GENERAL_RELAY_SERVERS_NUMBER (1) @@ -413,7 +437,8 @@ 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/turndb).\n" +" -b, , --db, --userdb SQLite database file name; default - /var/db/turndb or\n" +" /usr/local/var/db/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 +612,8 @@ 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/turndb.\n" + " -b, --db, --userdb SQLite database file, default value is /var/db/turndb or\n" + " /usr/local/var/db/turndb.\n" #endif #if !defined(TURN_NO_PQ) " -e, --psql-userdb, --sql-userdb PostgreSQL user database connection string, if PostgreSQL DB is used.\n" @@ -1602,7 +1628,7 @@ static void print_features(unsigned long mfn) #endif #if !defined(TURN_NO_SQLITE) - TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "SQLite supported\n"); + TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "SQLite supported, default database location is %s\n",DEFAULT_USERDB_FILE); #else TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "SQLite is not supported\n"); #endif diff --git a/src/apps/relay/userdb.h b/src/apps/relay/userdb.h index d25164a1..41d37915 100644 --- a/src/apps/relay/userdb.h +++ b/src/apps/relay/userdb.h @@ -48,8 +48,6 @@ extern "C" { //////////// Defines ////////////////////////////// -#define DEFAULT_USERDB_FILE ("/var/turndb") - #define AUTH_SECRET_SIZE (512) //////////// REALM //////////////