- hent = gethostbyname(target->name);
- if (hent == NULL) {
- fprintf(stderr, "%s: could not resolve host %s\n",
- progname, target->name);
- return 0;
+ /* don't waste time being confused by non-hostname tokens
+ in .ssh/known_hosts */
+ if (!strcmp (target->name, "ssh-rsa") ||
+ !strcmp (target->name, "ssh-dsa") ||
+ !strcmp (target->name, "ssh-dss") ||
+ strlen (target->name) >= 80)
+ return 0;
+
+ hent = gethostbyname (target->name);
+ if (!hent)
+ {
+ fprintf (stderr, "%s: could not resolve host: %s\n",
+ progname, target->name);
+ return 0;
+ }
+
+ memcpy (&iaddr->sin_addr, hent->h_addr_list[0],
+ sizeof(iaddr->sin_addr));
+
+ if (debug_p > 1)
+ {
+ unsigned int a, b, c, d;
+ unpack_addr (iaddr->sin_addr.s_addr, &a, &b, &c, &d);
+ fprintf (stderr, "%s: %s => %d.%d.%d.%d\n",
+ progname, target->name, a, b, c, d);
+ }