mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-15 03:01:09 +08:00
214 lines
4.7 KiB
C
214 lines
4.7 KiB
C
#ifndef _PROTO_SLAP
|
|
#define _PROTO_SLAP
|
|
|
|
/*
|
|
* acl.c
|
|
*/
|
|
|
|
int access_allowed( Backend *be, Connection *conn, Operation *op, Entry *e,
|
|
char *attr, struct berval *val, char *dn, int access );
|
|
|
|
struct acl * acl_get_applicable( Backend *be, Operation *op, Entry *e,
|
|
char *attr, char *edn, int nmatches, regmatch_t *matches );
|
|
int acl_access_allowed( struct acl *a, Backend *be, Connection *conn, Entry *e,
|
|
struct berval *val, Operation *op, int access, char *edn,
|
|
regmatch_t *matches );
|
|
|
|
int acl_check_mods( Backend *be, Connection *conn, Operation *op, Entry *e,
|
|
LDAPMod *mods );
|
|
|
|
/*
|
|
* aclparse.c
|
|
*/
|
|
|
|
void parse_acl( Backend *be, char *fname, int lineno, int argc, char **argv );
|
|
char * access2str( int access );
|
|
int str2access( char *str );
|
|
|
|
/*
|
|
* attr.c
|
|
*/
|
|
|
|
void attr_free( Attribute *a );
|
|
char * attr_normalize( char *s );
|
|
int attr_merge_fast( Entry *e, char *type, struct berval **vals, int nvals,
|
|
int naddvals, int *maxvals, Attribute ***a );
|
|
int attr_merge( Entry *e, char *type, struct berval **vals );
|
|
Attribute * attr_find( Attribute *a, char *type );
|
|
int attr_delete( Attribute **attrs, char *type );
|
|
int attr_syntax( char *type );
|
|
void attr_syntax_config( char *fname, int lineno, int argc, char **argv );
|
|
|
|
/*
|
|
* ava.c
|
|
*/
|
|
|
|
int get_ava( BerElement *ber, Ava *ava );
|
|
void ava_free( Ava *ava, int freeit );
|
|
|
|
/*
|
|
* backend.c
|
|
*/
|
|
|
|
Backend * new_backend( char *type );
|
|
Backend * select_backend( char * dn );
|
|
int be_issuffix( Backend *be, char *suffix );
|
|
int be_isroot( Backend *be, char *dn );
|
|
int be_isroot_pw( Backend *be, char *dn, struct berval *cred );
|
|
void be_close();
|
|
|
|
/*
|
|
* ch_malloc.c
|
|
*/
|
|
|
|
char * ch_malloc( unsigned long size );
|
|
char * ch_realloc( char *block, unsigned long size );
|
|
char * ch_calloc( unsigned long nelem, unsigned long size );
|
|
|
|
/*
|
|
* charray.c
|
|
*/
|
|
|
|
void charray_add( char ***a, char *s );
|
|
void charray_merge( char ***a, char **s );
|
|
void charray_free( char **array );
|
|
int charray_inlist( char **a, char *s );
|
|
char ** charray_dup( char **a );
|
|
char ** str2charray( char *str, char *brkstr );
|
|
|
|
/*
|
|
* config.c
|
|
*/
|
|
|
|
void read_config( char *fname, Backend **bep, FILE *pfp );
|
|
|
|
/*
|
|
* connection.c
|
|
*/
|
|
|
|
void connection_activity( Connection *conn );
|
|
|
|
/*
|
|
* dn.c
|
|
*/
|
|
|
|
char * dn_normalize( char *dn );
|
|
char * dn_normalize_case( char *dn );
|
|
char * dn_parent( Backend *be, char *dn );
|
|
int dn_issuffix( char *dn, char *suffix );
|
|
int dn_type( char *dn );
|
|
char * dn_upcase( char *dn );
|
|
|
|
/*
|
|
* entry.c
|
|
*/
|
|
|
|
Entry * str2entry( char *s );
|
|
char * entry2str( Entry *e, int *len, int printid );
|
|
void entry_free( Entry *e );
|
|
|
|
int entry_rdwr_lock( Entry *e, int rw );
|
|
int entry_rdwr_rlock( Entry *e );
|
|
int entry_rdwr_wlock( Entry *e );
|
|
int entry_rdwr_unlock( Entry *e, int rw );
|
|
int entry_rdwr_runlock( Entry *e );
|
|
int entry_rdwr_wunlock( Entry *e );
|
|
int entry_rdwr_init( Entry *e );
|
|
|
|
/*
|
|
* filter.c
|
|
*/
|
|
|
|
int get_filter( Connection *conn, BerElement *ber, Filter **filt, char **fstr );
|
|
void filter_free( Filter *f );
|
|
void filter_print( Filter *f );
|
|
|
|
/*
|
|
* filterentry.c
|
|
*/
|
|
|
|
int test_filter( Backend *be, Connection *conn, Operation *op, Entry *e,
|
|
Filter *f );
|
|
|
|
/*
|
|
* lock.c
|
|
*/
|
|
|
|
FILE * lock_fopen( char *fname, char *type, FILE **lfp );
|
|
int lock_fclose( FILE *fp, FILE *lfp );
|
|
|
|
/*
|
|
* monitor.c
|
|
*/
|
|
|
|
void monitor_info( Connection *conn, Operation *op );
|
|
|
|
/*
|
|
* operation.c
|
|
*/
|
|
|
|
void op_free( Operation *op );
|
|
Operation * op_add( Operation **olist, BerElement *ber, unsigned long msgid,
|
|
unsigned long tag, char *dn, int id, int connid );
|
|
void op_delete( Operation **olist, Operation *op );
|
|
|
|
/*
|
|
* phonetic.c
|
|
*/
|
|
|
|
char * first_word( char *s );
|
|
char * next_word( char *s );
|
|
char * word_dup( char *w );
|
|
char * phonetic( char *s );
|
|
|
|
/*
|
|
* repl.c
|
|
*/
|
|
|
|
void replog( Backend *be, int optype, char *dn, void *change, int flag );
|
|
|
|
/*
|
|
* result.c
|
|
*/
|
|
|
|
void send_ldap_result( Connection *conn, Operation *op, int err, char *matched,
|
|
char *text );
|
|
void send_ldap_search_result( Connection *conn, Operation *op, int err,
|
|
char *matched, char *text, int nentries );
|
|
void close_connection( Connection *conn, int opconnid, int opid );
|
|
|
|
/*
|
|
* schema.c
|
|
*/
|
|
|
|
int oc_schema_check( Entry *e );
|
|
|
|
/*
|
|
* schemaparse.c
|
|
*/
|
|
|
|
void parse_oc( Backend *be, char *fname, int lineno, int argc, char **argv );
|
|
|
|
/*
|
|
* str2filter.c
|
|
*/
|
|
|
|
Filter * str2filter( char *str );
|
|
|
|
/*
|
|
* value.c
|
|
*/
|
|
|
|
int value_add_fast( struct berval ***vals, struct berval **addvals, int nvals,
|
|
int naddvals, int *maxvals );
|
|
int value_add( struct berval ***vals, struct berval **addvals );
|
|
void value_normalize( char *s, int syntax );
|
|
int value_cmp( struct berval *v1, struct berval *v2, int syntax,
|
|
int normalize );
|
|
int value_ncmp( struct berval *v1, struct berval *v2, int syntax, int len,
|
|
int normalize );
|
|
int value_find( struct berval **vals, struct berval *v, int syntax,
|
|
int normalize );
|
|
|
|
#endif /* _proto_slap */
|