30 int forward_equals(
const struct Forward *,
const struct Forward *);
33 struct ForwardOptions {
35 mode_t streamlocal_bind_mask;
36 int streamlocal_bind_unlink;
42 char *strdelim(
char **);
43 int set_nonblock(
int);
44 int unset_nonblock(
int);
45 void set_nodelay(
int);
46 int a2port(
const char *);
47 int a2tun(
const char *,
int *);
48 char *put_host_port(
const char *, u_short);
49 char *hpdelim(
char **);
50 char *cleanhostname(
char *);
52 int parse_user_host_port(
const char *,
char **,
char **,
int *);
53 long convtime(
const char *);
54 char *tilde_expand_filename(
const char *, uid_t);
55 char *percent_expand(
const char *, ...) __attribute__((__sentinel__));
56 char *tohex(const
void *,
size_t);
57 void sanitise_stdfd(
void);
58 void ms_subtract_diff(struct timeval *,
int *);
59 void ms_to_timeval(struct timeval *,
int);
60 time_t monotime(
void);
61 double monotime_double(
void);
62 void lowercase(
char *s);
63 int unix_listener(const
char *,
int,
int);
65 void sock_set_v6only(
int);
67 struct passwd *pwcopy(struct passwd *);
68 void pwfree(struct passwd *);
69 const
char *ssh_gai_strerror(
int);
71 typedef struct arglist arglist;
77 void addargs(arglist *,
char *, ...)
78 __attribute__((format(printf, 2, 3)));
79 void replacearg(arglist *, u_int,
char *, ...)
80 __attribute__((format(printf, 3, 4)));
81 void freeargs(arglist *);
83 int tun_open(
int,
int);
86 #define SSH_TUNMODE_NO 0x00 87 #define SSH_TUNMODE_POINTOPOINT 0x01 88 #define SSH_TUNMODE_ETHERNET 0x02 89 #define SSH_TUNMODE_DEFAULT SSH_TUNMODE_POINTOPOINT 90 #define SSH_TUNMODE_YES (SSH_TUNMODE_POINTOPOINT|SSH_TUNMODE_ETHERNET) 92 #define SSH_TUNID_ANY 0x7fffffff 93 #define SSH_TUNID_ERR (SSH_TUNID_ANY - 1) 94 #define SSH_TUNID_MAX (SSH_TUNID_ANY - 2) 97 #define PORT_STREAMLOCAL -2 100 u_int64_t get_u64(
const void *)
101 __attribute__((__bounded__( __minbytes__, 1, 8)));
102 u_int32_t get_u32(
const void *)
103 __attribute__((__bounded__( __minbytes__, 1, 4)));
104 u_int16_t get_u16(
const void *)
105 __attribute__((__bounded__( __minbytes__, 1, 2)));
106 void put_u64(
void *, u_int64_t)
107 __attribute__((__bounded__( __minbytes__, 1, 8)));
108 void put_u32(
void *, u_int32_t)
109 __attribute__((__bounded__( __minbytes__, 1, 4)));
110 void put_u16(
void *, u_int16_t)
111 __attribute__((__bounded__( __minbytes__, 1, 2)));
114 u_int32_t get_u32_le(
const void *)
115 __attribute__((__bounded__(__minbytes__, 1, 4)));
116 void put_u32_le(
void *, u_int32_t)
117 __attribute__((__bounded__(__minbytes__, 1, 4)));
121 u_int64_t rate, thresh, lamt;
122 struct timeval bwstart, bwend;
125 void bandwidth_limit_init(
struct bwlimit *, u_int64_t,
size_t);
126 void bandwidth_limit(
struct bwlimit *,
size_t);
128 int parse_ipqos(
const char *);
129 const char *iptos2str(
int);
130 void mktemp_proto(
char *,
size_t);
134 #define RP_ECHO 0x0001 135 #define RP_ALLOW_STDIN 0x0002 136 #define RP_ALLOW_EOF 0x0004 137 #define RP_USE_ASKPASS 0x0008 139 char *read_passphrase(
const char *,
int);
140 int ask_permission(
const char *, ...) __attribute__((format(printf, 1, 2)));
141 int read_keyfile_line(FILE *, const
char *,
char *,
size_t, u_long *);
143 #define MINIMUM(a, b) (((a) < (b)) ? (a) : (b)) 144 #define MAXIMUM(a, b) (((a) > (b)) ? (a) : (b)) 145 #define ROUNDUP(x, y) ((((x)+((y)-1))/(y))*(y))