openldap/servers/slapd/proto-slap.h

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 */