From 5f00ad1742d3fe7ee2096b2f0fe6678d3f675cc8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Petr=20P=C3=ADsa=C5=99?= Date: Tue, 22 Dec 2015 15:43:09 +0100 Subject: [PATCH] Add adCode and adDistrict to isds_Address, add aifoIsds to isds_DbOwnerInfo This adds three new memebers to two structures. This is necessary to implement new FindPersonalDataBox service. The new service has a lot of common with isds_DbOwnerInfo structure, so I decided to augment it instead of creating new structure. Therefore all current functions will ignore the new members when talking to the server as the current services do not recognize them. This breaks ABI. The API remains compatible. --- client/common.c | 9 +++++ doc/libisds.xml | 15 ++++++++ src/isds.c | 60 +++++++++++++++++++++---------- src/isds.h | 45 +++++++++++++++-------- test/offline/isds_Address_duplicate.c | 17 +++++---- test/offline/isds_Address_free.c | 2 ++ test/offline/isds_DbOwnerInfo_duplicate.c | 20 ++++++++--- test/offline/isds_DbOwnerInfo_free.c | 1 + 8 files changed, 126 insertions(+), 43 deletions(-) diff --git a/client/common.c b/client/common.c index 9b4f906..a43c1d6 100644 --- a/client/common.c +++ b/client/common.c @@ -267,7 +267,12 @@ void print_Address(const struct isds_Address *address) { if (!address) printf("NULL\n"); else { printf("{\n"); + + printf("\t\tadCode = "); + print_longint(address->adCode); + printf("\t\tadCity = %s\n", address->adCity); + printf("\t\tadDistrict = %s\n", address->adDistrict); printf("\t\tadStreet = %s\n", address->adStreet); printf("\t\tadNumberInStreet = %s\n", address->adNumberInStreet); printf("\t\tadNumberInMunicipality = %s\n", @@ -324,6 +329,10 @@ void print_DbOwnerInfo(const struct isds_DbOwnerInfo *info) { printf("\temail = %s\n", info->email); printf("\ttelNumber = %s\n", info->telNumber); printf("\tidentifier = %s\n", info->identifier); + + printf("\taifoIsds = "); + print_bool(info->aifoIsds); + printf("\tregistryCode = %s\n", info->registryCode); printf("\tdbState = "); diff --git a/doc/libisds.xml b/doc/libisds.xml index cc33a62..c6d4dde 100644 --- a/doc/libisds.xml +++ b/doc/libisds.xml @@ -1263,11 +1263,21 @@ err = isds_cleanup(); Postal address. Members are: + long int *adCode; + RUIN address code. + + + char *adCity; City. + char *adDistrict; + Municipality part. + + + char *adStreet; Street. @@ -1364,6 +1374,11 @@ err = isds_cleanup(); + _Bool *aifoIsds; + Reference to citizen registry exists. + + + char *registryCode; PFO external registry code. Specification limits the length to diff --git a/src/isds.c b/src/isds.c index 60126b8..52ae879 100644 --- a/src/isds.c +++ b/src/isds.c @@ -187,7 +187,9 @@ void isds_BirthInfo_free(struct isds_BirthInfo **birth_info) { void isds_Address_free(struct isds_Address **address) { if (!address || !*address) return; + free((*address)->adCode); free((*address)->adCity); + free((*address)->adDistrict); free((*address)->adStreet); free((*address)->adNumberInStreet); free((*address)->adNumberInMunicipality); @@ -214,6 +216,7 @@ void isds_DbOwnerInfo_free(struct isds_DbOwnerInfo **db_owner_info) { free((*db_owner_info)->email); free((*db_owner_info)->telNumber); free((*db_owner_info)->identifier); + free((*db_owner_info)->aifoIsds); free((*db_owner_info)->registryCode); free((*db_owner_info)->dbState); free((*db_owner_info)->dbEffectiveOVM); @@ -559,7 +562,9 @@ struct isds_Address *isds_Address_duplicate( new = calloc(1, sizeof(*new)); if (!new) return NULL; + FLATDUP_OR_ERROR(new->adCode, src->adCode); STRDUP_OR_ERROR(new->adCity, src->adCity); + STRDUP_OR_ERROR(new->adDistrict, src->adDistrict); STRDUP_OR_ERROR(new->adStreet, src->adStreet); STRDUP_OR_ERROR(new->adNumberInStreet, src->adNumberInStreet); STRDUP_OR_ERROR(new->adNumberInMunicipality, @@ -611,6 +616,7 @@ struct isds_DbOwnerInfo *isds_DbOwnerInfo_duplicate( STRDUP_OR_ERROR(new->email, src->email); STRDUP_OR_ERROR(new->telNumber, src->telNumber); STRDUP_OR_ERROR(new->identifier, src->identifier); + FLATDUP_OR_ERROR(new->aifoIsds, src->aifoIsds); STRDUP_OR_ERROR(new->registryCode, src->registryCode); FLATDUP_OR_ERROR(new->dbState, src->dbState); FLATDUP_OR_ERROR(new->dbEffectiveOVM, src->dbEffectiveOVM); @@ -6069,7 +6075,8 @@ leave: * @request outputs built XML tree * @service_name is request name of SERVICE_DB_MANIPULATION service * @box is box description to create including single primary user (in case of - * FO box type) + * FO box type). aifoIsds, address->adCode, address->adDistrict members are + * ignored. * @users is list of struct isds_DbUserInfo (primary users in case of non-FO * box, or contact address of PFO box owner) * @former_names is optional former name of box owner. Pass NULL if otherwise. @@ -6167,7 +6174,8 @@ leave: /* Create new box. * @context is session context * @box is box description to create including single primary user (in case of - * FO box type). It outputs box ID assigned by ISDS in dbID element. + * FO box type). aifoIsds, address->adCode, address->adDistrict members are + * ignored. It outputs box ID assigned by ISDS in dbID element. * @users is list of struct isds_DbUserInfo (primary users in case of non-FO * box, or contact address of PFO box owner) * @former_names is optional former name of box owner. Pass NULL if you don't care. @@ -6259,7 +6267,8 @@ leave: /* Notify ISDS about new PFO entity. * This function has no real effect. * @context is session context - * @box is PFO description including single primary user. + * @box is PFO description including single primary user. aifoIsds, + * address->adCode, address->adDistrict members are ignored. * @users is list of struct isds_DbUserInfo (contact address of PFO box owner) * @former_names is optional undocumented string. Pass NULL if you don't care. * @upper_box_id is optional ID of supper box if currently created box is @@ -6308,7 +6317,8 @@ leave: /* Common implementation for removing given box. * @context is session context * @service_name is UTF-8 encoded name fo ISDS service - * @box is box description to delete + * @box is box description to delete. aifoIsds, address->adCode, + * address->adDistrict members are ignored. * @since is date of box owner cancellation. Only tm_year, tm_mon and tm_mday * carry sane value. If NULL, do not inject this information into request. * @approval is optional external approval of box manipulation @@ -6385,7 +6395,8 @@ leave: /* Remove given box permanently. * @context is session context - * @box is box description to delete + * @box is box description to delete. aifoIsds, address->adCode, + * address->adDistrict members are ignored. * @since is date of box owner cancellation. Only tm_year, tm_mon and tm_mday * carry sane value. * @approval is optional external approval of box manipulation @@ -6405,7 +6416,8 @@ isds_error isds_delete_box(struct isds_ctx *context, /* Undocumented function. * @context is session context - * @box is box description to delete + * @box is box description to delete. aifoIsds, address->adCode, + * address->adDistrict members are ignored. * @approval is optional external approval of box manipulation * @refnumber is reallocated serial number of request assigned by ISDS. Use * NULL, if you don't care.*/ @@ -6423,8 +6435,10 @@ isds_error isds_delete_box_promptly(struct isds_ctx *context, /* Update data about given box. * @context is session context - * @old_box current box description - * @new_box are updated data about @old_box + * @old_box current box description. aifoIsds, address->adCode, + * address->adDistrict members are ignored. + * @new_box are updated data about @old_box. aifoIsds, address->adCode, + * address->adDistrict members are ignored. * @approval is optional external approval of box manipulation * @refnumber is reallocated serial number of request assigned by ISDS. Use * NULL, if you don't care.*/ @@ -6662,7 +6676,8 @@ leave: /* Update data about user assigned to given box. * @context is session context - * @box is box identification + * @box is box identification. aifoIsds, address->adCode, + * address->adDistrict members are ignored. * @old_user identifies user to update, aifo_ticket member is ignored * @new_user are updated data about @old_user, aifo_ticket member is ignored * @refnumber is reallocated serial number of request assigned by ISDS. Use @@ -6841,7 +6856,8 @@ leave: /* Reset credentials of user assigned to given box. * @context is session context - * @box is box identification + * @box is box identification. aifoIsds, address->adCode, address->adDistrict + * members are ignored. * @user identifies user to reset password, aifo_ticket member is ignored * @fee_paid is true if fee has been paid, false otherwise * @approval is optional external approval of box manipulation @@ -6943,7 +6959,8 @@ leave: * code, destroy response and log success. * @context is ISDS session context. * @service_name is name of SERVICE_DB_MANIPULATION service - * @box is box identification + * @box is box identification. aifoIsds, address->adCode, address->adDistrict + * members are ignored. * @user identifies user to remove * @honor_aifo_ticket is true for inserting @user's aifo_ticket member * @credentials_delivery is NULL if new user's password should be delivered @@ -7048,7 +7065,8 @@ leave: /* Assign new user to given box. * @context is session context - * @box is box identification + * @box is box identification. aifoIsds, address->adCode, address->adDistrict + * members are ignored. * @user defines new user to add * @credentials_delivery is NULL if new user's password should be delivered * off-line to the user. It is valid pointer if user should obtain new @@ -7074,7 +7092,8 @@ isds_error isds_add_user(struct isds_ctx *context, /* Remove user assigned to given box. * @context is session context - * @box is box identification + * @box is box identification. aifoIsds, address->adCode, address->adDistrict + * members are ignored. * @user identifies user to remove, aifo_ticket member is ignored * @approval is optional external approval of box manipulation * @refnumber is reallocated serial number of request assigned by ISDS. Use @@ -7194,7 +7213,8 @@ leave: /* Find boxes suiting given criteria. - * @criteria is filter. You should fill in at least some members. + * @criteria is filter. You should fill in at least some members. aifoIsds, + * address->adCode, address->adDistrict members are ignored. * @boxes is automatically reallocated list of isds_DbOwnerInfo structures, * possibly empty. Input NULL or valid old structure. * @return: @@ -8410,7 +8430,8 @@ isds_error isds_switch_effective_ovm(struct isds_ctx *context, * code, destroy response and log success. * @context is ISDS session context. * @service_name is name of SERVICE_DB_MANIPULATION service - * @owner is structure describing box + * @owner is structure describing box. aifoIsds, address->adCode, + * address->adDistrict members are ignored. * @approval is optional external approval of box manipulation * @refnumber is reallocated serial number of request assigned by ISDS. Use * NULL, if you don't care. */ @@ -8482,7 +8503,8 @@ leave: * Despite the name, owner must do the request off-line. This function is * designed for such off-line meeting points (e.g. Czech POINT). * @context is ISDS session context. - * @box identifies box to switch accessibility state. + * @box identifies box to switch accessibility state. aifoIsds, + * address->adCode, address->adDistrict members are ignored. * @allow is true for making accessible, false to disallow access. * @approval is optional external approval of box manipulation * @refnumber is reallocated serial number of request assigned by ISDS. Use @@ -8501,7 +8523,8 @@ isds_error isds_switch_box_accessibility_on_owner_request( /* Disable box accessibility on law enforcement (e.g. by prison) since exact * date. * @context is ISDS session context. - * @box identifies box to switch accessibility state. + * @box identifies box to switch accessibility state. aifoIsds, + * address->adCode, address->adDistrict members are ignored. * @since is date since accessibility has been denied. This can be past too. * Only tm_year, tm_mon and tm_mday carry sane value. * @approval is optional external approval of box manipulation @@ -11510,7 +11533,8 @@ isds_error czp_close_connection(struct isds_ctx *context) { * standard context as it could reveal your password. Use fresh new context or * context previously used by this function. * @box is box description to create including single primary user (in case of - * FO box type). It outputs box ID assigned by ISDS in dbID element. + * FO box type). aifoIsds, address->adCode, address->adDistrict members are + * ignored. It outputs box ID assigned by ISDS in dbID element. * @users is list of struct isds_DbUserInfo (primary users in case of non-FO * box, or contact address of PFO box owner). The email member is mandatory as * it will be used to deliver credentials. diff --git a/src/isds.h b/src/isds.h index e92c6e3..e6469d6 100644 --- a/src/isds.h +++ b/src/isds.h @@ -297,7 +297,9 @@ struct isds_BirthInfo { /* Post address */ struct isds_Address { + long int *adCode; /* RUIN address code */ char *adCity; + char *adDistrict; /* Municipality part */ char *adStreet; char *adNumberInStreet; char *adNumberInMunicipality; @@ -321,6 +323,7 @@ struct isds_DbOwnerInfo { char *identifier; /* External box identifier for data provider (OVM, PO, maybe PFO) [Max. 20 chars] */ + _Bool *aifoIsds; /* Reference to citizen registry exists */ char *registryCode; /* PFO External registry code [Max. 5 chars] */ long int *dbState; /* Box state; 1 <=> active box; @@ -1036,7 +1039,8 @@ isds_error isds_change_password(struct isds_ctx *context, /* Create new box. * @context is session context * @box is box description to create including single primary user (in case of - * FO box type). It outputs box ID assigned by ISDS in dbID element. + * FO box type). aifoIsds, address->adCode, address->adDistrict members are + * ignored. It outputs box ID assigned by ISDS in dbID element. * @users is list of struct isds_DbUserInfo (primary users in case of non-FO * box, or contact address of PFO box owner) * @former_names is optional former name of box owner. Pass NULL if you don't care. @@ -1062,7 +1066,8 @@ isds_error isds_add_box(struct isds_ctx *context, /* Notify ISDS about new PFO entity. * This function has no real effect. * @context is session context - * @box is PFO description including single primary user. + * @box is PFO description including single primary user. aifoIsds, + * address->adCode, address->adDistrict members are ignored. * @users is list of struct isds_DbUserInfo (contact address of PFO box owner) * @former_names is optional undocumented string. Pass NULL if you don't care. * @upper_box_id is optional ID of supper box if currently created box is @@ -1079,7 +1084,8 @@ isds_error isds_add_pfoinfo(struct isds_ctx *context, /* Remove given box permanently. * @context is session context - * @box is box description to delete + * @box is box description to delete. aifoIsds, address->adCode, + * address->adDistrict members are ignored. * @since is date of box owner cancellation. Only tm_year, tm_mon and tm_mday * carry sane value. * @approval is optional external approval of box manipulation @@ -1091,7 +1097,8 @@ isds_error isds_delete_box(struct isds_ctx *context, /* Undocumented function. * @context is session context - * @box is box description to delete + * @box is box description to delete. aifoIsds, address->adCode, + * address->adDistrict members are ignored. * @approval is optional external approval of box manipulation * @refnumber is reallocated serial number of request assigned by ISDS. Use * NULL, if you don't care.*/ @@ -1101,8 +1108,10 @@ isds_error isds_delete_box_promptly(struct isds_ctx *context, /* Update data about given box. * @context is session context - * @old_box current box description - * @new_box are updated data about @old_box + * @old_box current box description. aifoIsds, address->adCode, + * address->adDistrict members are ignored. + * @new_box are updated data about @old_box. aifoIsds, address->adCode, + * address->adDistrict members are ignored. * @approval is optional external approval of box manipulation * @refnumber is reallocated serial number of request assigned by ISDS. Use * NULL, if you don't care.*/ @@ -1120,7 +1129,8 @@ isds_error isds_GetDataBoxUsers(struct isds_ctx *context, const char *box_id, /* Update data about user assigned to given box. * @context is session context - * @box is box identification + * @box is box identification. aifoIsds, address->adCode, + * address->adDistrict members are ignored. * @old_user identifies user to update, aifo_ticket member is ignored * @new_user are updated data about @old_user, aifo_ticket member is ignored * @refnumber is reallocated serial number of request assigned by ISDS. Use @@ -1144,7 +1154,8 @@ isds_error isds_activate(struct isds_ctx *context, /* Reset credentials of user assigned to given box. * @context is session context - * @box is box identification + * @box is box identification. aifoIsds, address->adCode, address->adDistrict + * members are ignored. * @user identifies user to reset password, aifo_ticket member is ignored * @fee_paid is true if fee has been paid, false otherwise * @approval is optional external approval of box manipulation @@ -1168,7 +1179,8 @@ isds_error isds_reset_password(struct isds_ctx *context, /* Assign new user to given box. * @context is session context - * @box is box identification + * @box is box identification. aifoIsds, address->adCode, address->adDistrict + * members are ignored. * @user defines new user to add * @credentials_delivery is NULL if new user's password should be delivered * off-line to the user. It is valid pointer if user should obtain new @@ -1189,7 +1201,8 @@ isds_error isds_add_user(struct isds_ctx *context, /* Remove user assigned to given box. * @context is session context - * @box is box identification + * @box is box identification. aifoIsds, address->adCode, address->adDistrict + * members are ignored. * @user identifies user to remove, aifo_ticket member is ignored * @approval is optional external approval of box manipulation * @refnumber is reallocated serial number of request assigned by ISDS. Use @@ -1217,7 +1230,8 @@ isds_error isds_get_box_list_archive(struct isds_ctx *context, /* Find boxes suiting given criteria. * @context is ISDS session context. - * @criteria is filter. You should fill in at least some members. + * @criteria is filter. You should fill in at least some members. aifoIsds, + * address->adCode, address->adDistrict members are ignored. * @boxes is automatically reallocated list of isds_DbOwnerInfo structures, * possibly empty. Input NULL or valid old structure. * @return: @@ -1362,7 +1376,8 @@ isds_error isds_switch_effective_ovm(struct isds_ctx *context, * Despite the name, owner must do the request off-line. This function is * designed for such off-line meeting points (e.g. Czech POINT). * @context is ISDS session context. - * @box identifies box to switch accessibility state. + * @box identifies box to switch accessibility state. aifoIsds, + * address->adCode, address->adDistrict members are ignored. * @allow is true for making accessible, false to disallow access. * @approval is optional external approval of box manipulation * @refnumber is reallocated serial number of request assigned by ISDS. Use @@ -1375,7 +1390,8 @@ isds_error isds_switch_box_accessibility_on_owner_request( /* Disable box accessibility on law enforcement (e.g. by prison) since exact * date. * @context is ISDS session context. - * @box identifies box to switch accessibility state. + * @box identifies box to switch accessibility state. aifoIsds, + * address->adCode, address->adDistrict members are ignored. * @since is date since accessibility has been denied. This can be past too. * Only tm_year, tm_mon and tm_mday carry sane value. * @approval is optional external approval of box manipulation @@ -1747,7 +1763,8 @@ isds_error czp_close_connection(struct isds_ctx *context); * standard context as it could reveal your password. Use fresh new context or * context previously used by this function. * @box is box description to create including single primary user (in case of - * FO box type). It outputs box ID assigned by ISDS in dbID element. + * FO box type). aifoIsds, address->adCode, address->adDistrict members are + * ignored. It outputs box ID assigned by ISDS in dbID element. * @users is list of struct isds_DbUserInfo (primary users in case of non-FO * box, or contact address of PFO box owner). The email member is mandatory as * it will be used to deliver credentials. diff --git a/test/offline/isds_Address_duplicate.c b/test/offline/isds_Address_duplicate.c index e830ae0..1669893 100644 --- a/test/offline/isds_Address_duplicate.c +++ b/test/offline/isds_Address_duplicate.c @@ -16,7 +16,9 @@ static int test_isds_Address_duplicate(struct isds_Address *origin) { FAIL_TEST("isds_Address_duplicate() returned NULL instead of " "pointer to copy"); + TEST_INTPTR_DUPLICITY(origin->adCode, copy->adCode); TEST_STRING_DUPLICITY(origin->adCity, copy->adCity); + TEST_STRING_DUPLICITY(origin->adDistrict, copy->adDistrict); TEST_STRING_DUPLICITY(origin->adStreet, copy->adStreet); TEST_STRING_DUPLICITY(origin->adNumberInStreet, copy->adNumberInStreet); TEST_STRING_DUPLICITY(origin->adNumberInMunicipality, @@ -41,13 +43,16 @@ int main(void) { TEST("Empty structure", test_isds_Address_duplicate, &empty); /* Full structure */ + long int adCode = 1; struct isds_Address full = { - .adCity = "1", - .adStreet = "2", - .adNumberInStreet = "3", - .adNumberInMunicipality = "4", - .adZipCode = "5", - .adState = "6" + .adCode = &adCode, + .adCity = "2", + .adDistrict = "3", + .adStreet = "4", + .adNumberInStreet = "5", + .adNumberInMunicipality = "6", + .adZipCode = "7", + .adState = "8" }; TEST("Full structure", test_isds_Address_duplicate, &full); diff --git a/test/offline/isds_Address_free.c b/test/offline/isds_Address_free.c index 018c1c7..e62700b 100644 --- a/test/offline/isds_Address_free.c +++ b/test/offline/isds_Address_free.c @@ -27,7 +27,9 @@ int main(void) { TEST("Empty structure", test_isds_Address_free, &Address); TEST_CALLOC(Address); + TEST_FILL_INT(Address->adCode); TEST_FILL_STRING(Address->adCity); + TEST_FILL_STRING(Address->adDistrict); TEST_FILL_STRING(Address->adStreet); TEST_FILL_STRING(Address->adNumberInStreet); TEST_FILL_STRING(Address->adNumberInMunicipality); diff --git a/test/offline/isds_DbOwnerInfo_duplicate.c b/test/offline/isds_DbOwnerInfo_duplicate.c index 723b646..4689d88 100644 --- a/test/offline/isds_DbOwnerInfo_duplicate.c +++ b/test/offline/isds_DbOwnerInfo_duplicate.c @@ -49,8 +49,12 @@ static int test_isds_DbOwnerInfo_duplicate(struct isds_DbOwnerInfo *origin) { /* Post address */ TEST_POINTER_DUPLICITY(origin->address, copy->address); if (origin->address && copy->address) { + TEST_INTPTR_DUPLICITY(origin->address->adCode, + copy->address->adCode); TEST_STRING_DUPLICITY(origin->address->adCity, copy->address->adCity); + TEST_STRING_DUPLICITY(origin->address->adDistrict, + copy->address->adDistrict); TEST_STRING_DUPLICITY(origin->address->adStreet, copy->address->adStreet); TEST_STRING_DUPLICITY(origin->address->adNumberInStreet, @@ -67,6 +71,7 @@ static int test_isds_DbOwnerInfo_duplicate(struct isds_DbOwnerInfo *origin) { TEST_STRING_DUPLICITY(origin->email, copy->email); TEST_STRING_DUPLICITY(origin->telNumber, copy->telNumber); TEST_STRING_DUPLICITY(origin->identifier, copy->identifier); + TEST_BOOLEANPTR_DUPLICITY(origin->aifoIsds, copy->aifoIsds); TEST_STRING_DUPLICITY(origin->registryCode, copy->registryCode); TEST_INTPTR_DUPLICITY(origin->dbState, copy->dbState); TEST_BOOLEANPTR_DUPLICITY(origin->dbEffectiveOVM, copy->dbEffectiveOVM); @@ -90,6 +95,7 @@ int main(void) { /* Full structure */ isds_DbType dbType = 2; + long int adCode = 4; struct isds_PersonName PersonName = { .pnFirstName = "P1", .pnMiddleName = "P2", @@ -108,14 +114,17 @@ int main(void) { .biState = "B4" }; struct isds_Address Address = { + .adCode = &adCode, .adCity = "A1", - .adStreet = "A2", - .adNumberInStreet = "A3", - .adNumberInMunicipality = "A4", - .adZipCode = "A5", - .adState = "A6" + .adDistrict = "A2", + .adStreet = "A3", + .adNumberInStreet = "A4", + .adNumberInMunicipality = "A5", + .adZipCode = "A6", + .adState = "A7" }; long int DbState = 13; + _Bool aifoIsds = 1; _Bool DbEffectiveOVM = 1; _Bool DbOpenAddressing = 1; struct isds_DbOwnerInfo full = { @@ -130,6 +139,7 @@ int main(void) { .email = "9", .telNumber = "10", .identifier = "11", + .aifoIsds = &aifoIsds, .registryCode = "12", .dbState = &DbState, .dbEffectiveOVM = &DbEffectiveOVM, diff --git a/test/offline/isds_DbOwnerInfo_free.c b/test/offline/isds_DbOwnerInfo_free.c index e4ba2d6..6ec667a 100644 --- a/test/offline/isds_DbOwnerInfo_free.c +++ b/test/offline/isds_DbOwnerInfo_free.c @@ -59,6 +59,7 @@ int main(void) { TEST_FILL_STRING(DbOwnerInfo->email); TEST_FILL_STRING(DbOwnerInfo->telNumber); TEST_FILL_STRING(DbOwnerInfo->identifier); + TEST_FILL_INT(DbOwnerInfo->aifoIsds); TEST_FILL_STRING(DbOwnerInfo->registryCode); TEST_FILL_INT(DbOwnerInfo->dbState); TEST_FILL_INT(DbOwnerInfo->dbEffectiveOVM); -- 2.11.4.GIT