]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
Simplify signature of get_encoding_rules(), make all rules static
authorMartin Willi <martin@revosec.ch>
Thu, 17 Nov 2011 10:27:55 +0000 (11:27 +0100)
committerMartin Willi <martin@revosec.ch>
Tue, 20 Mar 2012 16:30:42 +0000 (17:30 +0100)
26 files changed:
src/conftest/hooks/set_length.c
src/libcharon/encoding/generator.c
src/libcharon/encoding/parser.c
src/libcharon/encoding/payloads/auth_payload.c
src/libcharon/encoding/payloads/cert_payload.c
src/libcharon/encoding/payloads/certreq_payload.c
src/libcharon/encoding/payloads/configuration_attribute.c
src/libcharon/encoding/payloads/cp_payload.c
src/libcharon/encoding/payloads/delete_payload.c
src/libcharon/encoding/payloads/eap_payload.c
src/libcharon/encoding/payloads/encryption_payload.c
src/libcharon/encoding/payloads/id_payload.c
src/libcharon/encoding/payloads/ike_header.c
src/libcharon/encoding/payloads/ke_payload.c
src/libcharon/encoding/payloads/nonce_payload.c
src/libcharon/encoding/payloads/notify_payload.c
src/libcharon/encoding/payloads/payload.c
src/libcharon/encoding/payloads/payload.h
src/libcharon/encoding/payloads/proposal_substructure.c
src/libcharon/encoding/payloads/sa_payload.c
src/libcharon/encoding/payloads/traffic_selector_substructure.c
src/libcharon/encoding/payloads/transform_attribute.c
src/libcharon/encoding/payloads/transform_substructure.c
src/libcharon/encoding/payloads/ts_payload.c
src/libcharon/encoding/payloads/unknown_payload.c
src/libcharon/encoding/payloads/vendor_id_payload.c

index 0379dcb7cda1883e514cf4653991996f19675909..eb72e72d9b36801cb5d852a4f9c182787b3ec80c 100644 (file)
@@ -76,11 +76,10 @@ METHOD(listener_t, message, bool,
                        if (type == payload->get_type(payload))
                        {
                                encoding_rule_t *rules;
-                               size_t count;
                                u_int16_t *len;
-                               int i;
+                               int i, count;
 
-                               payload->get_encoding_rules(payload, &rules, &count);
+                               count = payload->get_encoding_rules(payload, &rules);
                                for (i = 0; i < count; i++)
                                {
                                        if (rules[i].type == PAYLOAD_LENGTH)
index 662ebf97784fa6f10e5df7990c31313f8f8c1036..5f1a5e8a4dca530366615659e9c9b7f1bae33099 100644 (file)
@@ -404,8 +404,7 @@ METHOD(generator_t, get_chunk, chunk_t,
 METHOD(generator_t, generate_payload, void,
        private_generator_t *this,payload_t *payload)
 {
-       int i, offset_start;
-       size_t rule_count;
+       int i, offset_start, rule_count;
        encoding_rule_t *rules;
        payload_type_t payload_type;
 
@@ -418,7 +417,7 @@ METHOD(generator_t, generate_payload, void,
                 payload_type_names, payload_type);
 
        /* each payload has its own encoding rules */
-       payload->get_encoding_rules(payload, &rules, &rule_count);
+       rule_count = payload->get_encoding_rules(payload, &rules);
 
        for (i = 0; i < rule_count;i++)
        {
index 86ab212b8ad130da5dee4cc562c9231f89bd6c9f..4736873a74a8affb1a07423e033f97583d7ee5d1 100644 (file)
@@ -363,11 +363,10 @@ METHOD(parser_t, parse_payload, status_t,
 {
        payload_t *pld;
        void *output;
-       size_t rule_count;
        int payload_length = 0, spi_size = 0, attribute_length = 0;
        u_int16_t ts_type = 0;
        bool attribute_format = FALSE;
-       int rule_number;
+       int rule_number, rule_count;
        encoding_rule_t *rule;
 
        /* create instance of the payload to parse */
@@ -383,7 +382,7 @@ METHOD(parser_t, parse_payload, status_t,
        output = pld;
 
        /* parse the payload with its own rulse */
-       pld->get_encoding_rules(pld, &this->rules, &rule_count);
+       rule_count = pld->get_encoding_rules(pld, &this->rules);
        for (rule_number = 0; rule_number < rule_count; rule_number++)
        {
                rule = &(this->rules[rule_number]);
index cb44a997ca168ce476b02894836b3031379d0775..3825244e26e31b7c292788ad058250cb79a0a987 100644 (file)
@@ -74,7 +74,7 @@ struct private_auth_payload_t {
  * The defined offsets are the positions in a object of type
  * private_auth_payload_t.
  */
-encoding_rule_t auth_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_auth_payload_t, next_payload)          },
        /* the critical bit */
@@ -119,11 +119,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_auth_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_auth_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = auth_payload_encodings;
-       *rule_count = countof(auth_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index c42cec6805803f009414d0e1ed51e7ef91e9069e..8f6deb89c4c04a2cc35e2afc6f5e5ac0607a0734 100644 (file)
@@ -95,7 +95,7 @@ struct private_cert_payload_t {
  * private_cert_payload_t.
  *
  */
-encoding_rule_t cert_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_cert_payload_t, next_payload)  },
        /* the critical bit */
@@ -166,11 +166,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_cert_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_cert_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = cert_payload_encodings;
-       *rule_count = countof(cert_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 8e0836f0edba5224bb85243073fde635a47016bb..ec46e92777d6bcb5065a84533f183be2c698be4b 100644 (file)
@@ -72,7 +72,7 @@ struct private_certreq_payload_t {
  * The defined offsets are the positions in a object of type
  * private_certreq_payload_t.
  */
-encoding_rule_t certreq_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_certreq_payload_t, next_payload)       },
        /* the critical bit */
@@ -122,11 +122,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_certreq_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_certreq_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = certreq_payload_encodings;
-       *rule_count = countof(certreq_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index e608497bd2c2f25eb401cace15ef10aac64f4560..a657ef13a3c424939d82336003e00484e48845a2 100644 (file)
@@ -62,7 +62,7 @@ struct private_configuration_attribute_t {
  * The defined offsets are the positions in a object of type
  * private_configuration_attribute_t.
  */
-encoding_rule_t configuration_attribute_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 reserved bit */
        { RESERVED_BIT,                                         offsetof(private_configuration_attribute_t, reserved)},
        /* type of the attribute as 15 bit unsigned integer */
@@ -154,12 +154,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_configuration_attribute_t *this, encoding_rule_t **rules,
-       size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_configuration_attribute_t *this, encoding_rule_t **rules)
 {
-       *rules = configuration_attribute_encodings;
-       *rule_count = countof(configuration_attribute_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 82e9e51b738e9e96bd42e74eb87f8573f1b0b70f..4e782dd8816954e6513521844d70eaf380cb65e6 100644 (file)
@@ -83,7 +83,7 @@ struct private_cp_payload_t {
  * The defined offsets are the positions in a object of type
  * private_cp_payload_t.
  */
-encoding_rule_t cp_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                                      offsetof(private_cp_payload_t, next_payload)    },
        /* the critical bit */
@@ -142,11 +142,11 @@ METHOD(payload_t, verify, status_t,
        return status;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_cp_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_cp_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = cp_payload_encodings;
-       *rule_count = countof(cp_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index e6ee07d395be3b321f28a160b3f652cdfca1dee7..b396135be619be4a08b6b29e224401606ef353ac 100644 (file)
@@ -79,7 +79,7 @@ struct private_delete_payload_t {
  * The defined offsets are the positions in a object of type
  * private_delete_payload_t.
  */
-encoding_rule_t delete_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_delete_payload_t, next_payload)        },
        /* the critical bit */
@@ -145,11 +145,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_delete_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_delete_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = delete_payload_encodings;
-       *rule_count = countof(delete_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_payload_type, payload_type_t,
index cacaef222a3a9dabc8e80015d12a9fed86b5302a..581547499e2cf77a994d7692d16f1f9f8117d744 100644 (file)
@@ -65,7 +65,7 @@ struct private_eap_payload_t {
  * private_eap_payload_t.
  *
  */
-static encoding_rule_t eap_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_eap_payload_t, next_payload)   },
        /* the critical bit */
@@ -143,11 +143,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_eap_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_eap_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = eap_payload_encodings;
-       *rule_count = sizeof(eap_payload_encodings) / sizeof(encoding_rule_t);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_payload_type, payload_type_t,
index e7b8063b74bbf7421117705526c02ae19a47e2c9..b0b863b36e06d6da71c5602445c0c18a43f0bc59 100644 (file)
@@ -79,7 +79,7 @@ struct private_encryption_payload_t {
  * The defined offsets are the positions in a object of type
  * private_encryption_payload_t.
  */
-encoding_rule_t encryption_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_encryption_payload_t, next_payload)    },
        /* Critical and 7 reserved bits, all stored for reconstruction */
@@ -115,12 +115,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_encryption_payload_t *this, encoding_rule_t **rules,
-       size_t *count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_encryption_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = encryption_payload_encodings;
-       *count = countof(encryption_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 3befadfe28c4dcfd64152890b2e49f40c4e2c040..1d42f1595f550e1f7f6f861868cc31fcc3aabd9b 100644 (file)
@@ -83,7 +83,7 @@ struct private_id_payload_t {
  * The defined offsets are the positions in a object of type
  * private_id_payload_t.
  */
-encoding_rule_t id_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_id_payload_t, next_payload)    },
        /* the critical bit */
@@ -134,11 +134,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_id_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_id_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = id_payload_encodings;
-       *rule_count = countof(id_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 8f379442bad348779dcdc1e045d5dbf17fa17260..97c6d8c26795911f16b1bc44cd2d5288a5c95857 100644 (file)
@@ -146,7 +146,7 @@ ENUM_END(exchange_type_names, EXCHANGE_TYPE_UNDEFINED);
  * The defined offsets are the positions in a object of type
  * ike_header_t.
  */
-encoding_rule_t ike_header_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 8 Byte SPI, stored in the field initiator_spi */
        { IKE_SPI,              offsetof(private_ike_header_t, initiator_spi)   },
        /* 8 Byte SPI, stored in the field responder_spi */
@@ -244,11 +244,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_ike_header_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_ike_header_t *this, encoding_rule_t **rules)
 {
-       *rules = ike_header_encodings;
-       *rule_count = sizeof(ike_header_encodings) / sizeof(encoding_rule_t);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 53edaf4f49dd91e92efd3df5b4c2eddb51eda1e9..183e722a2606a9e47aaa1553cd3de983c2ff5b4c 100644 (file)
@@ -145,19 +145,16 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_ke_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_ke_payload_t *this, encoding_rule_t **rules)
 {
        if (this->type == KEY_EXCHANGE)
        {
                *rules = encodings_v2;
-               *rule_count = countof(encodings_v2);
-       }
-       else
-       {
-               *rules = encodings_v1;
-               *rule_count = countof(encodings_v1);
+               return countof(encodings_v2);
        }
+       *rules = encodings_v1;
+       return countof(encodings_v1);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 684bddce49f4d567fcd6a2ccc074bf28659887d6..86222c13afd49425b6bbcb7bc04dd9d971f47a64 100644 (file)
@@ -70,7 +70,7 @@ struct private_nonce_payload_t {
  * The defined offsets are the positions in a object of type
  * private_nonce_payload_t.
  */
-encoding_rule_t nonce_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_nonce_payload_t, next_payload)         },
        /* the critical bit */
@@ -110,11 +110,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_nonce_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_nonce_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = nonce_payload_encodings;
-       *rule_count = countof(nonce_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 5a47438ca7ba090f6a203a62c52a4f08ce4b5ca6..d8f45b9b48952df830b22c9cc7b854d7a47a0b31 100644 (file)
@@ -263,7 +263,7 @@ struct private_notify_payload_t {
  * The defined offsets are the positions in a object of type
  * private_notify_payload_t.
  */
-encoding_rule_t notify_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_notify_payload_t, next_payload)                },
        /* the critical bit */
@@ -423,11 +423,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_notify_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_notify_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = notify_payload_encodings;
-       *rule_count = countof(notify_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 3e7c390e04db2c6b85122992b50242e07d03dd0a..3882e00bfe57b0a116ebcfae6e8b18bc57009678 100644 (file)
@@ -255,10 +255,9 @@ bool payload_is_known(payload_type_t type)
 void* payload_get_field(payload_t *payload, encoding_type_t type, u_int skip)
 {
        encoding_rule_t *rule;
-       size_t count;
-       int i;
+       int i, count;
 
-       payload->get_encoding_rules(payload, &rule, &count);
+       count = payload->get_encoding_rules(payload, &rule);
        for (i = 0; i < count; i++)
        {
                if (rule[i].type == type && skip-- == 0)
index 5e0b7dd38ba09c9c240f11c30b302d429b27a983..963c5f09016ed682628daa886a97da94fd851858 100644 (file)
@@ -271,10 +271,10 @@ struct payload_t {
        /**
         * Get encoding rules for this payload.
         *
-        * @param rules                 location to store pointer of first rule
-        * @param rule_count    location to store number of rules
+        * @param rules                 location to store pointer to rules
+        * @return                              number of rules
         */
-       void (*get_encoding_rules) (payload_t *this, encoding_rule_t **rules, size_t *rule_count);
+       int (*get_encoding_rules) (payload_t *this, encoding_rule_t **rules);
 
        /**
         * Get type of payload.
index 40caef858a1b36552e8a7b93349abc258a5e0fed..3b663da86d4901322a347964e465faabb41317de 100644 (file)
@@ -296,20 +296,16 @@ METHOD(payload_t, verify, status_t,
        return status;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_proposal_substructure_t *this, encoding_rule_t **rules,
-       size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_proposal_substructure_t *this, encoding_rule_t **rules)
 {
        if (this->type == PROPOSAL_SUBSTRUCTURE)
        {
                *rules = encodings_v2;
-               *rule_count = countof(encodings_v2);
-       }
-       else
-       {
-               *rules = encodings_v1;
-               *rule_count = countof(encodings_v1);
+               return countof(encodings_v2);
        }
+       *rules = encodings_v1;
+       return countof(encodings_v1);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 8f9dda41103c0e8e2037966c08adc4c6d04d4408..32251e28b451fd388ecc51c46f0dbd3597bc8441 100644 (file)
@@ -202,19 +202,16 @@ METHOD(payload_t, verify, status_t,
        return status;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_sa_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_sa_payload_t *this, encoding_rule_t **rules)
 {
        if (this->type == SECURITY_ASSOCIATION_V1)
        {
                *rules = encodings_v1;
-               *rule_count = countof(encodings_v1);
-       }
-       else
-       {
-               *rules = encodings_v2;
-               *rule_count = countof(encodings_v2);
+               return countof(encodings_v1);
        }
+       *rules = encodings_v2;
+       return countof(encodings_v2);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index df36e4383c7aee02965def43f5383fdfc40c69f3..c213441ab1cd9e0513c7319281af1901d4badfdb 100644 (file)
@@ -74,7 +74,7 @@ struct private_traffic_selector_substructure_t {
  * The defined offsets are the positions in a object of type
  * private_traffic_selector_substructure_t.
  */
-encoding_rule_t traffic_selector_substructure_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next ts type*/
        { TS_TYPE,              offsetof(private_traffic_selector_substructure_t, ts_type)                      },
        /* 1 Byte IP protocol id*/
@@ -148,12 +148,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_traffic_selector_substructure_t *this, encoding_rule_t **rules,
-       size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_traffic_selector_substructure_t *this, encoding_rule_t **rules)
 {
-       *rules = traffic_selector_substructure_encodings;
-       *rule_count = countof(traffic_selector_substructure_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 97bde8bcedfd85bf4ba3065d87013a731070ade1..fa344019bdec259b5ec29fcdb2e4b2be301ae731 100644 (file)
@@ -134,12 +134,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_transform_attribute_t *this, encoding_rule_t **rules,
-       size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_transform_attribute_t *this, encoding_rule_t **rules)
 {
        *rules = encodings;
-       *rule_count = countof(encodings);
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 54463cbc3bbfa971718a6e94ffbeff042b448367..da022ca75bf9ac0be7366a959c112aea65cbfc0c 100644 (file)
@@ -162,20 +162,16 @@ METHOD(payload_t, verify, status_t,
        return status;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_transform_substructure_t *this, encoding_rule_t **rules,
-       size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_transform_substructure_t *this, encoding_rule_t **rules)
 {
        if (this->type == TRANSFORM_ATTRIBUTE)
        {
                *rules = encodings_v2;
-               *rule_count = countof(encodings_v2);
-       }
-       else
-       {
-               *rules = encodings_v1;
-               *rule_count = countof(encodings_v1);
+               return countof(encodings_v2);
        }
+       *rules = encodings_v1;
+       return countof(encodings_v1);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 28f760e40243db6fa87fe0dee6769889aab5b14b..8f4508a9caa7553069c4755014da80481cfcc920 100644 (file)
@@ -81,7 +81,7 @@ struct private_ts_payload_t {
  * The defined offsets are the positions in a object of type
  * private_ts_payload_t.
  */
-encoding_rule_t ts_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_ts_payload_t, next_payload)    },
        /* the critical bit */
@@ -145,11 +145,11 @@ METHOD(payload_t, verify, status_t,
        return status;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_ts_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_ts_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = ts_payload_encodings;
-       *rule_count = countof(ts_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,
index 27af338b31a4f56fd176e594190479f0a2b67a22..9f5c6ef9864ff5a5f410d89a962f8d9a5ea5d7d8 100644 (file)
@@ -68,7 +68,7 @@ struct private_unknown_payload_t {
  * private_unknown_payload_t.
  *
  */
-encoding_rule_t unknown_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_unknown_payload_t, next_payload)       },
        /* the critical bit */
@@ -109,11 +109,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_unknown_payload_t *this, encoding_rule_t **rules, size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_unknown_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = unknown_payload_encodings;
-       *rule_count = sizeof(unknown_payload_encodings) / sizeof(encoding_rule_t);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_payload_type, payload_type_t,
index 3dab3941e7ac40e94aacdcfaffc4297e448a0186..45669879bf9e3e0e1b1f21192796d45377a0414f 100644 (file)
@@ -68,7 +68,7 @@ struct private_vendor_id_payload_t {
  * The defined offsets are the positions in a object of type
  * private_vendor_id_payload_t.
  */
-encoding_rule_t vendor_id_payload_encodings[] = {
+static encoding_rule_t encodings[] = {
        /* 1 Byte next payload type, stored in the field next_payload */
        { U_INT_8,                      offsetof(private_vendor_id_payload_t, next_payload)     },
        /* the critical bit */
@@ -105,12 +105,11 @@ METHOD(payload_t, verify, status_t,
        return SUCCESS;
 }
 
-METHOD(payload_t, get_encoding_rules, void,
-       private_vendor_id_payload_t *this, encoding_rule_t **rules,
-       size_t *rule_count)
+METHOD(payload_t, get_encoding_rules, int,
+       private_vendor_id_payload_t *this, encoding_rule_t **rules)
 {
-       *rules = vendor_id_payload_encodings;
-       *rule_count = countof(vendor_id_payload_encodings);
+       *rules = encodings;
+       return countof(encodings);
 }
 
 METHOD(payload_t, get_type, payload_type_t,