Index: head/net/turnserver/Makefile =================================================================== --- head/net/turnserver/Makefile (revision 386692) +++ head/net/turnserver/Makefile (revision 386693) @@ -1,157 +1,178 @@ # $FreeBSD$ PORTNAME= turnserver -PORTVERSION= 3.2.5.7 +PORTVERSION= 4.4.4.2 CATEGORIES= net MASTER_SITES= http://turnserver.open-sys.org/downloads/v${PORTVERSION}/:prog \ http://turnserver.open-sys.org/downloads/extradocs/:xdocs \ http://coturn.net/turnserver/v${PORTVERSION}/:prog \ http://coturn.net/turnserver/extradocs/:xdocs PKGNAMEPREFIX= DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:prog \ turn.extra.docs-2.0.0.1.tar.gz:xdocs MAINTAINER= mom040267@gmail.com COMMENT= STUN/TURN Server; IPv6, DTLS support; RFCs 5389, 5766, 6062, 6156 LICENSE= BSD3CLAUSE LIB_DEPENDS= libevent.so:${PORTSDIR}/devel/libevent2 CONFLICTS= libevent-1.* SUB_FILES= pkg-message -MANPAGES= turnserver.1 turnadmin.1 turnutils.1 turnutils_peer.1 turnutils_stunclient.1 turnutils_uclient.1 rfc5766-turn-server.1 +MANPAGES= turnserver.1 turnadmin.1 turnutils.1 turnutils_peer.1 turnutils_stunclient.1 turnutils_uclient.1 coturn.1 USE_OPENSSL= YES USE_RC_SUBR= turnserver HAS_CONFIGURE= YES -OPTIONS_DEFINE= MYSQL PGSQL REDIS DOCS EXAMPLES +OPTIONS_DEFINE= DOCS EXAMPLES MYSQL PGSQL REDIS SQLITE SHEBANG_FILES= examples/scripts/restapi/shared_secret_maintainer.pl USES= perl5 shebangfix -MYSQL_DESC= MySQL support for users database -PGSQL_DESC= PostgreSQL support for users database +MYSQL_DESC= MySQL database support +PGSQL_DESC= PostgreSQL database support REDIS_DESC= Redis support for user database and for status and statistics reporting +SQLITE_DESC= SQLite database support -OPTIONS_DEFAULT= MYSQL PGSQL REDIS +OPTIONS_DEFAULT= MYSQL PGSQL REDIS SQLITE -DOCS= html TURNServerRESTAPI.pdf TurnNetworks.pdf +OPTIONS_SUB= yes + +DOCS= html TurnNetworks.pdf PORTREADMEDOCS= LICENSE README.turnserver README.turnadmin README.turnutils INSTALL -PORTDOCS= ${DOCS} ${PORTREADMEDOCS} postinstall.txt schema.sql \ +PORTDOCS= ${DOCS} ${PORTREADMEDOCS} postinstall.txt schema.sql schema.mongo.sh \ schema.userdb.redis schema.stats.redis _BIN_UTILS= peer stunclient uclient -_ETC_EXAMPLES= turnserver.conf turnuserdb.conf turn_client_cert.pem \ +_ETC_EXAMPLES= turnserver.conf turn_client_cert.pem \ turn_client_pkey.pem turn_server_cert.pem turn_server_pkey.pem _SCRIPT_EXAMPLES= peer.sh \ basic/relay.sh basic/dos_attack.sh \ basic/tcp_client_c2c_tcp_relay.sh basic/udp_c2c_client.sh \ basic/udp_client.sh basic/tcp_client.sh \ loadbalance/master_relay.sh loadbalance/slave_relay_1.sh loadbalance/slave_relay_2.sh \ loadbalance/udp_c2c.sh loadbalance/tcp_c2c_tcp_relay.sh \ longtermsecure/secure_dtls_client.sh longtermsecure/secure_relay.sh \ longtermsecure/secure_tls_client_cert.sh longtermsecure/secure_dtls_client_cert.sh \ longtermsecure/secure_relay_cert.sh \ longtermsecure/secure_tcp_client_c2c_tcp_relay.sh longtermsecure/secure_tcp_client.sh \ longtermsecure/secure_tls_client_c2c_tcp_relay.sh longtermsecure/secure_tls_client.sh \ longtermsecure/secure_udp_c2c.sh longtermsecure/secure_udp_client.sh \ - longtermsecure/secure_dos_attack.sh longtermsecure/secure_udp_client.sh \ - longtermsecuredb/secure_relay_with_db_psql.sh longtermsecuredb/secure_relay_with_db_mysql.sh \ + longtermsecure/secure_sctp_client.sh \ + longtermsecure/secure_dos_attack.sh \ + longtermsecuredb/secure_relay_with_db_psql.sh \ + longtermsecuredb/secure_relay_with_db_mysql.sh \ longtermsecuredb/secure_relay_with_db_mysql_ssl.sh \ + longtermsecuredb/secure_relay_with_db_mongo.sh \ longtermsecuredb/secure_relay_with_db_redis.sh \ - restapi/secure_relay_secret.sh restapi/secure_relay_secret_with_db_mysql.sh \ - restapi/secure_relay_secret.sh restapi/secure_relay_secret_with_db_redis.sh \ + longtermsecuredb/secure_relay_with_db_sqlite.sh \ + restapi/secure_relay_secret.sh \ + restapi/secure_relay_secret_with_db_mysql.sh \ + restapi/secure_relay_secret_with_db_psql.sh \ + restapi/secure_relay_secret_with_db_redis.sh \ + restapi/secure_relay_secret_with_db_mongo.sh \ + restapi/secure_relay_secret_with_db_sqlite.sh \ restapi/secure_udp_client_with_secret.sh \ restapi/secure_relay_secret_with_db_psql.sh \ restapi/shared_secret_maintainer.pl \ - shorttermsecure/secure_tcp_client_c2c_tcp_relay_short_term.sh \ - shorttermsecure/secure_udp_client_short_term.sh \ - shorttermsecure/secure_relay_short_term_mech.sh \ selfloadbalance/secure_dos_attack.sh \ selfloadbalance/secure_relay.sh CONFIGURE_ENV+= PTHREAD_LIBS=-pthread TURN_DISABLE_RPATH=1 +# MongoDB support is disabled until devel/mongo-c-driver is updated +CONFIGURE_ENG+= TURN_NO_MONGO=1 .include +.if ${PORT_OPTIONS:MSQLITE} +USE_SQLITE= yes +.else +CONFIGURE_ENV+= TURN_NO_SQLITE=1 +.endif + .if ${PORT_OPTIONS:MPGSQL} USES+= pgsql .else CONFIGURE_ENV+= TURN_NO_PQ=1 .endif .if ${PORT_OPTIONS:MMYSQL} USE_MYSQL= yes .else CONFIGURE_ENV+= TURN_NO_MYSQL=1 .endif .if ${PORT_OPTIONS:MREDIS} LIB_DEPENDS+= libhiredis.so:${PORTSDIR}/databases/hiredis .else CONFIGURE_ENV+= TURN_NO_HIREDIS=1 .endif do-install: ${INSTALL_PROGRAM} ${WRKSRC}/bin/turnserver ${STAGEDIR}${PREFIX}/bin/turnserver ${INSTALL_PROGRAM} ${WRKSRC}/bin/turnadmin ${STAGEDIR}${PREFIX}/bin/turnadmin .for f in ${_BIN_UTILS} ${INSTALL_PROGRAM} ${WRKSRC}/bin/turnutils_${f} ${STAGEDIR}${PREFIX}/bin/ .endfor .for f in ${MANPAGES} ${INSTALL_MAN} ${WRKSRC}/man/man1/${f} ${STAGEDIR}${PREFIX}/man/man1/${f} .endfor + ${MKDIR} ${STAGEDIR}${PREFIX}/var/db +.if ${PORT_OPTIONS:MSQLITE} + ${INSTALL_DATA} ${WRKSRC}/sqlite/turndb ${STAGEDIR}${PREFIX}/var/db/turndb +.endif ${MKDIR} ${STAGEDIR}${DATADIR}/ ${INSTALL_DATA} ${WRKSRC}/turndb/schema.sql ${STAGEDIR}${DATADIR}/schema.sql ${INSTALL_DATA} ${WRKSRC}/turndb/schema.userdb.redis ${STAGEDIR}${DATADIR}/schema.userdb.redis ${INSTALL_DATA} ${WRKSRC}/turndb/schema.stats.redis ${STAGEDIR}${DATADIR}/schema.stats.redis ${INSTALL_SCRIPT} ${WRKSRC}/turndb/testredisdbsetup.sh ${STAGEDIR}${DATADIR}/testredisdbsetup.sh + ${INSTALL_SCRIPT} ${WRKSRC}/turndb/schema.mongo.sh ${STAGEDIR}${DATADIR}/schema.mongo.sh + ${INSTALL_SCRIPT} ${WRKSRC}/turndb/testmongosetup.sh ${STAGEDIR}${DATADIR}/testmongosetup.sh ${INSTALL_DATA} ${WRKSRC}/lib/libturnclient.a ${STAGEDIR}${PREFIX}/lib/libturnclient.a ${INSTALL_DATA} ${WRKSRC}/examples/etc/turnserver.conf ${STAGEDIR}${PREFIX}/etc/turnserver.conf.default - ${INSTALL_DATA} ${WRKSRC}/examples/etc/turnuserdb.conf ${STAGEDIR}${PREFIX}/etc/turnuserdb.conf.default ${MKDIR} ${STAGEDIR}${PREFIX}/include/turn (cd ${WRKSRC}/include/turn/ && ${COPYTREE_SHARE} client ${STAGEDIR}${PREFIX}/include/turn/) (cd ${WRKSRC}/include/turn/ && ${COPYTREE_SHARE} ns_turn_defs.h ${STAGEDIR}${PREFIX}/include/turn/) .if ${PORT_OPTIONS:MEXAMPLES} ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/scripts ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/scripts/basic ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/scripts/loadbalance ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/scripts/longtermsecure ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/scripts/longtermsecuredb ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/scripts/restapi - ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/scripts/shorttermsecure ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/scripts/selfloadbalance ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/etc ${INSTALL_MAN} ${WRKSRC}/examples/scripts/readme.txt ${STAGEDIR}${EXAMPLESDIR}/scripts .for f in ${_ETC_EXAMPLES} ${INSTALL_DATA} ${WRKSRC}/examples/etc/${f} ${STAGEDIR}${EXAMPLESDIR}/etc/ .endfor .for f in ${_SCRIPT_EXAMPLES} ${INSTALL_SCRIPT} ${WRKSRC}/examples/scripts/${f} ${STAGEDIR}${EXAMPLESDIR}/scripts/${f} .endfor .endif .if ${PORT_OPTIONS:MDOCS} ${MKDIR} ${STAGEDIR}${DOCSDIR} .for f in ${DOCS} (cd ${WRKSRC}/../turndocs/docs/ && ${COPYTREE_SHARE} ${f} ${STAGEDIR}${DOCSDIR}) .endfor .for f in ${PORTREADMEDOCS} ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR} .endfor ${INSTALL_DATA} ${PKGMESSAGE} ${STAGEDIR}${DOCSDIR}/postinstall.txt ${INSTALL_DATA} ${WRKSRC}/turndb/schema.sql ${STAGEDIR}${DOCSDIR}/schema.sql + ${INSTALL_DATA} ${WRKSRC}/turndb/schema.mongo.sh ${STAGEDIR}${DOCSDIR}/schema.mongo.sh ${INSTALL_DATA} ${WRKSRC}/turndb/schema.userdb.redis ${STAGEDIR}${DOCSDIR}/schema.userdb.redis ${INSTALL_DATA} ${WRKSRC}/turndb/schema.stats.redis ${STAGEDIR}${DOCSDIR}/schema.stats.redis .endif regression-test: build @(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} test) .include Index: head/net/turnserver/distinfo =================================================================== --- head/net/turnserver/distinfo (revision 386692) +++ head/net/turnserver/distinfo (revision 386693) @@ -1,4 +1,4 @@ -SHA256 (turnserver-3.2.5.7.tar.gz) = 57fd8041af9411a7fb7ccbbd066f4a40de2afbcd7c72a1b41268da7eab0fb740 -SIZE (turnserver-3.2.5.7.tar.gz) = 310064 +SHA256 (turnserver-4.4.4.2.tar.gz) = 1e1b72248fd518270ad53c0df1d62494f972130d6ea0be07432f2f26874546ac +SIZE (turnserver-4.4.4.2.tar.gz) = 385579 SHA256 (turn.extra.docs-2.0.0.1.tar.gz) = 3a86600fd0a30ce7aeb547e80402ce68ea9959f7dd58697e5b47fda6e33ab9ce SIZE (turn.extra.docs-2.0.0.1.tar.gz) = 485379 Index: head/net/turnserver/files/pkg-message.in =================================================================== --- head/net/turnserver/files/pkg-message.in (revision 386692) +++ head/net/turnserver/files/pkg-message.in (revision 386693) @@ -1,40 +1,41 @@ ================================================================== 1) You can start and stop the turnserver manually. But, if you want to enable turnserver as an automatically started system service, you have to: a) Create and edit %%PREFIX%%/etc/turnserver.conf file. Use %%PREFIX%%/etc/turnserver.conf.default as an example. - b) For user accounts settings, if using the turnserver - with authentication: create and edit %%PREFIX%%/etc/turnuserdb.conf - file, or set up PostgreSQL or MySQL or Redis database for user accounts. - Use %%PREFIX%%/etc/turnuserdb.conf.default as example for flat file DB, - or use %%DATADIR%%/schema.sql as database schema, - or use %%DATADIR%%/schema*redis as Redis - database description. + b) For user accounts settings: set up SQLite or PostgreSQL or + MySQL or Redis database for user accounts. + Use %%DATADIR%%/schema.sql as an SQL database schema, + or use %%DATADIR%%/schema*redis as Redis database description. + + If SQLite is used, then %%PREFIX%%/var/db/turndb is the default database + location. d) add line turnserver_enable="YES" to /etc/rc.conf. e) If you are using a non-default PREFIX (other than /usr/local), then edit /usr/local/etc/rc.d/turnserver file, according to your system settings. f) Restart the system or run the command: $ %%PREFIX%%/etc/rc.d/turnserver start 2) If you do not want the turnserver to be a system service, then you can start/stop it "manually", using the "turnserver" executable with appropriate options (see the documentation). 3) To create database schema, use schema in file %%DATADIR%%/schema.sql. +The TURN Server supports (optionally) SQLite, MySQL, PostgreSQL, Redis. 4) For additional information, run: $ man turnserver $ man turnadmin $ man turnutils ================================================================== Index: head/net/turnserver/pkg-descr =================================================================== --- head/net/turnserver/pkg-descr (revision 386692) +++ head/net/turnserver/pkg-descr (revision 386693) @@ -1,4 +1,4 @@ -This a BSD-licensed version of the RFC5766 TURN Server implementation, +This a BSD-licensed version of the Coturn TURN Server implementation, with IPv6 and DTLS extensions. -WWW: http://code.google.com/p/rfc5766-turn-server/ +WWW: http://code.google.com/p/coturn/ Index: head/net/turnserver/pkg-plist =================================================================== --- head/net/turnserver/pkg-plist (revision 386692) +++ head/net/turnserver/pkg-plist (revision 386693) @@ -1,71 +1,75 @@ bin/turnserver bin/turnadmin bin/turnutils_peer bin/turnutils_stunclient bin/turnutils_uclient lib/libturnclient.a +%%SQLITE%%var/db/turndb etc/turnserver.conf.default -etc/turnuserdb.conf.default man/man1/turnserver.1.gz man/man1/turnadmin.1.gz man/man1/turnutils.1.gz man/man1/turnutils_peer.1.gz man/man1/turnutils_stunclient.1.gz man/man1/turnutils_uclient.1.gz -man/man1/rfc5766-turn-server.1.gz +man/man1/coturn.1.gz %%DATADIR%%/schema.sql %%DATADIR%%/schema.userdb.redis %%DATADIR%%/schema.stats.redis +%%DATADIR%%/schema.mongo.sh %%DATADIR%%/testredisdbsetup.sh +%%DATADIR%%/testmongosetup.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/etc/turnserver.conf -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/etc/turnuserdb.conf %%PORTEXAMPLES%%%%EXAMPLESDIR%%/etc/turn_client_cert.pem %%PORTEXAMPLES%%%%EXAMPLESDIR%%/etc/turn_client_pkey.pem %%PORTEXAMPLES%%%%EXAMPLESDIR%%/etc/turn_server_cert.pem %%PORTEXAMPLES%%%%EXAMPLESDIR%%/etc/turn_server_pkey.pem %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/readme.txt %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/peer.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/basic/relay.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/basic/dos_attack.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/basic/tcp_client_c2c_tcp_relay.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/basic/udp_c2c_client.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/basic/udp_client.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/basic/tcp_client.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/loadbalance/master_relay.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/loadbalance/slave_relay_1.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/loadbalance/slave_relay_2.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/loadbalance/udp_c2c.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/loadbalance/tcp_c2c_tcp_relay.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_dtls_client.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_dtls_client_cert.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_tls_client_cert.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_relay.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_relay_cert.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_tcp_client_c2c_tcp_relay.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_tcp_client.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_tls_client_c2c_tcp_relay.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_tls_client.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_udp_c2c.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_udp_client.sh +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_sctp_client.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecure/secure_dos_attack.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecuredb/secure_relay_with_db_psql.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecuredb/secure_relay_with_db_mysql.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecuredb/secure_relay_with_db_mysql_ssl.sh +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecuredb/secure_relay_with_db_mongo.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecuredb/secure_relay_with_db_redis.sh +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/longtermsecuredb/secure_relay_with_db_sqlite.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/restapi/secure_relay_secret.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/restapi/secure_relay_secret_with_db_mysql.sh +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/restapi/secure_relay_secret_with_db_mongo.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/restapi/secure_relay_secret_with_db_psql.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/restapi/secure_relay_secret_with_db_redis.sh +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/restapi/secure_relay_secret_with_db_sqlite.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/restapi/secure_udp_client_with_secret.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/restapi/shared_secret_maintainer.pl -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/shorttermsecure/secure_tcp_client_c2c_tcp_relay_short_term.sh -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/shorttermsecure/secure_udp_client_short_term.sh -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/shorttermsecure/secure_relay_short_term_mech.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/selfloadbalance/secure_dos_attack.sh %%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripts/selfloadbalance/secure_relay.sh include/turn/ns_turn_defs.h include/turn/client/TurnMsgLib.h include/turn/client/ns_turn_ioaddr.h include/turn/client/ns_turn_msg.h include/turn/client/ns_turn_msg_addr.h include/turn/client/ns_turn_msg_defs.h +include/turn/client/ns_turn_msg_defs_new.h