diff --git a/isdnlog/.Config.in b/isdnlog/.Config.in index c3e96424..41c11291 100644 --- a/isdnlog/.Config.in +++ b/isdnlog/.Config.in @@ -13,6 +13,10 @@ bool 'Support postgres95 SQL-Database' CONFIG_ISDNLOG_POSTGRES if [ "$CONFIG_ISDNLOG_POSTGRES" = "y" ]; then string 'directory of postgres95' CONFIG_ISDNLOG_POSTGRESDIR fi +bool 'Support mysql SQL-Database' CONFIG_ISDNLOG_MYSQLDB +if [ "$CONFIG_ISDNLOG_MYSQLDB" = "y" ]; then + string 'directory of mysql' CONFIG_ISDNLOG_MYSQLDIR +fi choice 'Country specific chargeinfo support' \ "DE CONFIG_ISDNLOG_DE \ NL CONFIG_ISDNLOG_NL \ diff --git a/isdnlog/Makefile.in b/isdnlog/Makefile.in index 26c30a55..210d3349 100644 --- a/isdnlog/Makefile.in +++ b/isdnlog/Makefile.in @@ -19,6 +19,9 @@ ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ## ## $Log$ +## Revision 1.36 1998/03/29 19:54:04 luethje +## idnrep: added html feature (incoming/outgoing calls) +## ## Revision 1.35 1998/03/15 22:35:44 tsbogend ## not every CPU is from Intel (greetings from Digital :-)) ## @@ -207,7 +210,9 @@ LIBAREA := @LIBAREA@ RUNDIR := @RUNDIR@ DBMLIB := @DBMLIB@ POSTGRES := @POSTGRES@ -POSTGRESDIR := @POSTGRESDIR@ +POSTGRESDIR := @POSTGRESDIR@ +MYSQLDB := @MYSQLDB@ +MYSQLDIR := @MYSQLDIR@ SERV_PORT := @SERV_PORT@ USERFILE := @USERFILE@ DEFS := @@ -259,7 +264,7 @@ SERVICEFILE = /etc/services # DON'T EDIT BELOW THIS LINE ###################################################################### -VERSION = 2.99.26 +VERSION = 2.99.27 ifeq ($(POSTGRES),1) DEFS += -DPOSTGRES @@ -267,6 +272,12 @@ INCLUDE += -I$(POSTGRESDIR)/include LIB += -L$(POSTGRESDIR)/lib -lpq endif +ifeq ($(MYSQLDB),1) +DEFS += -DMYSQLDB +INCLUDE += -I$(MYSQLDIR)/include +LIB += -L$(MYSQLDIR)/lib -lmysqlclient -lm +endif + ifdef DBMALLOC DEFS += -DDBMALLOC=1 LIB += -ldbmalloc @@ -291,6 +302,10 @@ ifeq ($(POSTGRES),1) ISDNLOG_OBJS += isdnlog/postgres.o endif +ifeq ($(MYSQLDB),1) +ISDNLOG_OBJS += isdnlog/mysqldb.o +endif + ifdef TESTCENTER ISDNLOG_OBJS += isdnlog/test_center.o endif diff --git a/isdnlog/README b/isdnlog/README index a6b43fb1..be2016c8 100644 --- a/isdnlog/README +++ b/isdnlog/README @@ -108,6 +108,8 @@ Inhalt: 14.4 BYTEMAX 15. Dual-Mode 16. SQL-Anbindung +16.1. Postgres95 +16.2. MySQL 17. Probleme? 18. Verwendete Dateien 19. Verwendete Environment-Variablen @@ -3583,6 +3585,9 @@ Abschliessend muss isdnlog mit der weiteren Option "-2" gestartet werden. 16. SQL-Anbindung ----------------- +16.1. Postgres +-------------- + Wird isdnlog mit "POSTGRES=1" erstellt, traegt isdnlog alle Verbindungsinformationen zusaetzlich in eine Postgres95 SQL-Datenbank ein. (Datenbank "isdn", Tabelle "isdn2") @@ -3632,6 +3637,68 @@ sowie $PGPORT auch ein postmaster auf einem anderen Host angesprochen werden. +16.2. MySQL +----------- + +Wenn im Konfigurationmenue mysql ausgewaehlt wird, werden alle +Verbindungsdaten zusaetzlich zur Datei isdn.log in eine Tabelle in der +Datenbank geschrieben. + +Der Name der Datenbank, die Tabelle, der SQL-Host, der Username und +das Passwort werden in der Datei ./isdnlog/mysqldb.h definiert. +Standardmaessig enthalten sie folgende Werte. + +DB_HOST = localhost +DB_NAME = isdn +DB_USER = isdn +DB_PASSWD = isdn +DB_TABLE = isdnlog + +Zur Erstellung der Datenbank sind folgende Schritte notwendig. + +# mysqladmin create isdn +# mysql mysql < grants.txt (Inhalt wird spaeter erlaeutert) +# mysqladmin reload +# mysql isdn < table.txt (Inhalt wird spaeter erlaeutert) + +Inhalt der Datei grants.txt: + +-- + +INSERT INTO user VALUES ('localhost','isdn',password('isdn'),'N','N','N','N','N','N','N','N','N','N'); +INSERT INTO db VALUES ('localhost','isdn','isdn','N','Y','N','N','N','N'); + +-- + +Inhalt der Datei table.txt: + +-- + +CREATE TABLE isdnlog ( + sdate date NOT NULL, + stime time NOT NULL, + calling varchar(30) NOT NULL, + called varchar(30) NOT NULL, + charge int(4) NOT NULL, + dir char(1) NOT NULL, + in_bytes int(4) NOT NULL, + out_bytes int(4) NOT NULL, + msec int(4) NOT NULL, + sec int(4) NOT NULL, + status int(4) NOT NULL, + service int(4) NOT NULL, + source int(4) NOT NULL, + vrsion int(4) NOT NULL, + factor double(16,4) NOT NULL, + currency varchar(30) NOT NULL, + pay double(16,4) NOT NULL, + provider varchar(30) NOT NULL, + KEY (sdate,stime), + KEY (calling,called), + KEY (pay,provider) +); + +-- 17. Probleme? ------------- diff --git a/isdnlog/aclocal.m4 b/isdnlog/aclocal.m4 index 014f11fb..bba0adc3 100644 --- a/isdnlog/aclocal.m4 +++ b/isdnlog/aclocal.m4 @@ -56,6 +56,63 @@ AC_DEFUN(AC_CHECK_POSTGRES, [ AC_SUBST(POSTGRESDIR) ]) dnl +dnl Check for mysql +dnl + +AC_DEFUN(AC_CHECK_MYSQLDB, [ + MYSQLDIR="" + mydir="no" + tst_mysqldir="$CONFIG_ISDNLOG_MYSQLDIR" + + AC_ARG_WITH(mysql, + [ --with-mysql=DIR Set mysql directory []], + tst_mysqldir="${withval}") + + if test "$tst_mysqldir" != "" || test "$CONFIG_ISDNLOG_MYSQLDB" = "y" ; then + AC_MSG_CHECKING([for mysql in ${tst_mysqldir}]) + if test "${tst_mysqldir}" != "" ; then + AC_EGREP_HEADER(MYSQL,${tst_mysqldir}/include/mysql.h, + mydir=${tst_mysqldir}) + fi + if test "$mydir" = "no" ; then + AC_MSG_RESULT("$mydir") + AC_MSG_CHECKING([for mysql in /lib/mysql]) + AC_EGREP_HEADER(MYSQL,/lib/mysql/include/mysql.h, + mydir=/lib/mysql) + fi + if test "$mydir" = "no" ; then + AC_MSG_RESULT("$mydir") + AC_MSG_CHECKING([for mysql in /usr/lib/mysql]) + AC_EGREP_HEADER(MYSQL,/usr/lib/mysql/include/mysql.h, + mydir=/usr/lib/mysql) + fi + if test "$mydir" = "no" ; then + AC_MSG_RESULT("$mydir") + AC_MSG_CHECKING([for mysql in /usr/local/mysql]) + AC_EGREP_HEADER(MYSQL,/usr/local/postgre95/include/mysql.h, + mydir=/usr/local/mysql) + fi + if test "$mydir" = "no" ; then + AC_MSG_RESULT("$mydir") + AC_MSG_CHECKING([for mysql in /usr/local/lib/mysql]) + AC_EGREP_HEADER(MYSQL,/usr/local/lib/mysql/include/mysql.h, + mydir=/usr/local/lib/mysql) + fi + fi + if test "$mydir" != "no" ; then + AC_MSG_RESULT("yes") + MYSQLDB=1 + AC_DEFINE_UNQUOTED(MYSQLDB,1) + else + AC_MSG_RESULT("no MYSQL DISABLED") + mydir="" + fi + MYSQLDIR="$mydir" + AC_DEFINE_UNQUOTED(MYSQLDIR,"$mydir") + AC_SUBST(MYSQLDB) + AC_SUBST(MYSQLDIR) +]) +dnl dnl Try finding linux sourcetree dnl diff --git a/isdnlog/configure b/isdnlog/configure index 1cae8c2b..26cd0ee3 100755 --- a/isdnlog/configure +++ b/isdnlog/configure @@ -14,6 +14,8 @@ ac_default_prefix=/usr/local ac_default_prefix=/usr ac_help="$ac_help --with-postgres=DIR Set postgres directory []" +ac_help="$ac_help + --with-mysql=DIR Set mysql directory []" ac_help="$ac_help --with-kernel=DIR Set kernel source directory [/usr/src/linux]" ac_help="$ac_help @@ -560,6 +562,7 @@ AREACODE=${CONFIG_AREACODE:-""} AREAPREFIX=${CONFIG_AREA_PREFIX:-"0"} CONFIG_LIB_AREACODE=${CONFIG_LIB_AREACODE:-"y"} CONFIG_ISDNLOG_POSTGRESDIR=${CONFIG_ISDNLOG_POSTGRESDIR:-""} +CONFIG_ISDNLOG_MYSQLDIR=${CONFIG_ISDNLOG_MYSQLDIR:-""} CONFIG_KERNELDIR=${CONFIG_KERNELDIR:-"/usr/src/linux"} LIBISDNDIR="../lib" bindir=${CONFIG_BINDIR:-"/usr/bin"} @@ -584,6 +587,7 @@ AREACODE=`eval echo $AREACODE` AREAPREFIX=`eval echo $AREAPREFIX` CONFIG_LIB_AREACODE=`eval echo $CONFIG_LIB_AREACODE` CONFIG_ISDNLOG_POSTGRESDIR=`eval echo $CONFIG_ISDNLOG_POSTGRESDIR` +CONFIG_ISDNLOG_MYSQLDIR=`eval echo $CONFIG_ISDNLOG_MYSQLDIR` CONFIG_KERNELDIR=`eval echo $CONFIG_KERNELDIR` bindir=`eval echo $bindir` sbindir=`eval echo $sbindir` @@ -1151,7 +1155,7 @@ rm -f conftest* echo $ac_n "checking for postgres in /usr/local/lib/postgres95""... $ac_c" 1>&6 echo "configure:1153: checking for postgres in /usr/local/lib/postgres95" >&5 cat > conftest.$ac_ext < EOF @@ -1180,8 +1184,121 @@ EOF #define POSTGRESDIR "$pqdir" EOF - - + + + MYSQLDIR="" + mydir="no" + tst_mysqldir="$CONFIG_ISDNLOG_MYSQLDIR" + + # Check whether --with-mysql or --without-mysql was given. +if test "${with_mysql+set}" = set; then + withval="$with_mysql" + tst_mysqldir="${withval}" +fi + + + if test "$tst_mysqldir" != "" || test "$CONFIG_ISDNLOG_MYSQLDB" = "y" ; then + echo $ac_n "checking for mysql in ${tst_mysqldir}""... $ac_c" 1>&6 +echo "configure:1201: checking for mysql in ${tst_mysqldir}" >&5 + if test "${tst_mysqldir}" != "" ; then + cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "MYSQL" >/dev/null 2>&1; then + rm -rf conftest* + mydir=${tst_mysqldir} +fi +rm -f conftest* + + fi + if test "$mydir" = "no" ; then + echo "$ac_t"""$mydir"" 1>&6 + echo $ac_n "checking for mysql in /lib/mysql""... $ac_c" 1>&6 +echo "configure:1219: checking for mysql in /lib/mysql" >&5 + cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "MYSQL" >/dev/null 2>&1; then + rm -rf conftest* + mydir=/lib/mysql +fi +rm -f conftest* + + fi + if test "$mydir" = "no" ; then + echo "$ac_t"""$mydir"" 1>&6 + echo $ac_n "checking for mysql in /usr/lib/mysql""... $ac_c" 1>&6 +echo "configure:1236: checking for mysql in /usr/lib/mysql" >&5 + cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "MYSQL" >/dev/null 2>&1; then + rm -rf conftest* + mydir=/usr/lib/mysql +fi +rm -f conftest* + + fi + if test "$mydir" = "no" ; then + echo "$ac_t"""$mydir"" 1>&6 + echo $ac_n "checking for mysql in /usr/local/mysql""... $ac_c" 1>&6 +echo "configure:1253: checking for mysql in /usr/local/mysql" >&5 + cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "MYSQL" >/dev/null 2>&1; then + rm -rf conftest* + mydir=/usr/local/mysql +fi +rm -f conftest* + + fi + if test "$mydir" = "no" ; then + echo "$ac_t"""$mydir"" 1>&6 + echo $ac_n "checking for mysql in /usr/local/lib/mysql""... $ac_c" 1>&6 +echo "configure:1270: checking for mysql in /usr/local/lib/mysql" >&5 + cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "MYSQL" >/dev/null 2>&1; then + rm -rf conftest* + mydir=/usr/local/lib/mysql +fi +rm -f conftest* + + fi + fi + if test "$mydir" != "no" ; then + echo "$ac_t"""yes"" 1>&6 + MYSQLDB=1 + cat >> confdefs.h <&6 + mydir="" + fi + MYSQLDIR="$mydir" + cat >> confdefs.h < max) max=desc; FD_SET(desc,set); } @@ -927,6 +933,9 @@ int main(int argc, char *argv[], char *envp[]) #ifdef POSTGRES dbOpen(); +#endif +#ifdef MYSQLDB + mysql_dbOpen(); #endif loop(); diff --git a/isdnlog/policy.h.in b/isdnlog/policy.h.in index bee53e16..cab7151c 100644 --- a/isdnlog/policy.h.in +++ b/isdnlog/policy.h.in @@ -102,6 +102,9 @@ /* Define if postgres should be used */ #undef POSTGRES +/* Define if mysql should be used */ +#undef MYSQLDB + /* Define if server port */ #undef SERV_PORT diff --git a/scripts/defconfig b/scripts/defconfig index 99a2c924..c4a5b156 100644 --- a/scripts/defconfig +++ b/scripts/defconfig @@ -71,8 +71,10 @@ CONFIG_ISDNLOG_STOPCMD='stop' CONFIG_ISDNLOG_REBOOTCMD='/sbin/reboot' CONFIG_ISDNLOG_OLDI4LCONFDIR='/etc/isdnlog' CONFIG_ISDNLOG_OLDI4LCONFFILE='isdnlog.conf' -CONFIG_ISDNLOG_POSTGRES=y +CONFIG_ISDNLOG_POSTGRES=n CONFIG_ISDNLOG_POSTGRESDIR='/usr/local/postgres95' +CONFIG_ISDNLOG_MYSQLDB=n +CONFIG_ISDNLOG_MYSQLDIR='/usr/local/mysql' CONFIG_ISDNLOG_DE=y CONFIG_IPPPSTATS=y CONFIG_XISDNLOAD=y