|
Lines 131-136
typedef enum {
Link Here
|
| 131 |
oSendEnv, oControlPath, oControlMaster, oHashKnownHosts, |
131 |
oSendEnv, oControlPath, oControlMaster, oHashKnownHosts, |
| 132 |
oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand, |
132 |
oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand, |
| 133 |
oVisualHostKey, oUseRoaming, oZeroKnowledgePasswordAuthentication, |
133 |
oVisualHostKey, oUseRoaming, oZeroKnowledgePasswordAuthentication, |
|
|
134 |
oUseQoS, |
| 134 |
oDeprecated, oUnsupported |
135 |
oDeprecated, oUnsupported |
| 135 |
} OpCodes; |
136 |
} OpCodes; |
| 136 |
|
137 |
|
|
Lines 138-244
typedef enum {
Link Here
|
| 138 |
|
139 |
|
| 139 |
static struct { |
140 |
static struct { |
| 140 |
const char *name; |
141 |
const char *name; |
|
|
142 |
int restricted; |
| 141 |
OpCodes opcode; |
143 |
OpCodes opcode; |
| 142 |
} keywords[] = { |
144 |
} keywords[] = { |
| 143 |
{ "forwardagent", oForwardAgent }, |
145 |
{ "forwardagent", 0, oForwardAgent }, |
| 144 |
{ "forwardx11", oForwardX11 }, |
146 |
{ "forwardx11", 0, oForwardX11 }, |
| 145 |
{ "forwardx11trusted", oForwardX11Trusted }, |
147 |
{ "forwardx11trusted", 0, oForwardX11Trusted }, |
| 146 |
{ "exitonforwardfailure", oExitOnForwardFailure }, |
148 |
{ "exitonforwardfailure", 0, oExitOnForwardFailure }, |
| 147 |
{ "xauthlocation", oXAuthLocation }, |
149 |
{ "xauthlocation", 0, oXAuthLocation }, |
| 148 |
{ "gatewayports", oGatewayPorts }, |
150 |
{ "gatewayports", 0, oGatewayPorts }, |
| 149 |
{ "useprivilegedport", oUsePrivilegedPort }, |
151 |
{ "useprivilegedport", 0, oUsePrivilegedPort }, |
| 150 |
{ "rhostsauthentication", oDeprecated }, |
152 |
{ "rhostsauthentication", 0, oDeprecated }, |
| 151 |
{ "passwordauthentication", oPasswordAuthentication }, |
153 |
{ "passwordauthentication", 0, oPasswordAuthentication }, |
| 152 |
{ "kbdinteractiveauthentication", oKbdInteractiveAuthentication }, |
154 |
{ "kbdinteractiveauthentication", 0, oKbdInteractiveAuthentication }, |
| 153 |
{ "kbdinteractivedevices", oKbdInteractiveDevices }, |
155 |
{ "kbdinteractivedevices", 0, oKbdInteractiveDevices }, |
| 154 |
{ "rsaauthentication", oRSAAuthentication }, |
156 |
{ "rsaauthentication", 0, oRSAAuthentication }, |
| 155 |
{ "pubkeyauthentication", oPubkeyAuthentication }, |
157 |
{ "pubkeyauthentication", 0, oPubkeyAuthentication }, |
| 156 |
{ "dsaauthentication", oPubkeyAuthentication }, /* alias */ |
158 |
{ "dsaauthentication", 0, oPubkeyAuthentication }, /* alias */ |
| 157 |
{ "rhostsrsaauthentication", oRhostsRSAAuthentication }, |
159 |
{ "rhostsrsaauthentication", 0, oRhostsRSAAuthentication }, |
| 158 |
{ "hostbasedauthentication", oHostbasedAuthentication }, |
160 |
{ "hostbasedauthentication", 0, oHostbasedAuthentication }, |
| 159 |
{ "challengeresponseauthentication", oChallengeResponseAuthentication }, |
161 |
{ "challengeresponseauthentication", 0, oChallengeResponseAuthentication }, |
| 160 |
{ "skeyauthentication", oChallengeResponseAuthentication }, /* alias */ |
162 |
{ "skeyauthentication", 0, oChallengeResponseAuthentication }, /* alias */ |
| 161 |
{ "tisauthentication", oChallengeResponseAuthentication }, /* alias */ |
163 |
{ "tisauthentication", 0, oChallengeResponseAuthentication }, /* alias */ |
| 162 |
{ "kerberosauthentication", oUnsupported }, |
164 |
{ "kerberosauthentication", 0, oUnsupported }, |
| 163 |
{ "kerberostgtpassing", oUnsupported }, |
165 |
{ "kerberostgtpassing", 0, oUnsupported }, |
| 164 |
{ "afstokenpassing", oUnsupported }, |
166 |
{ "afstokenpassing", 0, oUnsupported }, |
| 165 |
#if defined(GSSAPI) |
167 |
#if defined(GSSAPI) |
| 166 |
{ "gssapiauthentication", oGssAuthentication }, |
168 |
{ "gssapiauthentication", 0, oGssAuthentication }, |
| 167 |
{ "gssapidelegatecredentials", oGssDelegateCreds }, |
169 |
{ "gssapidelegatecredentials", 0, oGssDelegateCreds }, |
| 168 |
#else |
170 |
#else |
| 169 |
{ "gssapiauthentication", oUnsupported }, |
171 |
{ "gssapiauthentication", 0, oUnsupported }, |
| 170 |
{ "gssapidelegatecredentials", oUnsupported }, |
172 |
{ "gssapidelegatecredentials", 0, oUnsupported }, |
| 171 |
#endif |
173 |
#endif |
| 172 |
{ "fallbacktorsh", oDeprecated }, |
174 |
{ "fallbacktorsh", 0, oDeprecated }, |
| 173 |
{ "usersh", oDeprecated }, |
175 |
{ "usersh", 0, oDeprecated }, |
| 174 |
{ "identityfile", oIdentityFile }, |
176 |
{ "identityfile", 0, oIdentityFile }, |
| 175 |
{ "identityfile2", oIdentityFile }, /* obsolete */ |
177 |
{ "identityfile2", 0, oIdentityFile }, /* obsolete */ |
| 176 |
{ "identitiesonly", oIdentitiesOnly }, |
178 |
{ "identitiesonly", 0, oIdentitiesOnly }, |
| 177 |
{ "hostname", oHostName }, |
179 |
{ "hostname", 0, oHostName }, |
| 178 |
{ "hostkeyalias", oHostKeyAlias }, |
180 |
{ "hostkeyalias", 0, oHostKeyAlias }, |
| 179 |
{ "proxycommand", oProxyCommand }, |
181 |
{ "proxycommand", 0, oProxyCommand }, |
| 180 |
{ "port", oPort }, |
182 |
{ "port", 0, oPort }, |
| 181 |
{ "cipher", oCipher }, |
183 |
{ "cipher", 0, oCipher }, |
| 182 |
{ "ciphers", oCiphers }, |
184 |
{ "ciphers", 0, oCiphers }, |
| 183 |
{ "macs", oMacs }, |
185 |
{ "macs", 0, oMacs }, |
| 184 |
{ "protocol", oProtocol }, |
186 |
{ "protocol", 0, oProtocol }, |
| 185 |
{ "remoteforward", oRemoteForward }, |
187 |
{ "remoteforward", 0, oRemoteForward }, |
| 186 |
{ "localforward", oLocalForward }, |
188 |
{ "localforward", 0, oLocalForward }, |
| 187 |
{ "user", oUser }, |
189 |
{ "user", 0, oUser }, |
| 188 |
{ "host", oHost }, |
190 |
{ "host", 0, oHost }, |
| 189 |
{ "escapechar", oEscapeChar }, |
191 |
{ "escapechar", 0, oEscapeChar }, |
| 190 |
{ "globalknownhostsfile", oGlobalKnownHostsFile }, |
192 |
{ "globalknownhostsfile", 0, oGlobalKnownHostsFile }, |
| 191 |
{ "globalknownhostsfile2", oGlobalKnownHostsFile2 }, /* obsolete */ |
193 |
{ "globalknownhostsfile2", 0, oGlobalKnownHostsFile2 }, /* obsolete */ |
| 192 |
{ "userknownhostsfile", oUserKnownHostsFile }, |
194 |
{ "userknownhostsfile", 0, oUserKnownHostsFile }, |
| 193 |
{ "userknownhostsfile2", oUserKnownHostsFile2 }, /* obsolete */ |
195 |
{ "userknownhostsfile2", 0, oUserKnownHostsFile2 }, /* obsolete */ |
| 194 |
{ "connectionattempts", oConnectionAttempts }, |
196 |
{ "connectionattempts", 0, oConnectionAttempts }, |
| 195 |
{ "batchmode", oBatchMode }, |
197 |
{ "batchmode", 0, oBatchMode }, |
| 196 |
{ "checkhostip", oCheckHostIP }, |
198 |
{ "checkhostip", 0, oCheckHostIP }, |
| 197 |
{ "stricthostkeychecking", oStrictHostKeyChecking }, |
199 |
{ "stricthostkeychecking", 0, oStrictHostKeyChecking }, |
| 198 |
{ "compression", oCompression }, |
200 |
{ "compression", 0, oCompression }, |
| 199 |
{ "compressionlevel", oCompressionLevel }, |
201 |
{ "compressionlevel", 0, oCompressionLevel }, |
| 200 |
{ "tcpkeepalive", oTCPKeepAlive }, |
202 |
{ "tcpkeepalive", 0, oTCPKeepAlive }, |
| 201 |
{ "keepalive", oTCPKeepAlive }, /* obsolete */ |
203 |
{ "keepalive", 0, oTCPKeepAlive }, /* obsolete */ |
| 202 |
{ "numberofpasswordprompts", oNumberOfPasswordPrompts }, |
204 |
{ "numberofpasswordprompts", 0, oNumberOfPasswordPrompts }, |
| 203 |
{ "loglevel", oLogLevel }, |
205 |
{ "loglevel", 0, oLogLevel }, |
| 204 |
{ "dynamicforward", oDynamicForward }, |
206 |
{ "dynamicforward", 0, oDynamicForward }, |
| 205 |
{ "preferredauthentications", oPreferredAuthentications }, |
207 |
{ "preferredauthentications", 0, oPreferredAuthentications }, |
| 206 |
{ "hostkeyalgorithms", oHostKeyAlgorithms }, |
208 |
{ "hostkeyalgorithms", 0, oHostKeyAlgorithms }, |
| 207 |
{ "bindaddress", oBindAddress }, |
209 |
{ "bindaddress", 0, oBindAddress }, |
| 208 |
#ifdef ENABLE_PKCS11 |
210 |
#ifdef ENABLE_PKCS11 |
| 209 |
{ "smartcarddevice", oPKCS11Provider }, |
211 |
{ "smartcarddevice", 0, oPKCS11Provider }, |
| 210 |
{ "pkcs11provider", oPKCS11Provider }, |
212 |
{ "pkcs11provider", 0, oPKCS11Provider }, |
| 211 |
#else |
213 |
#else |
| 212 |
{ "smartcarddevice", oUnsupported }, |
214 |
{ "smartcarddevice", 0, oUnsupported }, |
| 213 |
{ "pkcs11provider", oUnsupported }, |
215 |
{ "pkcs11provider", 0, oUnsupported }, |
| 214 |
#endif |
216 |
#endif |
| 215 |
{ "clearallforwardings", oClearAllForwardings }, |
217 |
{ "clearallforwardings", 0, oClearAllForwardings }, |
| 216 |
{ "enablesshkeysign", oEnableSSHKeysign }, |
218 |
{ "enablesshkeysign", 0, oEnableSSHKeysign }, |
| 217 |
{ "verifyhostkeydns", oVerifyHostKeyDNS }, |
219 |
{ "verifyhostkeydns", 0, oVerifyHostKeyDNS }, |
| 218 |
{ "nohostauthenticationforlocalhost", oNoHostAuthenticationForLocalhost }, |
220 |
{ "nohostauthenticationforlocalhost", 0, oNoHostAuthenticationForLocalhost }, |
| 219 |
{ "rekeylimit", oRekeyLimit }, |
221 |
{ "rekeylimit", 0, oRekeyLimit }, |
| 220 |
{ "connecttimeout", oConnectTimeout }, |
222 |
{ "connecttimeout", 0, oConnectTimeout }, |
| 221 |
{ "addressfamily", oAddressFamily }, |
223 |
{ "addressfamily", 0, oAddressFamily }, |
| 222 |
{ "serveraliveinterval", oServerAliveInterval }, |
224 |
{ "serveraliveinterval", 0, oServerAliveInterval }, |
| 223 |
{ "serveralivecountmax", oServerAliveCountMax }, |
225 |
{ "serveralivecountmax", 0, oServerAliveCountMax }, |
| 224 |
{ "sendenv", oSendEnv }, |
226 |
{ "sendenv", 0, oSendEnv }, |
| 225 |
{ "controlpath", oControlPath }, |
227 |
{ "controlpath", 0, oControlPath }, |
| 226 |
{ "controlmaster", oControlMaster }, |
228 |
{ "controlmaster", 0, oControlMaster }, |
| 227 |
{ "hashknownhosts", oHashKnownHosts }, |
229 |
{ "hashknownhosts", 0, oHashKnownHosts }, |
| 228 |
{ "tunnel", oTunnel }, |
230 |
{ "tunnel", 0, oTunnel }, |
| 229 |
{ "tunneldevice", oTunnelDevice }, |
231 |
{ "tunneldevice", 0, oTunnelDevice }, |
| 230 |
{ "localcommand", oLocalCommand }, |
232 |
{ "localcommand", 0, oLocalCommand }, |
| 231 |
{ "permitlocalcommand", oPermitLocalCommand }, |
233 |
{ "permitlocalcommand", 0, oPermitLocalCommand }, |
| 232 |
{ "visualhostkey", oVisualHostKey }, |
234 |
{ "visualhostkey", 0, oVisualHostKey }, |
| 233 |
{ "useroaming", oUseRoaming }, |
235 |
{ "useroaming", 0, oUseRoaming }, |
|
|
236 |
{ "useqos", 1, oUseQoS}, |
| 234 |
#ifdef JPAKE |
237 |
#ifdef JPAKE |
| 235 |
{ "zeroknowledgepasswordauthentication", |
238 |
{ "zeroknowledgepasswordauthentication", 0, |
| 236 |
oZeroKnowledgePasswordAuthentication }, |
239 |
oZeroKnowledgePasswordAuthentication }, |
| 237 |
#else |
240 |
#else |
| 238 |
{ "zeroknowledgepasswordauthentication", oUnsupported }, |
241 |
{ "zeroknowledgepasswordauthentication", 0, oUnsupported }, |
| 239 |
#endif |
242 |
#endif |
| 240 |
|
243 |
|
| 241 |
{ NULL, oBadOption } |
244 |
{ NULL, 0, oBadOption } |
| 242 |
}; |
245 |
}; |
| 243 |
|
246 |
|
| 244 |
/* |
247 |
/* |
|
Lines 310-328
clear_forwardings(Options *options)
Link Here
|
| 310 |
*/ |
313 |
*/ |
| 311 |
|
314 |
|
| 312 |
static OpCodes |
315 |
static OpCodes |
| 313 |
parse_token(const char *cp, const char *filename, int linenum) |
316 |
parse_token(const char *cp, const char *filename, int linenum, int *restricted) |
| 314 |
{ |
317 |
{ |
| 315 |
u_int i; |
318 |
u_int i; |
| 316 |
|
319 |
|
| 317 |
for (i = 0; keywords[i].name; i++) |
320 |
for (i = 0; keywords[i].name; i++) |
| 318 |
if (strcasecmp(cp, keywords[i].name) == 0) |
321 |
if (strcasecmp(cp, keywords[i].name) == 0) { |
|
|
322 |
*restricted= keywords[i].restricted; |
| 319 |
return keywords[i].opcode; |
323 |
return keywords[i].opcode; |
|
|
324 |
} |
| 320 |
|
325 |
|
| 321 |
error("%s: line %d: Bad configuration option: %s", |
326 |
error("%s: line %d: Bad configuration option: %s", |
| 322 |
filename, linenum, cp); |
327 |
filename, linenum, cp); |
| 323 |
return oBadOption; |
328 |
return oBadOption; |
| 324 |
} |
329 |
} |
| 325 |
|
330 |
|
|
|
331 |
struct { |
| 332 |
const char *name; |
| 333 |
int value; |
| 334 |
} qos[] = { |
| 335 |
{ "cs0", IPTOS_CLASS_CS0 }, |
| 336 |
{ "cs1", IPTOS_CLASS_CS1 }, |
| 337 |
{ "cs2", IPTOS_CLASS_CS2 }, |
| 338 |
{ "cs3", IPTOS_CLASS_CS3 }, |
| 339 |
{ "cs4", IPTOS_CLASS_CS4 }, |
| 340 |
{ "cs5", IPTOS_CLASS_CS5 }, |
| 341 |
{ "cs6", IPTOS_CLASS_CS6 }, |
| 342 |
{ "cs7", IPTOS_CLASS_CS7 }, |
| 343 |
{ "af11", IPTOS_DSCP_AF11 }, |
| 344 |
{ "af12", IPTOS_DSCP_AF12 }, |
| 345 |
{ "af13", IPTOS_DSCP_AF13 }, |
| 346 |
{ "af21", IPTOS_DSCP_AF21 }, |
| 347 |
{ "af22", IPTOS_DSCP_AF22 }, |
| 348 |
{ "af23", IPTOS_DSCP_AF23 }, |
| 349 |
{ "af31", IPTOS_DSCP_AF31 }, |
| 350 |
{ "af32", IPTOS_DSCP_AF32 }, |
| 351 |
{ "af33", IPTOS_DSCP_AF33 }, |
| 352 |
{ "af41", IPTOS_DSCP_AF41 }, |
| 353 |
{ "af42", IPTOS_DSCP_AF42 }, |
| 354 |
{ "af43", IPTOS_DSCP_AF43 }, |
| 355 |
{ "ef", IPTOS_DSCP_EF }, |
| 356 |
{ "lowdelay", IPTOS_LOWDELAY }, |
| 357 |
{ "throughput", IPTOS_THROUGHPUT }, |
| 358 |
{ "reliability", IPTOS_RELIABILITY }, |
| 359 |
{ "lowcost", IPTOS_LOWCOST }, |
| 360 |
{ "mincost", IPTOS_MINCOST }, |
| 361 |
{ NULL, -1 }, |
| 362 |
}; |
| 363 |
|
| 364 |
static int parse_qos(const char *cp) |
| 365 |
{ |
| 366 |
u_int i; |
| 367 |
|
| 368 |
for (i = 0; qos[i].name; i++) |
| 369 |
if (strcasecmp(cp, qos[i].name) == 0) |
| 370 |
return qos[i].value; |
| 371 |
return -1; |
| 372 |
} |
| 373 |
|
| 326 |
/* |
374 |
/* |
| 327 |
* Processes a single option line as used in the configuration files. This |
375 |
* Processes a single option line as used in the configuration files. This |
| 328 |
* only sets those values that have not already been set. |
376 |
* only sets those values that have not already been set. |
|
Lines 332-341
parse_token(const char *cp, const char *
Link Here
|
| 332 |
int |
380 |
int |
| 333 |
process_config_line(Options *options, const char *host, |
381 |
process_config_line(Options *options, const char *host, |
| 334 |
char *line, const char *filename, int linenum, |
382 |
char *line, const char *filename, int linenum, |
| 335 |
int *activep) |
383 |
int *activep, int systemwide) |
| 336 |
{ |
384 |
{ |
| 337 |
char *s, **charptr, *endofnumber, *keyword, *arg, *arg2, fwdarg[256]; |
385 |
char *s, **charptr, *endofnumber, *keyword, *arg, *arg2, fwdarg[256]; |
| 338 |
int opcode, *intptr, value, value2, scale; |
386 |
int opcode, *intptr, value, value2, scale, restricted; |
| 339 |
LogLevel *log_level_ptr; |
387 |
LogLevel *log_level_ptr; |
| 340 |
long long orig, val64; |
388 |
long long orig, val64; |
| 341 |
size_t len; |
389 |
size_t len; |
|
Lines 358-364
process_config_line(Options *options, co
Link Here
|
| 358 |
if (keyword == NULL || !*keyword || *keyword == '\n' || *keyword == '#') |
406 |
if (keyword == NULL || !*keyword || *keyword == '\n' || *keyword == '#') |
| 359 |
return 0; |
407 |
return 0; |
| 360 |
|
408 |
|
| 361 |
opcode = parse_token(keyword, filename, linenum); |
409 |
opcode = parse_token(keyword, filename, linenum, &restricted); |
|
|
410 |
|
| 411 |
if (restricted && !systemwide) { |
| 412 |
fatal("%s line %d: not permitted in user profile.", filename, linenum); |
| 413 |
} |
| 362 |
|
414 |
|
| 363 |
switch (opcode) { |
415 |
switch (opcode) { |
| 364 |
case oBadOption: |
416 |
case oBadOption: |
|
Lines 921-926
parse_int:
Link Here
|
| 921 |
intptr = &options->use_roaming; |
973 |
intptr = &options->use_roaming; |
| 922 |
goto parse_flag; |
974 |
goto parse_flag; |
| 923 |
|
975 |
|
|
|
976 |
case oUseQoS: |
| 977 |
arg = strdelim(&s); |
| 978 |
if (arg == NULL || *arg == '\0') |
| 979 |
fatal("%.200s line %d: Missing non-interactive QoS argument.", |
| 980 |
filename, linenum); |
| 981 |
|
| 982 |
arg2 = strdelim(&s); |
| 983 |
if (arg2 == NULL || *arg2 == '\0') |
| 984 |
fatal("%.200s line %d: Missing interactive QoS argument.", |
| 985 |
filename, linenum); |
| 986 |
|
| 987 |
value = parse_qos(arg); |
| 988 |
value2 = parse_qos(arg2); |
| 989 |
if (value == -1 || value2 == -1) |
| 990 |
fatal("%.200s line %d: Bad QoS argument.", |
| 991 |
filename, linenum); |
| 992 |
|
| 993 |
options->use_qos[0] = value; |
| 994 |
options->use_qos[1] = value2; |
| 995 |
break; |
| 996 |
|
| 924 |
case oDeprecated: |
997 |
case oDeprecated: |
| 925 |
debug("%s line %d: Deprecated option \"%s\"", |
998 |
debug("%s line %d: Deprecated option \"%s\"", |
| 926 |
filename, linenum, keyword); |
999 |
filename, linenum, keyword); |
|
Lines 952-958
parse_int:
Link Here
|
| 952 |
|
1025 |
|
| 953 |
int |
1026 |
int |
| 954 |
read_config_file(const char *filename, const char *host, Options *options, |
1027 |
read_config_file(const char *filename, const char *host, Options *options, |
| 955 |
int checkperm) |
1028 |
int checkperm, int systemwide) |
| 956 |
{ |
1029 |
{ |
| 957 |
FILE *f; |
1030 |
FILE *f; |
| 958 |
char line[1024]; |
1031 |
char line[1024]; |
|
Lines 983-989
read_config_file(const char *filename, c
Link Here
|
| 983 |
while (fgets(line, sizeof(line), f)) { |
1056 |
while (fgets(line, sizeof(line), f)) { |
| 984 |
/* Update line number counter. */ |
1057 |
/* Update line number counter. */ |
| 985 |
linenum++; |
1058 |
linenum++; |
| 986 |
if (process_config_line(options, host, line, filename, linenum, &active) != 0) |
1059 |
if (process_config_line(options, host, line, filename, linenum, &active, systemwide) != 0) |
| 987 |
bad_options++; |
1060 |
bad_options++; |
| 988 |
} |
1061 |
} |
| 989 |
fclose(f); |
1062 |
fclose(f); |
|
Lines 1071-1076
initialize_options(Options * options)
Link Here
|
| 1071 |
options->local_command = NULL; |
1144 |
options->local_command = NULL; |
| 1072 |
options->permit_local_command = -1; |
1145 |
options->permit_local_command = -1; |
| 1073 |
options->use_roaming = -1; |
1146 |
options->use_roaming = -1; |
|
|
1147 |
options->use_qos[0] = -1; |
| 1148 |
options->use_qos[1] = -1; |
| 1074 |
options->visual_host_key = -1; |
1149 |
options->visual_host_key = -1; |
| 1075 |
options->zero_knowledge_password_authentication = -1; |
1150 |
options->zero_knowledge_password_authentication = -1; |
| 1076 |
} |
1151 |
} |
|
Lines 1219-1224
fill_default_options(Options * options)
Link Here
|
| 1219 |
/* options->hostname will be set in the main program if appropriate */ |
1294 |
/* options->hostname will be set in the main program if appropriate */ |
| 1220 |
/* options->host_key_alias should not be set by default */ |
1295 |
/* options->host_key_alias should not be set by default */ |
| 1221 |
/* options->preferred_authentications will be set in ssh */ |
1296 |
/* options->preferred_authentications will be set in ssh */ |
|
|
1297 |
if (options->use_qos[0] == -1) |
| 1298 |
options->use_qos[0] = IPTOS_THROUGHPUT; |
| 1299 |
if (options->use_qos[1] == -1) |
| 1300 |
options->use_qos[1] = IPTOS_LOWDELAY; |
| 1222 |
} |
1301 |
} |
| 1223 |
|
1302 |
|
| 1224 |
/* |
1303 |
/* |