-/* $OpenBSD: ssh-keyscan.c,v 1.76 2008/04/30 10:14:03 djm Exp $ */
+/* $OpenBSD: ssh-keyscan.c,v 1.80 2009/12/25 19:40:21 stevesk Exp $ */
/*
* Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
*
int maxfd;
#define MAXCON (maxfd - 10)
+/* The default routing domain */
+int scan_rdomain = -1;
+
extern char *__progname;
fd_set *read_wait;
size_t read_wait_nfdset;
if ((gaierr = getaddrinfo(host, strport, &hints, &aitop)) != 0)
fatal("getaddrinfo %s: %s", host, ssh_gai_strerror(gaierr));
for (ai = aitop; ai; ai = ai->ai_next) {
- s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
+ s = socket_rdomain(ai->ai_family, ai->ai_socktype,
+ ai->ai_protocol, scan_rdomain);
if (s < 0) {
error("socket: %s", strerror(errno));
continue;
static void
usage(void)
{
- fprintf(stderr, "usage: %s [-46Hv] [-f file] [-p port] [-T timeout] [-t type]\n"
- "\t\t [host | addrlist namelist] [...]\n",
+ fprintf(stderr,
+ "usage: %s [-46Hv] [-f file] [-p port] [-T timeout] [-t type]\n"
+ "\t\t [-V rdomain] [host | addrlist namelist] ...\n",
__progname);
exit(1);
}
if (argc <= 1)
usage();
- while ((opt = getopt(argc, argv, "Hv46p:T:t:f:")) != -1) {
+ while ((opt = getopt(argc, argv, "Hv46p:T:t:f:V:")) != -1) {
switch (opt) {
case 'H':
hash_hosts = 1;
break;
case 'p':
ssh_port = a2port(optarg);
- if (ssh_port == 0) {
+ if (ssh_port <= 0) {
fprintf(stderr, "Bad port '%s'\n", optarg);
exit(1);
}
case '6':
IPv4or6 = AF_INET6;
break;
+ case 'V':
+#ifdef USE_ROUTINGDOMAIN
+ scan_rdomain = a2rdomain(optarg);
+ if (scan_rdomain == -1) {
+ fprintf(stderr, "Bad rdomain '%s'\n", optarg);
+ exit(1);
+ }
+#else
+ fprintf(stderr, "RoutingDomain not supported on this "
+ "platform.\n");
+ exit(1);
+#endif
+ break;
case '?':
default:
usage();