]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
unit-tests: Make IKE SPIs predictable
authorTobias Brunner <tobias@strongswan.org>
Fri, 13 May 2016 06:50:17 +0000 (08:50 +0200)
committerTobias Brunner <tobias@strongswan.org>
Fri, 17 Jun 2016 16:48:01 +0000 (18:48 +0200)
src/libcharon/tests/utils/exchange_test_helper.c

index 488a5ee9b148f158ac5e3ba11b3fd66a894892ef..17553bc810a6769e3c41daeccf9192c73e5a7d8f 100644 (file)
@@ -39,8 +39,19 @@ struct private_exchange_test_helper_t {
         * Credentials
         */
        mem_cred_t *creds;
+
+       /**
+        * IKE_SA SPI counter
+        */
+       refcount_t ike_spi;
 };
 
+CALLBACK(get_ike_spi, uint64_t,
+       private_exchange_test_helper_t *this)
+{
+       return (uint64_t)ref_get(&this->ike_spi);
+}
+
 /*
  * Described in header
  */
@@ -215,6 +226,9 @@ void exchange_test_helper_init(char *plugins)
        /* and there is no kernel plugin loaded
         * TODO: we'd have more control if we'd implement kernel_interface_t */
        charon->kernel->add_ipsec_interface(charon->kernel, mock_ipsec_create);
+       /* like SPIs for IPsec SAs, make IKE SPIs predictable */
+       charon->ike_sa_manager->set_spi_cb(charon->ike_sa_manager, get_ike_spi,
+                                                                          this);
 
        charon->backends->add_backend(charon->backends, &this->backend);
        lib->credmgr->add_set(lib->credmgr, &this->creds->set);