;
; ***** BEGIN LICENSE BLOCK *****
; Version: MPL 1.1/GPL 2.0/LGPL 2.1
; 
; The contents of this file are subject to the Mozilla Public License Version 
; 1.1 (the "License"); you may not use this file except in compliance with 
; the License. You may obtain a copy of the License at 
; http://www.mozilla.org/MPL/
; 
; Software distributed under the License is distributed on an "AS IS" basis,
; WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
; for the specific language governing rights and limitations under the
; License.
; 
; The Original Code is Mozilla Communicator client code.
; 
; The Initial Developer of the Original Code is
; Netscape Communications Corporation.
; Portions created by the Initial Developer are Copyright (C) 1996-1999
; the Initial Developer. All Rights Reserved.
; 
; Contributor(s):
; 
; Alternatively, the contents of this file may be used under the terms of
; either of the GNU General Public License Version 2 or later (the "GPL"),
; or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
; in which case the provisions of the GPL or the LGPL are applicable instead
; of those above. If you wish to allow use of your version of this file only
; under the terms of either the GPL or the LGPL, and not to allow others to
; use your version of this file under the terms of the MPL, indicate your
; decision by deleting the provisions above and replace them with the notice
; and other provisions required by the GPL or the LGPL. If you do not delete
; the provisions above, a recipient may use your version of this file under
; the terms of any one of the MPL, the GPL or the LGPL.
; 
; ***** END LICENSE BLOCK ***** 

LIBRARY         NSLDAP
DESCRIPTION     'Lightweight Directory Access Protocol Client API for 16-bit Windows'
EXETYPE         WINDOWS
CODE            PRELOAD MOVEABLE DISCARDABLE
DATA            PRELOAD MOVEABLE SINGLE

HEAPSIZE        4096

EXPORTS
; we need to manually assign ordinal numbers so we can add new routines
; and not disturb the ordinals and thus not require callers to relink.
; 
; exports list (generated by genexports.pl)
; 

	_ldap_abandon=LDAP_ABANDON		@10
	_ldap_add=LDAP_ADD		@11
	_ldap_unbind=LDAP_UNBIND		@13

; 	_ldap_enable_cache=LDAP_ENABLE_CACHE		@14
; 	_ldap_disable_cache=LDAP_DISABLE_CACHE		@15
; 	_ldap_destroy_cache=LDAP_DESTROY_CACHE		@16
; 	_ldap_flush_cache=LDAP_FLUSH_CACHE		@17
; 	_ldap_uncache_entry=LDAP_UNCACHE_ENTRY		@18

	_ldap_compare=LDAP_COMPARE		@19
	_ldap_delete=LDAP_DELETE		@20
	_ldap_result2error=LDAP_RESULT2ERROR		@21
	_ldap_err2string=LDAP_ERR2STRING		@22
	_ldap_modify=LDAP_MODIFY		@23
	_ldap_modrdn=LDAP_MODRDN		@24
	_ldap_open=LDAP_OPEN		@25
	_ldap_first_entry=LDAP_FIRST_ENTRY		@26
	_ldap_next_entry=LDAP_NEXT_ENTRY		@27
	_ldap_get_dn=LDAP_GET_DN		@30
	_ldap_dn2ufn=LDAP_DN2UFN		@31
	_ldap_first_attribute=LDAP_FIRST_ATTRIBUTE		@32
	_ldap_next_attribute=LDAP_NEXT_ATTRIBUTE		@33
	_ldap_get_values=LDAP_GET_VALUES		@34
	_ldap_get_values_len=LDAP_GET_VALUES_LEN		@35
	_ldap_count_entries=LDAP_COUNT_ENTRIES		@36
	_ldap_count_values=LDAP_COUNT_VALUES		@37
	_ldap_value_free=LDAP_VALUE_FREE		@38
	_ldap_explode_dn=LDAP_EXPLODE_DN		@39
	_ldap_result=LDAP_RESULT		@40
	_ldap_msgfree=LDAP_MSGFREE		@41
	_ldap_search=LDAP_SEARCH		@43
	_ldap_add_s=LDAP_ADD_S		@44
	_ldap_bind_s=LDAP_BIND_S		@45
	_ldap_unbind_s=LDAP_UNBIND_S		@46
	_ldap_delete_s=LDAP_DELETE_S		@47
	_ldap_modify_s=LDAP_MODIFY_S		@48
	_ldap_modrdn_s=LDAP_MODRDN_S		@49
	_ldap_search_s=LDAP_SEARCH_S		@50
	_ldap_search_st=LDAP_SEARCH_ST		@51
	_ldap_compare_s=LDAP_COMPARE_S		@52
	_ldap_ufn_search_c=LDAP_UFN_SEARCH_C		@53
	_ldap_ufn_search_s=LDAP_UFN_SEARCH_S		@54
	_ldap_init_getfilter=LDAP_INIT_GETFILTER		@55
	_ldap_getfilter_free=LDAP_GETFILTER_FREE		@56
	_ldap_getfirstfilter=LDAP_GETFIRSTFILTER		@57
	_ldap_getnextfilter=LDAP_GETNEXTFILTER		@58
	_ldap_simple_bind=LDAP_SIMPLE_BIND		@59
	_ldap_simple_bind_s=LDAP_SIMPLE_BIND_S		@60
	_ldap_bind=LDAP_BIND		@61
	_ldap_friendly_name=LDAP_FRIENDLY_NAME		@62
	_ldap_free_friendlymap=LDAP_FREE_FRIENDLYMAP		@63
	_ldap_ufn_search_ct=LDAP_UFN_SEARCH_CT		@64

; 	_ldap_set_cache_options=LDAP_SET_CACHE_OPTIONS		@65
; 	_ldap_uncache_request=LDAP_UNCACHE_REQUEST		@66

	_ldap_modrdn2=LDAP_MODRDN2		@67
	_ldap_modrdn2_s=LDAP_MODRDN2_S		@68
	_ldap_ufn_setfilter=LDAP_UFN_SETFILTER		@69
	_ldap_ufn_setprefix=LDAP_UFN_SETPREFIX		@70
	_ldap_ufn_timeout		@71
	_ldap_init_getfilter_buf=LDAP_INIT_GETFILTER_BUF		@72
	_ldap_setfilteraffixes=LDAP_SETFILTERAFFIXES		@73
	_ldap_sort_entries=LDAP_SORT_ENTRIES		@74
	_ldap_sort_values=LDAP_SORT_VALUES		@75
	_ldap_sort_strcasecmp		@76
	_ldap_count_values_len=LDAP_COUNT_VALUES_LEN		@77
	_ldap_name2template=LDAP_NAME2TEMPLATE		@78
	_ldap_value_free_len=LDAP_VALUE_FREE_LEN		@79

;  manually comment and uncomment these five as necessary
; 	_ldap_kerberos_bind1=LDAP_KERBEROS_BIND1		@80
; 	_ldap_kerberos_bind2=LDAP_KERBEROS_BIND2		@81
; 	_ldap_kerberos_bind_s=LDAP_KERBEROS_BIND_S		@82
; 	_ldap_kerberos_bind1_s=LDAP_KERBEROS_BIND1_S		@83
; 	_ldap_kerberos_bind2_s=LDAP_KERBEROS_BIND2_S		@84

	_ldap_init=LDAP_INIT		@85
	_ldap_is_dns_dn=LDAP_IS_DNS_DN		@86
	_ldap_explode_dns=LDAP_EXPLODE_DNS		@87
	_ldap_mods_free=LDAP_MODS_FREE		@88

	_ldap_is_ldap_url=LDAP_IS_LDAP_URL		@89
	_ldap_free_urldesc=LDAP_FREE_URLDESC		@90
	_ldap_url_parse=LDAP_URL_PARSE		@91
	_ldap_url_search=LDAP_URL_SEARCH		@92
	_ldap_url_search_s=LDAP_URL_SEARCH_S		@93
	_ldap_url_search_st=LDAP_URL_SEARCH_ST		@94
	_ldap_set_rebind_proc=LDAP_SET_REBIND_PROC		@95
	_ber_skip_tag=BER_SKIP_TAG		@100
	_ber_peek_tag=BER_PEEK_TAG		@101
	_ber_get_int=BER_GET_INT		@102
	_ber_get_stringb=BER_GET_STRINGB		@103
	_ber_get_stringa=BER_GET_STRINGA		@104
	_ber_get_stringal=BER_GET_STRINGAL		@105
	_ber_get_bitstringa=BER_GET_BITSTRINGA		@106
	_ber_get_null=BER_GET_NULL		@107
	_ber_get_boolean=BER_GET_BOOLEAN		@108
	_ber_first_element=BER_FIRST_ELEMENT		@109
	_ber_next_element=BER_NEXT_ELEMENT		@110
	_ber_scanf		@111
	_ber_bvfree=BER_BVFREE		@112
	_ber_bvecfree=BER_BVECFREE		@113
	_ber_put_int=BER_PUT_INT		@114
	_ber_put_ostring=BER_PUT_OSTRING		@115
	_ber_put_string=BER_PUT_STRING		@116
	_ber_put_bitstring=BER_PUT_BITSTRING		@117
	_ber_put_null=BER_PUT_NULL		@118
	_ber_put_boolean=BER_PUT_BOOLEAN		@119
	_ber_start_seq=BER_START_SEQ		@120
	_ber_start_set=BER_START_SET		@121
	_ber_put_seq=BER_PUT_SEQ		@122
	_ber_put_set=BER_PUT_SET		@123
	_ber_printf		@124
	_ber_read=BER_READ		@125
	_ber_write=BER_WRITE		@126
	_ber_free=BER_FREE		@127
	_ber_flush=BER_FLUSH		@128
	_ber_alloc=BER_ALLOC		@129
	_ber_dup=BER_DUP		@130
	_ber_get_next=BER_GET_NEXT		@131
	_ber_get_tag=BER_GET_TAG		@132
	_ber_put_enum=BER_PUT_ENUM		@133
	_der_alloc=DER_ALLOC		@134
	_ber_alloc_t=BER_ALLOC_T		@135
	_ber_bvdup=BER_BVDUP		@136
	_ber_init_w_nullchar=BER_INIT_W_NULLCHAR		@137
	_ber_reset=BER_RESET		@138
	_ber_get_option=BER_GET_OPTION		@139
	_ber_set_option=BER_SET_OPTION		@140
	_ber_sockbuf_alloc=BER_SOCKBUF_ALLOC		@141
	_ber_sockbuf_get_option=BER_SOCKBUF_GET_OPTION		@142
	_ber_sockbuf_set_option=BER_SOCKBUF_SET_OPTION		@143
	_ber_init=BER_INIT		@144
	_ber_flatten=BER_FLATTEN		@145
	_ber_special_alloc=BER_SPECIAL_ALLOC		@146
	_ber_special_free=BER_SPECIAL_FREE		@147
	_ber_get_next_buffer=BER_GET_NEXT_BUFFER		@148
	_ber_err_print		@149
	_ber_sockbuf_free=BER_SOCKBUF_FREE		@150
	_ber_get_next_buffer_ext=BER_GET_NEXT_BUFFER_EXT		@151
	_ber_svecfree=BER_SVECFREE		@152

	_ldap_memfree=LDAP_MEMFREE		@200
	_ldap_ber_free=LDAP_BER_FREE		@201

	_ldap_init_searchprefs=LDAP_INIT_SEARCHPREFS		@300
	_ldap_init_searchprefs_buf=LDAP_INIT_SEARCHPREFS_BUF		@301
	_ldap_free_searchprefs=LDAP_FREE_SEARCHPREFS		@302
	_ldap_first_searchobj=LDAP_FIRST_SEARCHOBJ		@303
	_ldap_next_searchobj=LDAP_NEXT_SEARCHOBJ		@304
	_ldap_build_filter=LDAP_BUILD_FILTER		@305

	_ldap_init_templates=LDAP_INIT_TEMPLATES		@400
	_ldap_init_templates_buf=LDAP_INIT_TEMPLATES_BUF		@401
	_ldap_free_templates=LDAP_FREE_TEMPLATES		@402
	_ldap_first_disptmpl=LDAP_FIRST_DISPTMPL		@403
	_ldap_next_disptmpl=LDAP_NEXT_DISPTMPL		@404
	_ldap_oc2template=LDAP_OC2TEMPLATE		@405
	_ldap_tmplattrs=LDAP_TMPLATTRS		@406
	_ldap_first_tmplrow=LDAP_FIRST_TMPLROW		@407
	_ldap_next_tmplrow=LDAP_NEXT_TMPLROW		@408
	_ldap_first_tmplcol=LDAP_FIRST_TMPLCOL		@409
	_ldap_next_tmplcol=LDAP_NEXT_TMPLCOL		@410
	_ldap_entry2text_search=LDAP_ENTRY2TEXT_SEARCH		@411
	_ldap_entry2text=LDAP_ENTRY2TEXT		@412
	_ldap_vals2text=LDAP_VALS2TEXT		@413
	_ldap_entry2html=LDAP_ENTRY2HTML		@414
	_ldap_entry2html_search=LDAP_ENTRY2HTML_SEARCH		@415
	_ldap_vals2html=LDAP_VALS2HTML		@416
	_ldap_tmplerr2string=LDAP_TMPLERR2STRING		@417
	_ldap_set_option=LDAP_SET_OPTION		@418
	_ldap_get_option=LDAP_GET_OPTION		@419
	_ldap_charray_merge=LDAP_CHARRAY_MERGE		@420
	_ldap_get_lderrno=LDAP_GET_LDERRNO		@430
	_ldap_set_lderrno=LDAP_SET_LDERRNO		@431
	_ldap_perror=LDAP_PERROR		@432
	_ldap_set_filter_additions=LDAP_SET_FILTER_ADDITIONS		@433
	_ldap_create_filter=LDAP_CREATE_FILTER		@434
	_ldap_version=LDAP_VERSION		@440
	_ldap_multisort_entries=LDAP_MULTISORT_ENTRIES		@441
	_ldap_msgid=LDAP_MSGID		@442
	_ldap_explode_rdn=LDAP_EXPLODE_RDN		@443
	_ldap_msgtype=LDAP_MSGTYPE		@444
	_ldap_cache_flush=LDAP_CACHE_FLUSH		@445
	_ldap_str2charray=LDAP_STR2CHARRAY		@446
	_ldap_charray_add=LDAP_CHARRAY_ADD		@447
	_ldap_charray_dup=LDAP_CHARRAY_DUP		@448
	_ldap_charray_free=LDAP_CHARRAY_FREE		@449

;  Windows ordinals 450-469 are reserved for SSL routines

	_ldap_charray_inlist=LDAP_CHARRAY_INLIST		@470
	_ldap_charray_position=LDAP_CHARRAY_POSITION		@471
	_ldap_rename=LDAP_RENAME		@472
	_ldap_rename_s=LDAP_RENAME_S		@473
	_ldap_utf8len=LDAP_UTF8LEN		@474
	_ldap_utf8next=LDAP_UTF8NEXT		@475
	_ldap_utf8prev=LDAP_UTF8PREV		@476
	_ldap_utf8copy=LDAP_UTF8COPY		@477
	_ldap_utf8characters=LDAP_UTF8CHARACTERS		@478
	_ldap_utf8strtok_r=LDAP_UTF8STRTOK_R		@479
	_ldap_utf8isalnum=LDAP_UTF8ISALNUM		@480
	_ldap_utf8isalpha=LDAP_UTF8ISALPHA		@481
	_ldap_utf8isdigit=LDAP_UTF8ISDIGIT		@482
	_ldap_utf8isxdigit=LDAP_UTF8ISXDIGIT		@483
	_ldap_utf8isspace=LDAP_UTF8ISSPACE		@484
	_ldap_control_free=LDAP_CONTROL_FREE		@485
	_ldap_controls_free=LDAP_CONTROLS_FREE		@486
	_ldap_sasl_bind=LDAP_SASL_BIND		@487
	_ldap_sasl_bind_s=LDAP_SASL_BIND_S		@488
	_ldap_parse_sasl_bind_result=LDAP_PARSE_SASL_BIND_RESULT		@489
;  LDAPv3 simple paging controls are not supported by Netscape at this time.
;  490	ldap_create_page_control
;  491	ldap_parse_page_control
	_ldap_create_sort_control=LDAP_CREATE_SORT_CONTROL		@492
	_ldap_parse_sort_control=LDAP_PARSE_SORT_CONTROL		@493
;  an LDAPv3 language control was proposed but then retracted.
;  494	ldap_create_language_control
	_ldap_get_lang_values=LDAP_GET_LANG_VALUES		@495
	_ldap_get_lang_values_len=LDAP_GET_LANG_VALUES_LEN		@496
	_ldap_free_sort_keylist=LDAP_FREE_SORT_KEYLIST		@497
	_ldap_create_sort_keylist=LDAP_CREATE_SORT_KEYLIST		@498
	_ldap_utf8getcc=LDAP_UTF8GETCC		@499
	_ldap_get_entry_controls=LDAP_GET_ENTRY_CONTROLS		@500
	_ldap_create_persistentsearch_control=LDAP_CREATE_PERSISTENTSEARCH_CONTROL		@501
	_ldap_parse_entrychange_control=LDAP_PARSE_ENTRYCHANGE_CONTROL		@502
	_ldap_parse_result=LDAP_PARSE_RESULT		@503
	_ldap_parse_extended_result=LDAP_PARSE_EXTENDED_RESULT		@504
	_ldap_parse_reference=LDAP_PARSE_REFERENCE		@505
	_ldap_abandon_ext=LDAP_ABANDON_EXT		@506
	_ldap_add_ext=LDAP_ADD_EXT		@507
	_ldap_add_ext_s=LDAP_ADD_EXT_S		@508
	_ldap_modify_ext=LDAP_MODIFY_EXT		@509
	_ldap_modify_ext_s=LDAP_MODIFY_EXT_S		@510
	_ldap_first_message=LDAP_FIRST_MESSAGE		@511
	_ldap_next_message=LDAP_NEXT_MESSAGE		@512
	_ldap_compare_ext=LDAP_COMPARE_EXT		@513
	_ldap_compare_ext_s=LDAP_COMPARE_EXT_S		@514
	_ldap_delete_ext=LDAP_DELETE_EXT		@515
	_ldap_delete_ext_s=LDAP_DELETE_EXT_S		@516
	_ldap_search_ext=LDAP_SEARCH_EXT		@517
	_ldap_search_ext_s=LDAP_SEARCH_EXT_S		@518
	_ldap_extended_operation=LDAP_EXTENDED_OPERATION		@519
	_ldap_extended_operation_s=LDAP_EXTENDED_OPERATION_S		@520
	_ldap_first_reference=LDAP_FIRST_REFERENCE		@521
	_ldap_next_reference=LDAP_NEXT_REFERENCE		@522
	_ldap_count_references=LDAP_COUNT_REFERENCES		@523
	_ldap_count_messages=LDAP_COUNT_MESSAGES		@524
	_ldap_create_virtuallist_control=LDAP_CREATE_VIRTUALLIST_CONTROL		@525
	_ldap_parse_virtuallist_control=LDAP_PARSE_VIRTUALLIST_CONTROL		@526
	_ldap_create_proxyauth_control=LDAP_CREATE_PROXYAUTH_CONTROL		@527
	_ldap_unbind_ext=LDAP_UNBIND_EXT		@528
	_ldap_x_hostlist_first=LDAP_X_HOSTLIST_FIRST		@529
	_ldap_x_hostlist_next=LDAP_X_HOSTLIST_NEXT		@530
	_ldap_x_hostlist_statusfree=LDAP_X_HOSTLIST_STATUSFREE		@531
	_ldap_x_malloc=LDAP_X_MALLOC		@532
	_ldap_x_calloc=LDAP_X_CALLOC		@533
	_ldap_x_realloc=LDAP_X_REALLOC		@534
	_ldap_x_free=LDAP_X_FREE		@535
	_ldap_create_proxiedauth_control=LDAP_CREATE_PROXIEDAUTH_CONTROL		@536
	_ldap_memcache_init=LDAP_MEMCACHE_INIT		@1000
	_ldap_memcache_set=LDAP_MEMCACHE_SET		@1001
	_ldap_memcache_get=LDAP_MEMCACHE_GET		@1002
	_ldap_memcache_flush=LDAP_MEMCACHE_FLUSH		@1003
	_ldap_memcache_destroy=LDAP_MEMCACHE_DESTROY		@1004
	_ldap_memcache_update=LDAP_MEMCACHE_UPDATE		@1005
	_ldap_keysort_entries=LDAP_KEYSORT_ENTRIES		@1006
; 
; end of generated exports list.
