diff options
author | Andrew Bartlett <abartlet@samba.org> | 2001-11-25 03:01:14 +0000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2001-11-25 03:01:14 +0000 |
commit | 1b1b8e39b2ce4bf32517e7178ca18b3fd8fecd03 (patch) | |
tree | 6e319eafb2c2b802fa98245cd973aa275c177811 /source3 | |
parent | e92823610acb138ca63648f04a57427f8dbf0b41 (diff) | |
download | samba-1b1b8e39b2ce4bf32517e7178ca18b3fd8fecd03.tar.gz samba-1b1b8e39b2ce4bf32517e7178ca18b3fd8fecd03.tar.bz2 samba-1b1b8e39b2ce4bf32517e7178ca18b3fd8fecd03.zip |
Add the PDC end of the smbtorture test for creating an NT_STATUS -> DOS error
map.
This little authentication module is #ifdef DEVELOPER, becouse it really is of
no use execept as a development tool
invoke by setting:
auth methods = guest sam name_to_ntstatus
in the smb.conf file (the SAM and guest elements are required for the member
server to authenticate itself).
Andrew Bartlett
(This used to be commit 9807e66f34c1088399657060977e384c5a7f0664)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/auth/auth_builtin.c | 33 | ||||
-rw-r--r-- | source3/auth/auth_info.c | 3 | ||||
-rw-r--r-- | source3/smbd/auth_builtin.c | 33 | ||||
-rw-r--r-- | source3/smbd/auth_info.c | 3 |
4 files changed, 72 insertions, 0 deletions
diff --git a/source3/auth/auth_builtin.c b/source3/auth/auth_builtin.c index 6ea6d0bbe0..482ae6dee1 100644 --- a/source3/auth/auth_builtin.c +++ b/source3/auth/auth_builtin.c @@ -85,3 +85,36 @@ BOOL auth_init_local(auth_methods **auth_method) return True; } +/**************************************************************************** + Return an error based on username +****************************************************************************/ + +static NTSTATUS check_name_to_ntstatus_security(void *my_private_data, + const auth_usersupplied_info *user_info, + const auth_authsupplied_info *auth_info, + auth_serversupplied_info **server_info) +{ + NTSTATUS nt_status; + fstring user; + long error_num; + fstrcpy(user, user_info->smb_name.str); + strlower(user); + error_num = strtoul(user, NULL, 16); + + DEBUG(5,("Error for user %s was %lx\n", user, error_num)); + + nt_status = NT_STATUS(error_num); + + return nt_status; +} + +BOOL auth_init_name_to_ntstatus(auth_methods **auth_method) +{ + if (!make_auth_methods(auth_method)) { + return False; + } + + (*auth_method)->auth = check_name_to_ntstatus_security; + return True; +} + diff --git a/source3/auth/auth_info.c b/source3/auth/auth_info.c index 12b843d781..b1c994d54f 100644 --- a/source3/auth/auth_info.c +++ b/source3/auth/auth_info.c @@ -31,6 +31,9 @@ const struct auth_init_function builtin_auth_init_functions[] = { { "smbserver", auth_init_smbserver }, { "ntdomain", auth_init_ntdomain }, { "winbind", auth_init_winbind }, +#ifdef DEVELOPER + { "name_to_ntstatus", auth_init_name_to_ntstatus }, +#endif { NULL, NULL} }; diff --git a/source3/smbd/auth_builtin.c b/source3/smbd/auth_builtin.c index 6ea6d0bbe0..482ae6dee1 100644 --- a/source3/smbd/auth_builtin.c +++ b/source3/smbd/auth_builtin.c @@ -85,3 +85,36 @@ BOOL auth_init_local(auth_methods **auth_method) return True; } +/**************************************************************************** + Return an error based on username +****************************************************************************/ + +static NTSTATUS check_name_to_ntstatus_security(void *my_private_data, + const auth_usersupplied_info *user_info, + const auth_authsupplied_info *auth_info, + auth_serversupplied_info **server_info) +{ + NTSTATUS nt_status; + fstring user; + long error_num; + fstrcpy(user, user_info->smb_name.str); + strlower(user); + error_num = strtoul(user, NULL, 16); + + DEBUG(5,("Error for user %s was %lx\n", user, error_num)); + + nt_status = NT_STATUS(error_num); + + return nt_status; +} + +BOOL auth_init_name_to_ntstatus(auth_methods **auth_method) +{ + if (!make_auth_methods(auth_method)) { + return False; + } + + (*auth_method)->auth = check_name_to_ntstatus_security; + return True; +} + diff --git a/source3/smbd/auth_info.c b/source3/smbd/auth_info.c index 12b843d781..b1c994d54f 100644 --- a/source3/smbd/auth_info.c +++ b/source3/smbd/auth_info.c @@ -31,6 +31,9 @@ const struct auth_init_function builtin_auth_init_functions[] = { { "smbserver", auth_init_smbserver }, { "ntdomain", auth_init_ntdomain }, { "winbind", auth_init_winbind }, +#ifdef DEVELOPER + { "name_to_ntstatus", auth_init_name_to_ntstatus }, +#endif { NULL, NULL} }; |