]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
Add IKE version information to ike_cfg_t
authorMartin Willi <martin@revosec.ch>
Tue, 16 Oct 2012 12:24:35 +0000 (14:24 +0200)
committerMartin Willi <martin@revosec.ch>
Wed, 24 Oct 2012 08:18:35 +0000 (10:18 +0200)
14 files changed:
src/charon-nm/nm/nm_service.c
src/conftest/config.c
src/frontends/android/jni/libandroidbridge/backend/android_service.c
src/libcharon/config/ike_cfg.c
src/libcharon/config/ike_cfg.h
src/libcharon/plugins/android/android_service.c
src/libcharon/plugins/ha/ha_tunnel.c
src/libcharon/plugins/load_tester/load_tester_config.c
src/libcharon/plugins/maemo/maemo_service.c
src/libcharon/plugins/medcli/medcli_config.c
src/libcharon/plugins/medsrv/medsrv_config.c
src/libcharon/plugins/sql/sql_config.c
src/libcharon/plugins/stroke/stroke_config.c
src/libcharon/plugins/uci/uci_config.c

index b7155b44bda80808f92a150c4ac8910dea6cbce2..e908b32a189e26ac8834115b4fcda87e5f141bee 100644 (file)
@@ -498,7 +498,7 @@ static gboolean connect_(NMVPNPlugin *plugin, NMConnection *connection,
        /**
         * Set up configurations
         */
-       ike_cfg = ike_cfg_create(TRUE, encap, "0.0.0.0", FALSE,
+       ike_cfg = ike_cfg_create(IKEV2, TRUE, encap, "0.0.0.0", FALSE,
                                                         charon->socket->get_port(charon->socket, FALSE),
                                                        (char*)address, FALSE, IKEV2_UDP_PORT);
        ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
index cbc6ac05f50581399da74f35d0ed0ca3fcef172f..82b05e37050579624061af643f893e2910d09897 100644 (file)
@@ -101,7 +101,7 @@ static ike_cfg_t *load_ike_config(private_config_t *this,
        proposal_t *proposal;
        char *token;
 
-       ike_cfg = ike_cfg_create(TRUE,
+       ike_cfg = ike_cfg_create(IKEV2, TRUE,
                settings->get_bool(settings, "configs.%s.fake_nat", FALSE, config),
                settings->get_str(settings, "configs.%s.lhost", "%any", config), FALSE,
                settings->get_int(settings, "configs.%s.lport", 500, config),
index b00567f60804dbe624391d9f65046996cacd2543..802d2f681ba11836267d97206e0f6f0df3eaa8e5 100644 (file)
@@ -469,7 +469,7 @@ static job_requeue_t initiate(private_android_service_t *this)
                }
        };
 
-       ike_cfg = ike_cfg_create(TRUE, TRUE, "0.0.0.0", FALSE,
+       ike_cfg = ike_cfg_create(IKEV2, TRUE, TRUE, "0.0.0.0", FALSE,
                                                         charon->socket->get_port(charon->socket, FALSE),
                                                         this->gateway, FALSE, IKEV2_UDP_PORT);
        ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
index 36102f34188e777f9dc77dedf4db4eeb68eb53a0..1006fc295e5aeaf1b010ab039e3bca30b986b0d8 100644 (file)
@@ -44,6 +44,11 @@ struct private_ike_cfg_t {
         */
        refcount_t refcount;
 
+       /**
+        * IKE version to use
+        */
+       ike_version_t version;
+
        /**
         * Address of local host
         */
@@ -90,6 +95,12 @@ struct private_ike_cfg_t {
        linked_list_t *proposals;
 };
 
+METHOD(ike_cfg_t, get_version, ike_version_t,
+       private_ike_cfg_t *this)
+{
+       return this->version;
+}
+
 METHOD(ike_cfg_t, send_certreq, bool,
        private_ike_cfg_t *this)
 {
@@ -254,6 +265,7 @@ METHOD(ike_cfg_t, equals, bool,
        e2->destroy(e2);
 
        return (eq &&
+               this->version == other->version &&
                this->certreq == other->certreq &&
                this->force_encap == other->force_encap &&
                streq(this->me, other->me) &&
@@ -285,7 +297,7 @@ METHOD(ike_cfg_t, destroy, void,
 /**
  * Described in header.
  */
-ike_cfg_t *ike_cfg_create(bool certreq, bool force_encap,
+ike_cfg_t *ike_cfg_create(ike_version_t version, bool certreq, bool force_encap,
                                                  char *me, bool my_allow_any, u_int16_t my_port,
                                                  char *other, bool other_allow_any, u_int16_t other_port)
 {
@@ -293,6 +305,7 @@ ike_cfg_t *ike_cfg_create(bool certreq, bool force_encap,
 
        INIT(this,
                .public = {
+                       .get_version = _get_version,
                        .send_certreq = _send_certreq,
                        .force_encap = _force_encap_,
                        .get_my_addr = _get_my_addr,
@@ -308,6 +321,7 @@ ike_cfg_t *ike_cfg_create(bool certreq, bool force_encap,
                        .destroy = _destroy,
                },
                .refcount = 1,
+               .version = version,
                .certreq = certreq,
                .force_encap = force_encap,
                .me = strdup(me),
index d6206938098c50b50ccec0b3a047ff480b1bf16c..5f48e9660c2a4e75aa3bbaaf57ab6af6ffc56a5d 100644 (file)
@@ -56,6 +56,13 @@ extern enum_name_t *ike_version_names;
  */
 struct ike_cfg_t {
 
+       /**
+        * Get the IKE version to use with this configuration.
+        *
+        * @return                              IKE major version
+        */
+       ike_version_t (*get_version)(ike_cfg_t *this);
+
        /**
         * Get own address.
         *
@@ -167,6 +174,7 @@ struct ike_cfg_t {
  *
  * Supplied hosts become owned by ike_cfg, the name gets cloned.
  *
+ * @param version                      IKE major version to use for this config
  * @param certreq                      TRUE to send a certificate request
  * @param force_encap          enforce UDP encapsulation by faking NATD notify
  * @param me                           address/DNS name of local peer
@@ -177,7 +185,7 @@ struct ike_cfg_t {
  * @param other_port           IKE port to use as dest, 500 uses IKEv2 port floating
  * @return                                     ike_cfg_t object.
  */
-ike_cfg_t *ike_cfg_create(bool certreq, bool force_encap,
+ike_cfg_t *ike_cfg_create(ike_version_t version, bool certreq, bool force_encap,
                                                  char *me, bool my_allow_any, u_int16_t my_port,
                                                  char *other, bool other_allow_any, u_int16_t other_port);
 
index 81628b80ac4db4dda3fba6f4da912f7c57adf67b..3c432cfb814a079e7f0668b1231311b85f3675ca 100644 (file)
@@ -264,7 +264,7 @@ static job_requeue_t initiate(private_android_service_t *this)
                this->creds->set_username_password(this->creds, user, password);
        }
 
-       ike_cfg = ike_cfg_create(TRUE, FALSE, "0.0.0.0", FALSE,
+       ike_cfg = ike_cfg_create(IKEV2, TRUE, FALSE, "0.0.0.0", FALSE,
                                                         charon->socket->get_port(charon->socket, FALSE),
                                                         hostname, FALSE, IKEV2_UDP_PORT);
        ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
index 541dd93133a7926b9b8fe7e76b8c82ec7690208e..616b395c62aa8b47cc87b9be8a803dcf17dfff07 100644 (file)
@@ -203,7 +203,7 @@ static void setup_tunnel(private_ha_tunnel_t *this,
        lib->credmgr->add_set(lib->credmgr, &this->creds.public);
 
        /* create config and backend */
-       ike_cfg = ike_cfg_create(FALSE, FALSE, local, FALSE,
+       ike_cfg = ike_cfg_create(IKEV2, FALSE, FALSE, local, FALSE,
                                                         charon->socket->get_port(charon->socket, FALSE),
                                                         remote, FALSE, IKEV2_UDP_PORT);
        ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
index db8d844e9b8f8d0665675fc17ef2f7d8975f8f82..fe7b969ca754e7b5c1ab10874ba0a84e11017715 100644 (file)
@@ -261,14 +261,15 @@ static peer_cfg_t* generate_config(private_load_tester_config_t *this, uint num)
 
        if (this->port && num)
        {
-               ike_cfg = ike_cfg_create(FALSE, FALSE,
+               ike_cfg = ike_cfg_create(IKEV2, FALSE, FALSE,
                                                                 this->local, FALSE, this->port + num - 1,
                                                                 this->remote, FALSE, IKEV2_NATT_PORT);
        }
        else
        {
-               ike_cfg = ike_cfg_create(FALSE, FALSE,
-                                                                this->local, FALSE, charon->socket->get_port(charon->socket, FALSE),
+               ike_cfg = ike_cfg_create(IKEV2, FALSE, FALSE,
+                                                                this->local, FALSE,
+                                                                charon->socket->get_port(charon->socket, FALSE),
                                                                 this->remote, FALSE, IKEV2_UDP_PORT);
        }
        ike_cfg->add_proposal(ike_cfg, this->proposal->clone(this->proposal));
index cb2fc9ebb8d71fa44526610207e0bb5ac4052f7d..c7eac2973a8818847e3ce7d50d8b38821a961e87 100644 (file)
@@ -323,7 +323,7 @@ static gboolean initiate_connection(private_maemo_service_t *this,
                                                                NULL);
        }
 
-       ike_cfg = ike_cfg_create(TRUE, FALSE, "0.0.0.0", FALSE,
+       ike_cfg = ike_cfg_create(IKEV2, TRUE, FALSE, "0.0.0.0", FALSE,
                                                         charon->socket->get_port(charon->socket, FALSE),
                                                         hostname, FALSE, IKEV2_UDP_PORT);
        ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
index a1825effc24bd7118b3db5738fb8c4ce0d2971c3..4dde0866836ad9979a62d779f74ce40d557d4628 100644 (file)
@@ -118,8 +118,9 @@ METHOD(backend_t, get_peer_cfg_by_name, peer_cfg_t*,
                DESTROY_IF(e);
                return NULL;
        }
-       ike_cfg = ike_cfg_create(FALSE, FALSE,
-                                                        "0.0.0.0", FALSE, charon->socket->get_port(charon->socket, FALSE),
+       ike_cfg = ike_cfg_create(IKEV2, FALSE, FALSE,
+                                                        "0.0.0.0", FALSE,
+                                                        charon->socket->get_port(charon->socket, FALSE),
                                                         address, FALSE, IKEV2_UDP_PORT);
        ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
        med_cfg = peer_cfg_create(
@@ -392,8 +393,9 @@ medcli_config_t *medcli_config_create(database_t *db)
                .db = db,
                .rekey = lib->settings->get_time(lib->settings, "medcli.rekey", 1200),
                .dpd = lib->settings->get_time(lib->settings, "medcli.dpd", 300),
-               .ike = ike_cfg_create(FALSE, FALSE,
-                                                         "0.0.0.0", FALSE, charon->socket->get_port(charon->socket, FALSE),
+               .ike = ike_cfg_create(IKEV2, FALSE, FALSE,
+                                                         "0.0.0.0", FALSE,
+                                                         charon->socket->get_port(charon->socket, FALSE),
                                                          "0.0.0.0", FALSE, IKEV2_UDP_PORT),
        );
        this->ike->add_proposal(this->ike, proposal_create_default(PROTO_IKE));
index ff33c53e194603c723df6a2b94cea8071f4b765a..a3dada69a86511517fb7f5d4e4e3ee314e37efd0 100644 (file)
@@ -139,8 +139,9 @@ medsrv_config_t *medsrv_config_create(database_t *db)
                .db = db,
                .rekey = lib->settings->get_time(lib->settings, "medsrv.rekey", 1200),
                .dpd = lib->settings->get_time(lib->settings, "medsrv.dpd", 300),
-               .ike = ike_cfg_create(FALSE, FALSE,
-                                                         "0.0.0.0", FALSE, charon->socket->get_port(charon->socket, FALSE),
+               .ike = ike_cfg_create(IKEV2, FALSE, FALSE,
+                                                         "0.0.0.0", FALSE,
+                                                         charon->socket->get_port(charon->socket, FALSE),
                                                          "0.0.0.0", FALSE, IKEV2_UDP_PORT),
        );
        this->ike->add_proposal(this->ike, proposal_create_default(PROTO_IKE));
index c614c679e4e021db88e5b8f591b733794a44f717..0054f6c63c5268d09c64323970fd88ffd33fb2cc 100644 (file)
@@ -258,8 +258,9 @@ static ike_cfg_t *build_ike_cfg(private_sql_config_t *this, enumerator_t *e,
        {
                ike_cfg_t *ike_cfg;
 
-               ike_cfg = ike_cfg_create(certreq, force_encap,
-                                                                local, FALSE, charon->socket->get_port(charon->socket, FALSE),
+               ike_cfg = ike_cfg_create(IKEV2, certreq, force_encap,
+                                                                local, FALSE,
+                                                                charon->socket->get_port(charon->socket, FALSE),
                                                                 remote, FALSE, IKEV2_UDP_PORT);
                add_ike_proposals(this, ike_cfg, id);
                return ike_cfg;
index e43672b1884f5e578491e86db090420831bf2ca3..ef7682be6dc325e1857ed66969756837d53359de 100644 (file)
@@ -225,7 +225,8 @@ static ike_cfg_t *build_ike_cfg(private_stroke_config_t *this, stroke_msg_t *msg
        ikeport = msg->add_conn.me.ikeport;
        ikeport = (ikeport == IKEV2_UDP_PORT) ?
                           charon->socket->get_port(charon->socket, FALSE) : ikeport;
-       ike_cfg = ike_cfg_create(msg->add_conn.other.sendcert != CERT_NEVER_SEND,
+       ike_cfg = ike_cfg_create(msg->add_conn.version,
+                                                        msg->add_conn.other.sendcert != CERT_NEVER_SEND,
                                                         msg->add_conn.force_encap,
                                                         msg->add_conn.me.address,
                                                         msg->add_conn.me.allow_any,
index 1201f568e1205803424713e05baa53b6f495f46c..4947c62dd6ce65c882b3e3f94438f77acb16cab2 100644 (file)
@@ -168,8 +168,9 @@ METHOD(enumerator_t, peer_enumerator_enumerate, bool,
                        &ike_proposal, &esp_proposal, &ike_rekey, &esp_rekey))
        {
                DESTROY_IF(this->peer_cfg);
-               ike_cfg = ike_cfg_create(FALSE, FALSE,
-                                                                local_addr, FALSE, charon->socket->get_port(charon->socket, FALSE),
+               ike_cfg = ike_cfg_create(IKEV2, FALSE, FALSE,
+                                                                local_addr, FALSE,
+                                                                charon->socket->get_port(charon->socket, FALSE),
                                                                 remote_addr, FALSE, IKEV2_UDP_PORT);
                ike_cfg->add_proposal(ike_cfg, create_proposal(ike_proposal, PROTO_IKE));
                this->peer_cfg = peer_cfg_create(
@@ -265,9 +266,10 @@ METHOD(enumerator_t, ike_enumerator_enumerate, bool,
                                                           &local_addr, &remote_addr, &ike_proposal))
        {
                DESTROY_IF(this->ike_cfg);
-               this->ike_cfg = ike_cfg_create(FALSE, FALSE,
-                                                                          local_addr, FALSE, charon->socket->get_port(charon->socket, FALSE),
-                                                                          remote_addr, FALSE, IKEV2_UDP_PORT);
+               this->ike_cfg = ike_cfg_create(IKEV2, FALSE, FALSE,
+                                                               local_addr, FALSE,
+                                                               charon->socket->get_port(charon->socket, FALSE),
+                                                               remote_addr, FALSE, IKEV2_UDP_PORT);
                this->ike_cfg->add_proposal(this->ike_cfg,
                                                                        create_proposal(ike_proposal, PROTO_IKE));