]> git.sur5r.net Git - openldap/blobdiff - include/ldap.h
cleanup old TOOLID macro
[openldap] / include / ldap.h
index f5b733f0fb65d35202e0cc5f7d4b30551b2e0006..2a97528a37825ee7fc20e2c300c140b958d4e0e5 100644 (file)
@@ -1,6 +1,6 @@
 /* $OpenLDAP$ */
 /*
- * Copyright 1998,1999 The OpenLDAP Foundation, Redwood City, California, USA
+ * Copyright 1998-2000 The OpenLDAP Foundation, Redwood City, California, USA
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted only
@@ -23,9 +23,7 @@
 #ifndef _LDAP_H
 #define _LDAP_H
 
-#include <ldap_cdefs.h>
-
-/* draft spec requires ldap.h include lber declarations */
+/* pull in lber */
 #include <lber.h>
 
 LDAP_BEGIN_DECL
@@ -104,7 +102,7 @@ LDAP_BEGIN_DECL
 
 /* 0x34 - 0x0fff not defined by current draft */
 
-/* extended options - none */
+#define LDAP_OPT_PRIVATE_EXTENSION_BASE 0x4000  /* to 0x7FFF inclusive */
 
 /* private and experimental options */
 #define LDAP_OPT_DNS                           0x4001  /* use DN & DNS */
@@ -114,8 +112,9 @@ LDAP_BEGIN_DECL
 #define LDAP_OPT_TIMEOUT                       0x5002  /* default timeout */
 #define LDAP_OPT_REFHOPLIMIT           0x5003  /* ref hop limit */
 #define LDAP_OPT_NETWORK_TIMEOUT        0x5005  /* socket level timeout */
+#define LDAP_OPT_URI                           0x5006
 
-/* TLS options */
+/* OpenLDAP TLS options */
 #define LDAP_OPT_X_TLS_CACERTFILE      0x6001
 #define LDAP_OPT_X_TLS_CACERTDIR       0x6002
 #define LDAP_OPT_X_TLS_CERT            0x6003
@@ -132,6 +131,11 @@ LDAP_BEGIN_DECL
 #define LDAP_OPT_X_TLS_ALLOW           3
 #define LDAP_OPT_X_TLS_TRY             4
 
+/* OpenLDAP SASL options */
+#define LDAP_OPT_X_SASL_MINSSF         0x6100
+#define LDAP_OPT_X_SASL_MAXSSF         0x6101
+#define LDAP_OPT_X_SASL_ACTSSF         0x6102
+
 /* on/off values */
 #define LDAP_OPT_ON            ((void *) 1)
 #define LDAP_OPT_OFF   ((void *) 0)
@@ -171,8 +175,7 @@ typedef struct ldapcontrol {
 #define LDAP_CONTROL_MANAGEDSAIT "2.16.840.1.113730.3.4.2"
 
 /* Experimental Controls */
-#define LDAP_CONTROL_X_CHANGE_PASSWD "1.3.6.1.4.1.4203.666.5.1"
-
+#define LDAP_CONTROL_X_MODIFY_PASSWD "1.3.6.1.4.1.4203.666.5.1"
 
 /* LDAP Unsolicited Notifications */
 #define        LDAP_NOTICE_OF_DISCONNECTION    "1.3.6.1.4.1.1466.20036"
@@ -180,7 +183,13 @@ typedef struct ldapcontrol {
 
 
 /* LDAP Extended Operations */
+#define LDAP_EXOP_START_TLS "1.3.6.1.4.1.1466.20037"
 
+#define LDAP_EXOP_X_MODIFY_PASSWD "1.3.6.1.4.1.4203.666.6.1"
+#define LDAP_TAG_EXOP_X_MODIFY_PASSWD_ID       ((ber_tag_t) 0x80U)
+#define LDAP_TAG_EXOP_X_MODIFY_PASSWD_OLD      ((ber_tag_t) 0x81U)
+#define LDAP_TAG_EXOP_X_MODIFY_PASSWD_NEW      ((ber_tag_t) 0x82U)
+#define LDAP_TAG_EXOP_X_MODIFY_PASSWD_GEN      ((ber_tag_t) 0x80U)
 
 /* 
  * specific LDAP instantiations of BER types we know about
@@ -221,8 +230,6 @@ typedef struct ldapcontrol {
 #define LDAP_TAG_SASL_RES_CREDS        ((ber_tag_t) 0x87U)     /* context specific + primitive */
 
 
-
-
 /* possible operations a client can invoke */
 #define LDAP_REQ_BIND                  ((ber_tag_t) 0x60U)     /* application + constructed */
 #define LDAP_REQ_UNBIND                        ((ber_tag_t) 0x42U)     /* application + primitive   */
@@ -250,6 +257,7 @@ typedef struct ldapcontrol {
 #define LDAP_RES_RENAME                        LDAP_RES_MODRDN /* application + constructed */
 #define LDAP_RES_COMPARE               ((ber_tag_t) 0x6fU)     /* application + constructed */
 #define LDAP_RES_EXTENDED              ((ber_tag_t) 0x78U)     /* V3: application + constructed */
+#define LDAP_RES_EXTENDED_PARTIAL      ((ber_tag_t) 0x79U)     /* V3+: application + constructed */
 
 #define LDAP_RES_ANY                   ((ber_tag_t)(-1))
 #define LDAP_RES_UNSOLICITED   ((ber_tag_t)(0))
@@ -295,27 +303,10 @@ typedef struct ldapcontrol {
 #define LDAP_SCOPE_ONELEVEL    ((ber_int_t) 0x0001)
 #define LDAP_SCOPE_SUBTREE     ((ber_int_t) 0x0002)
 
-/* for modifications */
-typedef struct ldapmod {
-       int             mod_op;
-
-#define LDAP_MOD_ADD           ((ber_int_t) 0x0000)
-#define LDAP_MOD_DELETE                ((ber_int_t) 0x0001)
-#define LDAP_MOD_REPLACE       ((ber_int_t) 0x0002)
-#define LDAP_MOD_BVALUES       ((ber_int_t) 0x0080)
-/* IMPORTANT: do not use code 0x1000 (or above),
- * it is used internally by the backends!
- * (see ldap/servers/slapd/slap.h)
- */
-
-       char            *mod_type;
-       union mod_vals_u {
-               char            **modv_strvals;
-               struct berval   **modv_bvals;
-       } mod_vals;
-#define mod_values     mod_vals.modv_strvals
-#define mod_bvalues    mod_vals.modv_bvals
-} LDAPMod;
+/* substring filter component types */
+#define LDAP_SUBSTRING_INITIAL ((ber_tag_t) 0x80U)     /* context specific */
+#define LDAP_SUBSTRING_ANY     ((ber_tag_t) 0x81U)     /* context specific */
+#define LDAP_SUBSTRING_FINAL   ((ber_tag_t) 0x82U)     /* context specific */
 
 /* 
  * possible error codes we can return
@@ -413,6 +404,28 @@ typedef struct ldapmod {
 
 typedef struct ldapmsg LDAPMessage;
 
+/* for modifications */
+typedef struct ldapmod {
+       int             mod_op;
+
+#define LDAP_MOD_ADD           ((ber_int_t) 0x0000)
+#define LDAP_MOD_DELETE                ((ber_int_t) 0x0001)
+#define LDAP_MOD_REPLACE       ((ber_int_t) 0x0002)
+#define LDAP_MOD_BVALUES       ((ber_int_t) 0x0080)
+/* IMPORTANT: do not use code 0x1000 (or above),
+ * it is used internally by the backends!
+ * (see ldap/servers/slapd/slap.h)
+ */
+
+       char            *mod_type;
+       union mod_vals_u {
+               char            **modv_strvals;
+               struct berval   **modv_bvals;
+       } mod_vals;
+#define mod_values     mod_vals.modv_strvals
+#define mod_bvalues    mod_vals.modv_bvals
+} LDAPMod;
+
 /*
  * structures for ldap getfilter routines
  */
@@ -481,16 +494,26 @@ typedef struct ldap_friendly {
  * types for ldap URL handling
  */
 typedef struct ldap_url_desc {
-       int             lud_ldaps;
+    struct ldap_url_desc *lud_next;
+    unsigned long lud_properties;
+    int                lud_protocol;
     char       *lud_host;
     int                lud_port;
     char       *lud_dn;
     char       **lud_attrs;
     int                lud_scope;
     char       *lud_filter;
-       char    **lud_exts;
+    char       **lud_exts;
 } LDAPURLDesc;
 
+/* lud_properties */
+#define        LDAP_URL_USE_SSL                0x00000001
+
+/* lud_protocol */
+#define LDAP_PROTO_TCP                 0x00
+#define LDAP_PROTO_UDP                 0x01    
+#define LDAP_PROTO_LOCAL               0x02
+
 #define LDAP_URL_SUCCESS               0x00    /* Success */
 #define LDAP_URL_ERR_MEM               0x01    /* can't allocate memory space */
 #define LDAP_URL_ERR_PARAM             0x02    /* parameter is bad */
@@ -537,7 +560,24 @@ LIBLDAP_F( void )
 ldap_controls_free LDAP_P((
        LDAPControl **ctrls ));
 
-  
+/*
+ * in dnssrv.c:
+ */
+LIBLDAP_F( int )
+ldap_domain2dn LDAP_P((
+       LDAP_CONST char* domain,
+       char** dn ));
+
+LIBLDAP_F( int )
+ldap_dn2domain LDAP_P((
+       LDAP_CONST char* dn,
+       char** domain ));
+
+LIBLDAP_F( int )
+ldap_domain2hostlist LDAP_P((
+       LDAP_CONST char *domain,
+       char** hostlist ));
+
 /*
  * in extended.c:
  */
@@ -630,6 +670,17 @@ ldap_sasl_bind LDAP_P((
        LDAPControl             **clientctrls,
        int                             *msgidp ));
 
+LIBLDAP_F( int )
+ldap_negotiated_sasl_bind_s LDAP_P((
+       LDAP *ld,
+       LDAP_CONST char *dn, /* usually NULL */
+       LDAP_CONST char *authenticationId, 
+       LDAP_CONST char *authorizationId, /* usually NULL */
+       LDAP_CONST char *saslMechanism,
+       struct berval *passPhrase,
+       LDAPControl **serverControls,
+       LDAPControl **clientControls ));
+
 LIBLDAP_F( int )
 ldap_sasl_bind_s LDAP_P((
        LDAP                    *ld,
@@ -977,6 +1028,20 @@ ldap_init LDAP_P((
        LDAP_CONST char *host,
        int port ));
 
+LIBLDAP_F( int )
+ldap_create LDAP_P(( 
+       LDAP **ldp ));
+
+LIBLDAP_F( int )
+ldap_initialize LDAP_P((
+       LDAP **ldp,
+       LDAP_CONST char *url ));
+
+LIBLDAP_F( int )
+ldap_start_tls LDAP_P((
+       LDAP *ld,
+       LDAPControl **serverctrls,
+       LDAPControl **clientctrls ));
 
 /*
  * in messages.c:
@@ -1105,6 +1170,11 @@ LIBLDAP_F( int )
 ldap_is_dns_dn LDAP_P((        /* deprecated */
        LDAP_CONST char *dn ));
 
+LIBLDAP_F( char * )
+ldap_dn2dcedn LDAP_P(( LDAP_CONST char *dn ));
+
+LIBLDAP_F( char * )
+ldap_dcedn2dn LDAP_P(( LDAP_CONST char *dce ));
 
 /*
  * in getattr.c