diff options
| -rw-r--r-- | Makefile.am | 7 | ||||
| -rw-r--r-- | configure.ac | 20 | ||||
| -rw-r--r-- | radsecproxy.c | 12 | 
3 files changed, 35 insertions, 4 deletions
| diff --git a/Makefile.am b/Makefile.am index a38d7ec..70f9284 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,8 +22,11 @@ librsp_a_SOURCES = \  	udp.c \  	tcp.c \  	tls.c \ -	dtls.c \ -	fticks.c +	dtls.c + +if WANT_FTICKS +librsp_a_SOURCES += fticks.c +endif  catgconf_SOURCES = \  	debug.c \ diff --git a/configure.ac b/configure.ac index 24cbf05..3ff1cc3 100644 --- a/configure.ac +++ b/configure.ac @@ -48,9 +48,25 @@ AC_ARG_ENABLE(dtls,      fi    ]) +AC_ARG_ENABLE(fticks, +AC_HELP_STRING([--enable-fticks],[build with F-Ticks support [default=no]]), +[case $enableval in +yes|no) ;; +*) AC_MSG_ERROR([bad value $enableval for --enable-fticks, need yes or no]) ;; +esac], +[enable_fticks=no]) + +if test "$enable_fticks" = "yes"; then  AC_CHECK_LIB([nettle], [nettle_sha256_init],, -    AC_MSG_ERROR([required library nettle not found])) -  +    [AC_MSG_WARN([required library nettle not found, fticks support disabled]) +     enable_fticks=no]) +fi + +if test "$enable_fticks" = "yes"; then +AC_DEFINE([WANT_FTICKS], [1]) +fi +AM_CONDITIONAL(WANT_FTICKS, test "$enable_fticks" = "yes") +  dnl Check if we're on Solaris and set CFLAGS accordingly  AC_CANONICAL_SYSTEM  case "${target_os}" in diff --git a/radsecproxy.c b/radsecproxy.c index e459cae..6554e8d 100644 --- a/radsecproxy.c +++ b/radsecproxy.c @@ -77,7 +77,9 @@  #include "tcp.h"  #include "tls.h"  #include "dtls.h" +#if defined(WANT_FTICKS)  #include "fticks.h" +#endif  static struct options options;  static struct list *clconfs, *srvconfs; @@ -1665,9 +1667,11 @@ void replyh(struct server *server, unsigned char *buf) {  	}      } +#if defined(WANT_FTICKS)      if (msg->code == RAD_Access_Accept || msg->code == RAD_Access_Reject)  	if (options.fticks_reporting && from->conf->fticks_viscountry != NULL)  	    fticks_log(&options, from, msg, rqout); +#endif      msg->id = (char)rqout->rq->rqid;      memcpy(msg->auth, rqout->rq->rqauth, 16); @@ -2678,7 +2682,9 @@ int confclient_cb(struct gconffile **cf, void *arg, char *block, char *opt, char  	    "rewriteIn", CONF_STR, &conf->confrewritein,  	    "rewriteOut", CONF_STR, &conf->confrewriteout,  	    "rewriteattribute", CONF_STR, &conf->confrewriteusername, +#if defined(WANT_FTICKS)  	    "fticksVISCOUNTRY", CONF_STR, &conf->fticks_viscountry, +#endif  	    NULL  	    ))  	debugx(1, DBG_ERR, "configuration error"); @@ -3011,9 +3017,11 @@ void getmainconfig(const char *configfile) {      struct gconffile *cfs;      char **listenargs[RAD_PROTOCOUNT];      char *sourcearg[RAD_PROTOCOUNT]; +#if defined(WANT_FTICKS)      uint8_t *fticks_reporting_str = NULL;      uint8_t *fticks_mac_str = NULL;      uint8_t *fticks_key_str = NULL; +#endif      int i;      cfs = openconfigfile(configfile); @@ -3067,9 +3075,11 @@ void getmainconfig(const char *configfile) {  	    "TLS", CONF_CBK, conftls_cb, NULL,  #endif  	    "Rewrite", CONF_CBK, confrewrite_cb, NULL, +#if defined(WANT_FTICKS)  	    "FTicksReporting", CONF_STR, &fticks_reporting_str,  	    "FTicksMAC", CONF_STR, &fticks_mac_str,  	    "FTicksKey", CONF_STR, &fticks_key_str, +#endif  	    NULL  	    ))  	debugx(1, DBG_ERR, "configuration error"); @@ -3087,8 +3097,10 @@ void getmainconfig(const char *configfile) {      if (!setttlattr(&options, DEFAULT_TTL_ATTR))      	debugx(1, DBG_ERR, "Failed to set TTLAttribute, exiting"); +#if defined(WANT_FTICKS)      fticks_configure(&options, &fticks_reporting_str, &fticks_mac_str,  		     &fticks_key_str); +#endif      for (i = 0; i < RAD_PROTOCOUNT; i++)  	if (listenargs[i] || sourcearg[i]) | 
