Hi, On 20/08/17 18:03, Steffan Karger wrote: > Hi, > > On 19-08-17 06:39, Antonio Quartulli wrote: >> From: Antonio Quartulli <[email protected]> >> >> Function prototypes should be included when compiling their >> definitions so that it is clear to compilers and static >> analyzers that they are not static. >> >> This means that several declarations have to be moved to the >> related header files which in turn have to be included by the >> source files implementing them. >> >> Generally speaking this also improves the coding style and >> makes this code more consistent with the rest that already >> follows this rule. >> >> Signed-off-by: Antonio Quartulli <[email protected]> >> --- >> >> v2: rebased on top of latest master to avoid conflict >> >> src/openvpn/crypto.h | 3 +++ >> src/openvpn/error.c | 3 +-- >> src/openvpn/forward-inline.h | 28 ++-------------------------- >> src/openvpn/forward.h | 35 +++++++++++++++++++++++++++++++++++ >> src/openvpn/init.h | 2 ++ >> src/openvpn/lladdr.c | 1 + >> src/openvpn/manage.h | 11 ++++++----- >> src/openvpn/mbuf.h | 4 ++-- >> src/openvpn/mroute.h | 21 +++++++++++---------- >> src/openvpn/multi.h | 7 +++---- >> src/openvpn/occ-inline.h | 8 ++------ >> src/openvpn/occ.h | 6 ++++++ >> src/openvpn/pf-inline.h | 6 ++---- >> src/openvpn/pf.h | 6 ++++++ >> src/openvpn/ping-inline.h | 6 ++---- >> src/openvpn/ping.h | 4 ++++ >> src/openvpn/plugin.h | 2 ++ >> src/openvpn/socket.h | 13 +++++++------ >> 18 files changed, 97 insertions(+), 69 deletions(-) >> >> diff --git a/src/openvpn/crypto.h b/src/openvpn/crypto.h >> index f1b6c20a..5f0790a6 100644 >> --- a/src/openvpn/crypto.h >> +++ b/src/openvpn/crypto.h >> @@ -467,6 +467,9 @@ void prng_bytes(uint8_t *output, int len); >> >> void prng_uninit(void); >> >> +/* an analogue to the random() function, but use prng_bytes */ >> +long int get_random(void); >> + > > Though I agree that crypto.h is a better place for get_random() than > misc.h, we already have one in misc.h. So if you move this here, remove > it from misc.h.
Oh I hadn't realized we had a declaration for get_random() in misc.h.
The function is defined in crypto.c therefore I expected its declaration
in crypto.h.
I'll remove it from misc.h then.
>
>> void test_crypto(struct crypto_options *co, struct frame *f);
>>
>>
>> diff --git a/src/openvpn/error.c b/src/openvpn/error.c
>> index 04bf0da5..e885ec3b 100644
>> --- a/src/openvpn/error.c
>> +++ b/src/openvpn/error.c
>> @@ -31,6 +31,7 @@
>>
>> #include "error.h"
>> #include "buffer.h"
>> +#include "init.h"
>> #include "misc.h"
>> #include "win32.h"
>> #include "socket.h"
>> @@ -734,8 +735,6 @@ openvpn_exit(const int status)
>> {
>> if (!forked)
>> {
>> - void tun_abort();
>> -
>> #ifdef ENABLE_PLUGIN
>> void plugin_abort(void);
>>
>> diff --git a/src/openvpn/forward-inline.h b/src/openvpn/forward-inline.h
>> index ab83ea40..04601e8c 100644
>> --- a/src/openvpn/forward-inline.h
>> +++ b/src/openvpn/forward-inline.h
>> @@ -24,6 +24,8 @@
>> #ifndef FORWARD_INLINE_H
>> #define FORWARD_INLINE_H
>>
>> +#include "forward.h"
>> +
>
> If we do this, I think we should better merge forward_inline.h into
> forward.h. It seems someone was trying to prevent including forward.h,
> adding all these forward declarations into forward-inline.h. But
> looking at the current code, everything that includes forward-inline.h
> now somehow also includes forward.h. So I see no reason to keep these
> separate.
>
> If you agree with me, and decide to merge there, could you please do
> that in a separate patch? That makes it a bit easier to review.
Agreed. In the past there was a reason for having the -inline.h header
files, but now I think this reason is gone (or at least I can't see it
anymore).
>
>> /*
>> * Inline functions
>> */
>> @@ -35,8 +37,6 @@ static inline void
>> check_tls(struct context *c)
>> {
>> #if defined(ENABLE_CRYPTO)
>> - void check_tls_dowork(struct context *c);
>> -
>> if (c->c2.tls_multi)
>> {
>> check_tls_dowork(c);
>> @@ -52,10 +52,6 @@ static inline void
>> check_tls_errors(struct context *c)
>> {
>> #if defined(ENABLE_CRYPTO)
>> - void check_tls_errors_co(struct context *c);
>> -
>> - void check_tls_errors_nco(struct context *c);
>> -
>> if (c->c2.tls_multi && c->c2.tls_exit_signal)
>> {
>> if (link_socket_connection_oriented(c->c2.link_socket))
>> @@ -84,8 +80,6 @@ static inline void
>> check_incoming_control_channel(struct context *c)
>> {
>> #if P2MP
>> - void check_incoming_control_channel_dowork(struct context *c);
>> -
>> if (tls_test_payload_len(c->c2.tls_multi) > 0)
>> {
>> check_incoming_control_channel_dowork(c);
>> @@ -100,8 +94,6 @@ check_incoming_control_channel(struct context *c)
>> static inline void
>> check_connection_established(struct context *c)
>> {
>> - void check_connection_established_dowork(struct context *c);
>> -
>> if (event_timeout_defined(&c->c2.wait_for_connect))
>> {
>> check_connection_established_dowork(c);
>> @@ -114,8 +106,6 @@ check_connection_established(struct context *c)
>> static inline void
>> check_add_routes(struct context *c)
>> {
>> - void check_add_routes_dowork(struct context *c);
>> -
>> if (event_timeout_trigger(&c->c2.route_wakeup, &c->c2.timeval,
>> ETT_DEFAULT))
>> {
>> check_add_routes_dowork(c);
>> @@ -128,8 +118,6 @@ check_add_routes(struct context *c)
>> static inline void
>> check_inactivity_timeout(struct context *c)
>> {
>> - void check_inactivity_timeout_dowork(struct context *c);
>> -
>> if (c->options.inactivity_timeout
>> && event_timeout_trigger(&c->c2.inactivity_interval,
>> &c->c2.timeval, ETT_DEFAULT))
>> {
>> @@ -142,8 +130,6 @@ check_inactivity_timeout(struct context *c)
>> static inline void
>> check_server_poll_timeout(struct context *c)
>> {
>> - void check_server_poll_timeout_dowork(struct context *c);
>> -
>> if (c->options.ce.connect_timeout
>> && event_timeout_trigger(&c->c2.server_poll_interval,
>> &c->c2.timeval, ETT_DEFAULT))
>> {
>> @@ -157,8 +143,6 @@ check_server_poll_timeout(struct context *c)
>> static inline void
>> check_scheduled_exit(struct context *c)
>> {
>> - void check_scheduled_exit_dowork(struct context *c);
>> -
>> if (event_timeout_defined(&c->c2.scheduled_exit))
>> {
>> if (event_timeout_trigger(&c->c2.scheduled_exit, &c->c2.timeval,
>> ETT_DEFAULT))
>> @@ -175,8 +159,6 @@ check_scheduled_exit(struct context *c)
>> static inline void
>> check_status_file(struct context *c)
>> {
>> - void check_status_file_dowork(struct context *c);
>> -
>> if (c->c1.status_output)
>> {
>> if (status_trigger_tv(c->c1.status_output, &c->c2.timeval))
>> @@ -193,8 +175,6 @@ check_status_file(struct context *c)
>> static inline void
>> check_fragment(struct context *c)
>> {
>> - void check_fragment_dowork(struct context *c);
>> -
>> if (c->c2.fragment)
>> {
>> check_fragment_dowork(c);
>> @@ -210,8 +190,6 @@ check_fragment(struct context *c)
>> static inline void
>> check_push_request(struct context *c)
>> {
>> - void check_push_request_dowork(struct context *c);
>> -
>> if (event_timeout_trigger(&c->c2.push_request_interval, &c->c2.timeval,
>> ETT_DEFAULT))
>> {
>> check_push_request_dowork(c);
>> @@ -313,8 +291,6 @@ p2p_iow_flags(const struct context *c)
>> static inline void
>> io_wait(struct context *c, const unsigned int flags)
>> {
>> - void io_wait_dowork(struct context *c, const unsigned int flags);
>> -
>> if (c->c2.fast_io && (flags & (IOW_TO_TUN|IOW_TO_LINK|IOW_MBUF)))
>> {
>> /* fast path -- only for TUN/TAP/UDP writes */
>> diff --git a/src/openvpn/forward.h b/src/openvpn/forward.h
>> index 9fde5a30..bc016e5d 100644
>> --- a/src/openvpn/forward.h
>> +++ b/src/openvpn/forward.h
>> @@ -60,6 +60,41 @@
>>
>> #define IOW_READ (IOW_READ_TUN|IOW_READ_LINK)
>>
>> +extern counter_type link_read_bytes_global;
>> +
>> +extern counter_type link_write_bytes_global;
>> +
>> +#ifdef ENABLE_CRYPTO
>> +void check_tls_dowork(struct context *c);
>> +
>> +void check_tls_errors_co(struct context *c);
>> +
>> +void check_tls_errors_nco(struct context *c);
>> +#endif /* ENABLE_CRYPTO */
>> +
>> +#if P2MP
>> +void check_incoming_control_channel_dowork(struct context *c);
>> +
>> +void check_scheduled_exit_dowork(struct context *c);
>> +
>> +void check_push_request_dowork(struct context *c);
>> +#endif /* P2MP */
>> +
>> +#ifdef ENABLE_FRAGMENT
>> +void check_fragment_dowork(struct context *c);
>> +#endif /* ENABLE_FRAGMENT */
>> +
>> +void check_connection_established_dowork(struct context *c);
>> +
>> +void check_add_routes_dowork(struct context *c);
>> +
>> +void check_inactivity_timeout_dowork(struct context *c);
>> +
>> +void check_server_poll_timeout_dowork(struct context *c);
>> +
>> +void check_status_file_dowork(struct context *c);
>> +
>> +void io_wait_dowork(struct context *c, const unsigned int flags);
>
> These are already declared in forward-inline.h. I don't see why we need
> extra declarations here. But, if you follow my suggestion to merge
> these files, we don't have to discuss that any further :)
>
>>
>> void pre_select(struct context *c);
>>
>> diff --git a/src/openvpn/init.h b/src/openvpn/init.h
>> index 15feb677..b681cd9d 100644
>> --- a/src/openvpn/init.h
>> +++ b/src/openvpn/init.h
>> @@ -140,4 +140,6 @@ void open_plugins(struct context *c, const bool
>> import_options, int init_point);
>>
>> #endif
>>
>> +void tun_abort(void);
>> +
>> #endif /* ifndef INIT_H */
>> diff --git a/src/openvpn/lladdr.c b/src/openvpn/lladdr.c
>> index ff71e48c..ea35e4d9 100644
>> --- a/src/openvpn/lladdr.c
>> +++ b/src/openvpn/lladdr.c
>> @@ -11,6 +11,7 @@
>> #include "syshead.h"
>> #include "error.h"
>> #include "misc.h"
>> +#include "lladdr.h"
>>
>> int
>> set_lladdr(const char *ifname, const char *lladdr,
>> diff --git a/src/openvpn/manage.h b/src/openvpn/manage.h
>> index 676be640..d77e5f18 100644
>> --- a/src/openvpn/manage.h
>> +++ b/src/openvpn/manage.h
>> @@ -581,6 +581,12 @@ management_bytes_in(struct management *man, const int
>> size)
>> }
>> }
>>
>> +
>> +void man_bytecount_output_server(struct management *man,
>> + const counter_type *bytes_in_total,
>> + const counter_type *bytes_out_total,
>> + struct man_def_auth_context *mdac);
>> +
>
> This function is defined inside #ifdef MANAGEMENT_DEF_AUTH, so the
> declaration should be moved down after:
ops..thanks!
>
>> #ifdef MANAGEMENT_DEF_AUTH
>>
>> static inline void
>> @@ -589,11 +595,6 @@ management_bytes_server(struct management *man,
>> const counter_type *bytes_out_total,
>> struct man_def_auth_context *mdac)
>> {
>> - void man_bytecount_output_server(struct management *man,
>> - const counter_type *bytes_in_total,
>> - const counter_type *bytes_out_total,
>> - struct man_def_auth_context *mdac);
>> -
>> if (man->connection.bytecount_update_seconds > 0
>> && now >= mdac->bytecount_last_update +
>> man->connection.bytecount_update_seconds
>> && (mdac->flags &
>> (DAF_CONNECTION_ESTABLISHED|DAF_CONNECTION_CLOSED)) ==
>> DAF_CONNECTION_ESTABLISHED)
>> diff --git a/src/openvpn/mbuf.h b/src/openvpn/mbuf.h
>> index e0643de1..1c35432f 100644
>> --- a/src/openvpn/mbuf.h
>> +++ b/src/openvpn/mbuf.h
>> @@ -96,11 +96,11 @@ mbuf_maximum_queued(const struct mbuf_set *ms)
>> return (int) ms->max_queued;
>> }
>>
>> +struct multi_instance *mbuf_peek_dowork(struct mbuf_set *ms);
>> +
>> static inline struct multi_instance *
>> mbuf_peek(struct mbuf_set *ms)
>> {
>> - struct multi_instance *mbuf_peek_dowork(struct mbuf_set *ms);
>> -
>> if (mbuf_defined(ms))
>> {
>> return mbuf_peek_dowork(ms);
>> diff --git a/src/openvpn/mroute.h b/src/openvpn/mroute.h
>> index 26421f88..3c06346f 100644
>> --- a/src/openvpn/mroute.h
>> +++ b/src/openvpn/mroute.h
>> @@ -170,6 +170,17 @@ void mroute_helper_add_iroute46(struct mroute_helper
>> *mh, int netbits);
>>
>> void mroute_helper_del_iroute46(struct mroute_helper *mh, int netbits);
>>
>> +
>
> Nit: one newline too many?
Yes. We need only one empty line.
>
>> +unsigned int mroute_extract_addr_ip(struct mroute_addr *src,
>> + struct mroute_addr *dest,
>> + const struct buffer *buf);
>> +
>> +unsigned int mroute_extract_addr_ether(struct mroute_addr *src,
>> + struct mroute_addr *dest,
>> + struct mroute_addr *esrc,
>> + struct mroute_addr *edest,
>> + const struct buffer *buf);
>> +
>> /*
>> * Given a raw packet in buf, return the src and dest
>> * addresses of the packet.
>> @@ -182,16 +193,6 @@ mroute_extract_addr_from_packet(struct mroute_addr *src,
>> const struct buffer *buf,
>> int tunnel_type)
>> {
>> - unsigned int mroute_extract_addr_ip(struct mroute_addr *src,
>> - struct mroute_addr *dest,
>> - const struct buffer *buf);
>> -
>> - unsigned int mroute_extract_addr_ether(struct mroute_addr *src,
>> - struct mroute_addr *dest,
>> - struct mroute_addr *esrc,
>> - struct mroute_addr *edest,
>> - const struct buffer *buf);
>> -
>> unsigned int ret = 0;
>> verify_align_4(buf);
>> if (tunnel_type == DEV_TYPE_TUN)
>> diff --git a/src/openvpn/multi.h b/src/openvpn/multi.h
>> index 63afbaf0..5892ac07 100644
>> --- a/src/openvpn/multi.h
>> +++ b/src/openvpn/multi.h
>> @@ -536,11 +536,12 @@ clear_prefix(void)
>> */
>> #define MULTI_CACHE_ROUTE_TTL 60
>>
>> +void multi_reap_process_dowork(const struct multi_context *m);
>> +void multi_process_per_second_timers_dowork(struct multi_context *m);
>> +
>> static inline void
>> multi_reap_process(const struct multi_context *m)
>> {
>> - void multi_reap_process_dowork(const struct multi_context *m);
>> -
>> if (m->reaper->last_call != now)
>> {
>> multi_reap_process_dowork(m);
>> @@ -552,8 +553,6 @@ multi_process_per_second_timers(struct multi_context *m)
>> {
>> if (m->per_second_trigger != now)
>> {
>> - void multi_process_per_second_timers_dowork(struct multi_context
>> *m);
>> -
>> multi_process_per_second_timers_dowork(m);
>> m->per_second_trigger = now;
>> }
>> diff --git a/src/openvpn/occ-inline.h b/src/openvpn/occ-inline.h
>> index 0fa8e5ba..7ca2a26f 100644
>> --- a/src/openvpn/occ-inline.h
>> +++ b/src/openvpn/occ-inline.h
>> @@ -26,6 +26,8 @@
>>
>> #ifdef ENABLE_OCC
>>
>> +#include "occ.h"
>> +
>
> Same as for forward-inline.h: everything that includes occ-inline.h
> also seems to include occ.h somehow. I suggest to merge these files (in
> a separate commit).
>
>> /*
>> * Inline functions
>> */
>> @@ -42,8 +44,6 @@ occ_reset_op(void)
>> static inline void
>> check_send_occ_req(struct context *c)
>> {
>> - void check_send_occ_req_dowork(struct context *c);
>> -
>> if (event_timeout_defined(&c->c2.occ_interval)
>> && event_timeout_trigger(&c->c2.occ_interval,
>> &c->c2.timeval,
>> @@ -59,8 +59,6 @@ check_send_occ_req(struct context *c)
>> static inline void
>> check_send_occ_load_test(struct context *c)
>> {
>> - void check_send_occ_load_test_dowork(struct context *c);
>> -
>> if (event_timeout_defined(&c->c2.occ_mtu_load_test_interval)
>> && event_timeout_trigger(&c->c2.occ_mtu_load_test_interval,
>> &c->c2.timeval,
>> @@ -76,8 +74,6 @@ check_send_occ_load_test(struct context *c)
>> static inline void
>> check_send_occ_msg(struct context *c)
>> {
>> - void check_send_occ_msg_dowork(struct context *c);
>> -
>> if (c->c2.occ_op >= 0)
>> {
>> if (!TO_LINK_DEF(c))
>> diff --git a/src/openvpn/occ.h b/src/openvpn/occ.h
>> index 12d7bc57..29de99c2 100644
>> --- a/src/openvpn/occ.h
>> +++ b/src/openvpn/occ.h
>> @@ -90,5 +90,11 @@ is_occ_msg(const struct buffer *buf)
>>
>> void process_received_occ_msg(struct context *c);
>>
>> +void check_send_occ_req_dowork(struct context *c);
>> +
>> +void check_send_occ_load_test_dowork(struct context *c);
>> +
>> +void check_send_occ_msg_dowork(struct context *c);
>> +
>> #endif /* ifdef ENABLE_OCC */
>> #endif /* ifndef OCC_H */
>> diff --git a/src/openvpn/pf-inline.h b/src/openvpn/pf-inline.h
>> index ac19ac4c..0db7b262 100644
>> --- a/src/openvpn/pf-inline.h
>> +++ b/src/openvpn/pf-inline.h
>> @@ -24,6 +24,8 @@
>> #if defined(ENABLE_PF) && !defined(PF_INLINE_H)
>> #define PF_INLINE_H
>>
>> +#include "pf.h"
>> +
>
> This one seems to still be somewhat independent of pf.h, but let's merge
> these too.
Yeah.
>
>> /*
>> * Inline functions
>> */
>> @@ -33,8 +35,6 @@
>> static inline bool
>> pf_c2c_test(const struct context *src, const struct context *dest, const
>> char *prefix)
>> {
>> - bool pf_cn_test(struct pf_set *pfs, const struct tls_multi *tm, const
>> int type, const char *prefix);
>> -
>> return (!src->c2.pf.enabled || pf_cn_test(src->c2.pf.pfs,
>> dest->c2.tls_multi, PCT_DEST, prefix))
>> && (!dest->c2.pf.enabled || pf_cn_test(dest->c2.pf.pfs,
>> src->c2.tls_multi, PCT_SRC, prefix));
>> }
>> @@ -42,8 +42,6 @@ pf_c2c_test(const struct context *src, const struct
>> context *dest, const char *p
>> static inline bool
>> pf_addr_test(const struct context *src, const struct mroute_addr *dest,
>> const char *prefix)
>> {
>> - bool pf_addr_test_dowork(const struct context *src, const struct
>> mroute_addr *dest, const char *prefix);
>> -
>> if (src->c2.pf.enabled)
>> {
>> return pf_addr_test_dowork(src, dest, prefix);
>> diff --git a/src/openvpn/pf.h b/src/openvpn/pf.h
>> index 414c85b8..f6a3b61e 100644
>> --- a/src/openvpn/pf.h
>> +++ b/src/openvpn/pf.h
>> @@ -101,4 +101,10 @@ void pf_context_print(const struct pf_context *pfc,
>> const char *prefix, const in
>>
>> #endif
>>
>> +bool pf_cn_test(struct pf_set *pfs, const struct tls_multi *tm, const int
>> type,
>> + const char *prefix);
>> +
>> +bool pf_addr_test_dowork(const struct context *src,
>> + const struct mroute_addr *dest, const char
>> *prefix);
>> +
>> #endif /* if defined(ENABLE_PF) && !defined(OPENVPN_PF_H) */
>> diff --git a/src/openvpn/ping-inline.h b/src/openvpn/ping-inline.h
>> index 0642b851..9d590dc4 100644
>> --- a/src/openvpn/ping-inline.h
>> +++ b/src/openvpn/ping-inline.h
>> @@ -24,6 +24,8 @@
>> #ifndef PING_INLINE_H
>> #define PING_INLINE_H
>>
>> +#include "ping.h"
>> +
>
> As for pf.h
>
>> /*
>> * Should we exit or restart due to ping (or other authenticated packet)
>> * not received in n seconds?
>> @@ -31,8 +33,6 @@
>> static inline void
>> check_ping_restart(struct context *c)
>> {
>> - void check_ping_restart_dowork(struct context *c);
>> -
>> if (c->options.ping_rec_timeout
>> && event_timeout_trigger(&c->c2.ping_rec_interval,
>> &c->c2.timeval,
>> @@ -50,8 +50,6 @@ check_ping_restart(struct context *c)
>> static inline void
>> check_ping_send(struct context *c)
>> {
>> - void check_ping_send_dowork(struct context *c);
>> -
>> if (c->options.ping_send_timeout
>> && event_timeout_trigger(&c->c2.ping_send_interval,
>> &c->c2.timeval,
>> diff --git a/src/openvpn/ping.h b/src/openvpn/ping.h
>> index 5bd5c089..66c3a54f 100644
>> --- a/src/openvpn/ping.h
>> +++ b/src/openvpn/ping.h
>> @@ -43,4 +43,8 @@ is_ping_msg(const struct buffer *buf)
>> return buf_string_match(buf, ping_string, PING_STRING_SIZE);
>> }
>>
>> +void check_ping_restart_dowork(struct context *c);
>> +
>> +void check_ping_send_dowork(struct context *c);
>> +
>> #endif
>> diff --git a/src/openvpn/plugin.h b/src/openvpn/plugin.h
>> index 818b6285..67549cda 100644
>> --- a/src/openvpn/plugin.h
>> +++ b/src/openvpn/plugin.h
>> @@ -216,4 +216,6 @@ plugin_call(const struct plugin_list *pl,
>> );
>> }
>>
>> +void plugin_abort(void);
>> +
>> #endif /* OPENVPN_PLUGIN_H */
>> diff --git a/src/openvpn/socket.h b/src/openvpn/socket.h
>> index 81e9e9ae..13b94606 100644
>> --- a/src/openvpn/socket.h
>> +++ b/src/openvpn/socket.h
>> @@ -1021,11 +1021,11 @@ void stream_buf_close(struct stream_buf *sb);
>>
>> bool stream_buf_added(struct stream_buf *sb, int length_added);
>>
>> +bool stream_buf_read_setup_dowork(struct link_socket *sock);
>> +
>> static inline bool
>> stream_buf_read_setup(struct link_socket *sock)
>> {
>> - bool stream_buf_read_setup_dowork(struct link_socket *sock);
>> -
>> if (link_socket_connection_oriented(sock))
>> {
>> return stream_buf_read_setup_dowork(sock);
>> @@ -1130,16 +1130,17 @@ link_socket_write_win32(struct link_socket *sock,
>>
>> #else /* ifdef _WIN32 */
>>
>> +size_t link_socket_write_udp_posix_sendmsg(struct link_socket *sock,
>> + struct buffer *buf,
>> + struct link_socket_actual *to);
>> +
>> +
>> static inline size_t
>> link_socket_write_udp_posix(struct link_socket *sock,
>> struct buffer *buf,
>> struct link_socket_actual *to)
>> {
>> #if ENABLE_IP_PKTINFO
>> - size_t link_socket_write_udp_posix_sendmsg(struct link_socket *sock,
>> - struct buffer *buf,
>> - struct link_socket_actual
>> *to);
>> -
>> if (proto_is_udp(sock->info.proto) && (sock->sockflags &
>> SF_USE_IP_PKTINFO)
>> && addr_defined_ipi(to))
>> {
>>
>
> Curious whether you agree with me.
Yeah, I do. As I said above, in the past there was a reason for having
the -forward.h files that did not depend on the plain .h. I remember I
have tried to get rid of the -forward.h already but something exploded.
Now it seems merging should just work.
I'll send two new patches soon.
Thanks for reviewing!
Cheers,
>
> -Steffan
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Openvpn-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/openvpn-devel
>
--
Antonio Quartulli
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Openvpn-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openvpn-devel
