Hi Nathaniel,

Le Tuesday 1 June 2010 16:12:18, Nathaniel McCallum a écrit :
> Freeradius 2.x includes an experimental module which allows one to cache
> results for a certain time period.  This is extremely useful for:
> 1. Reducing the load on your authentication store (LDAP, Database, etc)
> 2. Reducing the load on your (limited resource) router
> 3. Enabling successful wireless logins even if the router cannot contact
> the authentication store (ie. a WAN outage)
> 
> This patch enables experimental modules and then disables them all again
> (individually, rather than by group).  You can then individually choose
> to build the caching module.  This patch also adds a patch to create the
> config.h.in and configure.in for the rlm_caching module and has been
> submitted upstream
> (https://lists.freeradius.org/pipermail/freeradius-devel/2010-June/013871.h
> tml).

Your patch does not apply cleanly, your mailer corrupted the patch by mangling 
the line returns. Please respin and we will merge it.

> 
> Signed-off-by: Nathaniel McCallum <nathan...@haikulogic.com>
> 
> Index: net/freeradius2/patches/001-rlm_caching.patch
> ===================================================================
> --- net/freeradius2/patches/001-rlm_caching.patch     (revision 0)
> +++ net/freeradius2/patches/001-rlm_caching.patch     (revision 0)
> @@ -0,0 +1,99 @@
> +diff --git a/src/modules/rlm_caching/config.h.in
> b/src/modules/rlm_caching/config.h.in
> +new file mode 100644
> +index 0000000..32fad9e
> +--- /dev/null
> ++++ b/src/modules/rlm_caching/config.h.in
> +@@ -0,0 +1,22 @@
> ++/* config.h.in.  Generated from configure.in by autoheader.  */
> ++
> ++/* do we have gdbm_fdesc */
> ++#undef HAVE_GDBM_FDESC
> ++
> ++/* do we need GDBM_SYNC */
> ++#undef NEED_GDBM_SYNC
> ++
> ++/* Define to the address where bug reports for this package should be
> sent. */
> ++#undef PACKAGE_BUGREPORT
> ++
> ++/* Define to the full name of this package. */
> ++#undef PACKAGE_NAME
> ++
> ++/* Define to the full name and version of this package. */
> ++#undef PACKAGE_STRING
> ++
> ++/* Define to the one symbol short name of this package. */
> ++#undef PACKAGE_TARNAME
> ++
> ++/* Define to the version of this package. */
> ++#undef PACKAGE_VERSION
> +diff --git a/src/modules/rlm_caching/configure.in
> b/src/modules/rlm_caching/configure.in
> +new file mode 100644
> +index 0000000..6e9f6ec
> +--- /dev/null
> ++++ b/src/modules/rlm_caching/configure.in
> +@@ -0,0 +1,65 @@
> ++AC_PREREQ([2.53])
> ++AC_INIT(rlm_caching.c)
> ++AC_REVISION($Revision$)
> ++AC_DEFUN(modname,[rlm_caching])
> ++
> ++if test x$with_[]modname != xno; then
> ++    AC_PROG_CC
> ++    AC_PROG_CPP
> ++
> ++    FR_SMART_CHECK_INCLUDE(gdbm.h)
> ++    FR_SMART_CHECK_LIB(gdbm, gdbm_open)
> ++    if test "x$ac_cv_lib_gdbm_gdbm_open" != "xyes"; then
> ++            fail="$fail libgdbm"
> ++    fi
> ++
> ++    if test "x$fail" = "x"; then
> ++            AC_MSG_CHECKING(to see GDBM_SYNC status)
> ++            AC_EGREP_CPP(found-gdbm-sync, [
> ++#include <gdbm.h>
> ++#ifdef GDBM_SYNC
> ++    found-gdbm-sync!
> ++#else
> ++    not found.  this version must use sync by default.
> ++#endif
> ++                    ], [
> ++                    AC_DEFINE(NEED_GDBM_SYNC, yes, [do we need GDBM_SYNC])
> ++                    AC_MSG_RESULT(needs it.)
> ++                    ], [
> ++                    AC_MSG_RESULT(SYNCs by default.)
> ++                    ]
> ++            )
> ++    fi
> ++
> ++    old_LIBS=$LIBS
> ++    LIBS="$LIBS $SMART_LIBS"
> ++    AC_CHECK_FUNC(gdbm_fdesc)
> ++    if test "x$ac_cv_func_gdbm_fdesc" = "xyes";
> ++    then
> ++            AC_DEFINE(HAVE_GDBM_FDESC, [], [do we have gdbm_fdesc])
> ++    fi
> ++    LIBS=$old_LIBS
> ++
> ++    targetname=modname
> ++else
> ++    targetname=
> ++    echo \*\*\* module modname is disabled.
> ++fi
> ++
> ++if test x"$fail" != x""; then
> ++    if test x"${enable_strict_dependencies}" = x"yes"; then
> ++            AC_MSG_ERROR([set --without-]modname[ to disable it.])
> ++    else
> ++            AC_MSG_WARN([silently not building ]modname[.])
> ++            AC_MSG_WARN([FAILURE: ]modname[ requires: $fail.]);
> ++            targetname=""
> ++    fi
> ++fi
> ++
> ++caching_ldflags=$SMART_LIBS
> ++caching_cflags=$SMART_CFLAGS
> ++AC_SUBST(caching_ldflags)
> ++AC_SUBST(caching_cflags)
> ++AC_SUBST(targetname)
> ++AC_CONFIG_HEADER(config.h)
> ++AC_OUTPUT(Makefile)
> Index: net/freeradius2/Makefile
> ===================================================================
> --- net/freeradius2/Makefile  (revision 21623)
> +++ net/freeradius2/Makefile  (working copy)
> @@ -9,7 +9,7 @@
> 
>   PKG_NAME:=freeradius2
>   PKG_VERSION:=2.1.8
> -PKG_RELEASE:=3
> +PKG_RELEASE:=4
> 
>   PKG_SOURCE:=freeradius-server-$(PKG_VERSION).tar.bz2
>   PKG_SOURCE_URL:=ftp://ftp.freeradius.org/pub/freeradius/
> @@ -45,6 +45,12 @@
>     TITLE:=Demo certificates to test the server
>   endef
> 
> +define Package/freeradius2-mod-caching
> +  $(call Package/freeradius2/Default)
> +  DEPENDS:=freeradius2 +gdbm
> +  TITLE:=Caching module (experimental!)
> +endef
> +
>   define Package/freeradius2-mod-chap
>     $(call Package/freeradius2/Default)
>     DEPENDS:=freeradius2
> @@ -302,6 +308,7 @@
>       --with-raddbdir=/etc/freeradius2 \
>       --with-radacctdir=/var/db/radacct \
>       --with-logdir=/var/log \
> +     --with-experimental-modules \
>       --without-edir \
>       --without-snmp \
>       --without-rlm_checkval \
> @@ -338,6 +345,19 @@
>       --without-rlm_eap_ikev2 \
>       --without-rlm_opendirectory \
>       --without-rlm_wimax \
> +     --without-rlm_cram \
> +     --without-rlm_eap2 \
> +     --without-rlm_example \
> +     --without-rlm_jradius \
> +     --without-rlm_ns_mta_md5 \
> +     --without-rlm_opendirectory \
> +     --without-rlm_protocol_filter \
> +     --without-rlm_ruby \
> +     --without-rlm_sim_files \
> +     --without-rlm_smb \
> +     --without-rlm_smsotp \
> +     --without-rlm_sqlhpwippool \
> +     --without-rlm_wimax
> 
>   PKG_DICTIONARIES:= \
>       freeradius freeradius.internal \
> @@ -346,6 +366,12 @@
>       microsoft \
>       wispr \
> 
> +ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-caching),)
> +  CONFIGURE_ARGS+= --with-rlm_caching
> +else
> +  CONFIGURE_ARGS+= --without-rlm_caching
> +endif
> +
>   ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-ldap),)
>     CONFIGURE_ARGS+= \
>               --with-rlm_ldap-include-dir="$(STAGING_DIR)/usr/include" \
> @@ -433,6 +459,11 @@
>       MYSQL_CONFIG="no" \
>       ac_cv_lib_readline=no \
> 
> +define Build/Configure
> +     (cd $(PKG_BUILD_DIR)/src/modules/rlm_caching ; autoconf
> -I$(PKG_BUILD_DIR))
> +     $(call Build/Configure/Default)
> +endef
> +
>   define Build/Compile
>       $(MAKE) -C $(PKG_BUILD_DIR) \
>               R="$(PKG_INSTALL_DIR)" \
> @@ -501,6 +532,7 @@
> 
>   $(eval $(call BuildPackage,freeradius2))
>   $(eval $(call BuildPackage,freeradius2-democerts))
> +$(eval $(call BuildPlugin,freeradius2-mod-caching,rlm_caching,))
>   $(eval $(call
> BuildPlugin,freeradius2-mod-chap,rlm_chap,modules/chap,modules,))
>   $(eval $(call
> BuildPlugin,freeradius2-mod-detail,rlm_detail,modules/detail,modules,))
>   $(eval $(call BuildPlugin,freeradius2-mod-eap,libfreeradius-eap
> rlm_eap,eap.conf))
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to