Add timemsg() for logging
[rahunas] / src / rahunasd.h
1 /**
2  * RahuNASd header 
3  * Author: Neutron Soutmun <neo.neutron@gmail.com>
4  * Date:   2008-08-07
5  */
6
7 #ifndef __RAHUNASD_H
8 #define __RAHUNASD_H
9
10 #include <sys/socket.h>
11 #include <netinet/in.h>
12 #include <arpa/inet.h>
13 #include <time.h>
14
15 #define PROGRAM "RuhuNASd"
16 #define VERSION "0.1.1"
17 #define MAX_MEMBERS 0x00FFFF
18
19 /* Configuration */
20 #define DEFAULT_LOG "/var/log/rahunas/rahunas.log"
21 #define IDLE_THRESHOLD 30
22 #define POLLING 30 
23 #define SET_NAME "rahunas_set"
24 #define XMLSERVICE_HOST "localhost"
25 #define XMLSERVICE_PORT 8888
26 #define XMLSERVICE_URL  "/xmlrpc_service.php"
27
28
29 struct rahunas_map {
30   struct rahunas_member *members;
31         in_addr_t first_ip;
32         in_addr_t last_ip;
33         unsigned int size;
34 };
35
36 struct rahunas_member {
37   unsigned short flags; 
38   unsigned short expired;
39         time_t session_start;
40         char *username;
41   char *session_id;
42 };
43
44 uint32_t iptoid(struct rahunas_map *map, const char *ip);
45 char *idtoip(struct rahunas_map *map, uint32_t id);
46
47 void *rh_malloc(size_t size);
48 void rh_free(void **data);
49
50 static char *timemsg()
51 {
52   static char tmsg[32] = "";
53   char tfmt[] = "%b %e %T";
54   time_t t;
55
56   t = time(NULL);
57   strftime(tmsg, sizeof tmsg, tfmt, localtime(&t));
58   return tmsg; 
59 }
60
61 enum RH_LOG {
62   RH_LOG_DEBUG,
63         RH_LOG_NORMAL,
64         RH_LOG_ERROR
65 };
66
67 #ifdef RH_LOG_LEVEL
68 #else
69 #  ifdef LOG_DEBUG
70 #    define RH_LOG_LEVEL RH_LOG_DEBUG
71 #  else
72 #    ifdef LOG_NORMAL
73 #      define RH_LOG_LEVEL RH_LOG_NORMAL
74 #    else
75 #      define RH_LOG_LEVEL RH_LOG_ERROR
76 #    endif
77 #  endif
78 #endif
79
80 #ifdef RH_DEBUG
81 #define DP(format, args...) \
82   do {  \
83     fprintf(stderr, "%s - %s: %s (DBG): ", timemsg(), __FILE__, __FUNCTION__); \
84     fprintf(stderr, format "\n", ## args); \
85   } while (0)
86 #else
87 #define DP(priority, format, args...)
88 #endif
89
90 #endif // __RAHUNASD_H