mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-09 18:04:25 +09:00
options: Added option to bind a client to an ip address.
Thanks to Donatello Boccaforno <donatello.boccaforno@gmail.com>.
This commit is contained in:
@@ -271,7 +271,8 @@ enum ssh_options_e {
|
|||||||
SSH_OPTIONS_CIPHERS_S_C,
|
SSH_OPTIONS_CIPHERS_S_C,
|
||||||
SSH_OPTIONS_COMPRESSION_C_S,
|
SSH_OPTIONS_COMPRESSION_C_S,
|
||||||
SSH_OPTIONS_COMPRESSION_S_C,
|
SSH_OPTIONS_COMPRESSION_S_C,
|
||||||
SSH_OPTIONS_PROXYCOMMAND
|
SSH_OPTIONS_PROXYCOMMAND,
|
||||||
|
SSH_OPTIONS_BINDADDR
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ struct ssh_session_struct {
|
|||||||
#endif
|
#endif
|
||||||
char *username;
|
char *username;
|
||||||
char *host;
|
char *host;
|
||||||
char *bindaddr; /* TODO: check if needed */
|
char *bindaddr; /* bind the client to an ip addr */
|
||||||
char *xbanner; /* TODO: looks like it is not needed */
|
char *xbanner; /* TODO: looks like it is not needed */
|
||||||
struct ssh_list *identity;
|
struct ssh_list *identity;
|
||||||
char *sshdir;
|
char *sshdir;
|
||||||
|
|||||||
@@ -187,6 +187,9 @@ int ssh_options_set_algo(ssh_session session, int algo,
|
|||||||
* set the hostname as the hostname is used as a key in
|
* set the hostname as the hostname is used as a key in
|
||||||
* the known_host mechanism.
|
* the known_host mechanism.
|
||||||
*
|
*
|
||||||
|
* - SSH_OPTIONS_BINDADDR:
|
||||||
|
* The address to bind the client to (string).
|
||||||
|
*
|
||||||
* - SSH_OPTIONS_USER:
|
* - SSH_OPTIONS_USER:
|
||||||
* The username for authentication (string).\n
|
* The username for authentication (string).\n
|
||||||
* \n
|
* \n
|
||||||
@@ -397,6 +400,18 @@ int ssh_options_set(ssh_session session, enum ssh_options_e type,
|
|||||||
session->fd = *x & 0xffff;
|
session->fd = *x & 0xffff;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SSH_OPTIONS_BINDADDR:
|
||||||
|
if (value == NULL) {
|
||||||
|
ssh_set_error_invalid(session, __FUNCTION__);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
q = strdup(value);
|
||||||
|
if (q == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
SAFE_FREE(session->bindaddr);
|
||||||
|
session->bindaddr = q;
|
||||||
|
break;
|
||||||
case SSH_OPTIONS_USER:
|
case SSH_OPTIONS_USER:
|
||||||
SAFE_FREE(session->username);
|
SAFE_FREE(session->username);
|
||||||
if (value == NULL) { /* set default username */
|
if (value == NULL) { /* set default username */
|
||||||
|
|||||||
Reference in New Issue
Block a user