74 lines
2.2 KiB
C
74 lines
2.2 KiB
C
#ifndef ISASL_H
|
|
#define ISASL_H 1
|
|
|
|
#define SASL_CB_LIST_END 0 /* end of list */
|
|
|
|
#define SASL_USERNAME 0 /* pointer to NUL terminated user name */
|
|
#define ISASL_CONFIG 20 /* Just so we don't have to implement all the auxprop stuff */
|
|
|
|
typedef struct sasl_callback {
|
|
unsigned long id;
|
|
int (*proc)(void);
|
|
void *context;
|
|
} sasl_callback_t;
|
|
|
|
typedef struct sasl_conn {
|
|
char *username;
|
|
char *config;
|
|
} sasl_conn_t;
|
|
|
|
typedef struct user_db_entry {
|
|
char *username;
|
|
char *password;
|
|
char *config;
|
|
struct user_db_entry *next;
|
|
} user_db_entry_t;
|
|
|
|
void sasl_dispose(sasl_conn_t **pconn);
|
|
|
|
int sasl_server_init(const sasl_callback_t *callbacks,
|
|
const char *appname);
|
|
|
|
int sasl_server_new(const char *service,
|
|
const char *serverFQDN,
|
|
const char *user_realm,
|
|
const char *iplocalport,
|
|
const char *ipremoteport,
|
|
const sasl_callback_t *callbacks,
|
|
unsigned flags,
|
|
sasl_conn_t **pconn);
|
|
|
|
int sasl_listmech(sasl_conn_t *conn,
|
|
const char *user,
|
|
const char *prefix,
|
|
const char *sep,
|
|
const char *suffix,
|
|
const char **result,
|
|
unsigned *plen,
|
|
int *pcount);
|
|
|
|
int sasl_server_start(sasl_conn_t *conn,
|
|
const char *mech,
|
|
const char *clientin,
|
|
unsigned clientinlen,
|
|
const char **serverout,
|
|
unsigned *serveroutlen);
|
|
|
|
int sasl_server_step(sasl_conn_t *conn,
|
|
const char *clientin,
|
|
unsigned clientinlen,
|
|
const char **serverout,
|
|
unsigned *serveroutlen);
|
|
|
|
int sasl_getprop(sasl_conn_t *conn, int propnum,
|
|
const void **pvalue);
|
|
|
|
#define SASL_OK 0
|
|
#define SASL_CONTINUE 1
|
|
#define SASL_FAIL -1 /* generic failure */
|
|
#define SASL_NOMEM -2 /* memory shortage failure */
|
|
#define SASL_BADPARAM -7 /* invalid parameter supplied */
|
|
#define SASL_NOUSER -20 /* user not found */
|
|
|
|
#endif /* ISASL_H */
|