/*
* Connect to specified host and port.
* Returns an error message, or NULL on success.
- * Also places the canonical host name into `realhost'.
+ * Also places the canonical host name into `realhost'. It must be
+ * freed by the caller.
*/
static char *connect_to_host(char *host, int port, char **realhost)
{
return err;
#ifdef FWHACK
- *realhost = FWhost;
+ *realhost = strdup(FWhost);
#endif
/*
break;
default:
if (((c >= ' ' && c <= '~') ||
- ((unsigned char) c >= 160)) && pos < 40) {
+ ((unsigned char) c >= 160))
+ && pos < sizeof(username)-1) {
username[pos++] = c;
c_write(&c, 1);
}
* because one was supplied on the command line
* which has already failed to work). Terminate.
*/
- logevent("No more passwords to try");
+ send_packet(SSH1_MSG_DISCONNECT,
+ PKT_STR, "No more passwords available to try",
+ PKT_END);
+ connection_fatal("Unable to authenticate");
ssh_state = SSH_STATE_CLOSED;
crReturn(1);
}
exit(0);
break;
default:
- if (((c >= ' ' && c <= '~') ||
- ((unsigned char) c >= 160))
- && pos < sizeof(password))
+ if (pos < sizeof(password)-1)
password[pos++] = c;
break;
}
break;
default:
if (((c >= ' ' && c <= '~') ||
- ((unsigned char) c >= 160)) && pos < 40) {
+ ((unsigned char) c >= 160))
+ && pos < sizeof(username)-1) {
username[pos++] = c;
c_write(&c, 1);
}
* command line which has already failed to
* work). Terminate.
*/
- logevent("No more passwords to try");
+ ssh2_pkt_init(SSH2_MSG_DISCONNECT);
+ ssh2_pkt_adduint32(SSH2_DISCONNECT_BY_APPLICATION);
+ ssh2_pkt_addstring
+ ("No more passwords available to try");
+ ssh2_pkt_addstring("en"); /* language tag */
+ ssh2_pkt_send();
+ connection_fatal("Unable to authenticate");
ssh_state = SSH_STATE_CLOSED;
crReturnV;
}
exit(0);
break;
default:
- if (((c >= ' ' && c <= '~') ||
- ((unsigned char) c >= 160))
- && pos < 40)
+ if (pos < sizeof(password)-1)
password[pos++] = c;
break;
}