Add "extern C {...} to header files for C++ builds.
[freeradius.git] / src / include / detail.h
1 #ifndef DETAIL_H
2 #define DETAIL_H
3 /*
4  *      detail.h        Routines to handle detail files.
5  *
6  * Version:     $Id$
7  *
8  */
9
10 #include <freeradius-devel/ident.h>
11 RCSIDH(detail_h, "$Id$")
12
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16
17 typedef enum detail_state_t {
18   STATE_UNOPENED = 0,
19   STATE_UNLOCKED,
20   STATE_HEADER,
21   STATE_READING,
22   STATE_QUEUED,
23   STATE_RUNNING,
24   STATE_NO_REPLY,
25   STATE_REPLIED
26 } detail_state_t;
27
28 typedef struct listen_detail_t {
29         fr_event_t      *ev;    /* has to be first entry (ugh) */
30         int             delay_time;
31         char            *filename;
32         char            *filename_work;
33         VALUE_PAIR      *vps;
34         FILE            *fp;
35         off_t           offset;
36         detail_state_t  state;
37         time_t          timestamp;
38         time_t          running;
39         fr_ipaddr_t     client_ip;
40         int             load_factor; /* 1..100 */
41         int             signal;
42         int             poll_interval;
43         int             retry_interval;
44         int             packets;
45         int             tries;
46
47         int             has_rtt;
48         int             srtt;
49         int             rttvar;
50         struct timeval  last_packet;
51         RADCLIENT       detail_client;
52 } listen_detail_t;
53
54 int detail_recv(rad_listen_t *listener,
55                 RAD_REQUEST_FUNP *pfun, REQUEST **prequest);
56 int detail_send(rad_listen_t *listener, REQUEST *request);
57 void detail_free(rad_listen_t *this);
58 int detail_print(const rad_listen_t *this, char *buffer, size_t bufsize);
59 int detail_encode(UNUSED rad_listen_t *this, UNUSED REQUEST *request);
60 int detail_decode(UNUSED rad_listen_t *this, UNUSED REQUEST *request);
61 int detail_parse(CONF_SECTION *cs, rad_listen_t *this);
62
63 #ifdef __cplusplus
64 }
65 #endif
66
67 #endif /* DETAIL_H */