diff options
| author | David M. Syzdek <david@syzdek.net> | 2019-11-26 17:59:45 -0900 |
|---|---|---|
| committer | David M. Syzdek <david@syzdek.net> | 2019-11-26 17:59:45 -0900 |
| commit | 58724c95ff1c326e365ecea3d61ca149d5e2c263 (patch) | |
| tree | fa4b81ae1272c99beef438fe1784e0fc094ff37a | |
| parent | 5b7dc3532986d87b075faff444f25425b54f91a7 (diff) | |
| download | ldap-utils-58724c95ff1c326e365ecea3d61ca149d5e2c263.tar.gz ldap-utils-58724c95ff1c326e365ecea3d61ca149d5e2c263.tar.bz2 ldap-utils-58724c95ff1c326e365ecea3d61ca149d5e2c263.tar.xz ldap-utils-58724c95ff1c326e365ecea3d61ca149d5e2c263.zip | |
libldapschema: replacing individual functions with ldapschema_print_list_models()
| -rw-r--r-- | lib/libldapschema/loutput.c | 107 |
1 files changed, 64 insertions, 43 deletions
diff --git a/lib/libldapschema/loutput.c b/lib/libldapschema/loutput.c index 1f7923d..3a73952 100644 --- a/lib/libldapschema/loutput.c +++ b/lib/libldapschema/loutput.c | |||
| @@ -103,18 +103,11 @@ ldapschema_print_list( | |||
| 103 | char ** vals ); | 103 | char ** vals ); |
| 104 | 104 | ||
| 105 | void | 105 | void |
| 106 | ldapschema_print_list_attrs( | 106 | ldapschema_print_list_models( |
| 107 | LDAPSchema * lsd, | 107 | LDAPSchema * lsd, |
| 108 | const char * name, | 108 | const char * name, |
| 109 | LDAPSchemaAttributeType ** list, | 109 | LDAPSchemaModel ** list, |
| 110 | size_t len ); | 110 | size_t list_len ); |
| 111 | |||
| 112 | void | ||
| 113 | ldapschema_print_list_objcls( | ||
| 114 | LDAPSchema * lsd, | ||
| 115 | const char * name, | ||
| 116 | LDAPSchemaObjectclass ** list, | ||
| 117 | size_t len ); | ||
| 118 | 111 | ||
| 119 | void | 112 | void |
| 120 | ldapschema_print_unsigned( | 113 | ldapschema_print_unsigned( |
| @@ -366,39 +359,67 @@ void ldapschema_print_list(const char * field, char ** vals) | |||
| 366 | } | 359 | } |
| 367 | 360 | ||
| 368 | 361 | ||
| 369 | void ldapschema_print_list_attrs(LDAPSchema * lsd, | 362 | void ldapschema_print_list_models(LDAPSchema * lsd, |
| 370 | const char * name, LDAPSchemaAttributeType ** list, size_t len) | 363 | const char * name, LDAPSchemaModel ** list, size_t list_len) |
| 371 | { | 364 | { |
| 372 | size_t pos; | 365 | size_t pos; |
| 366 | const char * key; | ||
| 367 | size_t buff_len; | ||
| 368 | char buff[256]; | ||
| 369 | size_t lineno; | ||
| 373 | 370 | ||
| 374 | assert(lsd != NULL); | 371 | assert(lsd != NULL); |
| 375 | if ( (!(list)) || (!(len)) ) | 372 | assert(name != NULL); |
| 373 | if ( (!(list)) || (!(list_len)) ) | ||
| 376 | return; | 374 | return; |
| 377 | 375 | ||
| 378 | for(pos = 0; (pos < len); pos++) | 376 | lineno = 0; |
| 379 | ldapschema_print_line( | 377 | buff_len = 0; |
| 380 | ((!(pos))?name:""), | 378 | buff[0] = '\0'; |
| 381 | (((list[pos]->names))?list[pos]->names[0]:list[pos]->model.oid) | ||
| 382 | ); | ||
| 383 | |||
| 384 | return; | ||
| 385 | } | ||
| 386 | |||
| 387 | 379 | ||
| 388 | void ldapschema_print_list_objcls(LDAPSchema * lsd, | 380 | for(pos = 0; (pos < list_len); pos++) |
| 389 | const char * name, LDAPSchemaObjectclass ** list, size_t len) | 381 | { |
| 390 | { | 382 | key = NULL; |
| 391 | size_t pos; | 383 | switch(list[pos]->type) |
| 392 | 384 | { | |
| 393 | assert(lsd != NULL); | 385 | case LDAPSCHEMA_ATTRIBUTETYPE: |
| 394 | if ( (!(list)) || (!(len)) ) | 386 | if ((((LDAPSchemaAttributeType *)list[pos])->names)) |
| 395 | return; | 387 | key = ((LDAPSchemaAttributeType *)list[pos])->names[0]; |
| 396 | 388 | break; | |
| 397 | for(pos = 0; (pos < len); pos++) | 389 | |
| 398 | ldapschema_print_line( | 390 | case LDAPSCHEMA_OBJECTCLASS: |
| 399 | ((!(pos))?name:""), | 391 | if ((((LDAPSchemaObjectclass *)list[pos])->names)) |
| 400 | (((list[pos]->names))?list[pos]->names[0]:list[pos]->model.oid) | 392 | key = ((LDAPSchemaObjectclass *)list[pos])->names[0]; |
| 401 | ); | 393 | break; |
| 394 | |||
| 395 | case LDAPSCHEMA_SYNTAX: | ||
| 396 | if ((((LDAPSchemaSyntax *)list[pos])->model.desc)) | ||
| 397 | key = ((LDAPSchemaSyntax *)list[pos])->model.desc; | ||
| 398 | break; | ||
| 399 | |||
| 400 | default: | ||
| 401 | key = list[pos]->desc; | ||
| 402 | break; | ||
| 403 | }; | ||
| 404 | if (!(key)) | ||
| 405 | key = list[pos]->oid; | ||
| 406 | if (!(key)) | ||
| 407 | continue; | ||
| 408 | |||
| 409 | if ((pos + 1) < list_len) | ||
| 410 | buff_len += (size_t)snprintf(&buff[buff_len], sizeof(buff)-buff_len, "%s, ", key ); | ||
| 411 | else | ||
| 412 | buff_len += (size_t)snprintf(&buff[buff_len], sizeof(buff)-buff_len, "%s", key ); | ||
| 413 | if (buff_len >= LDAPSCHEMA_WIDTH_VALUE) | ||
| 414 | { | ||
| 415 | ldapschema_print_line( ((!(lineno))?name:NULL), buff); | ||
| 416 | buff_len = 0; | ||
| 417 | buff[0] = '\0'; | ||
| 418 | lineno++; | ||
| 419 | }; | ||
| 420 | }; | ||
| 421 | if ((buff_len)) | ||
| 422 | ldapschema_print_line( ((!(lineno))?name:NULL), buff); | ||
| 402 | 423 | ||
| 403 | return; | 424 | return; |
| 404 | } | 425 | } |
| @@ -460,8 +481,8 @@ void ldapschema_print_obj_attributetype( LDAPSchema * lsd, LDAPSchemaAttributeTy | |||
| 460 | }; | 481 | }; |
| 461 | 482 | ||
| 462 | ldapschema_print_extensions(lsd, &attr->model); | 483 | ldapschema_print_extensions(lsd, &attr->model); |
| 463 | ldapschema_print_list_objcls(lsd, "required by:", attr->required_by, attr->required_by_len); | 484 | ldapschema_print_list_models(lsd, "required by:", (LDAPSchemaModel **)attr->required_by, attr->required_by_len); |
| 464 | ldapschema_print_list_objcls(lsd, "allowed by:", attr->allowed_by, attr->allowed_by_len); | 485 | ldapschema_print_list_models(lsd, "allowed by:", (LDAPSchemaModel **)attr->allowed_by, attr->allowed_by_len); |
| 465 | ldapschema_print_definition(lsd, &attr->model); | 486 | ldapschema_print_definition(lsd, &attr->model); |
| 466 | 487 | ||
| 467 | return; | 488 | return; |
| @@ -513,10 +534,10 @@ void ldapschema_print_obj_objectclass(LDAPSchema * lsd, LDAPSchemaObjectclass * | |||
| 513 | ldapschema_print_line(NULL, (((sup->names))?sup->names[0]:sup->model.oid) ); | 534 | ldapschema_print_line(NULL, (((sup->names))?sup->names[0]:sup->model.oid) ); |
| 514 | }; | 535 | }; |
| 515 | 536 | ||
| 516 | ldapschema_print_list_attrs(lsd, "may:", objcls->may, objcls->may_len); | 537 | ldapschema_print_list_models(lsd, "may:", (LDAPSchemaModel **)objcls->may, objcls->may_len); |
| 517 | ldapschema_print_list_attrs(lsd, "must:", objcls->must, objcls->must_len); | 538 | ldapschema_print_list_models(lsd, "must:", (LDAPSchemaModel **)objcls->must, objcls->must_len); |
| 518 | ldapschema_print_list_attrs(lsd, "inherited may:", objcls->inherit_may, objcls->inherit_may_len); | 539 | ldapschema_print_list_models(lsd, "inherited may:", (LDAPSchemaModel **)objcls->inherit_may, objcls->inherit_may_len); |
| 519 | ldapschema_print_list_attrs(lsd, "inherited must:", objcls->inherit_must, objcls->inherit_must_len); | 540 | ldapschema_print_list_models(lsd, "inherited must:", (LDAPSchemaModel **)objcls->inherit_must, objcls->inherit_must_len); |
| 520 | ldapschema_print_extensions(lsd, &objcls->model); | 541 | ldapschema_print_extensions(lsd, &objcls->model); |
| 521 | ldapschema_print_definition(lsd, &objcls->model); | 542 | ldapschema_print_definition(lsd, &objcls->model); |
| 522 | 543 | ||
