Signed / unsigned fixes and function prototypes
[freeradius.git] / src / include / radiusd.h
index a105325..e26af57 100644 (file)
@@ -89,6 +89,8 @@ typedef struct auth_req REQUEST;
 #ifndef WITHOUT_COMMAND_SOCKET
 #ifdef HAVE_SYS_UN_H
 #define WITH_COMMAND_SOCKET (1)
+#else
+#define WITHOUT_COMMAND_SOCKET (1)
 #endif
 #endif
 
@@ -140,6 +142,7 @@ typedef struct radclient {
        time_t                  created;
        time_t                  last_new_client;
        char                    *client_server;
+       int                     rate_limit;
 #endif
 
 #ifdef WITH_COA
@@ -215,7 +218,7 @@ struct auth_req {
        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
@@ -304,7 +307,7 @@ typedef struct pair_list {
 
 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 *);
 
@@ -399,7 +402,9 @@ typedef struct main_config_t {
        int             log_auth_goodpass;
        int             allow_core_dumps;
        int             debug_level;
+#ifdef WITH_PROXY
        int             proxy_requests;
+#endif
        int             reject_delay;
        int             status_server;
        int             max_request_time;
@@ -493,7 +498,7 @@ extern int          debug_flag;
 extern const char      *radacct_dir;
 extern const char      *radlog_dir;
 extern const char      *radlib_dir;
-extern const char      *radius_dir;
+extern char            *radius_dir;
 extern const char      *radius_libdir;
 extern uint32_t                expiration_seconds;
 extern int             log_stripped_names;
@@ -613,10 +618,10 @@ int               radius_exec_program(const char *,  REQUEST *, int,
 int            timestr_match(char *, time_t);
 
 /* valuepair.c */
-int            paircompare_register(int attr, int otherattr,
+int            paircompare_register(unsigned int attr, int otherattr,
                                     RAD_COMPARE_FUNC func,
                                     void *instance);
-void           paircompare_unregister(int attr, RAD_COMPARE_FUNC func);
+void           paircompare_unregister(unsigned int attr, RAD_COMPARE_FUNC func);
 int            paircompare(REQUEST *req, VALUE_PAIR *request, VALUE_PAIR *check,
                            VALUE_PAIR **reply);
 void           pairxlatmove(REQUEST *, VALUE_PAIR **to, VALUE_PAIR **from);
@@ -624,9 +629,9 @@ int radius_compare_vps(REQUEST *request, VALUE_PAIR *check, VALUE_PAIR *vp);
 int radius_callback_compare(REQUEST *req, VALUE_PAIR *request,
                            VALUE_PAIR *check, VALUE_PAIR *check_pairs,
                            VALUE_PAIR **reply_pairs);
-int radius_find_compare(int attribute);
+int radius_find_compare(unsigned int attribute);
 VALUE_PAIR     *radius_paircreate(REQUEST *request, VALUE_PAIR **vps,
-                                 int attribute, int type);
+                                  unsigned int attribute, unsigned int vendor, int type);
 VALUE_PAIR *radius_pairmake(REQUEST *request, VALUE_PAIR **vps,
                            const char *attribute, const char *value,
                            int operator);
@@ -672,14 +677,14 @@ void fr_suid_down_permanent(void);
 void listen_free(rad_listen_t **head);
 int listen_init(CONF_SECTION *cs, rad_listen_t **head);
 int proxy_new_listener(home_server *home, int src_port);
-RADCLIENT *client_listener_find(const rad_listen_t *listener,
+RADCLIENT *client_listener_find(rad_listen_t *listener,
                                const fr_ipaddr_t *ipaddr, int src_port);
 
 #ifdef WITH_STATS
 RADCLIENT_LIST *listener_find_client_list(const fr_ipaddr_t *ipaddr,
                                          int port);
-rad_listen_t *listener_find_byipaddr(const fr_ipaddr_t *ipaddr, int port);
 #endif
+rad_listen_t *listener_find_byipaddr(const fr_ipaddr_t *ipaddr, int port);
 
 /* event.c */
 int radius_event_init(CONF_SECTION *cs, int spawn_flag);
@@ -691,6 +696,8 @@ int received_request(rad_listen_t *listener,
                     RADCLIENT *client);
 REQUEST *received_proxy_response(RADIUS_PACKET *packet);
 int event_new_fd(rad_listen_t *listener);
+void revive_home_server(void *ctx);
+void mark_home_server_dead(home_server *home, struct timeval *when);
 
 /* evaluate.c */
 int radius_evaluate_condition(REQUEST *request, int modreturn, int depth,
@@ -698,4 +705,5 @@ int radius_evaluate_condition(REQUEST *request, int modreturn, int depth,
 int radius_update_attrlist(REQUEST *request, CONF_SECTION *cs,
                           VALUE_PAIR *input_vps, const char *name);
 void radius_pairmove(REQUEST *request, VALUE_PAIR **to, VALUE_PAIR *from);
+int radius_get_vp(REQUEST *request, const char *name, VALUE_PAIR **vp_p);
 #endif /*RADIUSD_H*/