Don't treat exit 10 from dynamic scripts differently from any other non-zero code.
[libradsec.git] / radsecproxy.h
index 314c000..dc09b1e 100644 (file)
@@ -1,18 +1,24 @@
 /*
  * Copyright (C) 2006-2009 Stig Venaas <venaas@uninett.no>
+ * Copyright (C) 2010,2011,2012 NORDUnet A/S
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  * copyright notice and this permission notice appear in all copies.
  */
 
+#include <sys/time.h>
+#include <stdint.h>
+#include <pthread.h>
+#include <regex.h>
+#include "list.h"
 #include "tlv11.h"
 #include "radmsg.h"
 #include "gconfig.h"
 
 #define DEBUG_LEVEL 2
 
-#define CONFIG_MAIN "/etc/radsecproxy.conf"
+#define CONFIG_MAIN SYSCONFDIR"/radsecproxy.conf"
 
 /* MAX_REQUESTS must be 256 due to Radius' 8 bit ID field */
 #define MAX_REQUESTS 256
 #define RAD_DTLS 3
 #define RAD_PROTOCOUNT 4
 
+enum rsp_fticks_reporting_type {
+    RSP_FTICKS_REPORTING_NONE = 0, /* Default.  */
+    RSP_FTICKS_REPORTING_BASIC,
+    RSP_FTICKS_REPORTING_FULL
+};
+
+enum rsp_fticks_mac_type {
+    RSP_FTICKS_MAC_STATIC = 0,
+    RSP_FTICKS_MAC_ORIGINAL,
+    RSP_FTICKS_MAC_VENDOR_HASHED,
+    RSP_FTICKS_MAC_VENDOR_KEY_HASHED, /* Default.  */
+    RSP_FTICKS_MAC_FULLY_HASHED,
+    RSP_FTICKS_MAC_FULLY_KEY_HASHED
+};
+
 struct options {
+    char *pidfile;
     char *logdestination;
+    char *ftickssyslogfacility;
     char *ttlattr;
     uint32_t ttlattrtype[2];
     uint8_t addttl;
     uint8_t loglevel;
     uint8_t loopprevention;
+    enum rsp_fticks_reporting_type fticks_reporting;
+    enum rsp_fticks_mac_type fticks_mac;
+    uint8_t *fticks_key;
 };
 
 struct commonprotoopts {
@@ -98,12 +124,15 @@ struct clsrvconf {
     uint8_t dupinterval;
     uint8_t certnamecheck;
     uint8_t addttl;
+    uint8_t loopprevention;
     struct rewrite *rewritein;
     struct rewrite *rewriteout;
     pthread_mutex_t *lock; /* only used for updating clients so far */
     struct tls *tlsconf;
     struct list *clients;
     struct server *servers;
+    char *fticks_viscountry;
+    char *fticks_visinst;
 };
 
 #include "tlscommon.h"
@@ -131,6 +160,7 @@ struct server {
     uint8_t connectionok;
     uint8_t lostrqs;
     uint8_t dynstartup;
+    uint8_t dynfailing;
     char *dynamiclookuparg;
     int nextid;
     struct timeval lastrcv;
@@ -209,3 +239,8 @@ void freerq(struct request *rq);
 int radsrv(struct request *rq);
 void replyh(struct server *server, unsigned char *buf);
 struct addrinfo *resolve_hostport_addrinfo(uint8_t type, char *hostport);
+uint8_t *radattr2ascii(struct tlv *attr);
+
+/* Local Variables: */
+/* c-file-style: "stroustrup" */
+/* End: */