home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ldapsdk.zip / libraries / libldap / apitest.c < prev    next >
C/C++ Source or Header  |  2000-06-14  |  6KB  |  193 lines

  1. /* $OpenLDAP: pkg/ldap/libraries/libldap/apitest.c,v 1.14.8.3 2000/06/13 17:57:18 kurt Exp $ */
  2. /*
  3.  * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
  4.  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  5.  */
  6. /*
  7.  * OpenLDAP API Test
  8.  *    Written by: Kurt Zeilenga
  9.  *
  10.  * This program is designed to test API features of implementations
  11.  * of the IETF draft specifications.
  12.  *
  13.  */
  14. #include "portable.h"
  15.  
  16. #include <ac/stdlib.h>
  17.  
  18. #include <stdio.h>
  19.  
  20. #include <ldap.h>
  21.  
  22. int
  23. main(int argc, char **argv)
  24. {
  25.     LDAPAPIInfo api;
  26.     int ival;
  27.     char *sval;
  28.  
  29.     printf("Compile time API Information\n");
  30.  
  31. #ifdef LDAP_API_INFO_VERSION
  32.     api.ldapai_info_version = LDAP_API_INFO_VERSION;
  33.     printf("  API Info version:  %d\n", (int) api.ldapai_info_version);
  34. #else
  35.     api.ldapai_info_version = 1;
  36.     printf("  API Info version:  unknown\n");
  37. #endif
  38.  
  39. #ifdef LDAP_FEATURE_INFO_VERSION
  40.     printf("  Feature Info version:  %d\n", (int) LDAP_FEATURE_INFO_VERSION);
  41. #else
  42.     printf("  Feature Info version:  unknown\n");
  43.     api.ldapai_info_version = 1;
  44. #endif
  45.  
  46. #ifdef LDAP_API_VERSION
  47.     printf("  API version:       %d\n", (int) LDAP_API_VERSION);
  48. #else
  49.     printf("  API version:       unknown\n");
  50. #endif
  51.  
  52. #ifdef LDAP_VERSION
  53.     printf("  Protocol Version:  %d\n", (int) LDAP_VERSION);
  54. #else
  55.     printf("  Protocol Version:  unknown\n");
  56. #endif
  57. #ifdef LDAP_VERSION_MIN
  58.     printf("  Protocol Min:      %d\n", (int) LDAP_VERSION_MIN);
  59. #else
  60.     printf("  Protocol Min:      unknown\n");
  61. #endif
  62. #ifdef LDAP_VERSION_MAX
  63.     printf("  Protocol Max:      %d\n", (int) LDAP_VERSION_MAX);
  64. #else
  65.     printf("  Protocol Max:      unknown\n");
  66. #endif
  67. #ifdef LDAP_VENDOR_NAME
  68.     printf("  Vendor Name:       %s\n", LDAP_VENDOR_NAME);
  69. #else
  70.     printf("  Vendor Name:       unknown\n");
  71. #endif
  72. #ifdef LDAP_VENDOR_VERSION
  73.     printf("  Vendor Version:    %d\n", (int) LDAP_VENDOR_VERSION);
  74. #else
  75.     printf("  Vendor Version:    unknown\n");
  76. #endif
  77.  
  78.     if(ldap_get_option(NULL, LDAP_OPT_API_INFO, &api) != LDAP_SUCCESS) {
  79.         fprintf(stderr, "%s: ldap_get_option(API_INFO) failed\n", argv[0]);
  80.         return EXIT_FAILURE;
  81.     }
  82.  
  83.     printf("\nExecution time API Information\n");
  84.     printf("  API Info version:  %d\n", api.ldapai_info_version);
  85.  
  86.     if (api.ldapai_info_version != LDAP_API_INFO_VERSION) {
  87.         printf(" API INFO version mismatch: got %d, expected %d\n",
  88.             api.ldapai_info_version, LDAP_API_INFO_VERSION);
  89.         return EXIT_FAILURE;
  90.     }
  91.  
  92.     printf("  API Version:       %d\n", api.ldapai_api_version);
  93.     printf("  Protocol Max:      %d\n", api.ldapai_protocol_version);
  94.  
  95.     if(api.ldapai_extensions == NULL) {
  96.         printf("  Extensions:        none\n");
  97.  
  98.     } else {
  99.         int i;
  100.         for(i=0; api.ldapai_extensions[i] != NULL; i++) /* empty */;
  101.         printf("  Extensions:        %d\n", i);
  102.         for(i=0; api.ldapai_extensions[i] != NULL; i++) {
  103. #ifdef LDAP_OPT_API_FEATURE_INFO
  104.             LDAPAPIFeatureInfo fi;
  105.             fi.ldapaif_info_version = LDAP_FEATURE_INFO_VERSION;
  106.             fi.ldapaif_name = api.ldapai_extensions[i];
  107.             fi.ldapaif_version = 0;
  108.  
  109.             if( ldap_get_option(NULL, LDAP_OPT_API_FEATURE_INFO, &fi) == LDAP_SUCCESS ) {
  110.                 if(fi.ldapaif_info_version != LDAP_FEATURE_INFO_VERSION) {
  111.                     printf("                     %s feature info mismatch: got %d, expected %d\n",
  112.                         api.ldapai_extensions[i],
  113.                         LDAP_FEATURE_INFO_VERSION,
  114.                         fi.ldapaif_info_version);
  115.  
  116.                 } else {
  117.                     printf("                     %s: version %d\n",
  118.                         fi.ldapaif_name,
  119.                         fi.ldapaif_version);
  120.                 }
  121.  
  122.             } else {
  123.                 printf("                     %s (NO FEATURE INFO)\n",
  124.                     api.ldapai_extensions[i]);
  125.             }
  126.  
  127. #else
  128.             printf("                     %s\n",
  129.                 api.ldapai_extensions[i]);
  130. #endif
  131.  
  132.             ldap_memfree(api.ldapai_extensions[i]);
  133.         }
  134.         ldap_memfree(api.ldapai_extensions);
  135.     }
  136.  
  137.     printf("  Vendor Name:       %s\n", api.ldapai_vendor_name);
  138.     ldap_memfree(api.ldapai_vendor_name);
  139.  
  140.     printf("  Vendor Version:    %d\n", api.ldapai_vendor_version);
  141.  
  142.     printf("\nExecution time Default Options\n");
  143.  
  144.     if(ldap_get_option(NULL, LDAP_OPT_DEREF, &ival) != LDAP_SUCCESS) {
  145.         fprintf(stderr, "%s: ldap_get_option(api) failed\n", argv[0]);
  146.         return EXIT_FAILURE;
  147.     }
  148.     printf("  DEREF:             %d\n", ival);
  149.  
  150.     if(ldap_get_option(NULL, LDAP_OPT_SIZELIMIT, &ival) != LDAP_SUCCESS) {
  151.         fprintf(stderr, "%s: ldap_get_option(sizelimit) failed\n", argv[0]);
  152.         return EXIT_FAILURE;
  153.     }
  154.     printf("  SIZELIMIT:         %d\n", ival);
  155.  
  156.     if(ldap_get_option(NULL, LDAP_OPT_TIMELIMIT, &ival) != LDAP_SUCCESS) {
  157.         fprintf(stderr, "%s: ldap_get_option(timelimit) failed\n", argv[0]);
  158.         return EXIT_FAILURE;
  159.     }
  160.     printf("  TIMELIMIT:         %d\n", ival);
  161.  
  162.     if(ldap_get_option(NULL, LDAP_OPT_REFERRALS, &ival) != LDAP_SUCCESS) {
  163.         fprintf(stderr, "%s: ldap_get_option(referrals) failed\n", argv[0]);
  164.         return EXIT_FAILURE;
  165.     }
  166.     printf("  REFERRALS:         %s\n", ival ? "on" : "off");
  167.  
  168.     if(ldap_get_option(NULL, LDAP_OPT_RESTART, &ival) != LDAP_SUCCESS) {
  169.         fprintf(stderr, "%s: ldap_get_option(restart) failed\n", argv[0]);
  170.         return EXIT_FAILURE;
  171.     }
  172.     printf("  RESTART:           %s\n", ival ? "on" : "off");
  173.  
  174.     if(ldap_get_option(NULL, LDAP_OPT_PROTOCOL_VERSION, &ival) != LDAP_SUCCESS) {
  175.         fprintf(stderr, "%s: ldap_get_option(protocol version) failed\n", argv[0]);
  176.         return EXIT_FAILURE;
  177.     }
  178.     printf("  PROTOCOL VERSION:  %d\n", ival);
  179.  
  180.     if(ldap_get_option(NULL, LDAP_OPT_HOST_NAME, &sval) != LDAP_SUCCESS) {
  181.         fprintf(stderr, "%s: ldap_get_option(host name) failed\n", argv[0]);
  182.         return EXIT_FAILURE;
  183.     }
  184.     if( sval != NULL ) {
  185.         printf("  HOST NAME:         %s\n", sval);
  186.         ldap_memfree(sval);
  187.     } else {
  188.         puts("  HOST NAME:         <not set>");
  189.     }
  190.  
  191.     return EXIT_SUCCESS;
  192. }
  193.