connect: Support AddressFamily option

* allow parsing of AddressFamily in config and cli
  * supports options "any", "inet" and "inet6"
* introduce SSH_OPTIONS_ADDRESS_FAMILY

Signed-off-by: Samir Benmendil <me@rmz.io>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Samir Benmendil
2025-12-15 19:16:15 +00:00
parent f52be27114
commit c4f1a70a89
10 changed files with 247 additions and 12 deletions

View File

@@ -68,6 +68,7 @@ enum ssh_config_opcode_e {
SOC_CONTROLPATH,
SOC_CERTIFICATE,
SOC_REQUIRED_RSA_SIZE,
SOC_ADDRESSFAMILY,
SOC_MAX /* Keep this one last in the list */
};

View File

@@ -371,6 +371,12 @@ enum ssh_control_master_options_e {
SSH_CONTROL_MASTER_AUTOASK
};
enum ssh_address_family_options_e {
SSH_ADDRESS_FAMILY_ANY,
SSH_ADDRESS_FAMILY_INET,
SSH_ADDRESS_FAMILY_INET6
};
enum ssh_options_e {
SSH_OPTIONS_HOST,
SSH_OPTIONS_PORT,
@@ -422,6 +428,7 @@ enum ssh_options_e {
SSH_OPTIONS_PROXYJUMP,
SSH_OPTIONS_PROXYJUMP_CB_LIST_APPEND,
SSH_OPTIONS_PKI_CONTEXT,
SSH_OPTIONS_ADDRESS_FAMILY,
};
enum {

View File

@@ -277,6 +277,7 @@ struct ssh_session_struct {
bool identities_only;
int control_master;
char *control_path;
int address_family;
} opts;
/* server options */