Skip to content
Snippets Groups Projects
Commit 86650569 authored by deuce's avatar deuce
Browse files

If the SSH password is blank, prompt for it during connection.

parent 74470573
No related branches found
No related tags found
No related merge requests found
...@@ -294,8 +294,10 @@ int conn_connect(struct bbslist *bbs) ...@@ -294,8 +294,10 @@ int conn_connect(struct bbslist *bbs)
case CONN_TYPE_SSH: { case CONN_TYPE_SSH: {
int off=1; int off=1;
int status; int status;
char password[MAX_PASSWD_LEN+1];
ssh_active=FALSE; ssh_active=FALSE;
status=cl.CreateSession(&ssh_session, CRYPT_UNUSED, CRYPT_SESSION_SSH); status=cl.CreateSession(&ssh_session, CRYPT_UNUSED, CRYPT_SESSION_SSH);
if(cryptStatusError(status)) { if(cryptStatusError(status)) {
char str[1024]; char str[1024];
...@@ -307,6 +309,8 @@ int conn_connect(struct bbslist *bbs) ...@@ -307,6 +309,8 @@ int conn_connect(struct bbslist *bbs)
/* we need to disable Nagle on the socket. */ /* we need to disable Nagle on the socket. */
setsockopt(conn_socket, IPPROTO_TCP, TCP_NODELAY, ( char * )&off, sizeof ( off ) ); setsockopt(conn_socket, IPPROTO_TCP, TCP_NODELAY, ( char * )&off, sizeof ( off ) );
SAFECOPY(password,bbs->password);
/* Pass socket to cryptlib */ /* Pass socket to cryptlib */
status=cl.SetAttribute(ssh_session, CRYPT_SESSINFO_NETWORKSOCKET, conn_socket); status=cl.SetAttribute(ssh_session, CRYPT_SESSINFO_NETWORKSOCKET, conn_socket);
if(cryptStatusError(status)) { if(cryptStatusError(status)) {
...@@ -324,6 +328,10 @@ int conn_connect(struct bbslist *bbs) ...@@ -324,6 +328,10 @@ int conn_connect(struct bbslist *bbs)
uifcmsg("Error setting username",str); uifcmsg("Error setting username",str);
return(-1); return(-1);
} }
if(!password[0])
uifcinput("Password",MAX_PASSWD_LEN,password,K_PASSWORD,"Incorrect password. Try again.");
status=cl.SetAttributeString(ssh_session, CRYPT_SESSINFO_PASSWORD, passwd, strlen(passwd)); status=cl.SetAttributeString(ssh_session, CRYPT_SESSINFO_PASSWORD, passwd, strlen(passwd));
if(cryptStatusError(status)) { if(cryptStatusError(status)) {
char str[1024]; char str[1024];
...@@ -336,9 +344,12 @@ int conn_connect(struct bbslist *bbs) ...@@ -336,9 +344,12 @@ int conn_connect(struct bbslist *bbs)
status=cl.SetAttribute(ssh_session, CRYPT_SESSINFO_ACTIVE, 1); status=cl.SetAttribute(ssh_session, CRYPT_SESSINFO_ACTIVE, 1);
if(cryptStatusError(status)) { if(cryptStatusError(status)) {
char str[1024]; char str[1024];
sprintf(str,"Error %d activating session",status); sprintf(str,"Error %d activating session",status);
uifcmsg("Error activating session",str); uifcmsg("Error activating session",str);
return(-1); return(-1);
}
break;
} }
ssh_active=TRUE; ssh_active=TRUE;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment