diff options
Diffstat (limited to 'misc.h')
-rw-r--r-- | misc.h | 31 |
1 files changed, 30 insertions, 1 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: misc.h,v 1.50 2013/10/14 23:28:23 djm Exp $ */ | 1 | /* $OpenBSD: misc.h,v 1.54 2014/07/15 15:54:14 millert Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -15,6 +15,25 @@ | |||
15 | #ifndef _MISC_H | 15 | #ifndef _MISC_H |
16 | #define _MISC_H | 16 | #define _MISC_H |
17 | 17 | ||
18 | /* Data structure for representing a forwarding request. */ | ||
19 | struct Forward { | ||
20 | char *listen_host; /* Host (address) to listen on. */ | ||
21 | int listen_port; /* Port to forward. */ | ||
22 | char *listen_path; /* Path to bind domain socket. */ | ||
23 | char *connect_host; /* Host to connect. */ | ||
24 | int connect_port; /* Port to connect on connect_host. */ | ||
25 | char *connect_path; /* Path to connect domain socket. */ | ||
26 | int allocated_port; /* Dynamically allocated listen port */ | ||
27 | int handle; /* Handle for dynamic listen ports */ | ||
28 | }; | ||
29 | |||
30 | /* Common server and client forwarding options. */ | ||
31 | struct ForwardOptions { | ||
32 | int gateway_ports; /* Allow remote connects to forwarded ports. */ | ||
33 | mode_t streamlocal_bind_mask; /* umask for streamlocal binds */ | ||
34 | int streamlocal_bind_unlink; /* unlink socket before bind */ | ||
35 | }; | ||
36 | |||
18 | /* misc.c */ | 37 | /* misc.c */ |
19 | 38 | ||
20 | char *chop(char *); | 39 | char *chop(char *); |
@@ -37,6 +56,7 @@ void ms_subtract_diff(struct timeval *, int *); | |||
37 | void ms_to_timeval(struct timeval *, int); | 56 | void ms_to_timeval(struct timeval *, int); |
38 | time_t monotime(void); | 57 | time_t monotime(void); |
39 | void lowercase(char *s); | 58 | void lowercase(char *s); |
59 | int unix_listener(const char *, int, int); | ||
40 | 60 | ||
41 | void sock_set_v6only(int); | 61 | void sock_set_v6only(int); |
42 | 62 | ||
@@ -68,6 +88,9 @@ int tun_open(int, int); | |||
68 | #define SSH_TUNID_ERR (SSH_TUNID_ANY - 1) | 88 | #define SSH_TUNID_ERR (SSH_TUNID_ANY - 1) |
69 | #define SSH_TUNID_MAX (SSH_TUNID_ANY - 2) | 89 | #define SSH_TUNID_MAX (SSH_TUNID_ANY - 2) |
70 | 90 | ||
91 | /* Fake port to indicate that host field is really a path. */ | ||
92 | #define PORT_STREAMLOCAL -2 | ||
93 | |||
71 | /* Functions to extract or store big-endian words of various sizes */ | 94 | /* Functions to extract or store big-endian words of various sizes */ |
72 | u_int64_t get_u64(const void *) | 95 | u_int64_t get_u64(const void *) |
73 | __attribute__((__bounded__( __minbytes__, 1, 8))); | 96 | __attribute__((__bounded__( __minbytes__, 1, 8))); |
@@ -82,6 +105,12 @@ void put_u32(void *, u_int32_t) | |||
82 | void put_u16(void *, u_int16_t) | 105 | void put_u16(void *, u_int16_t) |
83 | __attribute__((__bounded__( __minbytes__, 1, 2))); | 106 | __attribute__((__bounded__( __minbytes__, 1, 2))); |
84 | 107 | ||
108 | /* Little-endian store/load, used by umac.c */ | ||
109 | u_int32_t get_u32_le(const void *) | ||
110 | __attribute__((__bounded__(__minbytes__, 1, 4))); | ||
111 | void put_u32_le(void *, u_int32_t) | ||
112 | __attribute__((__bounded__(__minbytes__, 1, 4))); | ||
113 | |||
85 | struct bwlimit { | 114 | struct bwlimit { |
86 | size_t buflen; | 115 | size_t buflen; |
87 | u_int64_t rate, thresh, lamt; | 116 | u_int64_t rate, thresh, lamt; |