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 | |
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)
-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} }; |