]> git.sur5r.net Git - openldap/blobdiff - include/ldap_pvt.h
Add server side sorting
[openldap] / include / ldap_pvt.h
index dc6096d46071f855fa113b513fc5a01389c47cde..f26889af743e8e75c9106f9fa3d56e6db49f51f6 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  * 
- * Copyright 1998-2007 The OpenLDAP Foundation.
+ * Copyright 1998-2008 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -27,6 +27,7 @@ LDAP_BEGIN_DECL
 #define LDAP_PROTO_TCP 1 /* ldap://  */
 #define LDAP_PROTO_UDP 2 /* reserved */
 #define LDAP_PROTO_IPC 3 /* ldapi:// */
+#define LDAP_PROTO_EXT 4 /* user-defined socket/sockbuf */
 
 LDAP_F ( int )
 ldap_pvt_url_scheme2proto LDAP_P((
@@ -46,13 +47,20 @@ struct ldap_url_desc; /* avoid pulling in <ldap.h> */
 #define LDAP_PVT_URL_PARSE_DEF_PORT            (0x02U)
 #define LDAP_PVT_URL_PARSE_NOEMPTY_DN          (0x04U)
 #define LDAP_PVT_URL_PARSE_NODEF_SCOPE         (0x08U)
-#define        LDAP_PVT_URL_PARSE_HISTORIC             (LDAP_PVT_URL_PARSE_NODEF_SCOPE | LDAP_PVT_URL_PARSE_NOEMPTY_HOST | LDAP_PVT_URL_PARSE_DEF_PORT)
+#define        LDAP_PVT_URL_PARSE_HISTORIC             (LDAP_PVT_URL_PARSE_NODEF_SCOPE | \
+                                                LDAP_PVT_URL_PARSE_NOEMPTY_HOST | \
+                                                LDAP_PVT_URL_PARSE_DEF_PORT)
+
 LDAP_F( int )
 ldap_url_parse_ext LDAP_P((
        LDAP_CONST char *url,
        struct ldap_url_desc **ludpp,
        unsigned flags ));
 
+LDAP_F (int) ldap_url_parselist LDAP_P((       /* deprecated, use ldap_url_parselist_ext() */
+       struct ldap_url_desc **ludlist,
+       const char *url ));
+
 LDAP_F (int) ldap_url_parselist_ext LDAP_P((
        struct ldap_url_desc **ludlist,
        const char *url,
@@ -161,7 +169,7 @@ LDAP_F( int ) ldap_bv2rdn_x LDAP_P((
        struct berval *, LDAPRDN *, char **, unsigned flags, void *ctx ));
 LDAP_F( int ) ldap_rdn2bv_x LDAP_P(( 
        LDAPRDN rdn, struct berval *bv, unsigned flags, void *ctx ));
-#endif
+#endif /* LDAP_AVA_NULL */
 
 /* url.c */
 LDAP_F (void) ldap_pvt_hex_unescape LDAP_P(( char *s ));
@@ -187,12 +195,10 @@ LDAP_F (void) ldap_pvt_hex_unescape LDAP_P(( char *s ));
 
 /* controls.c */
 struct ldapcontrol;
-LDAP_F (struct ldapcontrol *) ldap_control_dup LDAP_P((
-       const struct ldapcontrol *ctrl ));
-
-LDAP_F (struct ldapcontrol **) ldap_controls_dup LDAP_P((
-       struct ldapcontrol *const *ctrls ));
-
+LDAP_F (int)
+ldap_pvt_put_control LDAP_P((
+       const struct ldapcontrol *c,
+       BerElement *ber ));
 LDAP_F (int) ldap_pvt_get_controls LDAP_P((
        BerElement *be,
        struct ldapcontrol ***ctrlsp));
@@ -219,7 +225,7 @@ LDAP_F (void) ldap_pvt_sasl_remove LDAP_P(( struct sockbuf * ));
 
 #ifndef LDAP_PVT_SASL_LOCAL_SSF
 #define LDAP_PVT_SASL_LOCAL_SSF        71      /* SSF for Unix Domain Sockets */
-#endif
+#endif /* ! LDAP_PVT_SASL_LOCAL_SSF */
 
 struct ldap;
 struct ldapmsg;
@@ -236,6 +242,8 @@ ldap_get_message_ber LDAP_P((
 /* open */
 LDAP_F (int) ldap_open_internal_connection LDAP_P((
        struct ldap **ldp, ber_socket_t *fdp ));
+LDAP_F (int) ldap_init_fd LDAP_P((
+       ber_socket_t fd, int proto, LDAP_CONST char *url, struct ldap **ldp ));
 
 /* search.c */
 LDAP_F( int ) ldap_pvt_put_filter LDAP_P((
@@ -282,8 +290,7 @@ LDAP_F (int) ldap_pvt_tls_init_def_ctx LDAP_P(( int is_server ));
 LDAP_F (int) ldap_pvt_tls_accept LDAP_P(( Sockbuf *sb, void *ctx_arg ));
 LDAP_F (int) ldap_pvt_tls_inplace LDAP_P(( Sockbuf *sb ));
 LDAP_F (void *) ldap_pvt_tls_sb_ctx LDAP_P(( Sockbuf *sb ));
-
-LDAP_F (int) ldap_pvt_tls_init_default_ctx LDAP_P(( void ));
+LDAP_F (void) ldap_pvt_tls_ctx_free LDAP_P(( void * ));
 
 typedef int LDAPDN_rewrite_dummy LDAP_P (( void *dn, unsigned flags ));
 
@@ -309,7 +316,9 @@ LDAP_END_DECL
  * If none is available, unsigned long data is used.
  */
 
-#if USE_MP_BIGNUM
+LDAP_BEGIN_DECL
+
+#ifdef USE_MP_BIGNUM
 /*
  * Use OpenSSL's BIGNUM
  */
@@ -335,7 +344,7 @@ typedef     BIGNUM* ldap_pvt_mp_t;
 #define ldap_pvt_mp_clear(mp) \
        do { BN_free((mp)); (mp) = 0; } while (0)
 
-#elif USE_MP_GMP
+#elif defined(USE_MP_GMP)
 /*
  * Use GNU's multiple precision library
  */
@@ -364,13 +373,13 @@ typedef mpz_t             ldap_pvt_mp_t;
  * Use unsigned long long
  */
 
-#if USE_MP_LONG_LONG
+#ifdef USE_MP_LONG_LONG
 typedef        unsigned long long      ldap_pvt_mp_t;
 #define        LDAP_PVT_MP_INIT        (0LL)
-#elif USE_MP_LONG
+#elif defined(USE_MP_LONG)
 typedef        unsigned long           ldap_pvt_mp_t;
 #define        LDAP_PVT_MP_INIT        (0L)
-#elif HAVE_LONG_LONG
+#elif defined(HAVE_LONG_LONG)
 typedef        unsigned long long      ldap_pvt_mp_t;
 #define        LDAP_PVT_MP_INIT        (0LL)
 #else
@@ -397,4 +406,15 @@ typedef    unsigned long           ldap_pvt_mp_t;
 
 #include "ldap_pvt_uc.h"
 
+LDAP_END_DECL
+
+LDAP_BEGIN_DECL
+
+#include <limits.h>                            /* get CHAR_BIT */
+
+/* Buffer space for sign, decimal digits and \0. Note: log10(2) < 146/485. */
+#define LDAP_PVT_INTTYPE_CHARS(type) (((sizeof(type)*CHAR_BIT-1)*146)/485 + 3)
+
+LDAP_END_DECL
+
 #endif /* _LDAP_PVT_H */