10 #include <sys/socket.h>
12 #include <netinet/in.h>
13 #include <arpa/inet.h>
17 #define Mbit (Kbit*Kbit)
19 #define SEC_TO_NSEC 1000000000LL
20 #define SEC_TO_USEC 1000000LL
21 #define MSEC_TO_USEC 1000LL
22 #define USEC_TO_NSEC 1000LL
24 /*extern const int prio_to_ac[8];
25 extern const unsigned int ac_to_tos[4];
26 extern const char *ac_to_text[4];
31 /* TODO: Introduce multilevel debugging massages and printf-like
32 * debugging function. */
35 #define FWP_DEBUG(fmt,args...) printf("fwp: %s: " fmt, __func__ , ##args)
36 #define FWP_ERROR(fmt,args...) fprintf(stderr, "fwp: %s: " fmt, __func__ , ##args)
39 #define FWP_DEBUG(fmt,args...)
40 #define FWP_ERROR(fmt,args...)
44 _fwp_sendto(int s, const void *buf, size_t len, int flags,
45 const fwp_sockaddr_t *sockaddr)
48 while ((ret = sendto(s, buf, len, flags, (struct sockaddr*)&sockaddr->addr, sockaddr->addrlen)) < 0) {
49 if (errno != EINTR) break;
55 _fwp_recvfrom(int s, void *buf, size_t len, int flags,
56 fwp_sockaddr_t *sockaddr)
59 while ((ret = recvfrom(s, buf, len, flags, (struct sockaddr*)&sockaddr->addr,
60 &sockaddr->addrlen)) < 0) {
61 if (errno != EINTR) break;
67 _fwp_send(int s, const void *buf, size_t len, int flags)
70 while ((ret = send(s, buf, len, flags)) < 0) {
71 if (errno != EINTR) break;
77 _fwp_recv(int s, void *buf, size_t len, int flags)
80 while ((ret = recv(s, buf, len, flags)) < 0) {
81 if (errno != EINTR) break;
86 inline void fwp_timespec_add (struct timespec *sum, const struct timespec *left,
87 const struct timespec *right);
89 inline void fwp_timespec_sub (struct timespec *diff, const struct timespec *left,
90 const struct timespec *right);
92 int fwp_set_rt_prio(int priority);
94 int fwp_create_unix_socket(char *path, struct sockaddr_un *addr);
96 int fwp_create_inet_socket(unsigned int port, struct sockaddr_in *addr);
98 #endif /* _FWP_UTILS_H */