make load_tester more strict to use it along stroke
authorMartin Willi <martin@strongswan.org>
Mon, 10 Nov 2008 16:43:15 +0000 (16:43 -0000)
committerMartin Willi <martin@strongswan.org>
Mon, 10 Nov 2008 16:43:15 +0000 (16:43 -0000)
src/charon/plugins/load_tester/load_tester_config.c
src/charon/plugins/load_tester/load_tester_creds.c

index 4b88ff7..8e93d24 100644 (file)
@@ -62,9 +62,14 @@ static enumerator_t* create_ike_cfg_enumerator(private_load_tester_config_t *thi
 /**
  * implements backend_t.get_peer_cfg_by_name.
  */
-static peer_cfg_t *get_peer_cfg_by_name(private_load_tester_config_t *this, char *name)
+static peer_cfg_t *get_peer_cfg_by_name(private_load_tester_config_t *this,
+                                                                               char *name)
 {
-       return this->peer_cfg->get_ref(this->peer_cfg);;
+       if (streq(name, "load-test"))
+       {
+               return this->peer_cfg->get_ref(this->peer_cfg);;
+       }
+       return NULL;
 }
 
 /**
index 48f38f2..ec69a1a 100644 (file)
@@ -157,6 +157,10 @@ static char cert[] = {
 static enumerator_t* create_private_enumerator(private_load_tester_creds_t *this,
                                                        key_type_t type, identification_t *id)
 {
+       if (this->private == NULL)
+       {
+               return NULL;
+       }
        if (type != KEY_ANY && type != KEY_RSA)
        {
                return NULL;
@@ -181,6 +185,10 @@ static enumerator_t* create_cert_enumerator(private_load_tester_creds_t *this,
                                                        certificate_type_t cert, key_type_t key,
                                                        identification_t *id, bool trusted)
 {
+       if (this->cert == NULL)
+       {
+               return NULL;
+       }
        if (cert != CERT_ANY && cert != CERT_X509)
        {
                return NULL;
@@ -201,8 +209,8 @@ static enumerator_t* create_cert_enumerator(private_load_tester_creds_t *this,
  */
 static void destroy(private_load_tester_creds_t *this)
 {
-       this->private->destroy(this->private);
-       this->cert->destroy(this->cert);
+       DESTROY_IF(this->private);
+       DESTROY_IF(this->cert);
        free(this);
 }