#ifndef WITHOUT_COMMAND_SOCKET
#ifdef HAVE_SYS_UN_H
#define WITH_COMMAND_SOCKET (1)
+#else
+#define WITHOUT_COMMAND_SOCKET (1)
#endif
#endif
time_t created;
time_t last_new_client;
char *client_server;
+ int rate_limit;
#endif
#ifdef WITH_COA
#ifdef WITH_COMMAND_SOCKET
RAD_LISTEN_COMMAND,
#endif
+#ifdef WITH_COA
+ RAD_LISTEN_COA,
+#endif
RAD_LISTEN_MAX
} RAD_LISTEN_TYPE;
pthread_t child_pid;
#endif
time_t timestamp;
- int number; /* internal server number */
+ unsigned int number; /* internal server number */
rad_listen_t *listener;
#ifdef WITH_PROXY
typedef int (*rad_listen_recv_t)(rad_listen_t *, RAD_REQUEST_FUNP *, REQUEST **);
typedef int (*rad_listen_send_t)(rad_listen_t *, REQUEST *);
-typedef int (*rad_listen_print_t)(rad_listen_t *, char *, size_t);
+typedef int (*rad_listen_print_t)(const rad_listen_t *, char *, size_t);
typedef int (*rad_listen_encode_t)(rad_listen_t *, REQUEST *);
typedef int (*rad_listen_decode_t)(rad_listen_t *, REQUEST *);
radlog_dest_t radlog_dest;
CONF_SECTION *config;
const char *name;
+ const char *auth_badpass_msg;
+ const char *auth_goodpass_msg;
} MAIN_CONFIG_T;
#define DEBUG if(debug_flag)log_debug
void xlat_free(void);
/* threads.c */
-extern int thread_pool_init(CONF_SECTION *cs, int spawn_flag);
+extern int thread_pool_init(CONF_SECTION *cs, int *spawn_flag);
extern int thread_pool_addrequest(REQUEST *, RAD_REQUEST_FUNP);
extern pid_t rad_fork(void);
extern pid_t rad_waitpid(pid_t pid, int *status);
int read_mainconfig(int reload);
int free_mainconfig(void);
+void hup_mainconfig(void);
void fr_suid_down(void);
void fr_suid_up(void);
void fr_suid_down_permanent(void);
/* listen.c */
void listen_free(rad_listen_t **head);
int listen_init(CONF_SECTION *cs, rad_listen_t **head);
-rad_listen_t *proxy_new_listener(void);
+rad_listen_t *proxy_new_listener(fr_ipaddr_t *ipaddr, int exists);
RADCLIENT *client_listener_find(const rad_listen_t *listener,
const fr_ipaddr_t *ipaddr, int src_port);
#ifdef WITH_STATS