diff --git a/ChangeLog b/ChangeLog index 3872c63..3beba46 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-12-30: Jens Jakobsen + Initial MAC OS X support + + Quality assurance and improved error logging + + QoS length bug fix. + 2004-09-11: Jens Jakobsen Added selection mode option to sgsnemu. Added charging characteristics option to sgsnemu. diff --git a/NEWS b/NEWS index 68f831e..b1352a5 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,12 @@ OPENGGSN NEWS OpenGGSN - Gateway GPRS Support Node Copyright (C) 2002, 2003, 2004 Mondru AB. +Version 0.84 +============ + +* Initial MAC OSX support (Thanks to Pekka Nikander) +* Quality assurance and improved error logging (Thanks to Pekka + Nikander and Jonny Winberg) Version 0.83 ============ diff --git a/config.h.in b/config.h.in index 8810c20..6897224 100644 --- a/config.h.in +++ b/config.h.in @@ -76,6 +76,9 @@ /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT +/* Do we have sockaddr.sa_len? */ +#undef HAVE_SOCKADDR_SA_LEN + /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET diff --git a/configure b/configure index 84b8c04..4a1edbd 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.57 for openggsn 0.83. +# Generated by GNU Autoconf 2.57 for openggsn 0.84. # # Report bugs to . # @@ -427,8 +427,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='openggsn' PACKAGE_TARNAME='openggsn' -PACKAGE_VERSION='0.83' -PACKAGE_STRING='openggsn 0.83' +PACKAGE_VERSION='0.84' +PACKAGE_STRING='openggsn 0.84' PACKAGE_BUGREPORT='jj@openggsn.org' ac_unique_file="gtp/gtp.c" @@ -946,7 +946,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures openggsn 0.83 to adapt to many kinds of systems. +\`configure' configures openggsn 0.84 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1013,7 +1013,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of openggsn 0.83:";; + short | recursive ) echo "Configuration of openggsn 0.84:";; esac cat <<\_ACEOF @@ -1111,7 +1111,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -openggsn configure 0.83 +openggsn configure 0.84 generated by GNU Autoconf 2.57 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 @@ -1126,7 +1126,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by openggsn $as_me 0.83, which was +It was created by openggsn $as_me 0.84, which was generated by GNU Autoconf 2.57. Invocation command line was $ $0 $@ @@ -8675,6 +8675,107 @@ done +# Check for sockaddr.sa_len +echo "$as_me:$LINENO: checking for struct sockaddr.sa_len" >&5 +echo $ECHO_N "checking for struct sockaddr.sa_len... $ECHO_C" >&6 +if test "${ac_cv_member_struct_sockaddr_sa_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include + + +int +main () +{ +static struct sockaddr ac_aggr; +if (ac_aggr.sa_len) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_sockaddr_sa_len=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include + + +int +main () +{ +static struct sockaddr ac_aggr; +if (sizeof ac_aggr.sa_len) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_sockaddr_sa_len=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_member_struct_sockaddr_sa_len=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_sockaddr_sa_len" >&5 +echo "${ECHO_T}$ac_cv_member_struct_sockaddr_sa_len" >&6 +if test $ac_cv_member_struct_sockaddr_sa_len = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SOCKADDR_SA_LEN 1 +_ACEOF + +fi + + # Checks for typedefs, structures, and compiler characteristics. echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 @@ -9972,7 +10073,7 @@ fi # Define the identity of the package. PACKAGE=openggsn - VERSION=0.83 + VERSION=0.84 cat >>confdefs.h <<_ACEOF @@ -10606,7 +10707,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by openggsn $as_me 0.83, which was +This file was extended by openggsn $as_me 0.84, which was generated by GNU Autoconf 2.57. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -10672,7 +10773,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -openggsn config.status 0.83 +openggsn config.status 0.84 configured by $0, generated by GNU Autoconf 2.57, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.in b/configure.in index 960dd20..c80f474 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ # Process this file with autoconf to produce a configure script. -AC_INIT(openggsn, 0.83, jj@openggsn.org) +AC_INIT(openggsn, 0.84, jj@openggsn.org) AC_CONFIG_SRCDIR([gtp/gtp.c]) AM_CONFIG_HEADER([config.h]) #AC_CONFIG_HEADER([config.h]) @@ -62,6 +62,15 @@ AC_CHECK_HEADERS([linux/if_tun.h net/if_tun.h]) AC_CHECK_HEADERS([linux/netlink.h linux/rtnetlink.h]) +# Check for sockaddr.sa_len +AC_CHECK_MEMBER([struct sockaddr.sa_len], +[AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Do we have sockaddr.sa_len?])], +[], +[ +#include +#include +]) + # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_MODE_T diff --git a/ggsn/Makefile.am b/ggsn/Makefile.am index 0e99f50..f5809a5 100644 --- a/ggsn/Makefile.am +++ b/ggsn/Makefile.am @@ -1,10 +1,12 @@ bin_PROGRAMS = ggsn -LDFLAGS = -lgtp -L../gtp @EXEC_LDFLAGS@ +LDFLAGS = @EXEC_LDFLAGS@ CFLAGS = -O2 -D_GNU_SOURCE -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' -ggdb -ggsn_LDADD = @LIBOBJS@ +ggsn_LDADD = @LIBOBJS@ -lgtp -L../gtp + +ggsn_DEPENDENCIES = ../gtp/libgtp.la ggsn_SOURCES = ggsn.c tun.c tun.h cmdline.c cmdline.h ippool.h ippool.c syserr.h syserr.c lookup.c diff --git a/ggsn/Makefile.in b/ggsn/Makefile.in index de98cdd..18bd591 100644 --- a/ggsn/Makefile.in +++ b/ggsn/Makefile.in @@ -92,11 +92,13 @@ am__quote = @am__quote@ install_sh = @install_sh@ bin_PROGRAMS = ggsn -LDFLAGS = -lgtp -L../gtp @EXEC_LDFLAGS@ +LDFLAGS = @EXEC_LDFLAGS@ CFLAGS = -O2 -D_GNU_SOURCE -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' -ggdb -ggsn_LDADD = @LIBOBJS@ +ggsn_LDADD = @LIBOBJS@ -lgtp -L../gtp + +ggsn_DEPENDENCIES = ../gtp/libgtp.la ggsn_SOURCES = ggsn.c tun.c tun.h cmdline.c cmdline.h ippool.h ippool.c syserr.h syserr.c lookup.c subdir = ggsn @@ -109,7 +111,6 @@ PROGRAMS = $(bin_PROGRAMS) am_ggsn_OBJECTS = ggsn.$(OBJEXT) tun.$(OBJEXT) cmdline.$(OBJEXT) \ ippool.$(OBJEXT) syserr.$(OBJEXT) lookup.$(OBJEXT) ggsn_OBJECTS = $(am_ggsn_OBJECTS) -ggsn_DEPENDENCIES = @LIBOBJS@ ggsn_LDFLAGS = DEFS = @DEFS@ diff --git a/sgsnemu/Makefile.am b/sgsnemu/Makefile.am index ede1372..bdd28ba 100644 --- a/sgsnemu/Makefile.am +++ b/sgsnemu/Makefile.am @@ -1,9 +1,11 @@ bin_PROGRAMS = sgsnemu -LDFLAGS = -lgtp -L../gtp @EXEC_LDFLAGS@ +LDFLAGS = @EXEC_LDFLAGS@ CFLAGS = -O2 -D_GNU_SOURCE -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' -ggdb -sgsnemu_LDADD = @LIBOBJS@ +sgsnemu_LDADD = @LIBOBJS@ -lgtp -L../gtp + +sgsnemu_DEPENDENCIES = ../gtp/libgtp.la sgsnemu_SOURCES = sgsnemu.c tun.c tun.h cmdline.c cmdline.h ippool.h ippool.c syserr.h syserr.c lookup.c diff --git a/sgsnemu/Makefile.in b/sgsnemu/Makefile.in index f9f2407..84b30ce 100644 --- a/sgsnemu/Makefile.in +++ b/sgsnemu/Makefile.in @@ -92,11 +92,13 @@ am__quote = @am__quote@ install_sh = @install_sh@ bin_PROGRAMS = sgsnemu -LDFLAGS = -lgtp -L../gtp @EXEC_LDFLAGS@ +LDFLAGS = @EXEC_LDFLAGS@ CFLAGS = -O2 -D_GNU_SOURCE -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' -ggdb -sgsnemu_LDADD = @LIBOBJS@ +sgsnemu_LDADD = @LIBOBJS@ -lgtp -L../gtp + +sgsnemu_DEPENDENCIES = ../gtp/libgtp.la sgsnemu_SOURCES = sgsnemu.c tun.c tun.h cmdline.c cmdline.h ippool.h ippool.c syserr.h syserr.c lookup.c subdir = sgsnemu @@ -109,7 +111,6 @@ PROGRAMS = $(bin_PROGRAMS) am_sgsnemu_OBJECTS = sgsnemu.$(OBJEXT) tun.$(OBJEXT) cmdline.$(OBJEXT) \ ippool.$(OBJEXT) syserr.$(OBJEXT) lookup.$(OBJEXT) sgsnemu_OBJECTS = $(am_sgsnemu_OBJECTS) -sgsnemu_DEPENDENCIES = @LIBOBJS@ sgsnemu_LDFLAGS = DEFS = @DEFS@