-
Notifications
You must be signed in to change notification settings - Fork 55
/
isasl.h
73 lines (59 loc) · 2.19 KB
/
isasl.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#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 */