typedef [v1_enum] enum {
WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN = 1,
WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE = 2,
- WINBIND_AUTH_LEVEL_COMPAT_LOGOFF = 3
+ WINBIND_AUTH_LEVEL_COMPAT_LOGOFF = 3,
+ WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN= 4
} winbind_auth_level;
struct winbind_auth_compat_auth_plain_req {
hyper *uid;
};
+ struct winbind_auth_change_password_plain_req {
+ [string,charset(UTF8)] uint8 account_name[];
+ [string,charset(UTF8)] uint8 *domain_name;
+ [string,charset(UTF8)] uint8 old_password[];
+ [string,charset(UTF8)] uint8 new_password[];
+ };
+
typedef [switch_type(winbind_auth_level)] union {
[case(WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN)]
struct winbind_auth_compat_auth_plain_req compat_auth_plain;
struct winbind_auth_compat_auth_response_req compat_auth_response;
[case(WINBIND_AUTH_LEVEL_COMPAT_LOGOFF)]
struct winbind_auth_compat_logoff_req compat_logoff;
+ [case(WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN)]
+ struct winbind_auth_change_password_plain_req change_password_plain;
[default];
} winbind_auth_req;
[case(WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE)]
struct winbind_auth_compat_auth_rep compat_auth;
[case(WINBIND_AUTH_LEVEL_COMPAT_LOGOFF)];
+ [case(WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN)];
[default];
} winbind_auth_rep;
[out,switch_is(*level)] winbind_auth_rep *rep
);
- winbind_status winbind_pam_chauthtok(/*TODO*/);
winbind_status winbind_pam_chng_paswd_auth_crap(/*TODO*/);
/*