f0f09aa543e1d9e185565512380d1bb6e049673e
[librecmc/librecmc-fossil.git] /
1 From 18e2b5ed1ffb3e7c5dfec8ff41b3027163f680ed Mon Sep 17 00:00:00 2001
2 From: Leonid Evdokimov <leon@darkk.net.ru>
3 Date: Wed, 12 Sep 2012 02:05:39 +0400
4 Subject: [PATCH 09/12] Fix compilation on Ubuntu 10.04 LTS and (hopefully)
5  Debian squeeze[1]
6
7 fixes #28, fixes #22, fixes #24
8 [1] current "stable" release
9 ---
10  libc-compat.h     | 25 +++++++++++++++++++++++++
11  libevent-compat.h | 11 +++++++++++
12  redsocks.c        |  1 +
13  redudp.c          |  1 +
14  utils.c           |  1 +
15  5 files changed, 39 insertions(+)
16  create mode 100644 libc-compat.h
17  create mode 100644 libevent-compat.h
18
19 diff --git a/libc-compat.h b/libc-compat.h
20 new file mode 100644
21 index 0000000..adcf63b
22 --- /dev/null
23 +++ b/libc-compat.h
24 @@ -0,0 +1,25 @@
25 +#ifndef UUID_67C91670_FCCB_4855_BDF7_609F1EECB8B4
26 +#define UUID_67C91670_FCCB_4855_BDF7_609F1EECB8B4
27 +
28 +/* all these definitions, are included into bits/in.h from libc6-dev 2.15-0ubuntu10
29 + * from Ubuntu 12.04 and is not included into libc6-dev 2.11.1-0ubuntu7.10 from
30 + * Ubuntu 10.04.
31 + * linux/in.h is not included directly because of lots of redefinitions,
32 + * extracting single value from linux/in.h is not done because it looks like
33 + * autotools reinvention */
34 +#ifndef IP_ORIGDSTADDR
35 +#   warning Using hardcoded value for IP_ORIGDSTADDR as libc headers do not define it.
36 +#   define IP_ORIGDSTADDR 20
37 +#endif
38 +
39 +#ifndef IP_RECVORIGDSTADDR
40 +#   warning Using hardcoded value for IP_RECVORIGDSTADDR as libc headers do not define it.
41 +#   define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
42 +#endif
43 +
44 +#ifndef IP_TRANSPARENT
45 +#   warning Using hardcoded value for IP_TRANSPARENT as libc headers do not define it.
46 +#   define IP_TRANSPARENT 19
47 +#endif
48 +
49 +#endif // 67C91670_FCCB_4855_BDF7_609F1EECB8B4
50 diff --git a/libevent-compat.h b/libevent-compat.h
51 new file mode 100644
52 index 0000000..a7f1ca1
53 --- /dev/null
54 +++ b/libevent-compat.h
55 @@ -0,0 +1,11 @@
56 +#ifndef UUID_FC148CFA_5ECC_488E_8A62_CD39406C9F1E
57 +#define UUID_FC148CFA_5ECC_488E_8A62_CD39406C9F1E
58 +
59 +/* evutil_socket_t is macros in libevent-2.0, not typedef, libevent-1.4 is
60 + * still supported because of Ubuntu 10.04 LTS */
61 +#ifndef evutil_socket_t
62 +#   warning Using hardcoded value for evutil_socket_t as libevent headers do not define it.
63 +#   define evutil_socket_t int
64 +#endif
65 +
66 +#endif // FC148CFA_5ECC_488E_8A62_CD39406C9F1E
67 diff --git a/redsocks.c b/redsocks.c
68 index ba5eab2..878576f 100644
69 --- a/redsocks.c
70 +++ b/redsocks.c
71 @@ -33,6 +33,7 @@
72  #include "base.h"
73  #include "redsocks.h"
74  #include "utils.h"
75 +#include "libevent-compat.h"
76  
77  
78  #define REDSOCKS_RELAY_HALFBUFF  4096
79 diff --git a/redudp.c b/redudp.c
80 index 262af3e..05460dc 100644
81 --- a/redudp.c
82 +++ b/redudp.c
83 @@ -32,6 +32,7 @@
84  #include "main.h"
85  #include "redsocks.h"
86  #include "redudp.h"
87 +#include "libc-compat.h"
88  
89  #define redudp_log_error(client, prio, msg...) \
90         redsocks_log_write_plain(__FILE__, __LINE__, __func__, 0, &(client)->clientaddr, get_destaddr(client), prio, ## msg)
91 diff --git a/utils.c b/utils.c
92 index 31c6894..7de3969 100644
93 --- a/utils.c
94 +++ b/utils.c
95 @@ -25,6 +25,7 @@
96  #include "log.h"
97  #include "utils.h"
98  #include "redsocks.h" // for redsocks_close
99 +#include "libc-compat.h"
100  
101  int red_recv_udp_pkt(int fd, char *buf, size_t buflen, struct sockaddr_in *inaddr, struct sockaddr_in *toaddr)
102  {
103 -- 
104 1.9.1
105