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
74
75
76
77
78
79
80
81
|
/* Copyright (c) 2008 Sharvil Nanavati */
#ifndef PAM_STUBS_H
#define PAM_STUBS_H
typedef enum pam_error_tag
{
Pam_Abort,
Pam_Session_Err,
Pam_Authtok_Err,
Pam_Authtok_Recover_Err,
Pam_Authtok_Lock_Busy,
Pam_Authtok_Disable_Aging,
Pam_Try_Again,
Pam_Acct_Expired,
Pam_New_Authtok_Reqd,
Pam_Perm_Denied,
Pam_Cred_Err,
Pam_Cred_Expired,
Pam_Cred_Unavail,
Pam_Auth_Err,
Pam_Cred_Insufficient,
Pam_Authinfo_Unavail,
Pam_Maxtries,
Pam_User_Unknown,
Pam_Buf_Err,
Pam_System_Err,
Pam_Bad_Item
} pam_error;
enum
{
Pam_Prompt_Echo_Off,
Pam_Prompt_Echo_On,
Pam_Error_Msg,
Pam_Text_Info
};
enum
{
Pam_Disallow_Null_Authtok
};
enum
{
Pam_Establish_Cred,
Pam_Delete_Cred,
Pam_Reinitialize_Cred,
Pam_Refresh_Cred
};
enum
{
Pam_Change_Expired_Authtok
};
enum
{
Pam_Service,
Pam_User,
Pam_User_Prompt,
Pam_Tty,
Pam_RUser,
Pam_RHost,
Pam_AuthTok,
Pam_OldAuthTok,
Pam_Conv,
Pam_Fail_Delay
};
typedef struct caml_pam_handle_tag
{
pam_handle_t * handle;
value callback;
value fail_delay;
int error_code;
} caml_pam_handle;
#define Handle_val(v) (caml_pam_handle *)Data_custom_val(v)
#endif
|