summaryrefslogtreecommitdiff
path: root/src/charon-cmd/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/charon-cmd/cmd')
-rw-r--r--src/charon-cmd/cmd/cmd_connection.c6
-rw-r--r--src/charon-cmd/cmd/cmd_creds.c12
2 files changed, 11 insertions, 7 deletions
diff --git a/src/charon-cmd/cmd/cmd_connection.c b/src/charon-cmd/cmd/cmd_connection.c
index 5c459f99f..180e8da98 100644
--- a/src/charon-cmd/cmd/cmd_connection.c
+++ b/src/charon-cmd/cmd/cmd_connection.c
@@ -163,14 +163,14 @@ static peer_cfg_t* create_peer_cfg(private_cmd_connection_t *this)
{
remote_port = IKEV2_NATT_PORT;
}
- ike_cfg = ike_cfg_create(version, TRUE, FALSE, "0.0.0.0", FALSE, local_port,
- this->host, FALSE, remote_port, FRAGMENTATION_NO, 0);
+ ike_cfg = ike_cfg_create(version, TRUE, FALSE, "0.0.0.0", local_port,
+ this->host, remote_port, FRAGMENTATION_NO, 0);
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
peer_cfg = peer_cfg_create("cmd", ike_cfg,
CERT_SEND_IF_ASKED, UNIQUE_REPLACE, 1, /* keyingtries */
36000, 0, /* rekey 10h, reauth none */
600, 600, /* jitter, over 10min */
- TRUE, aggressive, /* mobike, aggressive */
+ TRUE, aggressive, TRUE, /* mobike, aggressive, pull */
30, 0, /* DPD delay, timeout */
FALSE, NULL, NULL); /* mediation */
peer_cfg->add_virtual_ip(peer_cfg, host_create_from_string("0.0.0.0", 0));
diff --git a/src/charon-cmd/cmd/cmd_creds.c b/src/charon-cmd/cmd/cmd_creds.c
index 526ff7c9c..7fee85d78 100644
--- a/src/charon-cmd/cmd/cmd_creds.c
+++ b/src/charon-cmd/cmd/cmd_creds.c
@@ -48,9 +48,9 @@ struct private_cmd_creds_t {
callback_cred_t *cb;
/**
- * Already prompted for password?
+ * Kind of secret we recently prompted
*/
- bool prompted;
+ shared_key_type_t prompted;
/**
* Path to ssh-agent socket
@@ -74,7 +74,7 @@ static shared_key_t* callback_shared(private_cmd_creds_t *this,
shared_key_t *shared;
char *label, *pwd;
- if (this->prompted)
+ if (type == this->prompted)
{
return NULL;
}
@@ -89,6 +89,9 @@ static shared_key_t* callback_shared(private_cmd_creds_t *this,
case SHARED_PRIVATE_KEY_PASS:
label = "Password: ";
break;
+ case SHARED_PIN:
+ label = "PIN: ";
+ break;
default:
return NULL;
}
@@ -97,7 +100,7 @@ static shared_key_t* callback_shared(private_cmd_creds_t *this,
{
return NULL;
}
- this->prompted = TRUE;
+ this->prompted = type;
if (match_me)
{
*match_me = ID_MATCH_PERFECT;
@@ -281,6 +284,7 @@ cmd_creds_t *cmd_creds_create()
.destroy = _destroy,
},
.creds = mem_cred_create(),
+ .prompted = SHARED_ANY,
);
this->cb = callback_cred_create_shared((void*)callback_shared, this);