Add "extern C {...} to header files for C++ builds.
[freeradius.git] / src / include / realms.h
index 2729104..0b00a1b 100644 (file)
 #include <freeradius-devel/ident.h>
 RCSIDH(realms_h, "$Id$")
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define HOME_TYPE_INVALID (0)
 #define HOME_TYPE_AUTH    (1)
 #define HOME_TYPE_ACCT    (2)
@@ -38,6 +42,13 @@ typedef struct home_server {
        int             port;
        int             type;           /* auth/acct */
 
+       int             proto;
+       int             max_connections;
+       int             num_connections; /* protected by proxy mutex */
+       int             max_requests;    /* for one connection */
+       int             lifetime;
+       int             idle_timeout;
+
        /*
         *      Maybe also have list of source IP/ports, && socket?
         */
@@ -48,10 +59,12 @@ typedef struct home_server {
        struct timeval  when;
 
        int             response_window;
+       int             no_response_fail;
        int             max_outstanding; /* don't overload it */
        int             currently_outstanding;
        int             message_authenticator;
 
+       time_t          last_packet;
        struct timeval  revive_time;
        struct timeval  zombie_period_start;
        int             zombie_period; /* unresponsive for T, mark it dead */
@@ -78,6 +91,8 @@ typedef struct home_server {
 #ifdef WITH_STATS
        int             number;
 
+       fr_ipaddr_t     src_ipaddr; /* preferred source IP address */
+
        fr_stats_t      stats;
 
        fr_stats_ema_t  ema;
@@ -126,13 +141,17 @@ REALM *realm_find(const char *name); /* name is from a packet */
 REALM *realm_find2(const char *name); /* ... with name taken from realm_find */
 
 home_server *home_server_ldb(const char *realmname, home_pool_t *pool, REQUEST *request);
-home_server *home_server_find(fr_ipaddr_t *ipaddr, int port);
+home_server *home_server_find(fr_ipaddr_t *ipaddr, int port, int proto);
 #ifdef WITH_COA
-home_server *home_server_byname(const char *name);
+home_server *home_server_byname(const char *name, int type);
 #endif
 #ifdef WITH_STATS
 home_server *home_server_bynumber(int number);
 #endif
 home_pool_t *home_pool_byname(const char *name, int type);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* REALMS_H */