32 int forward_equals(
const struct Forward *,
const struct Forward *);
33 int bind_permitted(
int, uid_t);
37 struct ForwardOptions {
39 mode_t streamlocal_bind_mask;
40 int streamlocal_bind_unlink;
46 char *strdelim(
char **);
47 int set_nonblock(
int);
48 int unset_nonblock(
int);
49 void set_nodelay(
int);
50 int a2port(
const char *);
51 int a2tun(
const char *,
int *);
52 char *put_host_port(
const char *, u_short);
53 char *hpdelim(
char **);
54 char *cleanhostname(
char *);
56 int parse_user_host_port(
const char *,
char **,
char **,
int *);
57 long convtime(
const char *);
58 char *tilde_expand_filename(
const char *, uid_t);
59 char *percent_expand(
const char *, ...) __attribute__((__sentinel__));
60 char *tohex(const
void *,
size_t);
61 void sanitise_stdfd(
void);
62 void ms_subtract_diff(struct timeval *,
int *);
63 void ms_to_timeval(struct timeval *,
int);
64 time_t monotime(
void);
65 double monotime_double(
void);
66 void lowercase(
char *s);
67 int unix_listener(const
char *,
int,
int);
69 void sock_set_v6only(
int);
71 struct passwd *pwcopy(struct passwd *);
72 void pwfree(struct passwd *);
73 const
char *ssh_gai_strerror(
int);
75 typedef struct arglist arglist;
81 void addargs(arglist *,
char *, ...)
82 __attribute__((format(printf, 2, 3)));
83 void replacearg(arglist *, u_int,
char *, ...)
84 __attribute__((format(printf, 3, 4)));
85 void freeargs(arglist *);
87 int tun_open(
int,
int);
90 #define SSH_TUNMODE_NO 0x00 91 #define SSH_TUNMODE_POINTOPOINT 0x01 92 #define SSH_TUNMODE_ETHERNET 0x02 93 #define SSH_TUNMODE_DEFAULT SSH_TUNMODE_POINTOPOINT 94 #define SSH_TUNMODE_YES (SSH_TUNMODE_POINTOPOINT|SSH_TUNMODE_ETHERNET) 96 #define SSH_TUNID_ANY 0x7fffffff 97 #define SSH_TUNID_ERR (SSH_TUNID_ANY - 1) 98 #define SSH_TUNID_MAX (SSH_TUNID_ANY - 2) 101 #define PORT_STREAMLOCAL -2 104 u_int64_t get_u64(
const void *)
105 __attribute__((__bounded__( __minbytes__, 1, 8)));
106 u_int32_t get_u32(
const void *)
107 __attribute__((__bounded__( __minbytes__, 1, 4)));
108 u_int16_t get_u16(
const void *)
109 __attribute__((__bounded__( __minbytes__, 1, 2)));
110 void put_u64(
void *, u_int64_t)
111 __attribute__((__bounded__( __minbytes__, 1, 8)));
112 void put_u32(
void *, u_int32_t)
113 __attribute__((__bounded__( __minbytes__, 1, 4)));
114 void put_u16(
void *, u_int16_t)
115 __attribute__((__bounded__( __minbytes__, 1, 2)));
118 u_int32_t get_u32_le(
const void *)
119 __attribute__((__bounded__(__minbytes__, 1, 4)));
120 void put_u32_le(
void *, u_int32_t)
121 __attribute__((__bounded__(__minbytes__, 1, 4)));
125 u_int64_t rate, thresh, lamt;
126 struct timeval bwstart, bwend;
129 void bandwidth_limit_init(
struct bwlimit *, u_int64_t,
size_t);
130 void bandwidth_limit(
struct bwlimit *,
size_t);
132 int parse_ipqos(
const char *);
133 const char *iptos2str(
int);
134 void mktemp_proto(
char *,
size_t);
138 #define RP_ECHO 0x0001 139 #define RP_ALLOW_STDIN 0x0002 140 #define RP_ALLOW_EOF 0x0004 141 #define RP_USE_ASKPASS 0x0008 143 char *read_passphrase(
const char *,
int);
144 int ask_permission(
const char *, ...) __attribute__((format(printf, 1, 2)));
145 int read_keyfile_line(FILE *, const
char *,
char *,
size_t, u_long *);
147 #define MINIMUM(a, b) (((a) < (b)) ? (a) : (b)) 148 #define MAXIMUM(a, b) (((a) > (b)) ? (a) : (b)) 149 #define ROUNDUP(x, y) ((((x)+((y)-1))/(y))*(y))