소스 검색

working on sqlite

mom040267 11 년 전
부모
커밋
68f28329fc

+ 3 - 3
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

+ 4 - 2
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
 

+ 6 - 3
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
 

+ 2 - 1
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
 

+ 9 - 3
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:

+ 2 - 2
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.

+ 1 - 1
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 $@ 
 

+ 1 - 1
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 $@

+ 2 - 2
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 $@

+ 4 - 2
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

+ 6 - 3
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

+ 2 - 1
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

+ 2 - 1
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.

BIN
sqlite/turndb


+ 29 - 3
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				<filename>	Configuration file name (default - turnserver.conf).\n"
 #if !defined(TURN_NO_SQLITE)
-" -b, , --db, --userdb	<filename>		SQLite database file name (default - /var/turndb).\n"
+" -b, , --db, --userdb	<filename>		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 <conn-string>	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

+ 0 - 2
src/apps/relay/userdb.h

@@ -48,8 +48,6 @@ extern "C" {
 
 //////////// Defines //////////////////////////////
 
-#define DEFAULT_USERDB_FILE ("/var/turndb")
-
 #define AUTH_SECRET_SIZE (512)
 
 //////////// REALM //////////////