diff options
author | Andrew Tridgell <tridge@samba.org> | 2001-09-04 07:13:01 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2001-09-04 07:13:01 +0000 |
commit | 19fea3242cf6234786b6cbb60631e0071f31ff9f (patch) | |
tree | 1de6e79890a80a1e03cf0dce5813513aaf51bc59 /source3 | |
parent | 55cf37488f66eba2826dba08e80dd4ab6df33fc3 (diff) | |
download | samba-19fea3242cf6234786b6cbb60631e0071f31ff9f.tar.gz samba-19fea3242cf6234786b6cbb60631e0071f31ff9f.tar.bz2 samba-19fea3242cf6234786b6cbb60631e0071f31ff9f.zip |
the next stage in the NTSTATUS/WERROR change. smbd and nmbd now compile, but the client code still needs some work
(This used to be commit dcd6e735f709a9231860ceb9682db40ff26c9a66)
Diffstat (limited to 'source3')
67 files changed, 1031 insertions, 952 deletions
diff --git a/source3/auth/auth.c b/source3/auth/auth.c index d6bc8aeadc..b707c38c62 100644 --- a/source3/auth/auth.c +++ b/source3/auth/auth.c @@ -68,15 +68,15 @@ NTSTATUS check_password(const auth_usersupplied_info *user_info, return NT_STATUS_LOGON_FAILURE; } - if (nt_status != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(nt_status)) { nt_status = check_rhosts_security(user_info, server_info); } - if ((lp_security() == SEC_DOMAIN) && (nt_status != NT_STATUS_OK)) { + if ((lp_security() == SEC_DOMAIN) && !NT_STATUS_IS_OK(nt_status)) { nt_status = check_domain_security(user_info, server_info); } - if ((lp_security() == SEC_SERVER) && (nt_status != NT_STATUS_OK)) { + if ((lp_security() == SEC_SERVER) && !NT_STATUS_IS_OK(nt_status)) { nt_status = check_server_security(user_info, server_info); } @@ -84,7 +84,7 @@ NTSTATUS check_password(const auth_usersupplied_info *user_info, smb_user_control(user_info->smb_username.str, nt_status); } - if (nt_status != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(nt_status)) { if ((user_info->plaintext_password.len > 0) && (!lp_plaintext_to_smbpasswd())) { nt_status = check_unix_security(user_info, server_info); @@ -94,14 +94,14 @@ NTSTATUS check_password(const auth_usersupplied_info *user_info, } } - if ((nt_status == NT_STATUS_OK) && !done_pam) { + if (NT_STATUS_IS_OK(nt_status) && !done_pam) { /* We might not be root if we are an RPC call */ become_root(); nt_status = smb_pam_accountcheck(user_info->smb_username.str); unbecome_root(); } - if (nt_status == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(nt_status)) { DEBUG(5, ("check_password: Password for user %s suceeded\n", user_info->smb_username.str)); } else { DEBUG(3, ("check_password: Password for user %s FAILED with error %s\n", user_info->smb_username.str, get_nt_error_msg(nt_status))); @@ -233,11 +233,11 @@ BOOL password_ok(char *user, char *password, int pwlen) /* The password could be either NTLM or plain LM. Try NTLM first, but fall-through as required. */ - if (pass_check_smb(user, lp_workgroup(), NULL, 0, (unsigned char *)password, pwlen) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(pass_check_smb(user, lp_workgroup(), NULL, 0, (unsigned char *)password, pwlen))) { return True; } - if (pass_check_smb(user, lp_workgroup(), (unsigned char *)password, pwlen, NULL, 0) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(pass_check_smb(user, lp_workgroup(), (unsigned char *)password, pwlen, NULL, 0))) { return True; } diff --git a/source3/auth/auth_domain.c b/source3/auth/auth_domain.c index d9d7b6fd40..111f0f143c 100644 --- a/source3/auth/auth_domain.c +++ b/source3/auth/auth_domain.c @@ -30,10 +30,10 @@ BOOL global_machine_password_needs_changing = False; Check for a valid username and password in security=domain mode. ****************************************************************************/ -uint32 check_domain_security(const auth_usersupplied_info *user_info, - auth_serversupplied_info *server_info) +NTSTATUS check_domain_security(const auth_usersupplied_info *user_info, + auth_serversupplied_info *server_info) { - uint32 nt_status = NT_STATUS_LOGON_FAILURE; + NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE; char *p, *pserver; unsigned char trust_passwd[16]; time_t last_change_time; diff --git a/source3/auth/auth_rhosts.c b/source3/auth/auth_rhosts.c index a4914f2ef1..ffb9212264 100644 --- a/source3/auth/auth_rhosts.c +++ b/source3/auth/auth_rhosts.c @@ -168,10 +168,10 @@ BOOL check_hosts_equiv(char *user) Check for a valid .rhosts/hosts.equiv entry for this user ****************************************************************************/ -uint32 check_rhosts_security(const auth_usersupplied_info *user_info, +NTSTATUS check_rhosts_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { - uint32 nt_status = NT_STATUS_LOGON_FAILURE; + NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE; become_root(); if (check_hosts_equiv(user_info->smb_username.str)) { diff --git a/source3/auth/auth_sam.c b/source3/auth/auth_sam.c index 5484758167..33b0623643 100644 --- a/source3/auth/auth_sam.c +++ b/source3/auth/auth_sam.c @@ -109,7 +109,7 @@ static BOOL smb_pwd_check_ntlmv2(const uchar *password, size_t pwd_len, Do a specific test for an smb password being correct, given a smb_password and the lanman and NT responses. ****************************************************************************/ -uint32 smb_password_ok(SAM_ACCOUNT *sampass, const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) +NTSTATUS smb_password_ok(SAM_ACCOUNT *sampass, const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { uint8 *nt_pw, *lm_pw; uint16 acct_ctrl; @@ -202,11 +202,11 @@ SMB hash supplied in the user_info structure return an NT_STATUS constant. ****************************************************************************/ -uint32 check_smbpasswd_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) +NTSTATUS check_smbpasswd_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { SAM_ACCOUNT *sampass=NULL; BOOL ret; - uint32 nt_status; + NTSTATUS nt_status; pdb_init_sam(&sampass); @@ -220,7 +220,7 @@ uint32 check_smbpasswd_security(const auth_usersupplied_info *user_info, auth_se { DEBUG(1,("Couldn't find user '%s' in passdb file.\n", user_info->smb_username.str)); pdb_free_sam(sampass); - return(NT_STATUS_NO_SUCH_USER); + return NT_STATUS_NO_SUCH_USER; } nt_status = smb_password_ok(sampass, user_info, server_info); diff --git a/source3/auth/auth_server.c b/source3/auth/auth_server.c index 9636094fa3..b279152f74 100644 --- a/source3/auth/auth_server.c +++ b/source3/auth/auth_server.c @@ -113,14 +113,14 @@ struct cli_state *server_cryptkey(void) Validate a password with the password server. ****************************************************************************/ -static uint32 server_validate(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) +static NTSTATUS server_validate(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { struct cli_state *cli; static unsigned char badpass[24]; static fstring baduser; static BOOL tested_password_server = False; static BOOL bad_password_server = False; - uint32 nt_status = NT_STATUS_LOGON_FAILURE; + NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE; cli = server_client(); @@ -232,14 +232,13 @@ use this machine as the password server.\n")); Check for a valid username and password in security=server mode. ****************************************************************************/ -uint32 check_server_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) +NTSTATUS check_server_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { if(lp_security() != SEC_SERVER) return NT_STATUS_LOGON_FAILURE; return server_validate(user_info, server_info); - } diff --git a/source3/auth/auth_unix.c b/source3/auth/auth_unix.c index fda44fd91c..1708320961 100644 --- a/source3/auth/auth_unix.c +++ b/source3/auth/auth_unix.c @@ -68,9 +68,9 @@ check if a username/password is OK assuming the password in PLAIN TEXT ****************************************************************************/ -uint32 check_unix_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) +NTSTATUS check_unix_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { - uint32 nt_status; + NTSTATUS nt_status; become_root(); nt_status = (pass_check(user_info->smb_username.str, user_info->plaintext_password.str, diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c index 5ccf963889..28f58eb8ae 100644 --- a/source3/auth/auth_util.c +++ b/source3/auth/auth_util.c @@ -101,11 +101,11 @@ static int smb_delete_user(char *unix_user) Add and Delete UNIX users on demand, based on NT_STATUS codes. ****************************************************************************/ -void smb_user_control(char *unix_user, uint32 nt_status) +void smb_user_control(char *unix_user, NTSTATUS nt_status) { struct passwd *pwd=NULL; - if(nt_status == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(nt_status)) { /* * User validated ok against Domain controller. * If the admin wants us to try and create a UNIX @@ -127,7 +127,7 @@ void smb_user_control(char *unix_user, uint32 nt_status) smb_create_user(unix_user, pwd->pw_dir); } - } else if (nt_status == NT_STATUS_NO_SUCH_USER) { + } else if (NT_STATUS_V(nt_status) == NT_STATUS_V(NT_STATUS_NO_SUCH_USER)) { /* * User failed to validate ok against Domain controller. * If the failure was "user doesn't exist" and admin diff --git a/source3/auth/pampass.c b/source3/auth/pampass.c index 359ed02b29..46b38ab1c0 100644 --- a/source3/auth/pampass.c +++ b/source3/auth/pampass.c @@ -83,12 +83,13 @@ static BOOL smb_pam_error_handler(pam_handle_t *pamh, int pam_error, char *msg, *********************************************************************/ static BOOL smb_pam_nt_status_error_handler(pam_handle_t *pamh, int pam_error, - char *msg, int dbglvl, uint32 *nt_status) + char *msg, int dbglvl, + NTSTATUS *nt_status) { if (smb_pam_error_handler(pamh, pam_error, msg, dbglvl)) return True; - if (*nt_status == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(*nt_status)) { /* Complain LOUDLY */ DEBUG(0, ("smb_pam_nt_status_error_handler: PAM: BUG: PAM and NT_STATUS \ error MISMATCH, forcing to NT_STATUS_LOGON_FAILURE")); @@ -494,10 +495,10 @@ static BOOL smb_pam_start(pam_handle_t **pamh, char *user, char *rhost, struct p /* * PAM Authentication Handler */ -static uint32 smb_pam_auth(pam_handle_t *pamh, char *user) +static NTSTATUS smb_pam_auth(pam_handle_t *pamh, char *user) { int pam_error; - uint32 nt_status = NT_STATUS_LOGON_FAILURE; + NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE; /* * To enable debugging set in /etc/pam.d/samba: @@ -548,10 +549,10 @@ static uint32 smb_pam_auth(pam_handle_t *pamh, char *user) /* * PAM Account Handler */ -static uint32 smb_pam_account(pam_handle_t *pamh, char * user) +static NTSTATUS smb_pam_account(pam_handle_t *pamh, char * user) { int pam_error; - uint32 nt_status = NT_STATUS_ACCOUNT_DISABLED; + NTSTATUS nt_status = NT_STATUS_ACCOUNT_DISABLED; DEBUG(4,("smb_pam_account: PAM: Account Management for User: %s\n", user)); pam_error = pam_acct_mgmt(pamh, PAM_SILENT); /* Is user account enabled? */ @@ -594,10 +595,10 @@ static uint32 smb_pam_account(pam_handle_t *pamh, char * user) * PAM Credential Setting */ -static uint32 smb_pam_setcred(pam_handle_t *pamh, char * user) +static NTSTATUS smb_pam_setcred(pam_handle_t *pamh, char * user) { int pam_error; - uint32 nt_status = NT_STATUS_NO_TOKEN; + NTSTATUS nt_status = NT_STATUS_NO_TOKEN; /* * This will allow samba to aquire a kerberos token. And, when @@ -778,9 +779,9 @@ BOOL smb_pam_close_session(char *user, char *tty, char *rhost) * PAM Externally accessible Account handler */ -uint32 smb_pam_accountcheck(char * user) +NTSTATUS smb_pam_accountcheck(char * user) { - uint32 nt_status = NT_STATUS_ACCOUNT_DISABLED; + NTSTATUS nt_status = NT_STATUS_ACCOUNT_DISABLED; pam_handle_t *pamh = NULL; struct pam_conv *pconv = NULL; @@ -790,12 +791,12 @@ uint32 smb_pam_accountcheck(char * user) return NT_STATUS_OK; if ((pconv = smb_setup_pam_conv(smb_pam_conv, user, NULL, NULL)) == NULL) - return False; + return NT_STATUS_NO_MEMORY; if (!smb_pam_start(&pamh, user, NULL, pconv)) return NT_STATUS_ACCOUNT_DISABLED; - if ((nt_status = smb_pam_account(pamh, user)) != NT_STATUS_OK) + if (!NT_STATUS_IS_OK(nt_status = smb_pam_account(pamh, user))) DEBUG(0, ("smb_pam_accountcheck: PAM: Account Validation Failed - Rejecting User %s!\n", user)); smb_pam_end(pamh, pconv); @@ -806,10 +807,10 @@ uint32 smb_pam_accountcheck(char * user) * PAM Password Validation Suite */ -uint32 smb_pam_passcheck(char * user, char * password) +NTSTATUS smb_pam_passcheck(char * user, char * password) { pam_handle_t *pamh = NULL; - uint32 nt_status = NT_STATUS_LOGON_FAILURE; + NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE; struct pam_conv *pconv = NULL; /* @@ -824,19 +825,19 @@ uint32 smb_pam_passcheck(char * user, char * password) if (!smb_pam_start(&pamh, user, NULL, pconv)) return NT_STATUS_LOGON_FAILURE; - if ((nt_status = smb_pam_auth(pamh, user)) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(nt_status = smb_pam_auth(pamh, user))) { DEBUG(0, ("smb_pam_passcheck: PAM: smb_pam_auth failed - Rejecting User %s !\n", user)); smb_pam_end(pamh, pconv); return nt_status; } - if ((nt_status = smb_pam_account(pamh, user)) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(nt_status = smb_pam_account(pamh, user))) { DEBUG(0, ("smb_pam_passcheck: PAM: smb_pam_account failed - Rejecting User %s !\n", user)); smb_pam_end(pamh, pconv); return nt_status; } - if ((nt_status = smb_pam_setcred(pamh, user)) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(nt_status = smb_pam_setcred(pamh, user))) { DEBUG(0, ("smb_pam_passcheck: PAM: smb_pam_setcred failed - Rejecting User %s !\n", user)); smb_pam_end(pamh, pconv); return nt_status; diff --git a/source3/auth/pass_check.c b/source3/auth/pass_check.c index bd712b3563..59fc9e2eac 100644 --- a/source3/auth/pass_check.c +++ b/source3/auth/pass_check.c @@ -599,7 +599,7 @@ static BOOL password_check(char *password) { #ifdef WITH_PAM - return (smb_pam_passcheck(this_user, password) == NT_STATUS_OK); + return NT_STATUS_IS_OK(smb_pam_passcheck(this_user, password)); #endif /* WITH_PAM */ #ifdef WITH_AFS diff --git a/source3/client/client.c b/source3/client/client.c index 88191347b1..35592cc76d 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -48,7 +48,7 @@ static int max_protocol = PROTOCOL_NT1; extern pstring user_socket_options; static int process_tok(fstring tok); -static void cmd_help(void); +static NTSTATUS cmd_help(void); /* 30 second timeout on most commands */ #define CLIENT_TIMEOUT (30*1000) @@ -1787,7 +1787,7 @@ static int process_tok(fstring tok) /**************************************************************************** help ****************************************************************************/ -static void cmd_help(void) +static NTSTATUS cmd_help(void) { int i=0,j; fstring buf; @@ -1804,6 +1804,7 @@ static void cmd_help(void) DEBUG(0,("\n")); } } + return NT_STATUS_OK; } /**************************************************************************** diff --git a/source3/include/doserr.h b/source3/include/doserr.h index cfc94a359a..bdb7da5956 100644 --- a/source3/include/doserr.h +++ b/source3/include/doserr.h @@ -141,14 +141,21 @@ #define WERR_BADFUNC W_ERROR(1) #define WERR_INSUFFICIENT_BUFFER W_ERROR(122) #define WERR_INVALID_PARAM W_ERROR(87) +#define WERR_NOT_SUPPORTED W_ERROR(50) +#define WERR_BAD_PASSWORD W_ERROR(86) #define WERR_NOMEM W_ERROR(8) #define WERR_INVALID_NAME W_ERROR(123) #define WERR_UNKNOWN_LEVEL W_ERROR(124) #define WERR_NO_MORE_ITEMS W_ERROR(259) +#define WERR_MORE_DATA W_ERROR(234) #define WERR_UNKNOWN_PRINTER_DRIVER W_ERROR(1797) #define WERR_INVALID_PRINTER_NAME W_ERROR(1801) #define WERR_INVALID_DATATYPE W_ERROR(1804) #define WERR_INVALID_ENVIRONMENT W_ERROR(1805) +#define WERR_BUF_TOO_SMALL W_ERROR(2123) +#define WERR_JOB_NOT_FOUND W_ERROR(2151) +#define WERR_DEST_NOT_FOUND W_ERROR(2152) #define WERR_PRINTER_DRIVER_IN_USE W_ERROR(3001) +#define WERR_STATUS_MORE_ENTRIES W_ERROR(0x0105) #endif /* _DOSERR_H */ diff --git a/source3/include/nt_printing.h b/source3/include/nt_printing.h index de21537116..61abc1a31b 100644 --- a/source3/include/nt_printing.h +++ b/source3/include/nt_printing.h @@ -231,7 +231,7 @@ typedef struct nt_printer_info_level_2 uint32 default_priority; uint32 starttime; uint32 untiltime; - NTSTATUS status; + WERROR status; uint32 cjobs; uint32 averageppm; fstring servername; diff --git a/source3/include/rpc_dfs.h b/source3/include/rpc_dfs.h index 57a633b8e6..85be2cdabd 100644 --- a/source3/include/rpc_dfs.h +++ b/source3/include/rpc_dfs.h @@ -55,7 +55,7 @@ DFS_Q_DFS_EXIST; /* status == 1 if dfs exists. */ typedef struct dfs_r_dfs_exist { - NTSTATUS status; + uint32 status; } DFS_R_DFS_EXIST; diff --git a/source3/include/rpc_lsa.h b/source3/include/rpc_lsa.h index 0814620980..e9df7f406e 100644 --- a/source3/include/rpc_lsa.h +++ b/source3/include/rpc_lsa.h @@ -365,7 +365,6 @@ typedef struct lsa_r_lookup_names uint32 mapped_count; NTSTATUS status; /* return code */ - } LSA_R_LOOKUP_NAMES; /* This is probably a policy handle but at the moment we diff --git a/source3/include/rpc_netlogon.h b/source3/include/rpc_netlogon.h index 6b00f7fd28..5fea305c4c 100644 --- a/source3/include/rpc_netlogon.h +++ b/source3/include/rpc_netlogon.h @@ -363,11 +363,9 @@ typedef struct net_q_auth2_info /* NET_R_AUTH_2 */ typedef struct net_r_auth2_info { - DOM_CHAL srv_chal; /* server-calculated credentials */ - NEG_FLAGS srv_flgs; /* usually 0x0000 01ff */ - - NTSTATUS status; /* return code */ - + DOM_CHAL srv_chal; /* server-calculated credentials */ + NEG_FLAGS srv_flgs; /* usually 0x0000 01ff */ + NTSTATUS status; /* return code */ } NET_R_AUTH_2; @@ -725,7 +723,7 @@ typedef struct net_r_sam_sync_info SAM_DELTA_HDR *hdr_deltas; SAM_DELTA_CTR *deltas; - uint32 status; + NTSTATUS status; } NET_R_SAM_SYNC; /* NET_Q_SAM_DELTAS */ @@ -757,8 +755,7 @@ typedef struct net_r_sam_deltas_info SAM_DELTA_HDR *hdr_deltas; SAM_DELTA_CTR *deltas; - uint32 status; - + NTSTATUS status; } NET_R_SAM_DELTAS; #endif /* _RPC_NETLOGON_H */ diff --git a/source3/include/rpc_spoolss.h b/source3/include/rpc_spoolss.h index bf58e1cce7..82d7d70d4f 100755 --- a/source3/include/rpc_spoolss.h +++ b/source3/include/rpc_spoolss.h @@ -460,8 +460,7 @@ SPOOL_Q_OPEN_PRINTER_EX; typedef struct spool_r_open_printer_ex { POLICY_HND handle; /* handle used along all transactions (20*uint8) */ - NTSTATUS status; - + WERROR status; } SPOOL_R_OPEN_PRINTER_EX; @@ -523,7 +522,7 @@ typedef struct spool_r_getprinterdata uint32 size; uint8 *data; uint32 needed; - NTSTATUS status; + WERROR status; } SPOOL_R_GETPRINTERDATA; @@ -536,7 +535,7 @@ SPOOL_Q_DELETEPRINTERDATA; typedef struct spool_r_deleteprinterdata { - NTSTATUS status; + WERROR status; } SPOOL_R_DELETEPRINTERDATA; @@ -549,7 +548,7 @@ SPOOL_Q_CLOSEPRINTER; typedef struct spool_r_closeprinter { POLICY_HND handle; - NTSTATUS status; + WERROR status; } SPOOL_R_CLOSEPRINTER; @@ -561,7 +560,7 @@ SPOOL_Q_STARTPAGEPRINTER; typedef struct spool_r_startpageprinter { - NTSTATUS status; + WERROR status; } SPOOL_R_STARTPAGEPRINTER; @@ -573,7 +572,7 @@ SPOOL_Q_ENDPAGEPRINTER; typedef struct spool_r_endpageprinter { - NTSTATUS status; + WERROR status; } SPOOL_R_ENDPAGEPRINTER; @@ -589,7 +588,7 @@ SPOOL_Q_DELETEPRINTERDRIVER; typedef struct spool_r_deleteprinterdriver { - NTSTATUS status; + WERROR status; } SPOOL_R_DELETEPRINTERDRIVER; @@ -641,7 +640,7 @@ SPOOL_Q_ENDDOCPRINTER; typedef struct spool_r_enddocprinter { - NTSTATUS status; + WERROR status; } SPOOL_R_ENDDOCPRINTER; @@ -657,7 +656,7 @@ SPOOL_Q_WRITEPRINTER; typedef struct spool_r_writeprinter { uint32 buffer_written; - NTSTATUS status; + WERROR status; } SPOOL_R_WRITEPRINTER; @@ -718,7 +717,7 @@ SPOOL_Q_RFFPCNEX; typedef struct spool_r_rffpcnex { - NTSTATUS status; + WERROR status; } SPOOL_R_RFFPCNEX; @@ -749,7 +748,7 @@ SPOOL_Q_FCPN; typedef struct spool_r_fcpn { - NTSTATUS status; + WERROR status; } SPOOL_R_FCPN; @@ -1010,7 +1009,7 @@ typedef struct spool_r_addjob { NEW_BUFFER *buffer; uint32 needed; - NTSTATUS status; + WERROR status; } SPOOL_R_ADDJOB; @@ -1042,7 +1041,7 @@ typedef struct s_job_info_1 UNISTR document; UNISTR datatype; UNISTR text_status; - NTSTATUS status; + uint32 status; uint32 priority; uint32 position; uint32 totalpages; @@ -1066,7 +1065,7 @@ typedef struct s_job_info_2 DEVICEMODE *devmode; UNISTR text_status; /* SEC_DESC sec_desc;*/ - NTSTATUS status; + uint32 status; uint32 priority; uint32 position; uint32 starttime; @@ -1106,7 +1105,7 @@ typedef struct spool_r_enumjobs NEW_BUFFER *buffer; uint32 needed; uint32 returned; - NTSTATUS status; + WERROR status; } SPOOL_R_ENUMJOBS; @@ -1119,7 +1118,7 @@ SPOOL_Q_SCHEDULEJOB; typedef struct spool_r_schedulejob { - NTSTATUS status; + WERROR status; } SPOOL_R_SCHEDULEJOB; @@ -1166,7 +1165,7 @@ typedef struct spool_r_enumports NEW_BUFFER *buffer; uint32 needed; /* bytes needed */ uint32 returned; /* number of printers */ - NTSTATUS status; + WERROR status; } SPOOL_R_ENUMPORTS; @@ -1201,7 +1200,7 @@ SPOOL_Q_SETJOB; typedef struct spool_r_setjob { - NTSTATUS status; + WERROR status; } SPOOL_R_SETJOB; @@ -1223,7 +1222,7 @@ typedef struct spool_r_enumprinterdrivers NEW_BUFFER *buffer; uint32 needed; uint32 returned; - NTSTATUS status; + WERROR status; } SPOOL_R_ENUMPRINTERDRIVERS; @@ -1254,7 +1253,7 @@ typedef struct spool_r_enumforms NEW_BUFFER *buffer; uint32 needed; uint32 numofforms; - NTSTATUS status; + WERROR status; } SPOOL_R_ENUMFORMS; @@ -1272,7 +1271,7 @@ typedef struct spool_r_getform { NEW_BUFFER *buffer; uint32 needed; - NTSTATUS status; + WERROR status; } SPOOL_R_GETFORM; @@ -1307,7 +1306,7 @@ typedef struct spool_printer_info_level_2 uint32 default_priority; uint32 starttime; uint32 untiltime; - NTSTATUS status; + WERROR status; uint32 cjobs; uint32 averageppm; UNISTR2 servername; @@ -1454,7 +1453,7 @@ SPOOL_Q_SETPRINTER; typedef struct spool_r_setprinter { - NTSTATUS status; + WERROR status; } SPOOL_R_SETPRINTER; @@ -1474,7 +1473,7 @@ SPOOL_Q_ADDPRINTER; typedef struct spool_r_addprinter { - NTSTATUS status; + WERROR status; } SPOOL_R_ADDPRINTER; @@ -1487,7 +1486,7 @@ SPOOL_Q_DELETEPRINTER; typedef struct spool_r_deleteprinter { POLICY_HND handle; - NTSTATUS status; + WERROR status; } SPOOL_R_DELETEPRINTER; @@ -1499,7 +1498,7 @@ SPOOL_Q_ABORTPRINTER; typedef struct spool_r_abortprinter { - NTSTATUS status; + WERROR status; } SPOOL_R_ABORTPRINTER; @@ -1522,7 +1521,7 @@ SPOOL_Q_ADDPRINTEREX; typedef struct spool_r_addprinterex { POLICY_HND handle; - NTSTATUS status; + WERROR status; } SPOOL_R_ADDPRINTEREX; @@ -1538,7 +1537,7 @@ SPOOL_Q_ADDPRINTERDRIVER; typedef struct spool_r_addprinterdriver { - NTSTATUS status; + WERROR status; } SPOOL_R_ADDPRINTERDRIVER; @@ -1571,7 +1570,7 @@ typedef struct spool_r_getprinterdriverdirectory { NEW_BUFFER *buffer; uint32 needed; - NTSTATUS status; + WERROR status; } SPOOL_R_GETPRINTERDRIVERDIR; @@ -1587,7 +1586,7 @@ SPOOL_Q_ADDPRINTPROCESSOR; typedef struct spool_r_addprintprocessor { - NTSTATUS status; + WERROR status; } SPOOL_R_ADDPRINTPROCESSOR; @@ -1615,7 +1614,7 @@ typedef struct spool_r_enumprintprocessors NEW_BUFFER *buffer; uint32 needed; uint32 returned; - NTSTATUS status; + WERROR status; } SPOOL_R_ENUMPRINTPROCESSORS; @@ -1642,7 +1641,7 @@ typedef struct spool_r_enumprintprocdatatypes NEW_BUFFER *buffer; uint32 needed; uint32 returned; - NTSTATUS status; + WERROR status; } SPOOL_R_ENUMPRINTPROCDATATYPES; @@ -1675,7 +1674,7 @@ typedef struct spool_r_enumprintmonitors NEW_BUFFER *buffer; uint32 needed; uint32 returned; - NTSTATUS status; + WERROR status; } SPOOL_R_ENUMPRINTMONITORS; @@ -1698,7 +1697,7 @@ typedef struct spool_r_enumprinterdata uint32 datasize; uint8 *data; uint32 realdatasize; - NTSTATUS status; + WERROR status; } SPOOL_R_ENUMPRINTERDATA; @@ -1716,7 +1715,7 @@ SPOOL_Q_SETPRINTERDATA; typedef struct spool_r_setprinterdata { - NTSTATUS status; + WERROR status; } SPOOL_R_SETPRINTERDATA; @@ -1745,7 +1744,7 @@ SPOOL_Q_ADDFORM; typedef struct spool_r_addform { - NTSTATUS status; + WERROR status; } SPOOL_R_ADDFORM; @@ -1761,7 +1760,7 @@ SPOOL_Q_SETFORM; typedef struct spool_r_setform { - NTSTATUS status; + WERROR status; } SPOOL_R_SETFORM; @@ -1774,7 +1773,7 @@ SPOOL_Q_DELETEFORM; typedef struct spool_r_deleteform { - NTSTATUS status; + WERROR status; } SPOOL_R_DELETEFORM; @@ -1805,7 +1804,7 @@ typedef struct spool_r_getjob { NEW_BUFFER *buffer; uint32 needed; - NTSTATUS status; + WERROR status; } SPOOL_R_GETJOB; @@ -1822,7 +1821,7 @@ SPOOL_Q_REPLYOPENPRINTER; typedef struct spool_r_replyopenprinter { POLICY_HND handle; - NTSTATUS status; + WERROR status; } SPOOL_R_REPLYOPENPRINTER; @@ -1835,7 +1834,7 @@ SPOOL_Q_REPLYCLOSEPRINTER; typedef struct spool_r_replycloseprinter { POLICY_HND handle; - NTSTATUS status; + WERROR status; } SPOOL_R_REPLYCLOSEPRINTER; @@ -1854,7 +1853,7 @@ SPOOL_Q_REPLY_RRPCN; typedef struct spool_r_rrpcn { uint32 unknown0; - NTSTATUS status; + WERROR status; } SPOOL_R_REPLY_RRPCN; diff --git a/source3/include/rpcclient.h b/source3/include/rpcclient.h index e6fc67674f..7c1b0123b6 100644 --- a/source3/include/rpcclient.h +++ b/source3/include/rpcclient.h @@ -25,7 +25,7 @@ struct cmd_set { char *name; - uint32 (*fn)(struct cli_state*, int argc, char **argv); + NTSTATUS (*fn)(struct cli_state*, int argc, char **argv); char *description; char *usage; }; diff --git a/source3/lib/error.c b/source3/lib/error.c index 3f66912995..cb2fffb962 100644 --- a/source3/lib/error.c +++ b/source3/lib/error.c @@ -26,7 +26,7 @@ struct { int unix_error; int dos_error; - uint32 nt_error; + NTSTATUS nt_error; } unix_dos_nt_errmap[] = { { EPERM, ERRnoaccess, NT_STATUS_ACCESS_DENIED }, { EACCES, ERRnoaccess, NT_STATUS_ACCESS_DENIED }, @@ -50,7 +50,7 @@ struct { #endif { EROFS, ERRnowrite, NT_STATUS_ACCESS_DENIED }, - { 0, 0, 0 } + { 0, 0, NT_STATUS_OK } }; /* Map an NT error code from a Unix error code */ diff --git a/source3/libsmb/cli_lsarpc.c b/source3/libsmb/cli_lsarpc.c index 791b6eace3..f2fc167606 100644 --- a/source3/libsmb/cli_lsarpc.c +++ b/source3/libsmb/cli_lsarpc.c @@ -78,7 +78,7 @@ NTSTATUS cli_lsa_open_policy(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *pol = r.pol; } @@ -136,7 +136,7 @@ NTSTATUS cli_lsa_open_policy2(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *pol = r.pol; } @@ -184,7 +184,7 @@ NTSTATUS cli_lsa_close(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *pol = r.pol; } @@ -242,8 +242,9 @@ NTSTATUS cli_lsa_lookup_sids(struct cli_state *cli, TALLOC_CTX *mem_ctx, result = r.status; - if (result != NT_STATUS_OK && result != 0x00000107 && - result != (0xC0000000 | NT_STATUS_NONE_MAPPED)) { + if (!NT_STATUS_IS_OK(result) && + NT_STATUS_V(result) != NT_STATUS_V(NT_STATUS_FILES_OPEN) && + NT_STATUS_V(result) != NT_STATUS_V(NT_STATUS_NONE_MAPPED)) { /* An actual error occured */ @@ -347,8 +348,8 @@ NTSTATUS cli_lsa_lookup_names(struct cli_state *cli, TALLOC_CTX *mem_ctx, result = r.status; - if (result != NT_STATUS_OK && - result != (0xC0000000 | NT_STATUS_NONE_MAPPED)) { + if (!NT_STATUS_IS_OK(result) && + NT_STATUS_V(result) != NT_STATUS_V(NT_STATUS_NONE_MAPPED)) { /* An actual error occured */ @@ -441,7 +442,7 @@ NTSTATUS cli_lsa_query_info_policy(struct cli_state *cli, TALLOC_CTX *mem_ctx, goto done; } - if ((result = r.status) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(result = r.status)) { goto done; } @@ -536,8 +537,8 @@ NTSTATUS cli_lsa_enum_trust_dom(struct cli_state *cli, TALLOC_CTX *mem_ctx, 0x8000001a (NT_STATUS_UNABLE_TO_FREE_VM) so we ignore it and pretend everything is OK. */ - if (result != NT_STATUS_OK && - result != NT_STATUS_UNABLE_TO_FREE_VM) { + if (!NT_STATUS_IS_OK(result) && + NT_STATUS_V(result) != NT_STATUS_V(NT_STATUS_UNABLE_TO_FREE_VM)) { /* An actual error ocured */ diff --git a/source3/libsmb/cli_reg.c b/source3/libsmb/cli_reg.c index 88e6d3b36d..73eea58cb7 100644 --- a/source3/libsmb/cli_reg.c +++ b/source3/libsmb/cli_reg.c @@ -47,7 +47,7 @@ NTSTATUS cli_reg_shutdown(struct cli_state * cli, TALLOC_CTX *mem_ctx, REG_R_SHUTDOWN r_s; NTSTATUS result = NT_STATUS_UNSUCCESSFUL; - if (msg == NULL) return False; + if (msg == NULL) return NT_STATUS_INVALID_PARAMETER; ZERO_STRUCT (q_s); ZERO_STRUCT (r_s); diff --git a/source3/libsmb/cli_samr.c b/source3/libsmb/cli_samr.c index 9e40135801..4a04d67887 100644 --- a/source3/libsmb/cli_samr.c +++ b/source3/libsmb/cli_samr.c @@ -68,7 +68,7 @@ NTSTATUS cli_samr_connect(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *connect_pol = r.connect_pol; } @@ -114,7 +114,7 @@ NTSTATUS cli_samr_close(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *connect_pol = r.pol; } @@ -161,7 +161,7 @@ NTSTATUS cli_samr_open_domain(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *domain_pol = r.domain_pol; } @@ -208,7 +208,7 @@ NTSTATUS cli_samr_open_user(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *user_pol = r.user_pol; } @@ -255,7 +255,7 @@ NTSTATUS cli_samr_open_group(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *group_pol = r.pol; } @@ -395,7 +395,7 @@ NTSTATUS cli_samr_query_usergroups(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *num_groups = r.num_entries; *gid = r.gid; } @@ -443,7 +443,7 @@ NTSTATUS cli_samr_query_groupmem(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *num_mem = r.num_entries; *rid = r.rid; *attr = r.attr; @@ -466,7 +466,8 @@ NTSTATUS cli_samr_enum_dom_groups(struct cli_state *cli, TALLOC_CTX *mem_ctx, prs_struct qbuf, rbuf; SAMR_Q_ENUM_DOM_GROUPS q; SAMR_R_ENUM_DOM_GROUPS r; - NTSTATUS result = NT_STATUS_UNSUCCESSFUL, name_idx, i; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; + uint32 name_idx, i; ZERO_STRUCT(q); ZERO_STRUCT(r); @@ -495,8 +496,8 @@ NTSTATUS cli_samr_enum_dom_groups(struct cli_state *cli, TALLOC_CTX *mem_ctx, result = r.status; - if (result != NT_STATUS_OK && - result != STATUS_MORE_ENTRIES) { + if (!NT_STATUS_IS_OK(result) && + NT_STATUS_V(result) != NT_STATUS_V(STATUS_MORE_ENTRIES)) { goto done; } @@ -542,7 +543,8 @@ NTSTATUS cli_samr_query_aliasmem(struct cli_state *cli, TALLOC_CTX *mem_ctx, prs_struct qbuf, rbuf; SAMR_Q_QUERY_ALIASMEM q; SAMR_R_QUERY_ALIASMEM r; - NTSTATUS result = NT_STATUS_UNSUCCESSFUL, i; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; + uint32 i; ZERO_STRUCT(q); ZERO_STRUCT(r); @@ -569,7 +571,7 @@ NTSTATUS cli_samr_query_aliasmem(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(result = r.status)) { goto done; } @@ -629,7 +631,7 @@ NTSTATUS cli_samr_open_alias(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result = r.status)) { *alias_pol = r.pol; } @@ -678,7 +680,7 @@ NTSTATUS cli_samr_query_dom_info(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(result = r.status)) { goto done; } @@ -731,8 +733,8 @@ NTSTATUS cli_samr_query_dispinfo(struct cli_state *cli, TALLOC_CTX *mem_ctx, result = r.status; - if (result != NT_STATUS_OK && - result != STATUS_MORE_ENTRIES) { + if (!NT_STATUS_IS_OK(result) && + NT_STATUS_V(result) != NT_STATUS_V(STATUS_MORE_ENTRIES)) { goto done; } @@ -758,7 +760,8 @@ NTSTATUS cli_samr_lookup_rids(struct cli_state *cli, TALLOC_CTX *mem_ctx, prs_struct qbuf, rbuf; SAMR_Q_LOOKUP_RIDS q; SAMR_R_LOOKUP_RIDS r; - NTSTATUS result = NT_STATUS_UNSUCCESSFUL, i; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; + uint32 i; if (num_rids > 1000) { DEBUG(2, ("cli_samr_lookup_rids: warning: NT4 can crash if " @@ -791,7 +794,7 @@ NTSTATUS cli_samr_lookup_rids(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(result = r.status)) { goto done; } @@ -831,7 +834,8 @@ NTSTATUS cli_samr_lookup_names(struct cli_state *cli, TALLOC_CTX *mem_ctx, prs_struct qbuf, rbuf; SAMR_Q_LOOKUP_NAMES q; SAMR_R_LOOKUP_NAMES r; - NTSTATUS result = NT_STATUS_UNSUCCESSFUL, i; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; + uint32 i; ZERO_STRUCT(q); ZERO_STRUCT(r); @@ -859,7 +863,7 @@ NTSTATUS cli_samr_lookup_names(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(result = r.status)) { goto done; } @@ -921,7 +925,7 @@ NTSTATUS cli_samr_create_dom_user(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(result = r.status)) { goto done; } @@ -977,7 +981,7 @@ NTSTATUS cli_samr_set_userinfo(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(result = r.status)) { goto done; } @@ -1024,7 +1028,7 @@ NTSTATUS cli_samr_set_userinfo2(struct cli_state *cli, TALLOC_CTX *mem_ctx, /* Return output parameters */ - if ((result = r.status) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(result = r.status)) { goto done; } diff --git a/source3/libsmb/cli_spoolss.c b/source3/libsmb/cli_spoolss.c index 54769ce18d..2663e311e0 100644 --- a/source3/libsmb/cli_spoolss.c +++ b/source3/libsmb/cli_spoolss.c @@ -84,8 +84,11 @@ NTSTATUS cli_spoolss_open_printer_ex( /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (W_ERROR_IS_OK(r.status)) { + result = NT_STATUS_OK; *pol = r.handle; + } else { + result = werror_to_ntstatus(r.status); } done: @@ -137,8 +140,11 @@ NTSTATUS cli_spoolss_close_printer( /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { + if (W_ERROR_IS_OK(r.status)) { *pol = r.handle; + result = NT_STATUS_OK; + } else { + result = werror_to_ntstatus(r.status); } done: @@ -428,10 +434,12 @@ NTSTATUS cli_spoolss_enum_printers( } /* Return output parameters */ + if (!W_ERROR_IS_OK(r.status)) { + result = werror_to_ntstatus(r.status); + goto done; + } - if (((result=r.status) == NT_STATUS_OK) && (*returned = r.returned)) - { - + if ((*returned = r.returned)) { switch (level) { case 1: decode_printer_info_1(mem_ctx, r.buffer, r.returned, @@ -452,7 +460,7 @@ NTSTATUS cli_spoolss_enum_printers( prs_mem_free(&qbuf); prs_mem_free(&rbuf); - } while (result == ERROR_INSUFFICIENT_BUFFER); + } while (NT_STATUS_V(result) == NT_STATUS_V(ERROR_INSUFFICIENT_BUFFER)); return result; } @@ -504,8 +512,9 @@ NTSTATUS cli_spoolss_enum_ports( } /* Return output parameters */ + result = werror_to_ntstatus(r.status); - if ((result = r.status) == NT_STATUS_OK && + if (NT_STATUS_IS_OK(result) && r.returned > 0) { *returned = r.returned; @@ -526,7 +535,7 @@ NTSTATUS cli_spoolss_enum_ports( prs_mem_free(&qbuf); prs_mem_free(&rbuf); - } while (result == ERROR_INSUFFICIENT_BUFFER); + } while (NT_STATUS_V(result) == NT_STATUS_V(ERROR_INSUFFICIENT_BUFFER)); return result; } @@ -574,8 +583,8 @@ NTSTATUS cli_spoolss_getprinter( } /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) { - + result = werror_to_ntstatus(r.status); + if (NT_STATUS_IS_OK(result)) { switch (level) { case 0: decode_printer_info_0(mem_ctx, r.buffer, 1, &ctr->printers_0); @@ -596,7 +605,7 @@ NTSTATUS cli_spoolss_getprinter( prs_mem_free(&qbuf); prs_mem_free(&rbuf); - } while (result == ERROR_INSUFFICIENT_BUFFER); + } while (NT_STATUS_V(result) == NT_STATUS_V(ERROR_INSUFFICIENT_BUFFER)); return result; } @@ -616,7 +625,7 @@ NTSTATUS cli_spoolss_setprinter( prs_struct qbuf, rbuf; SPOOL_Q_SETPRINTER q; SPOOL_R_SETPRINTER r; - NTSTATUS result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_ACCESS_DENIED; ZERO_STRUCT(q); ZERO_STRUCT(r); @@ -631,7 +640,7 @@ NTSTATUS cli_spoolss_setprinter( if (!spoolss_io_q_setprinter("", &q, &qbuf, 0) || !rpc_api_pipe_req(cli, SPOOLSS_SETPRINTER, &qbuf, &rbuf)) { - result = NT_STATUS_UNSUCCESSFUL; + result = NT_STATUS_ACCESS_DENIED; goto done; } @@ -641,7 +650,7 @@ NTSTATUS cli_spoolss_setprinter( goto done; } - result = r.status; + result = werror_to_ntstatus(r.status); done: prs_mem_free(&qbuf); @@ -705,9 +714,9 @@ NTSTATUS cli_spoolss_getprinterdriver ( } /* Return output parameters */ - if ((result = r.status) == NT_STATUS_OK) + result = werror_to_ntstatus(r.status); + if (NT_STATUS_IS_OK(result)) { - switch (level) { case 1: @@ -726,7 +735,7 @@ NTSTATUS cli_spoolss_getprinterdriver ( prs_mem_free(&qbuf); prs_mem_free(&rbuf); - } while (result == ERROR_INSUFFICIENT_BUFFER); + } while (NT_STATUS_V(result) == NT_STATUS_V(ERROR_INSUFFICIENT_BUFFER)); return result; } @@ -784,7 +793,8 @@ NTSTATUS cli_spoolss_enumprinterdrivers ( } /* Return output parameters */ - if (((result=r.status) == NT_STATUS_OK) && + result = werror_to_ntstatus(r.status); + if (NT_STATUS_IS_OK(result) && (r.returned != 0)) { *returned = r.returned; @@ -807,7 +817,7 @@ NTSTATUS cli_spoolss_enumprinterdrivers ( prs_mem_free(&qbuf); prs_mem_free(&rbuf); - } while (result == ERROR_INSUFFICIENT_BUFFER); + } while (NT_STATUS_V(result) == NT_STATUS_V(ERROR_INSUFFICIENT_BUFFER)); return result; } @@ -865,7 +875,8 @@ NTSTATUS cli_spoolss_getprinterdriverdir ( } /* Return output parameters */ - if ((result=r.status) == NT_STATUS_OK) + result = werror_to_ntstatus(r.status); + if (NT_STATUS_IS_OK(result)) { switch (level) { @@ -879,7 +890,7 @@ NTSTATUS cli_spoolss_getprinterdriverdir ( prs_mem_free(&qbuf); prs_mem_free(&rbuf); - } while (result == ERROR_INSUFFICIENT_BUFFER); + } while (NT_STATUS_V(result) == NT_STATUS_V(ERROR_INSUFFICIENT_BUFFER)); return result; } @@ -931,7 +942,7 @@ NTSTATUS cli_spoolss_addprinterdriver ( } /* Return output parameters */ - result = r.status; + result = werror_to_ntstatus(r.status); done: prs_mem_free(&qbuf); @@ -993,7 +1004,7 @@ NTSTATUS cli_spoolss_addprinterex ( } /* Return output parameters */ - result = r.status; + result = werror_to_ntstatus(r.status); done: prs_mem_free(&qbuf); @@ -1050,7 +1061,7 @@ NTSTATUS cli_spoolss_deleteprinterdriver ( } /* Return output parameters */ - result = r.status; + result = werror_to_ntstatus(r.status); done: prs_mem_free(&qbuf); diff --git a/source3/libsmb/domain_client_validate.c b/source3/libsmb/domain_client_validate.c index 69b5739b63..a6890f1027 100644 --- a/source3/libsmb/domain_client_validate.c +++ b/source3/libsmb/domain_client_validate.c @@ -323,16 +323,14 @@ NTSTATUS domain_client_validate(const auth_usersupplied_info *user_info, ZERO_STRUCT(info3); - if ((status = cli_nt_login_network(&cli, user_info, smb_uid_low, - &ctr, &info3)) - != NT_STATUS_OK) { + status = cli_nt_login_network(&cli, user_info, smb_uid_low, + &ctr, &info3); + if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("domain_client_validate: unable to validate password " "for user %s in domain %s to Domain controller %s. " "Error was %s.\n", user_info->smb_username.str, user_info->domain.str, remote_machine, get_nt_error_msg(status))); - } else { - status = NT_STATUS_OK; } /* diff --git a/source3/locking/locking.c b/source3/locking/locking.c index 4928d6d160..1ed238f4d8 100644 --- a/source3/locking/locking.c +++ b/source3/locking/locking.c @@ -105,7 +105,7 @@ NTSTATUS do_lock(files_struct *fsp,connection_struct *conn, uint16 lock_pid, BOOL ok = False; if (!lp_locking(SNUM(conn))) - return NT_STATUS(0); + return NT_STATUS_OK; /* NOTE! 0 byte long ranges ARE allowed and should be stored */ @@ -156,10 +156,10 @@ NTSTATUS do_unlock(files_struct *fsp,connection_struct *conn, uint16 lock_pid, BOOL ok = False; if (!lp_locking(SNUM(conn))) - return NT_STATUS(0); + return NT_STATUS_OK; if (!OPEN_FSP(fsp) || !fsp->can_lock || (fsp->conn != conn)) { - return NT_STATUS(NT_STATUS_INVALID_HANDLE); + return NT_STATUS_INVALID_HANDLE; } DEBUG(10,("do_unlock: unlock start=%.0f len=%.0f requested for file %s\n", @@ -176,15 +176,15 @@ NTSTATUS do_unlock(files_struct *fsp,connection_struct *conn, uint16 lock_pid, if (!ok) { DEBUG(10,("do_unlock: returning ERRlock.\n" )); - return NT_STATUS(NT_STATUS_LOCK_NOT_GRANTED); + return NT_STATUS_LOCK_NOT_GRANTED; } if (!lp_posix_locking(SNUM(conn))) - return NT_STATUS(0); + return NT_STATUS_OK; (void)release_posix_lock(fsp, offset, count); - return NT_STATUS(0); + return NT_STATUS_OK; } /**************************************************************************** diff --git a/source3/nsswitch/winbindd_glue.c b/source3/nsswitch/winbindd_glue.c index e9792c6d47..0b721e36d2 100644 --- a/source3/nsswitch/winbindd_glue.c +++ b/source3/nsswitch/winbindd_glue.c @@ -34,7 +34,7 @@ BOOL wb_lsa_open_policy(char *server, BOOL sec_qos, uint32 des_access, struct ntuser_creds creds; struct in_addr dest_ip; fstring dest_host; - uint32 result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; extern pstring global_myname; ZERO_STRUCTP(pol); @@ -79,13 +79,13 @@ BOOL wb_lsa_open_policy(char *server, BOOL sec_qos, uint32 des_access, des_access, &pol->handle); done: - if (result != NT_STATUS_OK && pol->cli) { + if (!NT_STATUS_IS_OK(result) && pol->cli) { if (pol->cli->initialised) cli_shutdown(pol->cli); free(pol->cli); } - return (result == NT_STATUS_OK); + return NT_STATUS_IS_OK(result); } /**************************************************************************** @@ -94,12 +94,12 @@ do a LSA Enumerate Trusted Domain BOOL wb_lsa_enum_trust_dom(CLI_POLICY_HND *hnd, uint32 *enum_ctx, uint32 * num_doms, char ***names, DOM_SID **sids) { - uint32 ret; + NTSTATUS ret; ret = cli_lsa_enum_trust_dom(hnd->cli, hnd->mem_ctx, &hnd->handle, enum_ctx, num_doms, names, sids); - return (ret == NT_STATUS_OK); + return NT_STATUS_IS_OK(ret); } /**************************************************************************** @@ -108,12 +108,12 @@ do a LSA Query Info Policy BOOL wb_lsa_query_info_pol(CLI_POLICY_HND *hnd, uint16 info_class, fstring domain_name, DOM_SID *domain_sid) { - uint32 ret; + NTSTATUS ret; ret = cli_lsa_query_info_policy(hnd->cli, hnd->mem_ctx, &hnd->handle, info_class, domain_name, domain_sid); - return (ret == NT_STATUS_OK); + return NT_STATUS_IS_OK(ret); } /**************************************************************************** @@ -122,12 +122,12 @@ do a LSA Lookup Names BOOL wb_lsa_lookup_names(CLI_POLICY_HND *hnd, int num_names, char **names, DOM_SID **sids, uint32 **types, int *num_sids) { - uint32 ret; + NTSTATUS ret; ret = cli_lsa_lookup_names(hnd->cli, hnd->mem_ctx, &hnd->handle, num_names, names, sids, types, num_sids); - return (ret == NT_STATUS_OK); + return NT_STATUS_IS_OK(ret); } /**************************************************************************** @@ -136,12 +136,12 @@ do a LSA Lookup SIDS BOOL wb_lsa_lookup_sids(CLI_POLICY_HND *hnd, int num_sids, DOM_SID *sids, char ***names, uint32 **types, int *num_names) { - uint32 ret; + NTSTATUS ret; ret = cli_lsa_lookup_sids(hnd->cli, hnd->mem_ctx, &hnd->handle, num_sids, sids, names, types, num_names); - return (ret == NT_STATUS_OK); + return NT_STATUS_IS_OK(ret); } /**************************************************************************** @@ -149,11 +149,11 @@ lsa_close glue ****************************************************************************/ BOOL wb_lsa_close(CLI_POLICY_HND *hnd) { - uint32 ret; + NTSTATUS ret; ret = cli_lsa_close(hnd->cli, hnd->mem_ctx, &hnd->handle); - return (ret == NT_STATUS_OK); + return NT_STATUS_IS_OK(ret); } @@ -162,11 +162,11 @@ samr_close glue ****************************************************************************/ BOOL wb_samr_close(CLI_POLICY_HND *hnd) { - uint32 ret; + NTSTATUS ret; ret = cli_samr_close(hnd->cli, hnd->mem_ctx, &hnd->handle); - return (ret == NT_STATUS_OK); + return NT_STATUS_IS_OK(ret); } @@ -179,7 +179,7 @@ BOOL wb_samr_connect(char *server, uint32 access_mask, CLI_POLICY_HND *pol) struct ntuser_creds creds; struct in_addr dest_ip; fstring dest_host; - uint32 result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; extern pstring global_myname; ZERO_STRUCTP(pol); @@ -225,13 +225,13 @@ BOOL wb_samr_connect(char *server, uint32 access_mask, CLI_POLICY_HND *pol) access_mask, &pol->handle); done: - if (result != NT_STATUS_OK && pol->cli) { + if (!NT_STATUS_IS_OK(result) && pol->cli) { if (pol->cli->initialised) cli_shutdown(pol->cli); free(pol->cli); } - return (result == NT_STATUS_OK); + return NT_STATUS_IS_OK(result); } @@ -241,7 +241,7 @@ samr_open_domain glue BOOL wb_samr_open_domain(CLI_POLICY_HND *connect_pol, uint32 ace_perms, DOM_SID *sid, CLI_POLICY_HND *domain_pol) { - uint32 ret; + NTSTATUS ret; ret = cli_samr_open_domain(connect_pol->cli, connect_pol->mem_ctx, @@ -250,7 +250,7 @@ BOOL wb_samr_open_domain(CLI_POLICY_HND *connect_pol, uint32 ace_perms, sid, &domain_pol->handle); - if (ret == NT_STATUS_OK) { + if NT_STATUS_IS_OK(ret) { domain_pol->cli = connect_pol->cli; domain_pol->mem_ctx = connect_pol->mem_ctx; return True; @@ -262,16 +262,12 @@ BOOL wb_samr_open_domain(CLI_POLICY_HND *connect_pol, uint32 ace_perms, /**************************************************************************** do a SAMR enumerate groups ****************************************************************************/ -uint32 wb_samr_enum_dom_groups(CLI_POLICY_HND *pol, uint32 *start_idx, +NTSTATUS wb_samr_enum_dom_groups(CLI_POLICY_HND *pol, uint32 *start_idx, uint32 size, struct acct_info **sam, uint32 *num_sam_groups) { - uint32 ret; - - ret = cli_samr_enum_dom_groups(pol->cli, pol->mem_ctx, &pol->handle, - start_idx, size, sam, num_sam_groups); - - return (ret == NT_STATUS_OK); + return cli_samr_enum_dom_groups(pol->cli, pol->mem_ctx, &pol->handle, + start_idx, size, sam, num_sam_groups); } /**************************************************************************** @@ -282,25 +278,25 @@ BOOL wb_get_samr_query_userinfo(CLI_POLICY_HND *pol, uint32 info_level, { POLICY_HND user_pol; BOOL got_user_pol = False; - uint32 result; + NTSTATUS result; - if ((result = cli_samr_open_user(pol->cli, pol->mem_ctx, - &pol->handle, MAXIMUM_ALLOWED_ACCESS, - user_rid, &user_pol)) - != NT_STATUS_OK) + result = cli_samr_open_user(pol->cli, pol->mem_ctx, + &pol->handle, MAXIMUM_ALLOWED_ACCESS, + user_rid, &user_pol); + if (!NT_STATUS_IS_OK(result)) goto done; got_user_pol = True; - if ((result = cli_samr_query_userinfo(pol->cli, pol->mem_ctx, - &user_pol, info_level, ctr)) - != NT_STATUS_OK) + result = cli_samr_query_userinfo(pol->cli, pol->mem_ctx, + &user_pol, info_level, ctr); + if (!NT_STATUS_IS_OK(result)) goto done; done: if (got_user_pol) cli_samr_close(pol->cli, pol->mem_ctx, &user_pol); - return (result == NT_STATUS_OK); + return NT_STATUS_IS_OK(result); } /**************************************************************************** @@ -309,23 +305,23 @@ do a SAMR enumerate groups BOOL wb_samr_open_user(CLI_POLICY_HND *pol, uint32 access_mask, uint32 rid, POLICY_HND *user_pol) { - uint32 ret; + NTSTATUS ret; ret = cli_samr_open_user(pol->cli, pol->mem_ctx, &pol->handle, access_mask, rid, user_pol); - return (ret == NT_STATUS_OK); + return NT_STATUS_IS_OK(ret); } BOOL wb_samr_query_usergroups(CLI_POLICY_HND *pol, uint32 *num_groups, DOM_GID **gid) { - uint32 ret; + NTSTATUS ret; ret = cli_samr_query_usergroups(pol->cli, pol->mem_ctx, &pol->handle, num_groups, gid); - return (ret == NT_STATUS_OK); + return NT_STATUS_IS_OK(ret); } BOOL wb_get_samr_query_groupinfo(CLI_POLICY_HND *pol, uint32 info_level, @@ -333,25 +329,23 @@ BOOL wb_get_samr_query_groupinfo(CLI_POLICY_HND *pol, uint32 info_level, { POLICY_HND group_pol; BOOL got_group_pol = False; - uint32 result; + NTSTATUS result; - if ((result = cli_samr_open_group(pol->cli, pol->mem_ctx, - &pol->handle, MAXIMUM_ALLOWED_ACCESS, - group_rid, &group_pol)) - != NT_STATUS_OK) + result = cli_samr_open_group(pol->cli, pol->mem_ctx, + &pol->handle, MAXIMUM_ALLOWED_ACCESS, + group_rid, &group_pol); + if (!NT_STATUS_IS_OK(result)) goto done; got_group_pol = True; - if ((result = cli_samr_query_groupinfo(pol->cli, pol->mem_ctx, - &group_pol, info_level, - ctr)) != NT_STATUS_OK) - goto done; - + result = cli_samr_query_groupinfo(pol->cli, pol->mem_ctx, + &group_pol, info_level, + ctr); done: if (got_group_pol) cli_samr_close(pol->cli, pol->mem_ctx, &group_pol); - return (result == NT_STATUS_OK); + return NT_STATUS_IS_OK(result); } BOOL wb_sam_query_groupmem(CLI_POLICY_HND *pol, uint32 group_rid, @@ -360,20 +354,21 @@ BOOL wb_sam_query_groupmem(CLI_POLICY_HND *pol, uint32 group_rid, { BOOL got_group_pol = False; POLICY_HND group_pol; - uint32 result, i, total_names = 0; + NTSTATUS result; + uint32 i, total_names = 0; - if ((result = cli_samr_open_group(pol->cli, pol->mem_ctx, - &pol->handle, MAXIMUM_ALLOWED_ACCESS, - group_rid, &group_pol)) - != NT_STATUS_OK) + result = cli_samr_open_group(pol->cli, pol->mem_ctx, + &pol->handle, MAXIMUM_ALLOWED_ACCESS, + group_rid, &group_pol); + if (!NT_STATUS_IS_OK(result)) goto done; got_group_pol = True; - if ((result = cli_samr_query_groupmem(pol->cli, pol->mem_ctx, - &group_pol, num_names, rid_mem, - name_types)) - != NT_STATUS_OK) + result = cli_samr_query_groupmem(pol->cli, pol->mem_ctx, + &group_pol, num_names, rid_mem, + name_types); + if (!NT_STATUS_IS_OK(result)) goto done; /* Call cli_samr_lookup_rids() in bunches of ~1000 rids to avoid @@ -398,8 +393,7 @@ BOOL wb_sam_query_groupmem(CLI_POLICY_HND *pol, uint32 group_rid, &(*rid_mem)[i], &tmp_num_names, &tmp_names, &tmp_types); - - if (result != NT_STATUS_OK) + if (!NT_STATUS_IS_OK(result)) goto done; /* Copy result into array. The talloc system will take @@ -420,26 +414,26 @@ BOOL wb_sam_query_groupmem(CLI_POLICY_HND *pol, uint32 group_rid, if (got_group_pol) cli_samr_close(pol->cli, pol->mem_ctx, &group_pol); - return (result == NT_STATUS_OK); + return NT_STATUS_IS_OK(result); } BOOL wb_samr_query_dom_info(CLI_POLICY_HND *pol, uint16 switch_value, SAM_UNK_CTR *ctr) { - uint32 ret; + NTSTATUS ret; ret = cli_samr_query_dom_info(pol->cli, pol->mem_ctx, &pol->handle, switch_value, ctr); - return (ret == NT_STATUS_OK); + return NT_STATUS_IS_OK(ret); } /* Unlike all the others, the status code of this function is actually used by winbindd. */ -uint32 wb_samr_query_dispinfo(CLI_POLICY_HND *pol, uint32 *start_ndx, - uint16 info_level, uint32 *num_entries, - SAM_DISPINFO_CTR *ctr) +NTSTATUS wb_samr_query_dispinfo(CLI_POLICY_HND *pol, uint32 *start_ndx, + uint16 info_level, uint32 *num_entries, + SAM_DISPINFO_CTR *ctr) { return cli_samr_query_dispinfo(pol->cli, pol->mem_ctx, &pol->handle, start_ndx, diff --git a/source3/nsswitch/winbindd_group.c b/source3/nsswitch/winbindd_group.c index 99b48bd5d3..c937f7848f 100644 --- a/source3/nsswitch/winbindd_group.c +++ b/source3/nsswitch/winbindd_group.c @@ -465,7 +465,8 @@ enum winbindd_result winbindd_endgrent(struct winbindd_cli_state *state) static BOOL get_sam_group_entries(struct getent_state *ent) { - uint32 status, num_entries; + NTSTATUS status; + uint32 num_entries; struct acct_info *name_list = NULL; if (ent->got_all_sam_entries) { @@ -526,7 +527,7 @@ static BOOL get_sam_group_entries(struct getent_state *ent) ent->num_sam_entries += num_entries; - if (status != STATUS_MORE_ENTRIES) + if (NT_STATUS_V(status) != NT_STATUS_V(STATUS_MORE_ENTRIES)) break; } while (ent->num_sam_entries < MAX_FETCH_SAM_ENTRIES); @@ -542,7 +543,7 @@ static BOOL get_sam_group_entries(struct getent_state *ent) ent->sam_entries = name_list; ent->sam_entry_index = 0; - ent->got_all_sam_entries = (status != STATUS_MORE_ENTRIES); + ent->got_all_sam_entries = (NT_STATUS_V(status) != NT_STATUS_V(STATUS_MORE_ENTRIES)); return ent->num_sam_entries > 0; } diff --git a/source3/nsswitch/winbindd_misc.c b/source3/nsswitch/winbindd_misc.c index b98e89888b..d0851f5113 100644 --- a/source3/nsswitch/winbindd_misc.c +++ b/source3/nsswitch/winbindd_misc.c @@ -61,10 +61,9 @@ BOOL _get_trust_account_password(char *domain, unsigned char *ret_pwd, /* Check the machine account password is valid */ -enum winbindd_result winbindd_check_machine_acct( - struct winbindd_cli_state *state) +enum winbindd_result winbindd_check_machine_acct(struct winbindd_cli_state *state) { - int result = WINBINDD_ERROR; + NTSTATUS status; uchar trust_passwd[16]; struct in_addr *ip_list = NULL; int count; @@ -79,7 +78,7 @@ enum winbindd_result winbindd_check_machine_acct( again: if (!_get_trust_account_password(lp_workgroup(), trust_passwd, NULL)) { - result = NT_STATUS_INTERNAL_ERROR; + status = NT_STATUS_INTERNAL_ERROR; goto done; } @@ -90,7 +89,7 @@ enum winbindd_result winbindd_check_machine_acct( controller)) { DEBUG(0, ("could not find domain controller for " "domain %s\n", lp_workgroup())); - result = NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND; + status = NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND; goto done; } @@ -102,7 +101,7 @@ enum winbindd_result winbindd_check_machine_acct( global_myname); #if 0 /* XXX */ - result = cli_nt_setup_creds(controller, lp_workgroup(), global_myname, + status = cli_nt_setup_creds(controller, lp_workgroup(), global_myname, trust_account, trust_passwd, SEC_CHAN_WKSTA, &validation_level); #endif @@ -115,7 +114,7 @@ enum winbindd_result winbindd_check_machine_acct( #define MAX_RETRIES 8 if ((num_retries < MAX_RETRIES) && - result == NT_STATUS_ACCESS_DENIED) { + NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_ACCESS_DENIED)) { num_retries++; goto again; } @@ -123,11 +122,10 @@ enum winbindd_result winbindd_check_machine_acct( /* Pass back result code - zero for success, other values for specific failures. */ - DEBUG(3, ("secret is %s\n", (result == NT_STATUS_OK) ? - "good" : "bad")); + DEBUG(3, ("secret is %s\n", NT_STATUS_IS_OK(status) ? "good" : "bad")); done: - state->response.data.num_entries = result; + state->response.data.num_entries = NT_STATUS_V(status); return WINBINDD_OK; } diff --git a/source3/nsswitch/winbindd_pam.c b/source3/nsswitch/winbindd_pam.c index 40762b1f0b..b5c3a80422 100644 --- a/source3/nsswitch/winbindd_pam.c +++ b/source3/nsswitch/winbindd_pam.c @@ -54,7 +54,7 @@ static void parse_domain_user(char *domuser, fstring domain, fstring user) enum winbindd_result winbindd_pam_auth(struct winbindd_cli_state *state) { - uint32 result; + NTSTATUS result; fstring name_domain, name_user; int passlen; unsigned char trust_passwd[16]; @@ -135,14 +135,14 @@ enum winbindd_result winbindd_pam_auth(struct winbindd_cli_state *state) server_state.controller, trust_passwd, last_change_time); - return (result == NT_STATUS_OK) ? WINBINDD_OK : WINBINDD_ERROR; + return NT_STATUS_IS_OK(result) ? WINBINDD_OK : WINBINDD_ERROR; } /* Challenge Response Authentication Protocol */ enum winbindd_result winbindd_pam_auth_crap(struct winbindd_cli_state *state) { - uint32 result; + NTSTATUS result; fstring name_domain, name_user; unsigned char trust_passwd[16]; time_t last_change_time; @@ -206,7 +206,7 @@ enum winbindd_result winbindd_pam_auth_crap(struct winbindd_cli_state *state) server_state.controller, trust_passwd, last_change_time); - return (result == NT_STATUS_OK) ? WINBINDD_OK : WINBINDD_ERROR; + return NT_STATUS_IS_OK(result) ? WINBINDD_OK : WINBINDD_ERROR; } /* Change a user password */ diff --git a/source3/nsswitch/winbindd_proto.h b/source3/nsswitch/winbindd_proto.h index 3c61b1f872..96ce772bd3 100644 --- a/source3/nsswitch/winbindd_proto.h +++ b/source3/nsswitch/winbindd_proto.h @@ -138,7 +138,7 @@ void free_getent_state(struct getent_state *state); BOOL winbindd_param_init(void); char *winbindd_cmd_to_string(enum winbindd_cmd cmd); uint32 domain_sequence_number(char *domain_name); -uint32 winbindd_query_dispinfo(struct winbindd_domain *domain, +NTSTATUS winbindd_query_dispinfo(struct winbindd_domain *domain, uint32 *start_ndx, uint16 info_level, uint32 *num_entries, SAM_DISPINFO_CTR *ctr); BOOL check_domain_env(char *domain_env, char *domain); diff --git a/source3/nsswitch/winbindd_user.c b/source3/nsswitch/winbindd_user.c index 6f887e8735..22fbfa30ab 100644 --- a/source3/nsswitch/winbindd_user.c +++ b/source3/nsswitch/winbindd_user.c @@ -356,7 +356,8 @@ enum winbindd_result winbindd_endpwent(struct winbindd_cli_state *state) static BOOL get_sam_user_entries(struct getent_state *ent) { - NTSTATUS status, num_entries; + NTSTATUS status; + uint32 num_entries; SAM_DISPINFO_1 info1; SAM_DISPINFO_CTR ctr; struct getpwent_user *name_list = NULL; @@ -455,7 +456,7 @@ static BOOL get_sam_user_entries(struct getent_state *ent) ent->num_sam_entries += num_entries; - if (status != STATUS_MORE_ENTRIES) { + if (NT_STATUS_V(status) != NT_STATUS_V(STATUS_MORE_ENTRIES)) { break; } @@ -472,7 +473,7 @@ static BOOL get_sam_user_entries(struct getent_state *ent) ent->sam_entries = name_list; ent->sam_entry_index = 0; - ent->got_all_sam_entries = (status != STATUS_MORE_ENTRIES); + ent->got_all_sam_entries = (NT_STATUS_V(status) != NT_STATUS_V(STATUS_MORE_ENTRIES)); return ent->num_sam_entries > 0; } @@ -614,7 +615,8 @@ enum winbindd_result winbindd_list_users(struct winbindd_cli_state *state) ctr.sam.info1 = &info1; for (domain = domain_list; domain; domain = domain->next) { - NTSTATUS status, start_ndx = 0; + NTSTATUS status; + uint32 start_ndx = 0; /* Skip domains other than WINBINDD_DOMAIN environment variable */ @@ -680,7 +682,7 @@ enum winbindd_result winbindd_list_users(struct winbindd_cli_state *state) extra_data[extra_data_len++] = ','; } - } while (status == STATUS_MORE_ENTRIES); + } while (NT_STATUS_V(status) == NT_STATUS_V(STATUS_MORE_ENTRIES)); } /* Assign extra_data fields in response structure */ diff --git a/source3/nsswitch/winbindd_util.c b/source3/nsswitch/winbindd_util.c index e24e15429f..13f8e07c61 100644 --- a/source3/nsswitch/winbindd_util.c +++ b/source3/nsswitch/winbindd_util.c @@ -591,10 +591,9 @@ BOOL winbindd_lookup_usergroups(struct winbindd_domain *domain, return False; } - if (cli_samr_query_usergroups(domain->sam_dom_handle.cli, - domain->sam_dom_handle.mem_ctx, - &user_pol, num_groups, user_groups) - != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(cli_samr_query_usergroups(domain->sam_dom_handle.cli, + domain->sam_dom_handle.mem_ctx, + &user_pol, num_groups, user_groups))) { result = False; goto done; } @@ -867,16 +866,12 @@ uint32 domain_sequence_number(char *domain_name) bit extra to give an overview of domain users for the User Manager application. */ -uint32 winbindd_query_dispinfo(struct winbindd_domain *domain, - uint32 *start_ndx, uint16 info_level, - uint32 *num_entries, SAM_DISPINFO_CTR *ctr) +NTSTATUS winbindd_query_dispinfo(struct winbindd_domain *domain, + uint32 *start_ndx, uint16 info_level, + uint32 *num_entries, SAM_DISPINFO_CTR *ctr) { - NTSTATUS status; - - status = wb_samr_query_dispinfo(&domain->sam_dom_handle, start_ndx, - info_level, num_entries, ctr); - - return status; + return wb_samr_query_dispinfo(&domain->sam_dom_handle, start_ndx, + info_level, num_entries, ctr); } /* Check if a domain is present in a comma-separated list of domains */ diff --git a/source3/passdb/pampass.c b/source3/passdb/pampass.c index 359ed02b29..46b38ab1c0 100644 --- a/source3/passdb/pampass.c +++ b/source3/passdb/pampass.c @@ -83,12 +83,13 @@ static BOOL smb_pam_error_handler(pam_handle_t *pamh, int pam_error, char *msg, *********************************************************************/ static BOOL smb_pam_nt_status_error_handler(pam_handle_t *pamh, int pam_error, - char *msg, int dbglvl, uint32 *nt_status) + char *msg, int dbglvl, + NTSTATUS *nt_status) { if (smb_pam_error_handler(pamh, pam_error, msg, dbglvl)) return True; - if (*nt_status == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(*nt_status)) { /* Complain LOUDLY */ DEBUG(0, ("smb_pam_nt_status_error_handler: PAM: BUG: PAM and NT_STATUS \ error MISMATCH, forcing to NT_STATUS_LOGON_FAILURE")); @@ -494,10 +495,10 @@ static BOOL smb_pam_start(pam_handle_t **pamh, char *user, char *rhost, struct p /* * PAM Authentication Handler */ -static uint32 smb_pam_auth(pam_handle_t *pamh, char *user) +static NTSTATUS smb_pam_auth(pam_handle_t *pamh, char *user) { int pam_error; - uint32 nt_status = NT_STATUS_LOGON_FAILURE; + NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE; /* * To enable debugging set in /etc/pam.d/samba: @@ -548,10 +549,10 @@ static uint32 smb_pam_auth(pam_handle_t *pamh, char *user) /* * PAM Account Handler */ -static uint32 smb_pam_account(pam_handle_t *pamh, char * user) +static NTSTATUS smb_pam_account(pam_handle_t *pamh, char * user) { int pam_error; - uint32 nt_status = NT_STATUS_ACCOUNT_DISABLED; + NTSTATUS nt_status = NT_STATUS_ACCOUNT_DISABLED; DEBUG(4,("smb_pam_account: PAM: Account Management for User: %s\n", user)); pam_error = pam_acct_mgmt(pamh, PAM_SILENT); /* Is user account enabled? */ @@ -594,10 +595,10 @@ static uint32 smb_pam_account(pam_handle_t *pamh, char * user) * PAM Credential Setting */ -static uint32 smb_pam_setcred(pam_handle_t *pamh, char * user) +static NTSTATUS smb_pam_setcred(pam_handle_t *pamh, char * user) { int pam_error; - uint32 nt_status = NT_STATUS_NO_TOKEN; + NTSTATUS nt_status = NT_STATUS_NO_TOKEN; /* * This will allow samba to aquire a kerberos token. And, when @@ -778,9 +779,9 @@ BOOL smb_pam_close_session(char *user, char *tty, char *rhost) * PAM Externally accessible Account handler */ -uint32 smb_pam_accountcheck(char * user) +NTSTATUS smb_pam_accountcheck(char * user) { - uint32 nt_status = NT_STATUS_ACCOUNT_DISABLED; + NTSTATUS nt_status = NT_STATUS_ACCOUNT_DISABLED; pam_handle_t *pamh = NULL; struct pam_conv *pconv = NULL; @@ -790,12 +791,12 @@ uint32 smb_pam_accountcheck(char * user) return NT_STATUS_OK; if ((pconv = smb_setup_pam_conv(smb_pam_conv, user, NULL, NULL)) == NULL) - return False; + return NT_STATUS_NO_MEMORY; if (!smb_pam_start(&pamh, user, NULL, pconv)) return NT_STATUS_ACCOUNT_DISABLED; - if ((nt_status = smb_pam_account(pamh, user)) != NT_STATUS_OK) + if (!NT_STATUS_IS_OK(nt_status = smb_pam_account(pamh, user))) DEBUG(0, ("smb_pam_accountcheck: PAM: Account Validation Failed - Rejecting User %s!\n", user)); smb_pam_end(pamh, pconv); @@ -806,10 +807,10 @@ uint32 smb_pam_accountcheck(char * user) * PAM Password Validation Suite */ -uint32 smb_pam_passcheck(char * user, char * password) +NTSTATUS smb_pam_passcheck(char * user, char * password) { pam_handle_t *pamh = NULL; - uint32 nt_status = NT_STATUS_LOGON_FAILURE; + NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE; struct pam_conv *pconv = NULL; /* @@ -824,19 +825,19 @@ uint32 smb_pam_passcheck(char * user, char * password) if (!smb_pam_start(&pamh, user, NULL, pconv)) return NT_STATUS_LOGON_FAILURE; - if ((nt_status = smb_pam_auth(pamh, user)) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(nt_status = smb_pam_auth(pamh, user))) { DEBUG(0, ("smb_pam_passcheck: PAM: smb_pam_auth failed - Rejecting User %s !\n", user)); smb_pam_end(pamh, pconv); return nt_status; } - if ((nt_status = smb_pam_account(pamh, user)) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(nt_status = smb_pam_account(pamh, user))) { DEBUG(0, ("smb_pam_passcheck: PAM: smb_pam_account failed - Rejecting User %s !\n", user)); smb_pam_end(pamh, pconv); return nt_status; } - if ((nt_status = smb_pam_setcred(pamh, user)) != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(nt_status = smb_pam_setcred(pamh, user))) { DEBUG(0, ("smb_pam_passcheck: PAM: smb_pam_setcred failed - Rejecting User %s !\n", user)); smb_pam_end(pamh, pconv); return nt_status; diff --git a/source3/passdb/pass_check.c b/source3/passdb/pass_check.c index bd712b3563..59fc9e2eac 100644 --- a/source3/passdb/pass_check.c +++ b/source3/passdb/pass_check.c @@ -599,7 +599,7 @@ static BOOL password_check(char *password) { #ifdef WITH_PAM - return (smb_pam_passcheck(this_user, password) == NT_STATUS_OK); + return NT_STATUS_IS_OK(smb_pam_passcheck(this_user, password)); #endif /* WITH_PAM */ #ifdef WITH_AFS diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c index 0c3a71c1d6..cfdf6955d7 100644 --- a/source3/printing/nt_printing.c +++ b/source3/printing/nt_printing.c @@ -430,14 +430,14 @@ BOOL add_a_form(nt_forms_struct **list, const FORM *form, int *count) /**************************************************************************** delete a named form struct ****************************************************************************/ -BOOL delete_a_form(nt_forms_struct **list, UNISTR2 *del_name, int *count, uint32 *ret) +BOOL delete_a_form(nt_forms_struct **list, UNISTR2 *del_name, int *count, WERROR *ret) { pstring key; TDB_DATA kbuf; int n=0; fstring form_name; - *ret = 0; + *ret = WERR_OK; unistr2_to_ascii(form_name, del_name, sizeof(form_name)-1); @@ -450,7 +450,7 @@ BOOL delete_a_form(nt_forms_struct **list, UNISTR2 *del_name, int *count, uint32 if (n == *count) { DEBUG(10,("delete_a_form, [%s] not found\n", form_name)); - *ret = ERRinvalidparam; + *ret = WERR_INVALID_PARAM; return False; } @@ -458,7 +458,7 @@ BOOL delete_a_form(nt_forms_struct **list, UNISTR2 *del_name, int *count, uint32 kbuf.dsize = strlen(key)+1; kbuf.dptr = key; if (tdb_delete(tdb_forms, kbuf) != 0) { - *ret = ERRnomem; + *ret = WERR_NOMEM; return False; } @@ -921,12 +921,12 @@ static int file_version_is_newer(connection_struct *conn, fstring new_file, Determine the correct cVersion associated with an architecture and driver ****************************************************************************/ static uint32 get_correct_cversion(fstring architecture, fstring driverpath_in, - struct current_user *user, uint32 *perr) + struct current_user *user, WERROR *perr) { int cversion; int access_mode; int action; - int ecode; + NTSTATUS ecode; pstring driverpath; fstring user_name; fstring null_pw; @@ -950,7 +950,7 @@ static uint32 get_correct_cversion(fstring architecture, fstring driverpath_in, DEBUG(0,("get_correct_cversion: Unable to get passwd entry for uid %u\n", (unsigned int)user->uid )); unbecome_root(); - *perr = ERRnoaccess; + *perr = WERR_ACCESS_DENIED; return -1; } unbecome_root(); @@ -966,7 +966,7 @@ static uint32 get_correct_cversion(fstring architecture, fstring driverpath_in, if (conn == NULL) { DEBUG(0,("get_correct_cversion: Unable to connect\n")); - *perr = (uint32)ecode; + *perr = ntstatus_to_werror(ecode); return -1; } @@ -975,7 +975,7 @@ static uint32 get_correct_cversion(fstring architecture, fstring driverpath_in, if (!become_user(conn, conn->vuid)) { DEBUG(0,("get_correct_cversion: Can't become user %s\n", user_name )); - *perr = ERRnoaccess; + *perr = WERR_ACCESS_DENIED; pop_sec_ctx(); return -1; } @@ -993,7 +993,7 @@ static uint32 get_correct_cversion(fstring architecture, fstring driverpath_in, if (!fsp) { DEBUG(3,("get_correct_cversion: Can't open file [%s], errno = %d\n", driverpath, errno)); - *perr = ERRnoaccess; + *perr = WERR_ACCESS_DENIED; goto error_exit; } else { @@ -1030,8 +1030,8 @@ static uint32 get_correct_cversion(fstring architecture, fstring driverpath_in, driverpath, major, minor)); } - DEBUG(10,("get_correct_cversion: Driver file [%s] cversion = %d\n", - driverpath, cversion)); + DEBUG(10,("get_correct_cversion: Driver file [%s] cversion = %d\n", + driverpath, cversion)); close_file(fsp, True); close_cnum(conn, user->vuid); @@ -1040,24 +1040,24 @@ static uint32 get_correct_cversion(fstring architecture, fstring driverpath_in, error_exit: - if(fsp) - close_file(fsp, True); - - close_cnum(conn, user->vuid); - pop_sec_ctx(); - return -1; + if(fsp) + close_file(fsp, True); + + close_cnum(conn, user->vuid); + pop_sec_ctx(); + return -1; } /**************************************************************************** ****************************************************************************/ -static uint32 clean_up_driver_struct_level_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 *driver, - struct current_user *user) +static WERROR clean_up_driver_struct_level_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 *driver, + struct current_user *user) { fstring architecture; fstring new_name; char *p; int i; - uint32 err; + WERROR err; /* clean up the driver name. * we can get .\driver.dll @@ -1107,22 +1107,22 @@ static uint32 clean_up_driver_struct_level_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 *dri * NT2K: cversion=3 */ if ((driver->cversion = get_correct_cversion( architecture, - driver->driverpath, user, &err)) == -1) + driver->driverpath, user, &err)) == -1) return err; - return NT_STATUS_OK; + return WERR_OK; } /**************************************************************************** ****************************************************************************/ -static uint32 clean_up_driver_struct_level_6(NT_PRINTER_DRIVER_INFO_LEVEL_6 *driver, - struct current_user *user) +static WERROR clean_up_driver_struct_level_6(NT_PRINTER_DRIVER_INFO_LEVEL_6 *driver, + struct current_user *user) { fstring architecture; fstring new_name; char *p; int i; - uint32 err; + WERROR err; /* clean up the driver name. * we can get .\driver.dll @@ -1172,15 +1172,15 @@ static uint32 clean_up_driver_struct_level_6(NT_PRINTER_DRIVER_INFO_LEVEL_6 *dri * NT2K: cversion=3 */ if ((driver->version = get_correct_cversion(architecture, - driver->driverpath, user, &err)) == -1) + driver->driverpath, user, &err)) == -1) return err; - return NT_STATUS_OK; + return WERR_OK; } /**************************************************************************** ****************************************************************************/ -uint32 clean_up_driver_struct(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, +WERROR clean_up_driver_struct(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, uint32 level, struct current_user *user) { switch (level) { @@ -1197,7 +1197,7 @@ uint32 clean_up_driver_struct(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, return clean_up_driver_struct_level_6(driver, user); } default: - return ERRinvalidparam; + return WERR_INVALID_PARAM; } } @@ -1240,7 +1240,8 @@ static char* ffmt(unsigned char *c){ /**************************************************************************** ****************************************************************************/ -BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, uint32 level, struct current_user *user, uint32 *perr) +BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, uint32 level, + struct current_user *user, WERROR *perr) { NT_PRINTER_DRIVER_INFO_LEVEL_3 *driver; NT_PRINTER_DRIVER_INFO_LEVEL_3 converted_driver; @@ -1251,16 +1252,12 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, fstring user_name; fstring null_pw; connection_struct *conn; - pstring inbuf; - pstring outbuf; struct passwd *pass; - int ecode; + NTSTATUS ecode; int ver = 0; int i; - *perr = 0; - memset(inbuf, '\0', sizeof(inbuf)); - memset(outbuf, '\0', sizeof(outbuf)); + *perr = WERR_OK; if (level==3) driver=driver_abstract.info_3; @@ -1294,7 +1291,7 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, if (conn == NULL) { DEBUG(0,("move_driver_to_download_area: Unable to connect\n")); - *perr = (uint32)ecode; + *perr = ntstatus_to_werror(ecode); return False; } @@ -1316,7 +1313,7 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, */ DEBUG(5,("Creating first directory\n")); slprintf(new_dir, sizeof(new_dir)-1, "%s/%d", architecture, driver->cversion); - mkdir_internal(conn, inbuf, outbuf, new_dir); + mkdir_internal(conn, new_dir); /* For each driver file, archi\filexxx.yyy, if there is a duplicate file * listed for this driver which has already been moved, skip it (note: @@ -1341,16 +1338,18 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, slprintf(new_name, sizeof(new_name)-1, "%s/%s", architecture, driver->driverpath); slprintf(old_name, sizeof(old_name)-1, "%s/%s", new_dir, driver->driverpath); if (ver != -1 && (ver=file_version_is_newer(conn, new_name, old_name)) > 0) { - if (rename_internals(conn, inbuf, outbuf, new_name, old_name, True) != 0) { + NTSTATUS status; + status = rename_internals(conn, new_name, old_name, True); + if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("move_driver_to_download_area: Unable to rename [%s] to [%s]\n", new_name, old_name)); - *perr = (uint32)SVAL(outbuf,smb_err); - unlink_internals(conn, inbuf, outbuf, 0, new_name); + *perr = ntstatus_to_werror(status); + unlink_internals(conn, 0, new_name); ver = -1; } } else - unlink_internals(conn, inbuf, outbuf, 0, new_name); + unlink_internals(conn, 0, new_name); } if (driver->datafile && strlen(driver->datafile)) { @@ -1358,16 +1357,18 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, slprintf(new_name, sizeof(new_name)-1, "%s/%s", architecture, driver->datafile); slprintf(old_name, sizeof(old_name)-1, "%s/%s", new_dir, driver->datafile); if (ver != -1 && (ver=file_version_is_newer(conn, new_name, old_name)) > 0) { - if (rename_internals(conn, inbuf, outbuf, new_name, old_name, True) != 0) { + NTSTATUS status; + status = rename_internals(conn, new_name, old_name, True); + if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("move_driver_to_download_area: Unable to rename [%s] to [%s]\n", new_name, old_name)); - *perr = (uint32)SVAL(outbuf,smb_err); - unlink_internals(conn, inbuf, outbuf, 0, new_name); + *perr = ntstatus_to_werror(status); + unlink_internals(conn, 0, new_name); ver = -1; } } else - unlink_internals(conn, inbuf, outbuf, 0, new_name); + unlink_internals(conn, 0, new_name); } } @@ -1377,16 +1378,18 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, slprintf(new_name, sizeof(new_name)-1, "%s/%s", architecture, driver->configfile); slprintf(old_name, sizeof(old_name)-1, "%s/%s", new_dir, driver->configfile); if (ver != -1 && (ver=file_version_is_newer(conn, new_name, old_name)) > 0) { - if (rename_internals(conn, inbuf, outbuf, new_name, old_name, True) != 0) { + NTSTATUS status; + status = rename_internals(conn, new_name, old_name, True); + if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("move_driver_to_download_area: Unable to rename [%s] to [%s]\n", new_name, old_name)); - *perr = (uint32)SVAL(outbuf,smb_err); - unlink_internals(conn, inbuf, outbuf, 0, new_name); + *perr = ntstatus_to_werror(status); + unlink_internals(conn, 0, new_name); ver = -1; } } else - unlink_internals(conn, inbuf, outbuf, 0, new_name); + unlink_internals(conn, 0, new_name); } } @@ -1397,16 +1400,18 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, slprintf(new_name, sizeof(new_name)-1, "%s/%s", architecture, driver->helpfile); slprintf(old_name, sizeof(old_name)-1, "%s/%s", new_dir, driver->helpfile); if (ver != -1 && (ver=file_version_is_newer(conn, new_name, old_name)) > 0) { - if (rename_internals(conn, inbuf, outbuf, new_name, old_name, True) != 0) { + NTSTATUS status; + status = rename_internals(conn, new_name, old_name, True); + if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("move_driver_to_download_area: Unable to rename [%s] to [%s]\n", new_name, old_name)); - *perr = (uint32)SVAL(outbuf,smb_err); - unlink_internals(conn, inbuf, outbuf, 0, new_name); + *perr = ntstatus_to_werror(status); + unlink_internals(conn, 0, new_name); ver = -1; } } else - unlink_internals(conn, inbuf, outbuf, 0, new_name); + unlink_internals(conn, 0, new_name); } } @@ -1426,16 +1431,18 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, slprintf(new_name, sizeof(new_name)-1, "%s/%s", architecture, driver->dependentfiles[i]); slprintf(old_name, sizeof(old_name)-1, "%s/%s", new_dir, driver->dependentfiles[i]); if (ver != -1 && (ver=file_version_is_newer(conn, new_name, old_name)) > 0) { - if (rename_internals(conn, inbuf, outbuf, new_name, old_name, True) != 0) { + NTSTATUS status; + status = rename_internals(conn, new_name, old_name, True); + if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("move_driver_to_download_area: Unable to rename [%s] to [%s]\n", new_name, old_name)); - *perr = (uint32)SVAL(outbuf,smb_err); - unlink_internals(conn, inbuf, outbuf, 0, new_name); + *perr = ntstatus_to_werror(status); + unlink_internals(conn, 0, new_name); ver = -1; } } else - unlink_internals(conn, inbuf, outbuf, 0, new_name); + unlink_internals(conn, 0, new_name); } NextDriver: ; } @@ -1583,7 +1590,7 @@ static uint32 add_a_printer_driver_6(NT_PRINTER_DRIVER_INFO_LEVEL_6 *driver) /**************************************************************************** ****************************************************************************/ -static uint32 get_a_printer_driver_3_default(NT_PRINTER_DRIVER_INFO_LEVEL_3 **info_ptr, fstring in_prt, fstring in_arch) +static WERROR get_a_printer_driver_3_default(NT_PRINTER_DRIVER_INFO_LEVEL_3 **info_ptr, fstring in_prt, fstring in_arch) { NT_PRINTER_DRIVER_INFO_LEVEL_3 info; @@ -1598,14 +1605,14 @@ static uint32 get_a_printer_driver_3_default(NT_PRINTER_DRIVER_INFO_LEVEL_3 **in fstrcpy(info.helpfile, ""); if ((info.dependentfiles=(fstring *)malloc(2*sizeof(fstring))) == NULL) - return ERRnomem; + return WERR_NOMEM; memset(info.dependentfiles, '\0', 2*sizeof(fstring)); fstrcpy(info.dependentfiles[0], ""); *info_ptr = memdup(&info, sizeof(info)); - return 0; + return WERR_OK; } /**************************************************************************** @@ -1634,7 +1641,7 @@ static WERROR get_a_printer_driver_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 **info_ptr, #if 0 if (!dbuf.dptr) return get_a_printer_driver_3_default(info_ptr, in_prt, in_arch); #else - if (!dbuf.dptr) return 5; + if (!dbuf.dptr) return WERR_ACCESS_DENIED; #endif len += tdb_unpack(dbuf.dptr, dbuf.dsize, "dffffffff", &driver.cversion, @@ -1890,15 +1897,16 @@ uint32 del_a_printer(char *sharename) } /* FIXME!!! Reorder so this forward declaration is not necessary --jerry */ -static uint32 get_a_printer_2(NT_PRINTER_INFO_LEVEL_2 **, fstring); +static WERROR get_a_printer_2(NT_PRINTER_INFO_LEVEL_2 **, fstring); static void free_nt_printer_info_level_2(NT_PRINTER_INFO_LEVEL_2 **); /**************************************************************************** ****************************************************************************/ -static uint32 update_a_printer_2(NT_PRINTER_INFO_LEVEL_2 *info) +static WERROR update_a_printer_2(NT_PRINTER_INFO_LEVEL_2 *info) { pstring key; char *buf; - int buflen, len, ret; + int buflen, len; + WERROR ret; TDB_DATA kbuf, dbuf; /* @@ -1965,7 +1973,7 @@ static uint32 update_a_printer_2(NT_PRINTER_INFO_LEVEL_2 *info) tb = (char *)Realloc(buf, len); if (!tb) { DEBUG(0,("update_a_printer_2: failed to enlarge buffer!\n")); - ret = -1; + ret = WERR_NOMEM; goto done; } else buf = tb; @@ -1981,10 +1989,10 @@ static uint32 update_a_printer_2(NT_PRINTER_INFO_LEVEL_2 *info) dbuf.dptr = buf; dbuf.dsize = len; - ret = tdb_store(tdb_printers, kbuf, dbuf, TDB_REPLACE); + ret = (tdb_store(tdb_printers, kbuf, dbuf, TDB_REPLACE) == 0? WERR_OK : WERR_NOMEM); done: - if (ret == -1) + if (!W_ERROR_IS_OK(ret)) DEBUG(8, ("error updating printer to tdb on disk\n")); safe_free(buf); @@ -2407,7 +2415,7 @@ static void map_to_os2_driver(fstring drivername) /**************************************************************************** get a default printer info 2 struct ****************************************************************************/ -static uint32 get_a_printer_2_default(NT_PRINTER_INFO_LEVEL_2 **info_ptr, fstring sharename) +static WERROR get_a_printer_2_default(NT_PRINTER_INFO_LEVEL_2 **info_ptr, fstring sharename) { extern pstring global_myname; int snum; @@ -2479,13 +2487,13 @@ static uint32 get_a_printer_2_default(NT_PRINTER_INFO_LEVEL_2 **info_ptr, fstrin goto fail; } - return (0); + return WERR_OK; fail: if (info.devmode) free_nt_devicemode(&info.devmode); - return 2; + return WERR_ACCESS_DENIED; } /**************************************************************************** @@ -2589,7 +2597,7 @@ static uint32 dump_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level) DEBUGADD(106,("default_priority:[%d]\n", info2->default_priority)); DEBUGADD(106,("starttime:[%d]\n", info2->starttime)); DEBUGADD(106,("untiltime:[%d]\n", info2->untiltime)); - DEBUGADD(106,("status:[%d]\n", info2->status)); + DEBUGADD(106,("status:[%s]\n", werror_str(info2->status))); DEBUGADD(106,("cjobs:[%d]\n", info2->cjobs)); DEBUGADD(106,("averageppm:[%d]\n", info2->averageppm)); DEBUGADD(106,("changeid:[%d]\n", info2->changeid)); @@ -2627,10 +2635,10 @@ static uint32 dump_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level) void get_printer_subst_params(int snum, fstring *printername, fstring *sharename, fstring *portname) { NT_PRINTER_INFO_LEVEL *printer = NULL; - + **printername = **sharename = **portname = '\0'; - if (get_a_printer(&printer, 2, lp_servicename(snum))!=0) + if (!W_ERROR_IS_OK(get_a_printer(&printer, 2, lp_servicename(snum)))) return; fstrcpy(*printername, printer->info_2->printername); @@ -2650,9 +2658,9 @@ void get_printer_subst_params(int snum, fstring *printername, fstring *sharename Modify a printer. This is called from SETPRINTERDATA/DELETEPRINTERDATA. ****************************************************************************/ -uint32 mod_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level) +WERROR mod_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level) { - uint32 result; + WERROR result; dump_a_printer(printer, level); @@ -2665,7 +2673,7 @@ uint32 mod_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level) break; } default: - result=1; + result=WERR_UNKNOWN_LEVEL; break; } @@ -2677,9 +2685,9 @@ uint32 mod_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level) We split this out from mod_a_printer as it updates the id's and timestamps. ****************************************************************************/ -uint32 add_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level) +WERROR add_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level) { - uint32 result; + WERROR result; dump_a_printer(printer, level); @@ -2705,7 +2713,7 @@ uint32 add_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level) break; } default: - result=1; + result=WERR_UNKNOWN_LEVEL; break; } @@ -2932,9 +2940,9 @@ static BOOL convert_driver_init(NT_PRINTER_PARAM *param, TALLOC_CTX *ctx, NT_DEV about it and you will realize why. JRR 010720 ****************************************************************************/ -static uint32 save_driver_init_2(NT_PRINTER_INFO_LEVEL *printer, NT_PRINTER_PARAM *param) +static WERROR save_driver_init_2(NT_PRINTER_INFO_LEVEL *printer, NT_PRINTER_PARAM *param) { - uint32 status = ERRsuccess; + WERROR status = WERR_OK; TALLOC_CTX *ctx = NULL; NT_DEVICEMODE *nt_devmode = NULL; NT_DEVICEMODE *tmp_devmode = printer->info_2->devmode; @@ -2944,10 +2952,10 @@ static uint32 save_driver_init_2(NT_PRINTER_INFO_LEVEL *printer, NT_PRINTER_PARA * saved to tdb. */ if ((ctx = talloc_init()) == NULL) - return ERRnomem; + return WERR_NOMEM; if ((nt_devmode = (NT_DEVICEMODE*)malloc(sizeof(NT_DEVICEMODE))) == NULL) { - status = ERRnomem; + status = WERR_NOMEM; goto done; } @@ -2959,7 +2967,7 @@ static uint32 save_driver_init_2(NT_PRINTER_INFO_LEVEL *printer, NT_PRINTER_PARA */ if (!convert_driver_init(param, ctx, nt_devmode)) { DEBUG(10,("save_driver_init_2: error converting DEVMODE\n")); - status = ERRinvalidparam; + status = WERR_INVALID_PARAM; goto done; } @@ -2971,7 +2979,7 @@ static uint32 save_driver_init_2(NT_PRINTER_INFO_LEVEL *printer, NT_PRINTER_PARA printer->info_2->devmode = nt_devmode; if (update_driver_init(*printer, 2)!=0) { DEBUG(10,("save_driver_init_2: error updating DEVMODE\n")); - status = ERRnomem; + status = WERR_NOMEM; goto done; } @@ -2980,10 +2988,10 @@ static uint32 save_driver_init_2(NT_PRINTER_INFO_LEVEL *printer, NT_PRINTER_PARA * printer to match it. This allows initialization of the current printer * as well as the driver. */ - if (mod_a_printer(*printer, 2)!=0) { + status = mod_a_printer(*printer, 2); + if (!W_ERROR_IS_OK(status)) { DEBUG(10,("save_driver_init_2: error setting DEVMODE on printer [%s]\n", printer->info_2->printername)); - status = ERRinvalidparam; } done: @@ -3000,9 +3008,9 @@ static uint32 save_driver_init_2(NT_PRINTER_INFO_LEVEL *printer, NT_PRINTER_PARA Update the driver init info (DEVMODE and specifics) for a printer ****************************************************************************/ -uint32 save_driver_init(NT_PRINTER_INFO_LEVEL *printer, uint32 level, NT_PRINTER_PARAM *param) +WERROR save_driver_init(NT_PRINTER_INFO_LEVEL *printer, uint32 level, NT_PRINTER_PARAM *param) { - NTSTATUS status = ERRsuccess; + WERROR status = WERR_OK; switch (level) { @@ -3012,7 +3020,7 @@ uint32 save_driver_init(NT_PRINTER_INFO_LEVEL *printer, uint32 level, NT_PRINTER break; } default: - status=ERRunknownlevel; + status=WERR_UNKNOWN_LEVEL; break; } @@ -3038,11 +3046,11 @@ WERROR get_a_printer(NT_PRINTER_INFO_LEVEL **pp_printer, uint32 level, fstring s { if ((printer = (NT_PRINTER_INFO_LEVEL *)malloc(sizeof(NT_PRINTER_INFO_LEVEL))) == NULL) { DEBUG(0,("get_a_printer: malloc fail.\n")); - return 1; + return WERR_NOMEM; } ZERO_STRUCTP(printer); result=get_a_printer_2(&printer->info_2, sharename); - if (result == 0) { + if (W_ERROR_IS_OK(result)) { dump_a_printer(*printer, level); *pp_printer = printer; } else { @@ -3051,7 +3059,7 @@ WERROR get_a_printer(NT_PRINTER_INFO_LEVEL **pp_printer, uint32 level, fstring s break; } default: - result=W_ERROR(1); + result=WERR_UNKNOWN_LEVEL; break; } @@ -3146,7 +3154,7 @@ WERROR get_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL *driver, uint32 level, break; } - if (result == 0) + if (W_ERROR_IS_OK(result)) dump_a_printer_driver(*driver, level); return result; } @@ -3284,7 +3292,7 @@ BOOL printer_driver_in_use (char *arch, char *driver) Remove a printer driver from the TDB. This assumes that the the driver was previously looked up. ***************************************************************************/ -NTSTATUS delete_printer_driver (NT_PRINTER_DRIVER_INFO_LEVEL_3 *i) +WERROR delete_printer_driver (NT_PRINTER_DRIVER_INFO_LEVEL_3 *i) { pstring key; fstring arch; @@ -3301,13 +3309,13 @@ NTSTATUS delete_printer_driver (NT_PRINTER_DRIVER_INFO_LEVEL_3 *i) if (tdb_delete(tdb_drivers, kbuf) == -1) { DEBUG (0,("delete_printer_driver: fail to delete %s!\n", key)); - return NT_STATUS_ACCESS_VIOLATION; + return WERR_ACCESS_DENIED; } DEBUG(5,("delete_printer_driver: [%s] driver delete successful.\n", i->name)); - return NT_STATUS_OK; + return WERR_OK; } /**************************************************************************** ****************************************************************************/ @@ -3461,7 +3469,7 @@ WERROR nt_printing_setsec(char *printername, SEC_DESC_BUF *secdesc_ctr) slprintf(key, sizeof(key)-1, "SECDESC/%s", printername); if (tdb_prs_store(tdb_printers, key, &ps)==0) { - status = 0; + status = WERR_OK; } else { DEBUG(1,("Failed to store secdesc for %s\n", printername)); status = WERR_BADFUNC; @@ -3715,7 +3723,8 @@ void map_printer_permissions(SEC_DESC *sd) BOOL print_access_check(struct current_user *user, int snum, int access_type) { SEC_DESC_BUF *secdesc = NULL; - uint32 access_granted, status; + uint32 access_granted; + NTSTATUS status; BOOL result; char *pname; TALLOC_CTX *mem_ctx = NULL; @@ -3797,7 +3806,7 @@ BOOL print_time_access_check(int snum) struct tm *t; uint32 mins; - if (get_a_printer(&printer, 2, lp_servicename(snum))!=0) + if (!W_ERROR_IS_OK(get_a_printer(&printer, 2, lp_servicename(snum)))) return False; if (printer->info_2->starttime == 0 && printer->info_2->untiltime == 0) @@ -3821,21 +3830,20 @@ BOOL print_time_access_check(int snum) Attempt to write a default device. *****************************************************************************/ -uint32 printer_write_default_dev(int snum, const PRINTER_DEFAULT *printer_default) +WERROR printer_write_default_dev(int snum, const PRINTER_DEFAULT *printer_default) { NT_PRINTER_INFO_LEVEL *printer = NULL; - - uint32 result = 0; + WERROR result; /* * Don't bother if no default devicemode was sent. */ if (printer_default->devmode_cont.devmode == NULL) - return 0; + return WERR_OK; - if (get_a_printer(&printer, 2, lp_servicename(snum))!=0) - return ERRnoaccess; + result = get_a_printer(&printer, 2, lp_servicename(snum)); + if (!W_ERROR_IS_OK(result)) return result; /* * Just ignore it if we already have a devmode. @@ -3853,14 +3861,14 @@ uint32 printer_write_default_dev(int snum, const PRINTER_DEFAULT *printer_defaul if ( (printer_default->access_required & PRINTER_ACCESS_ADMINISTER) != PRINTER_ACCESS_ADMINISTER) { DEBUG(5,("printer_write_default_dev: invalid request access to update: %x\n", printer_default->access_required)); - result = ERRnoaccess; + result = WERR_ACCESS_DENIED; goto done; } if (!print_access_check(NULL, snum, PRINTER_ACCESS_ADMINISTER)) { DEBUG(5,("printer_write_default_dev: Access denied for printer %s\n", lp_servicename(snum) )); - result = ERRnoaccess; + result = WERR_ACCESS_DENIED; /*result = NT_STATUS_NO_PROBLEMO;*/ goto done; } @@ -3874,7 +3882,7 @@ uint32 printer_write_default_dev(int snum, const PRINTER_DEFAULT *printer_defaul if (!convert_devicemode(printer->info_2->printername, printer_default->devmode_cont.devmode, &printer->info_2->devmode)) { - result = ERRnomem; + result = WERR_NOMEM; goto done; } @@ -3882,10 +3890,7 @@ uint32 printer_write_default_dev(int snum, const PRINTER_DEFAULT *printer_defaul * Finally write back to the tdb. */ - if (add_a_printer(*printer, 2)!=0) { - result = ERRnoaccess; - goto done; - } + result = add_a_printer(*printer, 2); done: diff --git a/source3/printing/printing.c b/source3/printing/printing.c index 8be46488dd..e0eb2a06d7 100644 --- a/source3/printing/printing.c +++ b/source3/printing/printing.c @@ -656,7 +656,7 @@ BOOL print_job_pause(struct current_user *user, int jobid, WERROR *errcode) if (!is_owner(user, jobid) && !print_access_check(user, snum, JOB_ACCESS_ADMINISTER)) { DEBUG(3, ("pause denied by security descriptor\n")); - *errcode = ERRnoaccess; + *errcode = WERR_ACCESS_DENIED; return False; } @@ -664,7 +664,7 @@ BOOL print_job_pause(struct current_user *user, int jobid, WERROR *errcode) ret = (*(current_printif->job_pause))(snum, pjob); if (ret != 0) { - *errcode = ERRinvalidparam; + *errcode = WERR_INVALID_PARAM; return False; } @@ -700,14 +700,14 @@ BOOL print_job_resume(struct current_user *user, int jobid, WERROR *errcode) if (!is_owner(user, jobid) && !print_access_check(user, snum, JOB_ACCESS_ADMINISTER)) { DEBUG(3, ("resume denied by security descriptor\n")); - *errcode = ERRnoaccess; + *errcode = WERR_ACCESS_DENIED; return False; } ret = (*(current_printif->job_resume))(snum, pjob); if (ret != 0) { - *errcode = ERRinvalidparam; + *errcode = WERR_INVALID_PARAM; return False; } diff --git a/source3/rpc_client/cli_login.c b/source3/rpc_client/cli_login.c index 0eb5bd1af7..88d3aeda83 100644 --- a/source3/rpc_client/cli_login.c +++ b/source3/rpc_client/cli_login.c @@ -103,13 +103,13 @@ NT login - interactive. password equivalents, protected by the session key) is inherently insecure given the current design of the NT Domain system. JRA. ****************************************************************************/ -BOOL cli_nt_login_interactive(struct cli_state *cli, char *domain, char *username, +NTSTATUS cli_nt_login_interactive(struct cli_state *cli, char *domain, char *username, uint32 smb_userid_low, char *password, NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3) { uchar lm_owf_user_pwd[16]; uchar nt_owf_user_pwd[16]; - BOOL ret; + NTSTATUS ret; DEBUG(5,("cli_nt_login_interactive: %d\n", __LINE__)); @@ -156,7 +156,7 @@ NT login - network. password equivalents over the network. JRA. ****************************************************************************/ -uint32 cli_nt_login_network(struct cli_state *cli, +NTSTATUS cli_nt_login_network(struct cli_state *cli, const auth_usersupplied_info *user_info, uint32 smb_userid_low, NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3) diff --git a/source3/rpc_client/cli_lsarpc.c b/source3/rpc_client/cli_lsarpc.c index 8b4a4bcc3d..2f4343c957 100644 --- a/source3/rpc_client/cli_lsarpc.c +++ b/source3/rpc_client/cli_lsarpc.c @@ -80,7 +80,7 @@ BOOL do_lsa_open_policy(struct cli_state *cli, return False; } - if (r_o.status != 0) { + if (!NT_STATUS_IS_OK(r_o.status)) { /* report error code */ DEBUG(0,("LSA_OPENPOLICY: %s\n", get_nt_error_msg(r_o.status))); prs_mem_free(&rbuf); @@ -145,7 +145,7 @@ BOOL do_lsa_query_info_pol(struct cli_state *cli, return False; } - if (r_q.status != 0) { + if (!NT_STATUS_IS_OK(r_q.status)) { /* report error code */ DEBUG(0,("LSA_QUERYINFOPOLICY: %s\n", get_nt_error_msg(r_q.status))); prs_mem_free(&rbuf); @@ -238,7 +238,7 @@ BOOL do_lsa_close(struct cli_state *cli, POLICY_HND *hnd) return False; } - if (r_c.status != 0) { + if (!NT_STATUS_IS_OK(r_c.status)) { /* report error code */ DEBUG(0,("LSA_CLOSE: %s\n", get_nt_error_msg(r_c.status))); prs_mem_free(&rbuf); @@ -285,7 +285,7 @@ BOOL cli_lsa_get_domain_sid(struct cli_state *cli, char *server) /**************************************************************************** do a LSA Open Policy ****************************************************************************/ -uint32 lsa_open_policy(const char *system_name, POLICY_HND *hnd, +NTSTATUS lsa_open_policy(const char *system_name, POLICY_HND *hnd, BOOL sec_qos, uint32 des_access) { prs_struct rbuf; @@ -293,7 +293,7 @@ uint32 lsa_open_policy(const char *system_name, POLICY_HND *hnd, LSA_Q_OPEN_POL q_o; LSA_SEC_QOS qos; struct cli_connection *con = NULL; - uint32 result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; if (!cli_connection_init(system_name, PIPE_LSARPC, &con)) { return NT_STATUS_UNSUCCESSFUL; @@ -327,7 +327,7 @@ uint32 lsa_open_policy(const char *system_name, POLICY_HND *hnd, result = r_o.status; - if (p && r_o.status != 0) { + if (p && !NT_STATUS_IS_OK(r_o.status)) { /* report error code */ DEBUG(0, ("LSA_OPENPOLICY: %s\n", @@ -356,14 +356,14 @@ uint32 lsa_open_policy(const char *system_name, POLICY_HND *hnd, /**************************************************************************** do a LSA Close ****************************************************************************/ -uint32 lsa_close(POLICY_HND *hnd) +NTSTATUS lsa_close(POLICY_HND *hnd) { prs_struct rbuf; prs_struct buf; LSA_Q_CLOSE q_c; - uint32 result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; - if (hnd == NULL) return False; + if (hnd == NULL) return NT_STATUS_INVALID_PARAMETER; /* Create and send a MSRPC command with api LSA_OPENPOLICY */ @@ -387,7 +387,7 @@ uint32 lsa_close(POLICY_HND *hnd) p = rbuf.data_offset != 0; result = r_c.status; - if (p && r_c.status != 0) { + if (p && !NT_STATUS_IS_OK(r_c.status)) { /* Report error code */ @@ -408,18 +408,19 @@ uint32 lsa_close(POLICY_HND *hnd) /**************************************************************************** do a LSA Lookup SIDs ****************************************************************************/ -uint32 lsa_lookup_sids(POLICY_HND *hnd, int num_sids, DOM_SID *sids, +NTSTATUS lsa_lookup_sids(POLICY_HND *hnd, int num_sids, DOM_SID *sids, char ***names, uint32 **types, int *num_names) { prs_struct rbuf; prs_struct buf; LSA_Q_LOOKUP_SIDS q_l; TALLOC_CTX *ctx = talloc_init(); - uint32 result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; ZERO_STRUCT(q_l); - if (hnd == NULL || num_sids == 0 || sids == NULL) return False; + if (hnd == NULL || num_sids == 0 || sids == NULL) + return NT_STATUS_INVALID_PARAMETER; if (num_names != NULL) { *num_names = 0; @@ -459,10 +460,9 @@ uint32 lsa_lookup_sids(POLICY_HND *hnd, int num_sids, DOM_SID *sids, p = rbuf.data_offset != 0; result = r_l.status; - if (p && r_l.status != 0 && - r_l.status != 0x107 && - r_l.status != (0xC0000000 | NT_STATUS_NONE_MAPPED)) { - + if (p && !NT_STATUS_IS_OK(r_l.status) && + NT_STATUS_V(r_l.status) != 0x107 && + NT_STATUS_V(r_l.status) != NT_STATUS_V(NT_STATUS_NONE_MAPPED)) { /* Report error code */ DEBUG(1, ("LSA_LOOKUP_SIDS: %s\n", @@ -564,17 +564,18 @@ uint32 lsa_lookup_sids(POLICY_HND *hnd, int num_sids, DOM_SID *sids, /**************************************************************************** do a LSA Lookup Names ****************************************************************************/ -uint32 lsa_lookup_names(POLICY_HND *hnd, int num_names, char **names, - DOM_SID **sids, uint32 **types, int *num_sids) +NTSTATUS lsa_lookup_names(POLICY_HND *hnd, int num_names, char **names, + DOM_SID **sids, uint32 **types, int *num_sids) { prs_struct rbuf; prs_struct buf; LSA_Q_LOOKUP_NAMES q_l; BOOL valid_response = False; TALLOC_CTX *ctx = talloc_init(); - uint32 result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; - if (hnd == NULL || num_sids == 0 || sids == NULL) return False; + if (hnd == NULL || num_sids == 0 || sids == NULL) + return NT_STATUS_INVALID_PARAMETER; prs_init(&buf, MAX_PDU_FRAG_LEN, ctx, MARSHALL); prs_init(&rbuf, 0, ctx, UNMARSHALL); @@ -603,7 +604,7 @@ uint32 lsa_lookup_names(POLICY_HND *hnd, int num_names, char **names, lsa_io_r_lookup_names("", &r_l, &rbuf, 0); p = rbuf.data_offset != 0; - if (p && r_l.status != 0) { + if (p && !NT_STATUS_IS_OK(r_l.status)) { /* report error code */ DEBUG(1, ("LSA_LOOKUP_NAMES: %s\n", diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c index 2c30e5ba47..b1f4fe0257 100644 --- a/source3/rpc_client/cli_netlogon.c +++ b/source3/rpc_client/cli_netlogon.c @@ -154,7 +154,7 @@ BOOL cli_net_auth2(struct cli_state *cli, uint16 sec_chan, ok = net_io_r_auth_2("", &r_a, &rbuf, 0); - if (ok && r_a.status != 0) + if (ok && !NT_STATUS_IS_OK(r_a.status)) { /* report error code */ DEBUG(0,("cli_net_auth2: Error %s\n", get_nt_error_msg(r_a.status))); @@ -243,7 +243,7 @@ BOOL cli_net_req_chal(struct cli_state *cli, DOM_CHAL *clnt_chal, DOM_CHAL *srv_ ok = net_io_r_req_chal("", &r_c, &rbuf, 0); - if (ok && r_c.status != 0) + if (ok && !NT_STATUS_IS_OK(r_c.status)) { /* report error code */ DEBUG(0,("cli_net_req_chal: Error %s\n", get_nt_error_msg(r_c.status))); @@ -308,7 +308,7 @@ BOOL cli_net_srv_pwset(struct cli_state *cli, uint8 hashed_mach_pwd[16]) ok = net_io_r_srv_pwset("", &r_s, &rbuf, 0); - if (ok && r_s.status != 0) + if (ok && !NT_STATUS_IS_OK(r_s.status)) { /* report error code */ DEBUG(0,("cli_net_srv_pwset: %s\n", get_nt_error_msg(r_s.status))); @@ -338,8 +338,9 @@ password ?).\n", cli->desthost )); returns level 3. ****************************************************************************/ -static uint32 cli_net_sam_logon_internal(struct cli_state *cli, NET_ID_INFO_CTR *ctr, - NET_USER_INFO_3 *user_info3, uint16 validation_level) +static NTSTATUS cli_net_sam_logon_internal(struct cli_state *cli, NET_ID_INFO_CTR *ctr, + NET_USER_INFO_3 *user_info3, + uint16 validation_level) { DOM_CRED new_clnt_cred; DOM_CRED dummy_rtn_creds; @@ -347,7 +348,7 @@ static uint32 cli_net_sam_logon_internal(struct cli_state *cli, NET_ID_INFO_CTR prs_struct buf; NET_Q_SAM_LOGON q_s; NET_R_SAM_LOGON r_s; - uint32 retval = 0; + NTSTATUS retval = NT_STATUS_OK; gen_next_creds( cli, &new_clnt_cred); @@ -398,38 +399,38 @@ static uint32 cli_net_sam_logon_internal(struct cli_state *cli, NET_ID_INFO_CTR * the call. */ - if (retval == NT_STATUS_INVALID_INFO_CLASS) { + if (NT_STATUS_V(retval) == NT_STATUS_V(NT_STATUS_INVALID_INFO_CLASS)) { goto out; } - if (retval != 0) { + if (!NT_STATUS_IS_OK(retval)) { /* report error code */ DEBUG(0,("cli_net_sam_logon_internal: %s\n", get_nt_error_msg(r_s.status))); goto out; - } + } - /* Update the credentials. */ - if (!clnt_deal_with_creds(cli->sess_key, &cli->clnt_cred, &r_s.srv_creds)) { + /* Update the credentials. */ + if (!clnt_deal_with_creds(cli->sess_key, &cli->clnt_cred, &r_s.srv_creds)) { /* * Server replied with bad credential. Fail. */ DEBUG(0,("cli_net_sam_logon_internal: server %s replied with bad credential (bad machine \ password ?).\n", cli->desthost )); retval = NT_STATUS_WRONG_PASSWORD; - } - - if (r_s.switch_value != validation_level) { + } + + if (r_s.switch_value != validation_level) { /* report different switch_value */ DEBUG(0,("cli_net_sam_logon: switch_value of %x expected %x\n", (unsigned int)validation_level, - (unsigned int)r_s.switch_value)); + (unsigned int)r_s.switch_value)); retval = NT_STATUS_INVALID_PARAMETER; - } + } - out: +out: prs_mem_free(&buf); prs_mem_free(&rbuf); - + return retval; } @@ -437,18 +438,18 @@ password ?).\n", cli->desthost )); LSA SAM Logon - interactive or network. ****************************************************************************/ -uint32 cli_net_sam_logon(struct cli_state *cli, NET_ID_INFO_CTR *ctr, +NTSTATUS cli_net_sam_logon(struct cli_state *cli, NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3) { uint16 validation_level=3; - uint32 result; + NTSTATUS result; result = cli_net_sam_logon_internal(cli, ctr, user_info3, validation_level); - if(result == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(result)) { DEBUG(10,("cli_net_sam_logon: Success \n")); - } else if (result == NT_STATUS_INVALID_INFO_CLASS) { + } else if (NT_STATUS_V(result) == NT_STATUS_V(NT_STATUS_INVALID_INFO_CLASS)) { DEBUG(10,("cli_net_sam_logon: STATUS INVALID INFO CLASS \n")); validation_level=2; @@ -518,7 +519,7 @@ BOOL cli_net_sam_logoff(struct cli_state *cli, NET_ID_INFO_CTR *ctr) ok = net_io_r_sam_logoff("", &r_s, &rbuf, 0); - if (ok && r_s.status != 0) + if (ok && !NT_STATUS_IS_OK(r_s.status)) { /* report error code */ DEBUG(0,("cli_net_sam_logoff: %s\n", get_nt_error_msg(r_s.status))); diff --git a/source3/rpc_client/cli_spoolss_notify.c b/source3/rpc_client/cli_spoolss_notify.c index ca2e4f7ec0..ca9f153ec7 100644 --- a/source3/rpc_client/cli_spoolss_notify.c +++ b/source3/rpc_client/cli_spoolss_notify.c @@ -132,7 +132,7 @@ BOOL spoolss_connect_to_client( struct cli_state *cli, char *remote_machine) do a reply open printer ****************************************************************************/ -BOOL cli_spoolss_reply_open_printer(struct cli_state *cli, char *printer, uint32 localprinter, uint32 type, NTSTATUS *status, POLICY_HND *handle) +BOOL cli_spoolss_reply_open_printer(struct cli_state *cli, char *printer, uint32 localprinter, uint32 type, WERROR *status, POLICY_HND *handle) { prs_struct rbuf; prs_struct buf; @@ -188,7 +188,7 @@ BOOL cli_spoolss_reply_open_printer(struct cli_state *cli, char *printer, uint32 ****************************************************************************/ BOOL cli_spoolss_reply_rrpcn(struct cli_state *cli, POLICY_HND *handle, - uint32 change_low, uint32 change_high, NTSTATUS *status) + uint32 change_low, uint32 change_high, WERROR *status) { prs_struct rbuf; prs_struct buf; @@ -242,7 +242,8 @@ BOOL cli_spoolss_reply_rrpcn(struct cli_state *cli, POLICY_HND *handle, do a reply open printer ****************************************************************************/ -BOOL cli_spoolss_reply_close_printer(struct cli_state *cli, POLICY_HND *handle, NTSTATUS *status) +BOOL cli_spoolss_reply_close_printer(struct cli_state *cli, POLICY_HND *handle, + WERROR *status) { prs_struct rbuf; prs_struct buf; diff --git a/source3/rpc_parse/parse_dfs.c b/source3/rpc_parse/parse_dfs.c index 0c7ea54315..70270e2c36 100644 --- a/source3/rpc_parse/parse_dfs.c +++ b/source3/rpc_parse/parse_dfs.c @@ -66,7 +66,7 @@ BOOL dfs_io_r_dfs_exist(char *desc, DFS_R_DFS_EXIST *q_d, prs_struct *ps, int de if(!prs_align(ps)) return False; - if(!prs_uint32("exist flag", ps, 0, &q_d->status)) + if(!prs_ntstatus("exist flag", ps, 0, &q_d->status)) return False; return True; @@ -139,7 +139,7 @@ BOOL dfs_io_r_dfs_remove(char *desc, DFS_R_DFS_REMOVE *r_d, prs_struct *ps, int prs_debug(ps, depth, desc, "dfs_io_r_dfs_remove"); depth++; - if(!prs_uint32("status", ps, depth, &r_d->status)) + if(!prs_ntstatus("status", ps, depth, &r_d->status)) return False; return True; @@ -225,7 +225,7 @@ BOOL dfs_io_r_dfs_add(char *desc, DFS_R_DFS_ADD *r_d, prs_struct *ps, int depth) prs_debug(ps, depth, desc, "dfs_io_r_dfs_add"); depth++; - if(!prs_uint32("status", ps, depth, &r_d->status)) + if(!prs_ntstatus("status", ps, depth, &r_d->status)) return False; return True; @@ -300,7 +300,7 @@ BOOL dfs_io_r_dfs_get_info(char* desc, DFS_R_DFS_GET_INFO* r_i, prs_struct* ps, if(!dfs_io_dfs_info_ctr("", &r_i->ctr, 1, r_i->level, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_i->status)) + if(!prs_ntstatus("status", ps, depth, &r_i->status)) return False; return True; } @@ -501,7 +501,7 @@ BOOL dfs_io_r_dfs_enum(char *desc, DFS_R_DFS_ENUM *q_d, prs_struct *ps, int dept if(!smb_io_enum_hnd("resume_hnd", &q_d->reshnd, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &q_d->status)) + if(!prs_ntstatus("status", ps, depth, &q_d->status)) return False; return True; } diff --git a/source3/rpc_parse/parse_lsa.c b/source3/rpc_parse/parse_lsa.c index 9bfb6746bb..29da2c6913 100644 --- a/source3/rpc_parse/parse_lsa.c +++ b/source3/rpc_parse/parse_lsa.c @@ -324,7 +324,7 @@ BOOL lsa_io_r_open_pol(char *desc, LSA_R_OPEN_POL *r_p, prs_struct *ps, if(!smb_io_pol_hnd("", &r_p->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_p->status)) + if(!prs_ntstatus("status", ps, depth, &r_p->status)) return False; return True; @@ -391,7 +391,7 @@ BOOL lsa_io_r_open_pol2(char *desc, LSA_R_OPEN_POL2 *r_p, prs_struct *ps, if(!smb_io_pol_hnd("", &r_p->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_p->status)) + if(!prs_ntstatus("status", ps, depth, &r_p->status)) return False; return True; @@ -452,7 +452,7 @@ BOOL lsa_io_r_query_sec_obj(char *desc, LSA_R_QUERY_SEC_OBJ *r_u, return False; } - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -538,7 +538,7 @@ void init_r_enum_trust_dom(TALLOC_CTX *ctx, LSA_R_ENUM_TRUST_DOM *r_e, uint32 en r_e->enum_context = enum_context; - if (status == 0) { + if (NT_STATUS_IS_OK(status)) { int len_domain_name = strlen(domain_name) + 1; r_e->num_domains = 1; @@ -619,7 +619,7 @@ BOOL lsa_io_r_enum_trust_dom(char *desc, LSA_R_ENUM_TRUST_DOM *r_e, } } - if(!prs_uint32("status", ps, depth, &r_e->status)) + if(!prs_ntstatus("status", ps, depth, &r_e->status)) return False; return True; @@ -789,7 +789,7 @@ BOOL lsa_io_r_query(char *desc, LSA_R_QUERY_INFO *r_q, prs_struct *ps, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_q->status)) + if(!prs_ntstatus("status", ps, depth, &r_q->status)) return False; return True; @@ -1031,7 +1031,7 @@ BOOL lsa_io_r_lookup_sids(char *desc, LSA_R_LOOKUP_SIDS *r_s, if(!prs_uint32("mapped_count", ps, depth, &r_s->mapped_count)) return False; - if(!prs_uint32("status ", ps, depth, &r_s->status)) + if(!prs_ntstatus("status ", ps, depth, &r_s->status)) return False; return True; @@ -1192,7 +1192,7 @@ BOOL lsa_io_r_lookup_names(char *desc, LSA_R_LOOKUP_NAMES *r_r, if(!prs_uint32("mapped_count", ps, depth, &r_r->mapped_count)) return False; - if(!prs_uint32("status ", ps, depth, &r_r->status)) + if(!prs_ntstatus("status ", ps, depth, &r_r->status)) return False; return True; @@ -1237,7 +1237,7 @@ BOOL lsa_io_r_close(char *desc, LSA_R_CLOSE *r_c, prs_struct *ps, int depth) if(!smb_io_pol_hnd("", &r_c->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_c->status)) + if(!prs_ntstatus("status", ps, depth, &r_c->status)) return False; return True; @@ -1276,7 +1276,7 @@ BOOL lsa_io_r_open_secret(char *desc, LSA_R_OPEN_SECRET *r_c, prs_struct *ps, in return False; if(!prs_uint32("dummy4", ps, depth, &r_c->dummy4)) return False; - if(!prs_uint32("status", ps, depth, &r_c->status)) + if(!prs_ntstatus("status", ps, depth, &r_c->status)) return False; return True; @@ -1391,7 +1391,7 @@ BOOL lsa_io_r_enum_privs(char *desc, LSA_R_ENUM_PRIVS *r_q, prs_struct *ps, int if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_q->status)) + if(!prs_ntstatus("status", ps, depth, &r_q->status)) return False; return True; @@ -1461,7 +1461,7 @@ BOOL lsa_io_r_priv_get_dispname(char *desc, LSA_R_PRIV_GET_DISPNAME *r_q, prs_st if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_q->status)) + if(!prs_ntstatus("status", ps, depth, &r_q->status)) return False; return True; @@ -1532,7 +1532,7 @@ BOOL lsa_io_r_enum_accounts(char *desc, LSA_R_ENUM_ACCOUNTS *r_q, prs_struct *ps if (!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_q->status)) + if(!prs_ntstatus("status", ps, depth, &r_q->status)) return False; return True; @@ -1603,7 +1603,7 @@ BOOL lsa_io_r_unk_get_connuser(char *desc, LSA_R_UNK_GET_CONNUSER *r_c, prs_stru if (!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_c->status)) + if(!prs_ntstatus("status", ps, depth, &r_c->status)) return False; return True; @@ -1648,7 +1648,7 @@ BOOL lsa_io_r_open_account(char *desc, LSA_R_OPENACCOUNT *r_c, prs_struct *ps, if(!smb_io_pol_hnd("pol", &r_c->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_c->status)) + if(!prs_ntstatus("status", ps, depth, &r_c->status)) return False; return True; @@ -1776,7 +1776,7 @@ BOOL lsa_io_r_enum_privsaccount(char *desc, LSA_R_ENUMPRIVSACCOUNT *r_c, prs_str return False; } - if(!prs_uint32("status", ps, depth, &r_c->status)) + if(!prs_ntstatus("status", ps, depth, &r_c->status)) return False; return True; @@ -1817,7 +1817,7 @@ BOOL lsa_io_r_getsystemaccount(char *desc, LSA_R_GETSYSTEMACCOUNT *r_c, prs_str if(!prs_uint32("access", ps, depth, &r_c->access)) return False; - if(!prs_uint32("status", ps, depth, &r_c->status)) + if(!prs_ntstatus("status", ps, depth, &r_c->status)) return False; return True; diff --git a/source3/rpc_parse/parse_net.c b/source3/rpc_parse/parse_net.c index 7f777c9434..bb8b2608b3 100644 --- a/source3/rpc_parse/parse_net.c +++ b/source3/rpc_parse/parse_net.c @@ -249,18 +249,18 @@ void init_net_r_logon_ctrl2(NET_R_LOGON_CTRL2 *r_l, uint32 query_level, case 1: r_l->ptr = 1; /* undocumented pointer */ init_netinfo_1(&r_l->logon.info1, flags, pdc_status); - r_l->status = 0; + r_l->status = NT_STATUS_OK; break; case 2: r_l->ptr = 1; /* undocumented pointer */ init_netinfo_2(&r_l->logon.info2, flags, pdc_status, tc_status, trusted_domain_name); - r_l->status = 0; + r_l->status = NT_STATUS_OK; break; case 3: r_l->ptr = 1; /* undocumented pointer */ init_netinfo_3(&(r_l->logon.info3), flags, logon_attempts); - r_l->status = 0; + r_l->status = NT_STATUS_OK; break; default: DEBUG(2,("init_r_logon_ctrl2: unsupported switch value %d\n", @@ -311,7 +311,7 @@ BOOL net_io_r_logon_ctrl2(char *desc, NET_R_LOGON_CTRL2 *r_l, prs_struct *ps, in } } - if(!prs_uint32("status ", ps, depth, &r_l->status)) + if(!prs_ntstatus("status ", ps, depth, &r_l->status)) return False; return True; @@ -377,7 +377,7 @@ void init_net_r_logon_ctrl(NET_R_LOGON_CTRL *r_l, uint32 query_level, case 1: r_l->ptr = 1; /* undocumented pointer */ init_netinfo_1(&r_l->logon.info1, flags, pdc_status); - r_l->status = 0; + r_l->status = NT_STATUS_OK; break; default: DEBUG(2,("init_r_logon_ctrl: unsupported switch value %d\n", @@ -418,7 +418,7 @@ BOOL net_io_r_logon_ctrl(char *desc, NET_R_LOGON_CTRL *r_l, prs_struct *ps, } } - if(!prs_uint32("status ", ps, depth, &r_l->status)) + if(!prs_ntstatus("status ", ps, depth, &r_l->status)) return False; return True; @@ -451,7 +451,7 @@ void init_r_trust_dom(NET_R_TRUST_DOM_LIST *r_t, r_t->uni_trust_dom_name[i].undoc = 0x1; } - r_t->status = 0; + r_t->status = NT_STATUS_OK; } /******************************************************************* @@ -499,7 +499,7 @@ BOOL net_io_r_trust_dom(char *desc, NET_R_TRUST_DOM_LIST *r_t, prs_struct *ps, i return False; } - if(!prs_uint32("status", ps, depth, &r_t->status)) + if(!prs_ntstatus("status", ps, depth, &r_t->status)) return False; #endif return True; @@ -602,7 +602,7 @@ BOOL net_io_r_req_chal(char *desc, NET_R_REQ_CHAL *r_c, prs_struct *ps, int dept if(!smb_io_chal("", &r_c->srv_chal, ps, depth)) /* server challenge */ return False; - if(!prs_uint32("status", ps, depth, &r_c->status)) + if(!prs_ntstatus("status", ps, depth, &r_c->status)) return False; return True; @@ -658,7 +658,7 @@ BOOL net_io_r_auth(char *desc, NET_R_AUTH *r_a, prs_struct *ps, int depth) if(!smb_io_chal("", &r_a->srv_chal, ps, depth)) /* server challenge */ return False; - if(!prs_uint32("status", ps, depth, &r_a->status)) + if(!prs_ntstatus("status", ps, depth, &r_a->status)) return False; return True; @@ -734,7 +734,7 @@ BOOL net_io_r_auth_2(char *desc, NET_R_AUTH_2 *r_a, prs_struct *ps, int depth) if(!net_io_neg_flags("", &r_a->srv_flgs, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_a->status)) + if(!prs_ntstatus("status", ps, depth, &r_a->status)) return False; return True; @@ -796,7 +796,7 @@ BOOL net_io_r_srv_pwset(char *desc, NET_R_SRV_PWSET *r_s, prs_struct *ps, int de if(!smb_io_cred("", &r_s->srv_cred, ps, depth)) /* server challenge */ return False; - if(!prs_uint32("status", ps, depth, &r_s->status)) + if(!prs_ntstatus("status", ps, depth, &r_s->status)) return False; return True; @@ -1534,7 +1534,7 @@ BOOL net_io_r_sam_logon(char *desc, NET_R_SAM_LOGON *r_l, prs_struct *ps, int de if(!prs_uint32("auth_resp ", ps, depth, &r_l->auth_resp)) /* 1 - Authoritative response; 0 - Non-Auth? */ return False; - if(!prs_uint32("status ", ps, depth, &r_l->status)) + if(!prs_ntstatus("status ", ps, depth, &r_l->status)) return False; if(!prs_align(ps)) @@ -1584,7 +1584,7 @@ BOOL net_io_r_sam_logoff(char *desc, NET_R_SAM_LOGOFF *r_l, prs_struct *ps, int if(!smb_io_cred("", &r_l->srv_creds, ps, depth)) /* server credentials. server time stamp appears to be ignored. */ return False; - if(!prs_uint32("status ", ps, depth, &r_l->status)) + if(!prs_ntstatus("status ", ps, depth, &r_l->status)) return False; return True; diff --git a/source3/rpc_parse/parse_prs.c b/source3/rpc_parse/parse_prs.c index 6bab18ba9d..11fa46069a 100644 --- a/source3/rpc_parse/parse_prs.c +++ b/source3/rpc_parse/parse_prs.c @@ -551,6 +551,67 @@ BOOL prs_uint32(char *name, prs_struct *ps, int depth, uint32 *data32) return True; } +/******************************************************************* + Stream a NTSTATUS + ********************************************************************/ + +BOOL prs_ntstatus(char *name, prs_struct *ps, int depth, NTSTATUS *status) +{ + char *q = prs_mem_get(ps, sizeof(uint32)); + if (q == NULL) + return False; + + if (UNMARSHALLING(ps)) { + if (ps->bigendian_data) + *status = NT_STATUS(RIVAL(q,0)); + else + *status = NT_STATUS(IVAL(q,0)); + } else { + if (ps->bigendian_data) + RSIVAL(q,0,NT_STATUS_V(*status)); + else + SIVAL(q,0,NT_STATUS_V(*status)); + } + + DEBUG(5,("%s%04x %s: %s\n", tab_depth(depth), ps->data_offset, name, + get_nt_error_msg(*status))); + + ps->data_offset += sizeof(uint32); + + return True; +} + +/******************************************************************* + Stream a WERROR + ********************************************************************/ + +BOOL prs_werror(char *name, prs_struct *ps, int depth, WERROR *status) +{ + char *q = prs_mem_get(ps, sizeof(uint32)); + if (q == NULL) + return False; + + if (UNMARSHALLING(ps)) { + if (ps->bigendian_data) + *status = W_ERROR(RIVAL(q,0)); + else + *status = W_ERROR(IVAL(q,0)); + } else { + if (ps->bigendian_data) + RSIVAL(q,0,W_ERROR_V(*status)); + else + SIVAL(q,0,W_ERROR_V(*status)); + } + + DEBUG(5,("%s%04x %s: %s\n", tab_depth(depth), ps->data_offset, name, + werror_str(*status))); + + ps->data_offset += sizeof(uint32); + + return True; +} + + /****************************************************************** Stream an array of uint8s. Length is number of uint8s. ********************************************************************/ diff --git a/source3/rpc_parse/parse_reg.c b/source3/rpc_parse/parse_reg.c index 3a6f7ba819..e7c1b8ecfe 100644 --- a/source3/rpc_parse/parse_reg.c +++ b/source3/rpc_parse/parse_reg.c @@ -91,7 +91,7 @@ BOOL reg_io_r_open_hkcr(char *desc, REG_R_OPEN_HKCR *r_r, prs_struct *ps, int d if(!smb_io_pol_hnd("", &r_r->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_r->status)) + if(!prs_ntstatus("status", ps, depth, &r_r->status)) return False; return True; @@ -160,7 +160,7 @@ BOOL reg_io_r_open_hklm(char *desc, REG_R_OPEN_HKLM * r_r, prs_struct *ps, if (!smb_io_pol_hnd("", &(r_r->pol), ps, depth)) return False; - if (!prs_uint32("status", ps, depth, &(r_r->status))) + if (!prs_ntstatus("status", ps, depth, &(r_r->status))) return False; return True; @@ -212,7 +212,7 @@ BOOL reg_io_r_flush_key(char *desc, REG_R_FLUSH_KEY *r_r, prs_struct *ps, int d if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_r->status)) + if(!prs_ntstatus("status", ps, depth, &r_r->status)) return False; return True; @@ -365,7 +365,7 @@ BOOL reg_io_r_create_key(char *desc, REG_R_CREATE_KEY *r_r, prs_struct *ps, int if(!prs_uint32("unknown", ps, depth, &r_r->unknown)) return False; - if(!prs_uint32("status", ps, depth, &r_r->status)) + if(!prs_ntstatus("status", ps, depth, &r_r->status)) return False; return True; @@ -432,7 +432,7 @@ BOOL reg_io_r_delete_val(char *desc, REG_R_DELETE_VALUE *r_r, prs_struct *ps, i if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_r->status)) + if(!prs_ntstatus("status", ps, depth, &r_r->status)) return False; return True; @@ -497,7 +497,7 @@ BOOL reg_io_r_delete_key(char *desc, REG_R_DELETE_KEY *r_r, prs_struct *ps, int if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_r->status)) + if(!prs_ntstatus("status", ps, depth, &r_r->status)) return False; return True; @@ -586,7 +586,7 @@ BOOL reg_io_r_query_key(char *desc, REG_R_QUERY_KEY *r_r, prs_struct *ps, int d if(!smb_io_time("mod_time ", &r_r->mod_time, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_r->status)) + if(!prs_ntstatus("status", ps, depth, &r_r->status)) return False; return True; @@ -639,7 +639,7 @@ BOOL reg_io_r_unk_1a(char *desc, REG_R_UNK_1A *r_r, prs_struct *ps, int depth) if(!prs_uint32("unknown", ps, depth, &r_r->unknown)) return False; - if(!prs_uint32("status" , ps, depth, &r_r->status)) + if(!prs_ntstatus("status" , ps, depth, &r_r->status)) return False; return True; @@ -705,7 +705,7 @@ BOOL reg_io_r_open_hku(char *desc, REG_R_OPEN_HKU *r_r, prs_struct *ps, int dep if(!smb_io_pol_hnd("", &r_r->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_r->status)) + if(!prs_ntstatus("status", ps, depth, &r_r->status)) return False; return True; @@ -765,7 +765,7 @@ BOOL reg_io_r_close(char *desc, REG_R_CLOSE *r_u, prs_struct *ps, int depth) if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -830,7 +830,7 @@ BOOL reg_io_r_set_key_sec(char *desc, REG_R_SET_KEY_SEC *r_q, prs_struct *ps, in if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_q->status)) + if(!prs_ntstatus("status", ps, depth, &r_q->status)) return False; return True; @@ -928,7 +928,7 @@ BOOL reg_io_r_get_key_sec(char *desc, REG_R_GET_KEY_SEC *r_q, prs_struct *ps, i return False; } - if(!prs_uint32("status", ps, depth, &r_q->status)) + if(!prs_ntstatus("status", ps, depth, &r_q->status)) return False; return True; @@ -1103,7 +1103,7 @@ BOOL reg_io_r_info(char *desc, REG_R_INFO *r_r, prs_struct *ps, int depth) return False; } - if(!prs_uint32("status", ps, depth, &r_r->status)) + if(!prs_ntstatus("status", ps, depth, &r_r->status)) return False; return True; @@ -1247,7 +1247,7 @@ BOOL reg_io_r_enum_val(char *desc, REG_R_ENUM_VALUE *r_q, prs_struct *ps, int d return False; } - if(!prs_uint32("status", ps, depth, &r_q->status)) + if(!prs_ntstatus("status", ps, depth, &r_q->status)) return False; return True; @@ -1324,7 +1324,7 @@ BOOL reg_io_r_create_val(char *desc, REG_R_CREATE_VALUE *r_q, prs_struct *ps, i if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_q->status)) + if(!prs_ntstatus("status", ps, depth, &r_q->status)) return False; return True; @@ -1457,7 +1457,7 @@ BOOL reg_io_r_enum_key(char *desc, REG_R_ENUM_KEY *r_q, prs_struct *ps, int dep return False; } - if(!prs_uint32("status", ps, depth, &r_q->status)) + if(!prs_ntstatus("status", ps, depth, &r_q->status)) return False; return True; @@ -1543,7 +1543,7 @@ BOOL reg_io_r_open_entry(char *desc, REG_R_OPEN_ENTRY *r_r, prs_struct *ps, int if(!smb_io_pol_hnd("", &r_r->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_r->status)) + if(!prs_ntstatus("status", ps, depth, &r_r->status)) return False; return True; @@ -1622,7 +1622,7 @@ BOOL reg_io_r_shutdown(char *desc, REG_R_SHUTDOWN * r_s, prs_struct *ps, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &(r_s->status))) + if(!prs_ntstatus("status", ps, depth, &(r_s->status))) return False; return True; @@ -1677,7 +1677,7 @@ BOOL reg_io_r_abort_shutdown(char *desc, REG_R_ABORT_SHUTDOWN * r_s, if (!prs_align(ps)) return False; - if (!prs_uint32("status", ps, depth, &(r_s->status))) + if (!prs_ntstatus("status", ps, depth, &(r_s->status))) return False; return True; diff --git a/source3/rpc_parse/parse_rpc.c b/source3/rpc_parse/parse_rpc.c index a60bad0aa2..e457b48bf9 100644 --- a/source3/rpc_parse/parse_rpc.c +++ b/source3/rpc_parse/parse_rpc.c @@ -520,7 +520,7 @@ BOOL smb_io_rpc_hdr_fault(char *desc, RPC_HDR_FAULT *rpc, prs_struct *ps, int de prs_debug(ps, depth, desc, "smb_io_rpc_hdr_fault"); depth++; - if(!prs_uint32("status ", ps, depth, &rpc->status)) + if(!prs_ntstatus("status ", ps, depth, &rpc->status)) return False; if(!prs_uint32("reserved", ps, depth, &rpc->reserved)) return False; diff --git a/source3/rpc_parse/parse_samr.c b/source3/rpc_parse/parse_samr.c index f39104fed0..82902e5149 100644 --- a/source3/rpc_parse/parse_samr.c +++ b/source3/rpc_parse/parse_samr.c @@ -78,7 +78,7 @@ BOOL samr_io_r_close_hnd(char *desc, SAMR_R_CLOSE_HND * r_u, if(!smb_io_pol_hnd("pol", &r_u->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -139,7 +139,7 @@ void init_samr_r_lookup_domain(SAMR_R_LOOKUP_DOMAIN * r_u, r_u->status = status; r_u->ptr_sid = 0; - if (status == 0x0) { + if (NT_STATUS_IS_OK(status)) { r_u->ptr_sid = 1; init_dom_sid2(&r_u->dom_sid, dom_sid); } @@ -171,7 +171,7 @@ BOOL samr_io_r_lookup_domain(char *desc, SAMR_R_LOOKUP_DOMAIN * r_u, return False; } - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -233,7 +233,7 @@ BOOL samr_io_r_unknown_2d(char *desc, SAMR_R_UNKNOWN_2D * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -301,7 +301,7 @@ BOOL samr_io_r_open_domain(char *desc, SAMR_R_OPEN_DOMAIN * r_u, if(!smb_io_pol_hnd("domain_pol", &r_u->domain_pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -375,7 +375,7 @@ BOOL samr_io_r_get_usrdom_pwinfo(char *desc, SAMR_R_GET_USRDOM_PWINFO * r_u, return False; if(!prs_uint32("unknown_2", ps, depth, &r_u->unknown_2)) return False; - if(!prs_uint32("status ", ps, depth, &r_u->status)) + if(!prs_ntstatus("status ", ps, depth, &r_u->status)) return False; return True; @@ -770,7 +770,7 @@ void init_samr_r_query_dom_info(SAMR_R_QUERY_DOMAIN_INFO * r_u, r_u->switch_value = 0; r_u->status = status; /* return status */ - if (status == 0) { + if (NT_STATUS_IS_OK(status)) { r_u->switch_value = switch_value; r_u->ptr_0 = 1; r_u->ctr = ctr; @@ -842,7 +842,7 @@ BOOL samr_io_r_query_dom_info(char *desc, SAMR_R_QUERY_DOMAIN_INFO * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -871,7 +871,7 @@ BOOL samr_io_r_query_sec_obj(char *desc, SAMR_R_QUERY_SEC_OBJ * r_u, return False; } - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -1361,7 +1361,7 @@ BOOL samr_io_r_enum_dom_users(char *desc, SAMR_R_ENUM_DOM_USERS * r_u, if(!prs_uint32("num_entries4", ps, depth, &r_u->num_entries4)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2006,7 +2006,7 @@ BOOL samr_io_r_query_dispinfo(char *desc, SAMR_R_QUERY_DISPINFO * r_u, if (r_u->ptr_entries==0) { if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2050,7 +2050,7 @@ BOOL samr_io_r_query_dispinfo(char *desc, SAMR_R_QUERY_DISPINFO * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2117,7 +2117,7 @@ BOOL samr_io_r_open_group(char *desc, SAMR_R_OPEN_GROUP * r_u, if(!smb_io_pol_hnd("pol", &r_u->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2338,7 +2338,7 @@ BOOL samr_io_r_create_dom_group(char *desc, SAMR_R_CREATE_DOM_GROUP * r_u, if(!prs_uint32("rid ", ps, depth, &r_u->rid)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2394,7 +2394,7 @@ BOOL samr_io_r_delete_dom_group(char *desc, SAMR_R_DELETE_DOM_GROUP * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2466,7 +2466,7 @@ BOOL samr_io_r_del_groupmem(char *desc, SAMR_R_DEL_GROUPMEM * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2541,7 +2541,7 @@ BOOL samr_io_r_add_groupmem(char *desc, SAMR_R_ADD_GROUPMEM * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2612,7 +2612,7 @@ BOOL samr_io_r_set_groupinfo(char *desc, SAMR_R_SET_GROUPINFO * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2666,7 +2666,7 @@ void init_samr_r_query_groupinfo(SAMR_R_QUERY_GROUPINFO * r_u, { DEBUG(5, ("init_samr_r_query_groupinfo\n")); - r_u->ptr = (status == 0x0 && ctr != NULL) ? 1 : 0; + r_u->ptr = (NT_STATUS_IS_OK(status) && ctr != NULL) ? 1 : 0; r_u->ctr = ctr; r_u->status = status; } @@ -2697,7 +2697,7 @@ BOOL samr_io_r_query_groupinfo(char *desc, SAMR_R_QUERY_GROUPINFO * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2746,7 +2746,7 @@ void init_samr_r_query_groupmem(SAMR_R_QUERY_GROUPMEM * r_u, { DEBUG(5, ("init_samr_r_query_groupmem\n")); - if (status == 0x0) { + if (NT_STATUS_IS_OK(status)) { r_u->ptr = 1; r_u->num_entries = num_entries; @@ -2830,7 +2830,7 @@ BOOL samr_io_r_query_groupmem(char *desc, SAMR_R_QUERY_GROUPMEM * r_u, } } - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -2880,7 +2880,7 @@ void init_samr_r_query_usergroups(SAMR_R_QUERY_USERGROUPS * r_u, { DEBUG(5, ("init_samr_r_query_usergroups\n")); - if (status == 0) { + if (NT_STATUS_IS_OK(status)) { r_u->ptr_0 = 1; r_u->num_entries = num_gids; r_u->ptr_1 = (num_gids != 0) ? 1 : 0; @@ -2968,7 +2968,7 @@ BOOL samr_io_r_query_usergroups(char *desc, SAMR_R_QUERY_USERGROUPS * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -3107,7 +3107,7 @@ BOOL samr_io_r_enum_domains(char *desc, SAMR_R_ENUM_DOMAINS * r_u, return False; if(!prs_uint32("num_entries4", ps, depth, &r_u->num_entries4)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -3241,7 +3241,7 @@ BOOL samr_io_r_enum_dom_groups(char *desc, SAMR_R_ENUM_DOM_GROUPS * r_u, return False; if(!prs_uint32("num_entries4", ps, depth, &r_u->num_entries4)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -3376,7 +3376,7 @@ BOOL samr_io_r_enum_dom_aliases(char *desc, SAMR_R_ENUM_DOM_ALIASES * r_u, return False; if(!prs_uint32("num_entries4", ps, depth, &r_u->num_entries4)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -3499,7 +3499,7 @@ void init_samr_r_query_aliasinfo(SAMR_R_QUERY_ALIASINFO * r_u, { DEBUG(5, ("init_samr_r_query_aliasinfo\n")); - r_u->ptr = (status == 0x0 && ctr != NULL) ? 1 : 0; + r_u->ptr = (NT_STATUS_IS_OK(status) && ctr != NULL) ? 1 : 0; r_u->ctr = *ctr; r_u->status = status; } @@ -3530,7 +3530,7 @@ BOOL samr_io_r_query_aliasinfo(char *desc, SAMR_R_QUERY_ALIASINFO * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -3588,7 +3588,7 @@ BOOL samr_io_r_set_aliasinfo(char *desc, SAMR_R_SET_ALIASINFO * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -3685,7 +3685,7 @@ void init_samr_r_query_useraliases(SAMR_R_QUERY_USERALIASES * r_u, { DEBUG(5, ("init_samr_r_query_useraliases\n")); - if (status == 0x0) { + if (NT_STATUS_IS_OK(status)) { r_u->num_entries = num_rids; r_u->ptr = 1; r_u->num_entries2 = num_rids; @@ -3767,7 +3767,7 @@ BOOL samr_io_r_query_useraliases(char *desc, SAMR_R_QUERY_USERALIASES * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -3833,7 +3833,7 @@ BOOL samr_io_r_open_alias(char *desc, SAMR_R_OPEN_ALIAS * r_u, if(!smb_io_pol_hnd("pol", &r_u->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4027,7 +4027,7 @@ BOOL samr_io_r_lookup_rids(char *desc, SAMR_R_LOOKUP_RIDS * r_u, } } - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4084,7 +4084,7 @@ BOOL samr_io_r_delete_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS * r_u, if(!smb_io_pol_hnd("pol", &r_u->pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4164,7 +4164,7 @@ BOOL samr_io_r_create_dom_alias(char *desc, SAMR_R_CREATE_DOM_ALIAS * r_u, if(!prs_uint32("rid", ps, depth, &r_u->rid)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4223,7 +4223,7 @@ BOOL samr_io_r_add_aliasmem(char *desc, SAMR_R_ADD_ALIASMEM * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4282,7 +4282,7 @@ BOOL samr_io_r_del_aliasmem(char *desc, SAMR_R_DEL_ALIASMEM * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4350,7 +4350,7 @@ BOOL samr_io_r_delete_dom_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4400,7 +4400,7 @@ void init_samr_r_query_aliasmem(SAMR_R_QUERY_ALIASMEM * r_u, { DEBUG(5, ("init_samr_r_query_aliasmem\n")); - if (status == 0) { + if (NT_STATUS_IS_OK(status)) { r_u->num_sids = num_sids; r_u->ptr = (num_sids != 0) ? 1 : 0; r_u->num_sids1 = num_sids; @@ -4462,7 +4462,7 @@ BOOL samr_io_r_query_aliasmem(char *desc, SAMR_R_QUERY_ALIASMEM * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4568,7 +4568,7 @@ NTSTATUS init_samr_r_lookup_names(TALLOC_CTX *ctx, SAMR_R_LOOKUP_NAMES * r_u, { DEBUG(5, ("init_samr_r_lookup_names\n")); - if ((status == 0) && (num_rids != 0)) { + if (NT_STATUS_IS_OK(status) && (num_rids != 0)) { uint32 i; r_u->num_types1 = num_rids; @@ -4691,7 +4691,7 @@ BOOL samr_io_r_lookup_names(char *desc, SAMR_R_LOOKUP_NAMES * r_u, } } - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4747,7 +4747,7 @@ BOOL samr_io_r_delete_dom_user(char *desc, SAMR_R_DELETE_DOM_USER * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4814,7 +4814,7 @@ BOOL samr_io_r_open_user(char *desc, SAMR_R_OPEN_USER * r_u, if(!smb_io_pol_hnd("user_pol", &r_u->user_pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -4901,7 +4901,7 @@ BOOL samr_io_r_create_user(char *desc, SAMR_R_CREATE_USER * r_u, return False; if(!prs_uint32("user_rid ", ps, depth, &r_u->user_rid)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -6237,7 +6237,7 @@ void init_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO * r_u, r_u->ptr = 0; r_u->ctr = NULL; - if (status == 0) { + if (NT_STATUS_IS_OK(status)) { r_u->ptr = 1; r_u->ctr = ctr; } @@ -6271,7 +6271,7 @@ BOOL samr_io_r_query_userinfo(char *desc, SAMR_R_QUERY_USERINFO * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -6345,7 +6345,7 @@ BOOL samr_io_r_set_userinfo(char *desc, SAMR_R_SET_USERINFO * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -6433,7 +6433,7 @@ BOOL samr_io_r_set_userinfo2(char *desc, SAMR_R_SET_USERINFO2 * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -6506,7 +6506,7 @@ BOOL samr_io_r_connect(char *desc, SAMR_R_CONNECT * r_u, if(!smb_io_pol_hnd("connect_pol", &r_u->connect_pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -6573,7 +6573,7 @@ BOOL samr_io_r_connect_anon(char *desc, SAMR_R_CONNECT_ANON * r_u, if(!smb_io_pol_hnd("connect_pol", &r_u->connect_pol, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -6652,7 +6652,7 @@ BOOL samr_io_r_get_dom_pwinfo(char *desc, SAMR_R_GET_DOM_PWINFO * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; @@ -6848,7 +6848,7 @@ BOOL samr_io_r_chgpasswd_user(char *desc, SAMR_R_CHGPASSWD_USER * r_u, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_ntstatus("status", ps, depth, &r_u->status)) return False; return True; diff --git a/source3/rpc_parse/parse_spoolss.c b/source3/rpc_parse/parse_spoolss.c index dd2c4a541a..027f8ceaa3 100644 --- a/source3/rpc_parse/parse_spoolss.c +++ b/source3/rpc_parse/parse_spoolss.c @@ -952,7 +952,7 @@ BOOL spoolss_io_r_open_printer_ex(char *desc, SPOOL_R_OPEN_PRINTER_EX *r_u, prs_ if (!smb_io_pol_hnd("printer handle",&(r_u->handle),ps,depth)) return False; - if (!prs_uint32("status code", ps, depth, &(r_u->status))) + if (!prs_werror("status code", ps, depth, &(r_u->status))) return False; return True; @@ -1040,7 +1040,7 @@ BOOL spoolss_io_r_deleteprinterdata(char *desc, SPOOL_R_DELETEPRINTERDATA *r_u, { prs_debug(ps, depth, desc, "spoolss_io_r_deleteprinterdata"); depth++; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1074,7 +1074,7 @@ BOOL spoolss_io_r_getprinterdata(char *desc, SPOOL_R_GETPRINTERDATA *r_u, prs_st if (!prs_uint32("needed", ps, depth, &r_u->needed)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1126,7 +1126,7 @@ BOOL spoolss_io_r_abortprinter(char *desc, SPOOL_R_ABORTPRINTER *r_u, prs_struct { prs_debug(ps, depth, desc, "spoolss_io_r_abortprinter"); depth++; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1170,7 +1170,7 @@ BOOL spoolss_io_r_deleteprinter(char *desc, SPOOL_R_DELETEPRINTER *r_u, prs_stru if (!smb_io_pol_hnd("printer handle",&r_u->handle,ps,depth)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1220,7 +1220,7 @@ BOOL spoolss_io_r_deleteprinterdriver(char *desc, SPOOL_R_DELETEPRINTERDRIVER *r if (!prs_align(ps)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1266,7 +1266,7 @@ BOOL spoolss_io_r_closeprinter(char *desc, SPOOL_R_CLOSEPRINTER *r_u, prs_struct if (!smb_io_pol_hnd("printer handle",&r_u->handle,ps,depth)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1307,7 +1307,7 @@ BOOL spoolss_io_r_startdocprinter(char *desc, SPOOL_R_STARTDOCPRINTER *r_u, prs_ depth++; if(!prs_uint32("jobid", ps, depth, &r_u->jobid)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1343,7 +1343,7 @@ BOOL spoolss_io_r_enddocprinter(char *desc, SPOOL_R_ENDDOCPRINTER *r_u, prs_stru { prs_debug(ps, depth, desc, "spoolss_io_r_enddocprinter"); depth++; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1379,7 +1379,7 @@ BOOL spoolss_io_r_startpageprinter(char *desc, SPOOL_R_STARTPAGEPRINTER *r_u, pr { prs_debug(ps, depth, desc, "spoolss_io_r_startpageprinter"); depth++; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1415,7 +1415,7 @@ BOOL spoolss_io_r_endpageprinter(char *desc, SPOOL_R_ENDPAGEPRINTER *r_u, prs_st { prs_debug(ps, depth, desc, "spoolss_io_r_endpageprinter"); depth++; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1469,7 +1469,7 @@ BOOL spoolss_io_r_writeprinter(char *desc, SPOOL_R_WRITEPRINTER *r_u, prs_struct depth++; if(!prs_uint32("buffer_written", ps, depth, &r_u->buffer_written)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1531,7 +1531,7 @@ BOOL spoolss_io_r_rffpcnex(char *desc, SPOOL_R_RFFPCNEX *r_u, prs_struct *ps, in prs_debug(ps, depth, desc, "spoolss_io_r_rffpcnex"); depth++; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -1593,7 +1593,7 @@ BOOL spoolss_io_r_rfnpcnex(char *desc, SPOOL_R_RFNPCNEX *r_u, prs_struct *ps, in if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -3329,7 +3329,7 @@ BOOL spoolss_io_r_getprinterdriver2(char *desc, SPOOL_R_GETPRINTERDRIVER2 *r_u, return False; if (!prs_uint32("serverminorversion", ps, depth, &r_u->serverminorversion)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -3439,7 +3439,7 @@ BOOL spoolss_io_r_enumprinters(char *desc, SPOOL_R_ENUMPRINTERS *r_u, prs_struct if (!prs_uint32("returned", ps, depth, &r_u->returned)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -3468,7 +3468,7 @@ BOOL spoolss_io_r_getprinter(char *desc, SPOOL_R_GETPRINTER *r_u, prs_struct *ps if (!prs_uint32("needed", ps, depth, &r_u->needed)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -3608,7 +3608,7 @@ BOOL spoolss_io_r_setprinter(char *desc, SPOOL_R_SETPRINTER *r_u, prs_struct *ps if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -3685,7 +3685,7 @@ BOOL spoolss_io_r_fcpn(char *desc, SPOOL_R_FCPN *r_u, prs_struct *ps, int depth) if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -3730,7 +3730,7 @@ BOOL spoolss_io_r_addjob(char *desc, SPOOL_R_ADDJOB *r_u, prs_struct *ps, int de if(!prs_uint32("needed", ps, depth, &r_u->needed)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -3787,7 +3787,7 @@ BOOL spoolss_io_r_enumjobs(char *desc, SPOOL_R_ENUMJOBS *r_u, prs_struct *ps, in if (!prs_uint32("returned", ps, depth, &r_u->returned)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -3857,7 +3857,7 @@ BOOL spoolss_io_r_schedulejob(char *desc, SPOOL_R_SCHEDULEJOB *r_u, prs_struct * if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -3893,7 +3893,7 @@ BOOL spoolss_io_r_setjob(char *desc, SPOOL_R_SETJOB *r_u, prs_struct *ps, int de if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -3950,7 +3950,7 @@ BOOL spoolss_io_r_enumprinterdrivers(char *desc, SPOOL_R_ENUMPRINTERDRIVERS *r_u if (!prs_uint32("returned", ps, depth, &r_u->returned)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -4068,7 +4068,7 @@ BOOL spoolss_io_r_enumforms(char *desc, SPOOL_R_ENUMFORMS *r_u, prs_struct *ps, if (!prs_uint32("numofforms", ps, depth, &r_u->numofforms)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -4127,7 +4127,7 @@ BOOL spoolss_io_r_getform(char *desc, SPOOL_R_GETFORM *r_u, prs_struct *ps, int if (!prs_uint32("size of buffer needed", ps, depth, &r_u->needed)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -4157,7 +4157,7 @@ BOOL spoolss_io_r_enumports(char *desc, SPOOL_R_ENUMPORTS *r_u, prs_struct *ps, if (!prs_uint32("returned", ps, depth, &r_u->returned)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -4294,7 +4294,7 @@ BOOL spool_io_printer_info_level_2(char *desc, SPOOL_PRINTER_INFO_LEVEL_2 *il, p return False; if(!prs_uint32("untiltime", ps, depth, &il->untiltime)) return False; - if(!prs_uint32("status", ps, depth, &il->status)) + if(!prs_werror("status", ps, depth, &il->status)) return False; if(!prs_uint32("cjobs", ps, depth, &il->cjobs)) return False; @@ -4461,7 +4461,7 @@ BOOL spoolss_io_r_addprinterex(char *desc, SPOOL_R_ADDPRINTEREX *r_u, if(!smb_io_pol_hnd("printer handle",&r_u->handle,ps,depth)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -4953,7 +4953,7 @@ BOOL spoolss_io_r_addprinterdriver(char *desc, SPOOL_R_ADDPRINTERDRIVER *q_u, pr prs_debug(ps, depth, desc, "spoolss_io_r_addprinterdriver"); depth++; - if(!prs_uint32("status", ps, depth, &q_u->status)) + if(!prs_werror("status", ps, depth, &q_u->status)) return False; return True; @@ -5190,7 +5190,7 @@ BOOL spoolss_io_r_getprinterdriverdir(char *desc, SPOOL_R_GETPRINTERDRIVERDIR *r if (!prs_uint32("needed", ps, depth, &r_u->needed)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5219,7 +5219,7 @@ BOOL spoolss_io_r_enumprintprocessors(char *desc, SPOOL_R_ENUMPRINTPROCESSORS *r if (!prs_uint32("returned", ps, depth, &r_u->returned)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5312,7 +5312,7 @@ BOOL spoolss_io_r_addprintprocessor(char *desc, SPOOL_R_ADDPRINTPROCESSOR *r_u, if (!prs_align(ps)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5341,7 +5341,7 @@ BOOL spoolss_io_r_enumprintprocdatatypes(char *desc, SPOOL_R_ENUMPRINTPROCDATATY if (!prs_uint32("returned", ps, depth, &r_u->returned)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5447,7 +5447,7 @@ BOOL spoolss_io_r_enumprintmonitors(char *desc, SPOOL_R_ENUMPRINTMONITORS *r_u, if (!prs_uint32("returned", ps, depth, &r_u->returned)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5487,7 +5487,7 @@ BOOL spoolss_io_r_enumprinterdata(char *desc, SPOOL_R_ENUMPRINTERDATA *r_u, prs_ if(!prs_uint32("realdatasize", ps, depth, &r_u->realdatasize)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5589,7 +5589,7 @@ BOOL spoolss_io_r_setprinterdata(char *desc, SPOOL_R_SETPRINTERDATA *r_u, prs_st if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5696,7 +5696,7 @@ BOOL spoolss_io_r_deleteform(char *desc, SPOOL_R_DELETEFORM *r_u, prs_struct *ps if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5741,7 +5741,7 @@ BOOL spoolss_io_r_addform(char *desc, SPOOL_R_ADDFORM *r_u, prs_struct *ps, int if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5792,7 +5792,7 @@ BOOL spoolss_io_r_setform(char *desc, SPOOL_R_SETFORM *r_u, prs_struct *ps, int if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_u->status)) + if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5819,7 +5819,7 @@ BOOL spoolss_io_r_getjob(char *desc, SPOOL_R_GETJOB *r_u, prs_struct *ps, int de if (!prs_uint32("needed", ps, depth, &r_u->needed)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -5958,7 +5958,7 @@ BOOL spoolss_io_r_replyopenprinter(char *desc, SPOOL_R_REPLYOPENPRINTER *r_u, pr if(!smb_io_pol_hnd("printer handle",&r_u->handle,ps,depth)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -6011,7 +6011,7 @@ BOOL spoolss_io_r_replycloseprinter(char *desc, SPOOL_R_REPLYCLOSEPRINTER *r_u, if(!smb_io_pol_hnd("printer handle",&r_u->handle,ps,depth)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; @@ -6096,7 +6096,7 @@ BOOL spoolss_io_r_reply_rrpcn(char *desc, SPOOL_R_REPLY_RRPCN *r_u, prs_struct * if (!prs_uint32("unknown0", ps, depth, &r_u->unknown0)) return False; - if (!prs_uint32("status", ps, depth, &r_u->status)) + if (!prs_werror("status", ps, depth, &r_u->status)) return False; return True; diff --git a/source3/rpc_parse/parse_srv.c b/source3/rpc_parse/parse_srv.c index d695eb136c..057367054a 100644 --- a/source3/rpc_parse/parse_srv.c +++ b/source3/rpc_parse/parse_srv.c @@ -617,7 +617,7 @@ BOOL srv_io_r_net_share_enum(char *desc, SRV_R_NET_SHARE_ENUM *r_n, prs_struct * return False; if(!smb_io_enum_hnd("enum_hnd", &r_n->enum_hnd, ps, depth)) return False; - if(!prs_uint32("status ", ps, depth, &r_n->status)) + if(!prs_ntstatus("status ", ps, depth, &r_n->status)) return False; return True; @@ -742,7 +742,7 @@ BOOL srv_io_r_net_share_get_info(char *desc, SRV_R_NET_SHARE_GET_INFO *r_n, prs_ if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_n->status)) + if(!prs_ntstatus("status", ps, depth, &r_n->status)) return False; return True; @@ -803,7 +803,7 @@ BOOL srv_io_r_net_share_set_info(char *desc, SRV_R_NET_SHARE_SET_INFO *q_n, prs_ if(!prs_uint32("switch_value ", ps, depth, &q_n->switch_value)) return False; - if(!prs_uint32("status ", ps, depth, &q_n->status)) + if(!prs_ntstatus("status ", ps, depth, &q_n->status)) return False; return True; @@ -861,7 +861,7 @@ BOOL srv_io_r_net_share_add(char *desc, SRV_R_NET_SHARE_ADD *q_n, prs_struct *ps if(!prs_uint32("switch_value ", ps, depth, &q_n->switch_value)) return False; - if(!prs_uint32("status ", ps, depth, &q_n->status)) + if(!prs_ntstatus("status ", ps, depth, &q_n->status)) return False; return True; @@ -908,7 +908,7 @@ BOOL srv_io_r_net_share_del(char *desc, SRV_R_NET_SHARE_DEL *q_n, prs_struct *ps if(!prs_align(ps)) return False; - if(!prs_uint32("status ", ps, depth, &q_n->status)) + if(!prs_ntstatus("status ", ps, depth, &q_n->status)) return False; return True; @@ -1311,7 +1311,7 @@ BOOL srv_io_r_net_sess_enum(char *desc, SRV_R_NET_SESS_ENUM *r_n, prs_struct *ps return False; if(!smb_io_enum_hnd("enum_hnd", &r_n->enum_hnd, ps, depth)) return False; - if(!prs_uint32("status ", ps, depth, &r_n->status)) + if(!prs_ntstatus("status ", ps, depth, &r_n->status)) return False; return True; @@ -1676,7 +1676,7 @@ BOOL srv_io_r_net_conn_enum(char *desc, SRV_R_NET_CONN_ENUM *r_n, prs_struct *p return False; if(!smb_io_enum_hnd("enum_hnd", &r_n->enum_hnd, ps, depth)) return False; - if(!prs_uint32("status ", ps, depth, &r_n->status)) + if(!prs_ntstatus("status ", ps, depth, &r_n->status)) return False; return True; @@ -1954,7 +1954,7 @@ BOOL srv_io_r_net_file_enum(char *desc, SRV_R_NET_FILE_ENUM *r_n, prs_struct *ps return False; if(!smb_io_enum_hnd("enum_hnd", &r_n->enum_hnd, ps, depth)) return False; - if(!prs_uint32("status ", ps, depth, &r_n->status)) + if(!prs_ntstatus("status ", ps, depth, &r_n->status)) return False; return True; @@ -2246,7 +2246,7 @@ void init_srv_r_net_srv_get_info(SRV_R_NET_SRV_GET_INFO *srv, srv->ctr = ctr; - if (status == 0x0) { + if (NT_STATUS_IS_OK(status)) { srv->ctr->switch_value = switch_value; srv->ctr->ptr_srv_ctr = 1; } else { @@ -2326,7 +2326,7 @@ BOOL srv_io_r_net_srv_get_info(char *desc, SRV_R_NET_SRV_GET_INFO *r_n, prs_stru if(!srv_io_info_ctr("ctr", r_n->ctr, ps, depth)) return False; - if(!prs_uint32("status ", ps, depth, &r_n->status)) + if(!prs_ntstatus("status ", ps, depth, &r_n->status)) return False; return True; @@ -2348,7 +2348,7 @@ BOOL srv_io_r_net_srv_set_info(char *desc, SRV_R_NET_SRV_SET_INFO *r_n, if(!prs_uint32("switch_value ", ps, depth, &r_n->switch_value)) return False; - if(!prs_uint32("status ", ps, depth, &r_n->status)) + if(!prs_ntstatus("status ", ps, depth, &r_n->status)) return False; return True; @@ -2467,7 +2467,7 @@ BOOL srv_io_r_net_remote_tod(char *desc, SRV_R_NET_REMOTE_TOD *r_n, prs_struct * if(!srv_io_time_of_day_info("tod", r_n->tod, ps, depth)) return False; - if(!prs_uint32("status ", ps, depth, &r_n->status)) + if(!prs_ntstatus("status ", ps, depth, &r_n->status)) return False; return True; @@ -2566,7 +2566,7 @@ BOOL srv_io_r_net_disk_enum(char *desc, SRV_R_NET_DISK_ENUM *r_n, prs_struct *ps if(!smb_io_enum_hnd("enum_hnd", &r_n->enum_hnd, ps, depth)) return False; - if(!prs_uint32("status", ps, depth, &r_n->status)) + if(!prs_ntstatus("status", ps, depth, &r_n->status)) return False; return True; @@ -2626,7 +2626,7 @@ BOOL srv_io_r_net_name_validate(char *desc, SRV_R_NET_NAME_VALIDATE *r_n, prs_st if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_n->status)) + if(!prs_ntstatus("status", ps, depth, &r_n->status)) return False; return True; @@ -2713,7 +2713,7 @@ BOOL srv_io_r_net_file_query_secdesc(char *desc, SRV_R_NET_FILE_QUERY_SECDESC *r if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_n->status)) + if(!prs_ntstatus("status", ps, depth, &r_n->status)) return False; return True; @@ -2791,7 +2791,7 @@ BOOL srv_io_r_net_file_set_secdesc(char *desc, SRV_R_NET_FILE_SET_SECDESC *r_n, if(!prs_align(ps)) return False; - if(!prs_uint32("status", ps, depth, &r_n->status)) + if(!prs_ntstatus("status", ps, depth, &r_n->status)) return False; return True; diff --git a/source3/rpc_parse/parse_wks.c b/source3/rpc_parse/parse_wks.c index f35bef83bd..07194e1c31 100644 --- a/source3/rpc_parse/parse_wks.c +++ b/source3/rpc_parse/parse_wks.c @@ -173,7 +173,7 @@ BOOL wks_io_r_query_info(char *desc, WKS_R_QUERY_INFO *r_u, prs_struct *ps, int if(!wks_io_wks_info_100("inf", r_u->wks100, ps, depth)) return False; - if(!prs_uint32("status ", ps, depth, &r_u->status)) + if(!prs_ntstatus("status ", ps, depth, &r_u->status)) return False; return True; diff --git a/source3/rpc_server/srv_spoolss.c b/source3/rpc_server/srv_spoolss.c index 011efb1bac..eed24bfe8c 100755 --- a/source3/rpc_server/srv_spoolss.c +++ b/source3/rpc_server/srv_spoolss.c @@ -1110,7 +1110,7 @@ static BOOL api_spoolss_addprintprocessor(pipes_struct *p) automatically set the winprint processor for printer entries later. Used to debug the LexMark Optra S 1855 PCL driver --jerry */ - r_u.status = NT_STATUS_OK; + r_u.status = WERR_OK; if(!spoolss_io_r_addprintprocessor("", &r_u, rdata, 0)) { DEBUG(0,("spoolss_io_r_addprintprocessor: unable to marshall SPOOL_R_ADDPRINTPROCESSOR.\n")); diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index 80c809047c..c12df62913 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -160,7 +160,7 @@ static void free_spool_notify_option(SPOOL_NOTIFY_OPTION **pp) static void srv_spoolss_replycloseprinter(POLICY_HND *handle) { - NTSTATUS status; + WERROR status; /* weird if the test succeds !!! */ if (smb_connections==0) { @@ -270,18 +270,18 @@ static BOOL close_printer_handle(pipes_struct *p, POLICY_HND *hnd) /**************************************************************************** delete a printer given a handle ****************************************************************************/ -static NTSTATUS delete_printer_handle(pipes_struct *p, POLICY_HND *hnd) +static WERROR delete_printer_handle(pipes_struct *p, POLICY_HND *hnd) { Printer_entry *Printer = find_printer_index_by_hnd(p, hnd); if (!Printer) { DEBUG(0,("delete_printer_handle: Invalid handle (%s)\n", OUR_HANDLE(hnd))); - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; } if (del_a_printer(Printer->dev.handlename) != 0) { DEBUG(3,("Error deleting printer %s\n", Printer->dev.handlename)); - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; } /* Check calling user has permission to delete printer. Note that @@ -291,7 +291,7 @@ static NTSTATUS delete_printer_handle(pipes_struct *p, POLICY_HND *hnd) if (!print_access_check(NULL, -1, PRINTER_ACCESS_ADMINISTER)) { DEBUG(3, ("printer delete denied by security descriptor\n")); - return NT_STATUS_ACCESS_DENIED; + return WERR_ACCESS_DENIED; } if (*lp_deleteprinter_cmd()) { @@ -308,7 +308,7 @@ static NTSTATUS delete_printer_handle(pipes_struct *p, POLICY_HND *hnd) DEBUG(10,("Running [%s]\n", command)); ret = smbrun(command, NULL); if (ret != 0) { - return NT_STATUS_INVALID_HANDLE; /* What to return here? */ + return WERR_BADFID; /* What to return here? */ } DEBUGADD(10,("returned [%d]\n", ret)); @@ -317,12 +317,12 @@ static NTSTATUS delete_printer_handle(pipes_struct *p, POLICY_HND *hnd) if ( ( i = lp_servicenumber( Printer->dev.handlename ) ) >= 0 ) { lp_killservice( i ); - return NT_STATUS_OK; + return WERR_OK; } else - return NT_STATUS_ACCESS_DENIED; + return WERR_ACCESS_DENIED; } - return NT_STATUS_OK; + return WERR_OK; } /**************************************************************************** @@ -618,7 +618,7 @@ static BOOL alloc_buffer_size(NEW_BUFFER *buffer, uint32 buffer_size) static void srv_spoolss_receive_message(int msg_type, pid_t src, void *buf, size_t len) { fstring printer; - NTSTATUS status; + WERROR status; struct pipes_struct *p; struct policy *pol; struct handle_list *hl; @@ -706,10 +706,10 @@ static BOOL srv_spoolss_sendnotify(pipes_struct *p, POLICY_HND *handle) * called from the spoolss dispatcher ********************************************************************/ -NTSTATUS _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX *q_u, SPOOL_R_OPEN_PRINTER_EX *r_u) +WERROR _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX *q_u, SPOOL_R_OPEN_PRINTER_EX *r_u) { #if 0 - uint32 result = NT_STATUS_OK; + WERROR result = WERR_OK; #endif UNISTR2 *printername = NULL; @@ -726,7 +726,7 @@ NTSTATUS _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX *q_u printername = &q_u->printername; if (printername == NULL) - return NT_STATUS_OBJECT_NAME_INVALID; + return WERR_INVALID_PRINTER_NAME; /* some sanity check because you can open a printer or a print server */ /* aka: \\server\printer or \\server */ @@ -735,7 +735,7 @@ NTSTATUS _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX *q_u DEBUGADD(3,("checking name: %s\n",name)); if (!open_printer_hnd(p, handle, name)) - return NT_STATUS_OBJECT_NAME_INVALID; + return WERR_INVALID_PRINTER_NAME; /* if (printer_default->datatype_ptr != NULL) @@ -749,7 +749,7 @@ NTSTATUS _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX *q_u if (!set_printer_hnd_accesstype(p, handle, printer_default->access_required)) { close_printer_handle(p, handle); - return NT_STATUS_ACCESS_DENIED; + return WERR_ACCESS_DENIED; } /* @@ -779,7 +779,7 @@ NTSTATUS _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX *q_u if (handle_is_printserver(p, handle)) { if (printer_default->access_required == 0) { - return NT_STATUS_OK; + return WERR_OK; } else if ((printer_default->access_required & SERVER_ACCESS_ADMINISTER ) == SERVER_ACCESS_ADMINISTER) { @@ -788,14 +788,14 @@ NTSTATUS _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX *q_u if (!lp_ms_add_printer_wizard()) { close_printer_handle(p, handle); - return NT_STATUS_ACCESS_DENIED; + return WERR_ACCESS_DENIED; } else if (user.uid == 0 || user_in_list(uidtoname(user.uid), lp_printer_admin(snum))) { - return NT_STATUS_OK; + return WERR_OK; } else { close_printer_handle(p, handle); - return NT_STATUS_ACCESS_DENIED; + return WERR_ACCESS_DENIED; } } } @@ -805,7 +805,7 @@ NTSTATUS _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX *q_u doesn't have print permission. */ if (!get_printer_snum(p, handle, &snum)) - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; /* map an empty access mask to the minimum access mask */ if (printer_default->access_required == 0x0) @@ -826,7 +826,7 @@ NTSTATUS _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX *q_u if (!print_access_check(&user, snum, printer_default->access_required)) { DEBUG(3, ("access DENIED for printer open\n")); close_printer_handle(p, handle); - return NT_STATUS_ACCESS_DENIED; + return WERR_ACCESS_DENIED; } /* @@ -905,7 +905,7 @@ NTSTATUS _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX *q_u #endif } - return NT_STATUS_OK; + return WERR_OK; } /**************************************************************************** @@ -1021,27 +1021,27 @@ BOOL convert_devicemode(char *printername, const DEVICEMODE *devmode, * _spoolss_enddocprinter_internal. ********************************************************************/ -static NTSTATUS _spoolss_enddocprinter_internal(pipes_struct *p, POLICY_HND *handle) +static WERROR _spoolss_enddocprinter_internal(pipes_struct *p, POLICY_HND *handle) { Printer_entry *Printer=find_printer_index_by_hnd(p, handle); if (!Printer) { DEBUG(0,("_spoolss_enddocprinter_internal: Invalid handle (%s)\n", OUR_HANDLE(handle))); - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; } Printer->document_started=False; print_job_end(Printer->jobid,True); /* error codes unhandled so far ... */ - return NT_STATUS_OK; + return WERR_OK; } /******************************************************************** * api_spoolss_closeprinter ********************************************************************/ -NTSTATUS _spoolss_closeprinter(pipes_struct *p, SPOOL_Q_CLOSEPRINTER *q_u, SPOOL_R_CLOSEPRINTER *r_u) +WERROR _spoolss_closeprinter(pipes_struct *p, SPOOL_Q_CLOSEPRINTER *q_u, SPOOL_R_CLOSEPRINTER *r_u) { POLICY_HND *handle = &q_u->handle; @@ -1053,9 +1053,9 @@ NTSTATUS _spoolss_closeprinter(pipes_struct *p, SPOOL_Q_CLOSEPRINTER *q_u, SPOOL memcpy(&r_u->handle, &q_u->handle, sizeof(r_u->handle)); if (!close_printer_handle(p, handle)) - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; - return NT_STATUS_OK; + return WERR_OK; } /******************************************************************** @@ -1063,11 +1063,11 @@ NTSTATUS _spoolss_closeprinter(pipes_struct *p, SPOOL_Q_CLOSEPRINTER *q_u, SPOOL ********************************************************************/ -NTSTATUS _spoolss_deleteprinter(pipes_struct *p, SPOOL_Q_DELETEPRINTER *q_u, SPOOL_R_DELETEPRINTER *r_u) +WERROR _spoolss_deleteprinter(pipes_struct *p, SPOOL_Q_DELETEPRINTER *q_u, SPOOL_R_DELETEPRINTER *r_u) { POLICY_HND *handle = &q_u->handle; Printer_entry *Printer=find_printer_index_by_hnd(p, handle); - NTSTATUS result; + WERROR result; if (Printer && Printer->document_started) _spoolss_enddocprinter_internal(p, handle); /* print job was not closed */ @@ -1076,7 +1076,7 @@ NTSTATUS _spoolss_deleteprinter(pipes_struct *p, SPOOL_Q_DELETEPRINTER *q_u, SPO result = delete_printer_handle(p, handle); - if (NT_STATUS_IS_OK(result)) { + if (W_ERROR_IS_OK(result)) { srv_spoolss_sendnotify(p, handle); } @@ -1124,7 +1124,7 @@ static int get_version_id (char * arch) * --jerry ********************************************************************/ -NTSTATUS _spoolss_deleteprinterdriver(pipes_struct *p, SPOOL_Q_DELETEPRINTERDRIVER *q_u, +WERROR _spoolss_deleteprinterdriver(pipes_struct *p, SPOOL_Q_DELETEPRINTERDRIVER *q_u, SPOOL_R_DELETEPRINTERDRIVER *r_u) { fstring driver; @@ -1137,18 +1137,18 @@ NTSTATUS _spoolss_deleteprinterdriver(pipes_struct *p, SPOOL_Q_DELETEPRINTERDRIV /* check that we have a valid driver name first */ if ((version=get_version_id(arch)) == -1) { - return NT_STATUS_REVISION_MISMATCH; + return WERR_INVALID_ENVIRONMENT; } ZERO_STRUCT(info); if (!W_ERROR_IS_OK(get_a_printer_driver(&info, 3, driver, arch, version))) { - return NT_STATUS_DRIVER_ORDINAL_NOT_FOUND; + return WERR_UNKNOWN_PRINTER_DRIVER; } if (printer_driver_in_use(arch, driver)) { - return NT_STATUS_NETWORK_BUSY; + return WERR_PRINTER_DRIVER_IN_USE; } return delete_printer_driver(info.info_3); @@ -1293,7 +1293,7 @@ static BOOL getprinterdata_printer(pipes_struct *p, TALLOC_CTX *ctx, POLICY_HND * spoolss_getprinterdata ********************************************************************/ -NTSTATUS _spoolss_getprinterdata(pipes_struct *p, SPOOL_Q_GETPRINTERDATA *q_u, SPOOL_R_GETPRINTERDATA *r_u) +WERROR _spoolss_getprinterdata(pipes_struct *p, SPOOL_Q_GETPRINTERDATA *q_u, SPOOL_R_GETPRINTERDATA *r_u) { POLICY_HND *handle = &q_u->handle; UNISTR2 *valuename = &q_u->valuename; @@ -1324,9 +1324,9 @@ NTSTATUS _spoolss_getprinterdata(pipes_struct *p, SPOOL_Q_GETPRINTERDATA *q_u, S if (!Printer) { if((*data=(uint8 *)malloc(4*sizeof(uint8))) == NULL) - return NT_STATUS_NO_MEMORY; + return WERR_NOMEM; DEBUG(0,("_spoolss_getprinterdata: Invalid handle (%s).\n", OUR_HANDLE(handle))); - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; } unistr2_to_ascii(value, valuename, sizeof(value)-1); @@ -1341,18 +1341,18 @@ NTSTATUS _spoolss_getprinterdata(pipes_struct *p, SPOOL_Q_GETPRINTERDATA *q_u, S /* reply this param doesn't exist */ if (*out_size) { if((*data=(uint8 *)talloc_zero(p->mem_ctx, *out_size*sizeof(uint8))) == NULL) - return NT_STATUS_NO_MEMORY; + return WERR_NOMEM; } else { *data = NULL; } - return NT_STATUS_INVALID_PARAMETER; + return WERR_INVALID_PARAM; } if (*needed > *out_size) - return STATUS_MORE_ENTRIES; + return WERR_STATUS_MORE_ENTRIES; else { - return NT_STATUS_OK; + return WERR_OK; } } @@ -1361,7 +1361,7 @@ NTSTATUS _spoolss_getprinterdata(pipes_struct *p, SPOOL_Q_GETPRINTERDATA *q_u, S ****************************************************************************/ static BOOL srv_spoolss_replyopenprinter(char *printer, uint32 localprinter, uint32 type, POLICY_HND *handle) { - NTSTATUS status; + WERROR status; /* * If it's the first connection, contact the client @@ -1398,7 +1398,7 @@ static BOOL srv_spoolss_replyopenprinter(char *printer, uint32 localprinter, uin * called from api_spoolss_rffpcnex ********************************************************************/ -NTSTATUS _spoolss_rffpcnex(pipes_struct *p, SPOOL_Q_RFFPCNEX *q_u, SPOOL_R_RFFPCNEX *r_u) +WERROR _spoolss_rffpcnex(pipes_struct *p, SPOOL_Q_RFFPCNEX *q_u, SPOOL_R_RFFPCNEX *r_u) { POLICY_HND *handle = &q_u->handle; uint32 flags = q_u->flags; @@ -1413,7 +1413,7 @@ NTSTATUS _spoolss_rffpcnex(pipes_struct *p, SPOOL_Q_RFFPCNEX *q_u, SPOOL_R_RFFPC if (!Printer) { DEBUG(0,("_spoolss_rffpcnex: Invalid handle (%s).\n", OUR_HANDLE(handle))); - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; } Printer->notify.flags=flags; @@ -1433,7 +1433,7 @@ NTSTATUS _spoolss_rffpcnex(pipes_struct *p, SPOOL_Q_RFFPCNEX *q_u, SPOOL_R_RFFPC &Printer->notify.client_hnd)) Printer->notify.client_connected=True; - return NT_STATUS_OK; + return WERR_OK; } /******************************************************************* @@ -3906,7 +3906,7 @@ WERROR _spoolss_getprinterdriver2(pipes_struct *p, SPOOL_Q_GETPRINTERDRIVER2 *q_ /**************************************************************************** ****************************************************************************/ -NTSTATUS _spoolss_startpageprinter(pipes_struct *p, SPOOL_Q_STARTPAGEPRINTER *q_u, SPOOL_R_STARTPAGEPRINTER *r_u) +WERROR _spoolss_startpageprinter(pipes_struct *p, SPOOL_Q_STARTPAGEPRINTER *q_u, SPOOL_R_STARTPAGEPRINTER *r_u) { POLICY_HND *handle = &q_u->handle; @@ -3914,17 +3914,17 @@ NTSTATUS _spoolss_startpageprinter(pipes_struct *p, SPOOL_Q_STARTPAGEPRINTER *q_ if (Printer) { Printer->page_started=True; - return NT_STATUS_OK; + return WERR_OK; } DEBUG(3,("Error in startpageprinter printer handle\n")); - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; } /**************************************************************************** ****************************************************************************/ -NTSTATUS _spoolss_endpageprinter(pipes_struct *p, SPOOL_Q_ENDPAGEPRINTER *q_u, SPOOL_R_ENDPAGEPRINTER *r_u) +WERROR _spoolss_endpageprinter(pipes_struct *p, SPOOL_Q_ENDPAGEPRINTER *q_u, SPOOL_R_ENDPAGEPRINTER *r_u) { POLICY_HND *handle = &q_u->handle; @@ -3932,12 +3932,12 @@ NTSTATUS _spoolss_endpageprinter(pipes_struct *p, SPOOL_Q_ENDPAGEPRINTER *q_u, S if (!Printer) { DEBUG(0,("_spoolss_endpageprinter: Invalid handle (%s).\n",OUR_HANDLE(handle))); - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; } Printer->page_started=False; - return NT_STATUS_OK; + return WERR_OK; } /******************************************************************** @@ -4015,7 +4015,7 @@ WERROR _spoolss_startdocprinter(pipes_struct *p, SPOOL_Q_STARTDOCPRINTER *q_u, S * ********************************************************************/ -NTSTATUS _spoolss_enddocprinter(pipes_struct *p, SPOOL_Q_ENDDOCPRINTER *q_u, SPOOL_R_ENDDOCPRINTER *r_u) +WERROR _spoolss_enddocprinter(pipes_struct *p, SPOOL_Q_ENDDOCPRINTER *q_u, SPOOL_R_ENDDOCPRINTER *r_u) { POLICY_HND *handle = &q_u->handle; @@ -4025,7 +4025,7 @@ NTSTATUS _spoolss_enddocprinter(pipes_struct *p, SPOOL_Q_ENDDOCPRINTER *q_u, SPO /**************************************************************************** ****************************************************************************/ -NTSTATUS _spoolss_writeprinter(pipes_struct *p, SPOOL_Q_WRITEPRINTER *q_u, SPOOL_R_WRITEPRINTER *r_u) +WERROR _spoolss_writeprinter(pipes_struct *p, SPOOL_Q_WRITEPRINTER *q_u, SPOOL_R_WRITEPRINTER *r_u) { POLICY_HND *handle = &q_u->handle; uint32 buffer_size = q_u->buffer_size; @@ -4037,7 +4037,7 @@ NTSTATUS _spoolss_writeprinter(pipes_struct *p, SPOOL_Q_WRITEPRINTER *q_u, SPOOL if (!Printer) { DEBUG(0,("_spoolss_writeprinter: Invalid handle (%s)\n",OUR_HANDLE(handle))); r_u->buffer_written = q_u->buffer_size2; - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; } (*buffer_written) = print_job_write(Printer->jobid, (char *)buffer, buffer_size); @@ -4045,7 +4045,7 @@ NTSTATUS _spoolss_writeprinter(pipes_struct *p, SPOOL_Q_WRITEPRINTER *q_u, SPOOL r_u->buffer_written = q_u->buffer_size2; - return NT_STATUS_OK; + return WERR_OK; } /******************************************************************** @@ -4608,19 +4608,15 @@ static WERROR update_printer(pipes_struct *p, POLICY_HND *handle, uint32 level, /* Call addprinter hook */ - if (*lp_addprinter_cmd() ) - if ( !add_printer_hook(printer) ) { + if (*lp_addprinter_cmd()) { + if (!add_printer_hook(printer)) { result = WERR_ACCESS_DENIED; goto done; } + } /* Update printer info */ - - if (add_a_printer(*printer, 2)!=0) { - /* I don't really know what to return here !!! */ - result = WERR_ACCESS_DENIED; - goto done; - } + result = add_a_printer(*printer, 2); done: free_a_printer(&printer, 2); @@ -4667,7 +4663,7 @@ WERROR _spoolss_setprinter(pipes_struct *p, SPOOL_Q_SETPRINTER *q_u, SPOOL_R_SET /**************************************************************************** ****************************************************************************/ -NTSTATUS _spoolss_fcpn(pipes_struct *p, SPOOL_Q_FCPN *q_u, SPOOL_R_FCPN *r_u) +WERROR _spoolss_fcpn(pipes_struct *p, SPOOL_Q_FCPN *q_u, SPOOL_R_FCPN *r_u) { POLICY_HND *handle = &q_u->handle; @@ -4675,7 +4671,7 @@ NTSTATUS _spoolss_fcpn(pipes_struct *p, SPOOL_Q_FCPN *q_u, SPOOL_R_FCPN *r_u) if (!Printer) { DEBUG(0,("_spoolss_fcpn: Invalid handle (%s)\n", OUR_HANDLE(handle))); - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; } if (Printer->notify.client_connected==True) @@ -4689,7 +4685,7 @@ NTSTATUS _spoolss_fcpn(pipes_struct *p, SPOOL_Q_FCPN *q_u, SPOOL_R_FCPN *r_u) free_spool_notify_option(&Printer->notify.option); Printer->notify.client_connected=False; - return NT_STATUS_OK; + return WERR_OK; } /**************************************************************************** @@ -4840,6 +4836,7 @@ static WERROR enumjobs_level2(print_queue_struct *queue, int snum, NT_PRINTER_INFO_LEVEL *ntprinter = NULL; JOB_INFO_2 *info; int i; + WERROR result; info=(JOB_INFO_2 *)malloc(*returned*sizeof(JOB_INFO_2)); if (info==NULL) { @@ -4847,9 +4844,10 @@ static WERROR enumjobs_level2(print_queue_struct *queue, int snum, return WERR_NOMEM; } - if (get_a_printer(&ntprinter, 2, lp_servicename(snum)) !=0) { + result = get_a_printer(&ntprinter, 2, lp_servicename(snum)); + if (!W_ERROR_IS_OK(result)) { *returned = 0; - return WERR_NOMEM; + return result; } for (i=0; i<*returned; i++) @@ -4978,18 +4976,18 @@ WERROR _spoolss_setjob(pipes_struct *p, SPOOL_Q_SETJOB *q_u, SPOOL_R_SETJOB *r_u case JOB_CONTROL_CANCEL: case JOB_CONTROL_DELETE: if (print_job_delete(&user, jobid, &errcode)) { - errcode = 0; + errcode = WERR_OK; } break; case JOB_CONTROL_PAUSE: if (print_job_pause(&user, jobid, &errcode)) { - errcode = 0; + errcode = WERR_OK; } break; case JOB_CONTROL_RESTART: case JOB_CONTROL_RESUME: if (print_job_resume(&user, jobid, &errcode)) { - errcode = 0; + errcode = WERR_OK; } break; default: @@ -5034,10 +5032,12 @@ static WERROR enumprinterdrivers_level1(fstring servername, fstring architecture } for (i=0; i<ndrivers; i++) { - NTSTATUS status; + WERROR status; DEBUGADD(5,("\tdriver: [%s]\n", list[i])); ZERO_STRUCT(driver); - if ((status = get_a_printer_driver(&driver, 3, list[i], architecture, version)) != 0) { + status = get_a_printer_driver(&driver, 3, list[i], + architecture, version); + if (!W_ERROR_IS_OK(status)) { safe_free(list); return status; } @@ -5111,11 +5111,13 @@ static WERROR enumprinterdrivers_level2(fstring servername, fstring architecture } for (i=0; i<ndrivers; i++) { - NTSTATUS status; + WERROR status; DEBUGADD(5,("\tdriver: [%s]\n", list[i])); ZERO_STRUCT(driver); - if ((status = get_a_printer_driver(&driver, 3, list[i], architecture, version)) != 0) { + status = get_a_printer_driver(&driver, 3, list[i], + architecture, version); + if (!W_ERROR_IS_OK(status)) { safe_free(list); return status; } @@ -5189,11 +5191,13 @@ static WERROR enumprinterdrivers_level3(fstring servername, fstring architecture } for (i=0; i<ndrivers; i++) { - NTSTATUS status; + WERROR status; DEBUGADD(5,("\tdriver: [%s]\n", list[i])); ZERO_STRUCT(driver); - if ((status = get_a_printer_driver(&driver, 3, list[i], architecture, version)) != 0) { + status = get_a_printer_driver(&driver, 3, list[i], + architecture, version); + if (!W_ERROR_IS_OK(status)) { safe_free(list); return status; } @@ -5326,7 +5330,7 @@ WERROR _spoolss_enumforms(pipes_struct *p, SPOOL_Q_ENUMFORMS *q_u, SPOOL_R_ENUMF DEBUGADD(5,("Number of user forms [%d]\n", *numofforms)); *numofforms += numbuiltinforms; - if (*numofforms == 0) return ERRnomoreitems; + if (*numofforms == 0) return WERR_NO_MORE_ITEMS; switch (level) { case 1: @@ -5453,7 +5457,7 @@ WERROR _spoolss_getform(pipes_struct *p, SPOOL_Q_GETFORM *q_u, SPOOL_R_GETFORM * safe_free(list); if (i == numofforms) { - return NT_STATUS_INVALID_HANDLE; + return WERR_BADFID; } } /* check the required size. */ @@ -5534,7 +5538,8 @@ static WERROR enumports_level_1(NEW_BUFFER *buffer, uint32 offered, uint32 *need if(numlines) { if((ports=(PORT_INFO_1 *)malloc( numlines * sizeof(PORT_INFO_1) )) == NULL) { - DEBUG(10,("Returning WERR_NOMEM [%x]\n", WERR_NOMEM)); + DEBUG(10,("Returning WERR_NOMEM [%s]\n", + werror_str(WERR_NOMEM))); file_lines_free(qlines); return WERR_NOMEM; } @@ -5632,7 +5637,6 @@ static WERROR enumports_level_2(NEW_BUFFER *buffer, uint32 offered, uint32 *need if(numlines) { if((ports=(PORT_INFO_2 *)malloc( numlines * sizeof(PORT_INFO_2) )) == NULL) { - DEBUG(10,("Returning WERR_NOMEM [%x]\n", WERR_NOMEM)); file_lines_free(qlines); return WERR_NOMEM; } @@ -5727,6 +5731,7 @@ static WERROR spoolss_addprinterex_level_2( pipes_struct *p, const UNISTR2 *uni_ POLICY_HND *handle) { NT_PRINTER_INFO_LEVEL *printer = NULL; + WERROR err; fstring name; int snum; @@ -5777,9 +5782,10 @@ static WERROR spoolss_addprinterex_level_2( pipes_struct *p, const UNISTR2 *uni_ set_driver_init(printer, 2); /* write the ASCII on disk */ - if (add_a_printer(*printer, 2) != 0) { + err = add_a_printer(*printer, 2); + if (!W_ERROR_IS_OK(err)) { free_a_printer(&printer,2); - return WERR_ACCESS_DENIED; + return err; } if (!open_printer_hnd(p, handle, name)) { @@ -5848,12 +5854,13 @@ WERROR _spoolss_addprinterdriver(pipes_struct *p, SPOOL_Q_ADDPRINTERDRIVER *q_u, } DEBUG(5,("Cleaning driver's information\n")); - if ((err = clean_up_driver_struct(driver, level, &user)) != NT_STATUS_OK ) + err = clean_up_driver_struct(driver, level, &user); + if (!W_ERROR_IS_OK(err)) goto done; DEBUG(5,("Moving driver to final destination\n")); if(!move_driver_to_download_area(driver, level, &user, &err)) { - if (err == 0) + if (W_ERROR_IS_OK(err)) err = WERR_ACCESS_DENIED; goto done; } @@ -5972,6 +5979,7 @@ WERROR _spoolss_enumprinterdata(pipes_struct *p, SPOOL_Q_ENUMPRINTERDATA *q_u, S int snum; uint8 *data=NULL; uint32 type; + WERROR result; ZERO_STRUCT(printer); @@ -5995,8 +6003,9 @@ WERROR _spoolss_enumprinterdata(pipes_struct *p, SPOOL_Q_ENUMPRINTERDATA *q_u, S if (!get_printer_snum(p,handle, &snum)) return WERR_BADFID; - if (get_a_printer(&printer, 2, lp_servicename(snum)) != 0) - return WERR_BADFID; + result = get_a_printer(&printer, 2, lp_servicename(snum)); + if (!W_ERROR_IS_OK(result)) + return result; /* * The NT machine wants to know the biggest size of value and data @@ -6140,8 +6149,8 @@ WERROR _spoolss_setprinterdata( pipes_struct *p, SPOOL_Q_SETPRINTERDATA *q_u, SP return WERR_BADFID; status = get_a_printer(&printer, 2, lp_servicename(snum)); - if (status != 0x0) - return WERR_INVALID_NAME; + if (!W_ERROR_IS_OK(status)) + return status; convert_specific_param(¶m, value , type, data, real_len); @@ -6231,8 +6240,8 @@ WERROR _spoolss_deleteprinterdata(pipes_struct *p, SPOOL_Q_DELETEPRINTERDATA *q_ } status = get_a_printer(&printer, 2, lp_servicename(snum)); - if (status != 0x0) - return WERR_INVALID_NAME; + if (!W_ERROR_IS_OK(status)) + return status; ZERO_STRUCTP(¶m); unistr2_to_ascii(param.value, value, sizeof(param.value)-1); @@ -6291,7 +6300,7 @@ WERROR _spoolss_deleteform( pipes_struct *p, SPOOL_Q_DELETEFORM *q_u, SPOOL_R_DE UNISTR2 *form_name = &q_u->name; nt_forms_struct tmpForm; int count=0; - WERROR ret = 0; + WERROR ret = WERR_OK; nt_forms_struct *list=NULL; Printer_entry *Printer = find_printer_index_by_hnd(p, handle); @@ -6308,7 +6317,7 @@ WERROR _spoolss_deleteform( pipes_struct *p, SPOOL_Q_DELETEFORM *q_u, SPOOL_R_DE } count = get_ntforms(&list); - if(!delete_a_form(&list, form_name, &count, &ret)) + if (!delete_a_form(&list, form_name, &count, &ret)) return WERR_INVALID_PARAM; safe_free(list); @@ -6640,6 +6649,7 @@ static WERROR getjob_level_2(print_queue_struct *queue, int count, int snum, uin BOOL found=False; JOB_INFO_2 *info_2; NT_PRINTER_INFO_LEVEL *ntprinter = NULL; + WERROR ret; info_2=(JOB_INFO_2 *)malloc(sizeof(JOB_INFO_2)); @@ -6662,9 +6672,10 @@ static WERROR getjob_level_2(print_queue_struct *queue, int count, int snum, uin return WERR_OK; } - if (get_a_printer(&ntprinter, 2, lp_servicename(snum)) !=0) { + ret = get_a_printer(&ntprinter, 2, lp_servicename(snum)); + if (!W_ERROR_IS_OK(ret)) { safe_free(queue); - return WERR_NOMEM; + return ret; } fill_job_info_2(info_2, &(queue[i-1]), i, snum, ntprinter); diff --git a/source3/rpcclient/cmd_lsarpc.c b/source3/rpcclient/cmd_lsarpc.c index 3d14a66cfe..16d29fc763 100644 --- a/source3/rpcclient/cmd_lsarpc.c +++ b/source3/rpcclient/cmd_lsarpc.c @@ -26,10 +26,10 @@ extern int DEBUGLEVEL; extern pstring server; /* Look up domain related information on a remote host */ -static uint32 cmd_lsa_query_info_policy(struct cli_state *cli, int argc, char **argv) +static NTSTATUS cmd_lsa_query_info_policy(struct cli_state *cli, int argc, char **argv) { POLICY_HND pol; - uint32 result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; BOOL got_policy_hnd = False; DOM_SID dom_sid; fstring sid_str, domain_name; @@ -38,7 +38,7 @@ static uint32 cmd_lsa_query_info_policy(struct cli_state *cli, int argc, char ** if (argc > 2) { printf("Usage: %s [info_class]\n", argv[0]); - return 0; + return NT_STATUS_OK; } if (!(mem_ctx = talloc_init())) { @@ -57,9 +57,10 @@ static uint32 cmd_lsa_query_info_policy(struct cli_state *cli, int argc, char ** return NT_STATUS_UNSUCCESSFUL; } - if ((result = cli_lsa_open_policy(cli, mem_ctx, True, - SEC_RIGHTS_MAXIMUM_ALLOWED, - &pol)) != NT_STATUS_OK) { + result = cli_lsa_open_policy(cli, mem_ctx, True, + SEC_RIGHTS_MAXIMUM_ALLOWED, + &pol); + if (!NT_STATUS_IS_OK(result)) { goto done; } @@ -67,9 +68,9 @@ static uint32 cmd_lsa_query_info_policy(struct cli_state *cli, int argc, char ** /* Lookup info policy */ - if ((result = cli_lsa_query_info_policy(cli, mem_ctx, &pol, info_class, - domain_name, &dom_sid)) - != NT_STATUS_OK) { + result = cli_lsa_query_info_policy(cli, mem_ctx, &pol, info_class, + domain_name, &dom_sid); + if (!NT_STATUS_IS_OK(result)) { goto done; } @@ -95,10 +96,10 @@ done: /* Resolve a list of names to a list of sids */ -static uint32 cmd_lsa_lookup_names(struct cli_state *cli, int argc, char **argv) +static NTSTATUS cmd_lsa_lookup_names(struct cli_state *cli, int argc, char **argv) { POLICY_HND pol; - uint32 result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; BOOL got_policy_hnd = False; DOM_SID *sids; uint32 *types; @@ -107,7 +108,7 @@ static uint32 cmd_lsa_lookup_names(struct cli_state *cli, int argc, char **argv) if (argc == 1) { printf("Usage: %s [name1 [name2 [...]]]\n", argv[0]); - return 0; + return NT_STATUS_OK; } if (!(mem_ctx = talloc_init())) { @@ -123,9 +124,10 @@ static uint32 cmd_lsa_lookup_names(struct cli_state *cli, int argc, char **argv) } - if ((result = cli_lsa_open_policy(cli, mem_ctx, True, - SEC_RIGHTS_MAXIMUM_ALLOWED, - &pol)) != NT_STATUS_OK) { + result = cli_lsa_open_policy(cli, mem_ctx, True, + SEC_RIGHTS_MAXIMUM_ALLOWED, + &pol); + if (!NT_STATUS_IS_OK(result)) { goto done; } @@ -133,9 +135,9 @@ static uint32 cmd_lsa_lookup_names(struct cli_state *cli, int argc, char **argv) /* Lookup the names */ - if ((result = cli_lsa_lookup_names(cli, mem_ctx, &pol, argc - 1, - &argv[1], &sids, &types, &num_names) != - NT_STATUS_OK)) { + result = cli_lsa_lookup_names(cli, mem_ctx, &pol, argc - 1, + &argv[1], &sids, &types, &num_names); + if (!NT_STATUS_IS_OK(result)) { goto done; } @@ -163,10 +165,10 @@ static uint32 cmd_lsa_lookup_names(struct cli_state *cli, int argc, char **argv) /* Resolve a list of SIDs to a list of names */ -static uint32 cmd_lsa_lookup_sids(struct cli_state *cli, int argc, char **argv) +static NTSTATUS cmd_lsa_lookup_sids(struct cli_state *cli, int argc, char **argv) { POLICY_HND pol; - uint32 result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; BOOL got_policy_hnd = False; DOM_SID *sids; char **names; @@ -176,7 +178,7 @@ static uint32 cmd_lsa_lookup_sids(struct cli_state *cli, int argc, char **argv) if (argc == 1) { printf("Usage: %s [sid1 [sid2 [...]]]\n", argv[0]); - return 0; + return NT_STATUS_OK; } if (!(mem_ctx = talloc_init())) { @@ -191,9 +193,10 @@ static uint32 cmd_lsa_lookup_sids(struct cli_state *cli, int argc, char **argv) return NT_STATUS_UNSUCCESSFUL; } - if ((result = cli_lsa_open_policy(cli, mem_ctx, True, - SEC_RIGHTS_MAXIMUM_ALLOWED, - &pol)) != NT_STATUS_OK) { + result = cli_lsa_open_policy(cli, mem_ctx, True, + SEC_RIGHTS_MAXIMUM_ALLOWED, + &pol); + if (!NT_STATUS_IS_OK(result)) { goto done; } @@ -214,9 +217,9 @@ static uint32 cmd_lsa_lookup_sids(struct cli_state *cli, int argc, char **argv) /* Lookup the SIDs */ - if ((result = cli_lsa_lookup_sids(cli, mem_ctx, &pol, argc - 1, sids, - &names, &types, &num_names) != - NT_STATUS_OK)) { + result = cli_lsa_lookup_sids(cli, mem_ctx, &pol, argc - 1, sids, + &names, &types, &num_names); + if (!NT_STATUS_IS_OK(result)) { goto done; } @@ -255,10 +258,10 @@ static uint32 cmd_lsa_lookup_sids(struct cli_state *cli, int argc, char **argv) /* Enumerate list of trusted domains */ -static uint32 cmd_lsa_enum_trust_dom(struct cli_state *cli, int argc, char **argv) +static NTSTATUS cmd_lsa_enum_trust_dom(struct cli_state *cli, int argc, char **argv) { POLICY_HND pol; - uint32 result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; BOOL got_policy_hnd = False; DOM_SID *domain_sids; char **domain_names; @@ -269,7 +272,7 @@ static uint32 cmd_lsa_enum_trust_dom(struct cli_state *cli, int argc, char **arg if (argc != 1) { printf("Usage: %s\n", argv[0]); - return 0; + return NT_STATUS_OK; } if (!(mem_ctx = talloc_init())) { @@ -284,9 +287,10 @@ static uint32 cmd_lsa_enum_trust_dom(struct cli_state *cli, int argc, char **arg return NT_STATUS_UNSUCCESSFUL; } - if ((result = cli_lsa_open_policy(cli, mem_ctx, True, - SEC_RIGHTS_MAXIMUM_ALLOWED, - &pol)) != NT_STATUS_OK) { + result = cli_lsa_open_policy(cli, mem_ctx, True, + SEC_RIGHTS_MAXIMUM_ALLOWED, + &pol); + if (!NT_STATUS_IS_OK(result)) { goto done; } @@ -294,10 +298,10 @@ static uint32 cmd_lsa_enum_trust_dom(struct cli_state *cli, int argc, char **arg /* Lookup list of trusted domains */ - if ((result = cli_lsa_enum_trust_dom(cli, mem_ctx, &pol, &enum_ctx, - &num_domains, &domain_names, - &domain_sids) - != NT_STATUS_OK)) { + result = cli_lsa_enum_trust_dom(cli, mem_ctx, &pol, &enum_ctx, + &num_domains, &domain_names, + &domain_sids); + if (!NT_STATUS_IS_OK(result)) { goto done; } diff --git a/source3/rpcclient/cmd_samr.c b/source3/rpcclient/cmd_samr.c index fb0916b4a5..69f6e77cba 100644 --- a/source3/rpcclient/cmd_samr.c +++ b/source3/rpcclient/cmd_samr.c @@ -141,8 +141,8 @@ void display_sam_info_1(SAM_ENTRY1 *e1, SAM_STR1 *s1) static uint32 cmd_samr_query_user(struct cli_state *cli, int argc, char **argv) { POLICY_HND connect_pol, domain_pol, user_pol; - uint32 result = NT_STATUS_UNSUCCESSFUL, - info_level = 21; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; + uint32 info_level = 21; BOOL got_connect_pol = False, got_domain_pol = False, got_user_pol = False; diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index 572b6cc620..57ae56521d 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -192,7 +192,8 @@ static void get_username (char *username) void fetch_domain_sid(struct cli_state *cli) { POLICY_HND pol; - uint32 result = 0, info_class = 5; + NTSTATUS result = NT_STATUS_OK; + uint32 info_class = 5; fstring domain_name; static BOOL got_domain_sid; TALLOC_CTX *mem_ctx; @@ -211,15 +212,16 @@ void fetch_domain_sid(struct cli_state *cli) goto error; } - if ((result = cli_lsa_open_policy(cli, mem_ctx, True, - SEC_RIGHTS_MAXIMUM_ALLOWED, - &pol) != NT_STATUS_OK)) { + result = cli_lsa_open_policy(cli, mem_ctx, True, + SEC_RIGHTS_MAXIMUM_ALLOWED, + &pol); + if (!NT_STATUS_IS_OK(result)) { goto error; } - if ((result = cli_lsa_query_info_policy(cli, mem_ctx, &pol, info_class, - domain_name, &domain_sid)) - != NT_STATUS_OK) { + result = cli_lsa_query_info_policy(cli, mem_ctx, &pol, info_class, + domain_name, &domain_sid); + if (!NT_STATUS_IS_OK(result)) { goto error; } @@ -234,7 +236,7 @@ void fetch_domain_sid(struct cli_state *cli) error: fprintf(stderr, "could not obtain sid for domain %s\n", cli->domain); - if (result != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(result)) { fprintf(stderr, "error: %s\n", get_nt_error_msg(result)); } @@ -323,7 +325,7 @@ static uint32 cmd_help(struct cli_state *cli, int argc, char **argv) /* Change the debug level */ -static uint32 cmd_debuglevel(struct cli_state *cli, int argc, char **argv) +static NTSTATUS cmd_debuglevel(struct cli_state *cli, int argc, char **argv) { if (argc > 2) { printf("Usage: %s [debuglevel]\n", argv[0]); @@ -339,7 +341,7 @@ static uint32 cmd_debuglevel(struct cli_state *cli, int argc, char **argv) return NT_STATUS_OK; } -static uint32 cmd_quit(struct cli_state *cli, int argc, char **argv) +static NTSTATUS cmd_quit(struct cli_state *cli, int argc, char **argv) { exit(0); return NT_STATUS_OK; /* NOTREACHED */ @@ -403,10 +405,10 @@ void add_command_set(struct cmd_set *cmd_set) DLIST_ADD(cmd_list, entry); } -static uint32 do_cmd(struct cli_state *cli, struct cmd_set *cmd_entry, char *cmd) +static NTSTATUS do_cmd(struct cli_state *cli, struct cmd_set *cmd_entry, char *cmd) { char *p = cmd, **argv = NULL; - uint32 result; + NTSTATUS result; pstring buf; int argc = 0, i; @@ -430,7 +432,7 @@ static uint32 do_cmd(struct cli_state *cli, struct cmd_set *cmd_entry, char *cmd if (!argv) { fprintf(stderr, "out of memory\n"); - return 0; + return NT_STATUS_OK; } p = cmd; @@ -461,20 +463,20 @@ static uint32 do_cmd(struct cli_state *cli, struct cmd_set *cmd_entry, char *cmd /* Process a command entered at the prompt or as part of -c */ -static uint32 process_cmd(struct cli_state *cli, char *cmd) +static NTSTATUS process_cmd(struct cli_state *cli, char *cmd) { struct cmd_list *temp_list; BOOL found = False; pstring buf; char *p = cmd; - uint32 result=0; + NTSTATUS result = NT_STATUS_OK; int len = 0; if (cmd[strlen(cmd) - 1] == '\n') cmd[strlen(cmd) - 1] = '\0'; if (!next_token(&p, buf, " ", sizeof(buf))) { - return 0; + return NT_STATUS_OK; } /* strip the trainly \n if it exsists */ @@ -500,10 +502,10 @@ static uint32 process_cmd(struct cli_state *cli, char *cmd) done: if (!found && buf[0]) { printf("command not found: %s\n", buf); - return 0; + return NT_STATUS_OK; } - if (result != 0) { + if (!NT_STATUS_IS_OK(result)) { printf("result was %s\n", get_nt_error_msg(result)); } diff --git a/source3/smbd/auth.c b/source3/smbd/auth.c index d6bc8aeadc..b707c38c62 100644 --- a/source3/smbd/auth.c +++ b/source3/smbd/auth.c @@ -68,15 +68,15 @@ NTSTATUS check_password(const auth_usersupplied_info *user_info, return NT_STATUS_LOGON_FAILURE; } - if (nt_status != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(nt_status)) { nt_status = check_rhosts_security(user_info, server_info); } - if ((lp_security() == SEC_DOMAIN) && (nt_status != NT_STATUS_OK)) { + if ((lp_security() == SEC_DOMAIN) && !NT_STATUS_IS_OK(nt_status)) { nt_status = check_domain_security(user_info, server_info); } - if ((lp_security() == SEC_SERVER) && (nt_status != NT_STATUS_OK)) { + if ((lp_security() == SEC_SERVER) && !NT_STATUS_IS_OK(nt_status)) { nt_status = check_server_security(user_info, server_info); } @@ -84,7 +84,7 @@ NTSTATUS check_password(const auth_usersupplied_info *user_info, smb_user_control(user_info->smb_username.str, nt_status); } - if (nt_status != NT_STATUS_OK) { + if (!NT_STATUS_IS_OK(nt_status)) { if ((user_info->plaintext_password.len > 0) && (!lp_plaintext_to_smbpasswd())) { nt_status = check_unix_security(user_info, server_info); @@ -94,14 +94,14 @@ NTSTATUS check_password(const auth_usersupplied_info *user_info, } } - if ((nt_status == NT_STATUS_OK) && !done_pam) { + if (NT_STATUS_IS_OK(nt_status) && !done_pam) { /* We might not be root if we are an RPC call */ become_root(); nt_status = smb_pam_accountcheck(user_info->smb_username.str); unbecome_root(); } - if (nt_status == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(nt_status)) { DEBUG(5, ("check_password: Password for user %s suceeded\n", user_info->smb_username.str)); } else { DEBUG(3, ("check_password: Password for user %s FAILED with error %s\n", user_info->smb_username.str, get_nt_error_msg(nt_status))); @@ -233,11 +233,11 @@ BOOL password_ok(char *user, char *password, int pwlen) /* The password could be either NTLM or plain LM. Try NTLM first, but fall-through as required. */ - if (pass_check_smb(user, lp_workgroup(), NULL, 0, (unsigned char *)password, pwlen) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(pass_check_smb(user, lp_workgroup(), NULL, 0, (unsigned char *)password, pwlen))) { return True; } - if (pass_check_smb(user, lp_workgroup(), (unsigned char *)password, pwlen, NULL, 0) == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(pass_check_smb(user, lp_workgroup(), (unsigned char *)password, pwlen, NULL, 0))) { return True; } diff --git a/source3/smbd/auth_domain.c b/source3/smbd/auth_domain.c index d9d7b6fd40..111f0f143c 100644 --- a/source3/smbd/auth_domain.c +++ b/source3/smbd/auth_domain.c @@ -30,10 +30,10 @@ BOOL global_machine_password_needs_changing = False; Check for a valid username and password in security=domain mode. ****************************************************************************/ -uint32 check_domain_security(const auth_usersupplied_info *user_info, - auth_serversupplied_info *server_info) +NTSTATUS check_domain_security(const auth_usersupplied_info *user_info, + auth_serversupplied_info *server_info) { - uint32 nt_status = NT_STATUS_LOGON_FAILURE; + NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE; char *p, *pserver; unsigned char trust_passwd[16]; time_t last_change_time; diff --git a/source3/smbd/auth_rhosts.c b/source3/smbd/auth_rhosts.c index a4914f2ef1..ffb9212264 100644 --- a/source3/smbd/auth_rhosts.c +++ b/source3/smbd/auth_rhosts.c @@ -168,10 +168,10 @@ BOOL check_hosts_equiv(char *user) Check for a valid .rhosts/hosts.equiv entry for this user ****************************************************************************/ -uint32 check_rhosts_security(const auth_usersupplied_info *user_info, +NTSTATUS check_rhosts_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { - uint32 nt_status = NT_STATUS_LOGON_FAILURE; + NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE; become_root(); if (check_hosts_equiv(user_info->smb_username.str)) { diff --git a/source3/smbd/auth_server.c b/source3/smbd/auth_server.c index 9636094fa3..b279152f74 100644 --- a/source3/smbd/auth_server.c +++ b/source3/smbd/auth_server.c @@ -113,14 +113,14 @@ struct cli_state *server_cryptkey(void) Validate a password with the password server. ****************************************************************************/ -static uint32 server_validate(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) +static NTSTATUS server_validate(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { struct cli_state *cli; static unsigned char badpass[24]; static fstring baduser; static BOOL tested_password_server = False; static BOOL bad_password_server = False; - uint32 nt_status = NT_STATUS_LOGON_FAILURE; + NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE; cli = server_client(); @@ -232,14 +232,13 @@ use this machine as the password server.\n")); Check for a valid username and password in security=server mode. ****************************************************************************/ -uint32 check_server_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) +NTSTATUS check_server_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { if(lp_security() != SEC_SERVER) return NT_STATUS_LOGON_FAILURE; return server_validate(user_info, server_info); - } diff --git a/source3/smbd/auth_smbpasswd.c b/source3/smbd/auth_smbpasswd.c index 5484758167..33b0623643 100644 --- a/source3/smbd/auth_smbpasswd.c +++ b/source3/smbd/auth_smbpasswd.c @@ -109,7 +109,7 @@ static BOOL smb_pwd_check_ntlmv2(const uchar *password, size_t pwd_len, Do a specific test for an smb password being correct, given a smb_password and the lanman and NT responses. ****************************************************************************/ -uint32 smb_password_ok(SAM_ACCOUNT *sampass, const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) +NTSTATUS smb_password_ok(SAM_ACCOUNT *sampass, const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { uint8 *nt_pw, *lm_pw; uint16 acct_ctrl; @@ -202,11 +202,11 @@ SMB hash supplied in the user_info structure return an NT_STATUS constant. ****************************************************************************/ -uint32 check_smbpasswd_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) +NTSTATUS check_smbpasswd_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { SAM_ACCOUNT *sampass=NULL; BOOL ret; - uint32 nt_status; + NTSTATUS nt_status; pdb_init_sam(&sampass); @@ -220,7 +220,7 @@ uint32 check_smbpasswd_security(const auth_usersupplied_info *user_info, auth_se { DEBUG(1,("Couldn't find user '%s' in passdb file.\n", user_info->smb_username.str)); pdb_free_sam(sampass); - return(NT_STATUS_NO_SUCH_USER); + return NT_STATUS_NO_SUCH_USER; } nt_status = smb_password_ok(sampass, user_info, server_info); diff --git a/source3/smbd/auth_unix.c b/source3/smbd/auth_unix.c index fda44fd91c..1708320961 100644 --- a/source3/smbd/auth_unix.c +++ b/source3/smbd/auth_unix.c @@ -68,9 +68,9 @@ check if a username/password is OK assuming the password in PLAIN TEXT ****************************************************************************/ -uint32 check_unix_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) +NTSTATUS check_unix_security(const auth_usersupplied_info *user_info, auth_serversupplied_info *server_info) { - uint32 nt_status; + NTSTATUS nt_status; become_root(); nt_status = (pass_check(user_info->smb_username.str, user_info->plaintext_password.str, diff --git a/source3/smbd/auth_util.c b/source3/smbd/auth_util.c index 5ccf963889..28f58eb8ae 100644 --- a/source3/smbd/auth_util.c +++ b/source3/smbd/auth_util.c @@ -101,11 +101,11 @@ static int smb_delete_user(char *unix_user) Add and Delete UNIX users on demand, based on NT_STATUS codes. ****************************************************************************/ -void smb_user_control(char *unix_user, uint32 nt_status) +void smb_user_control(char *unix_user, NTSTATUS nt_status) { struct passwd *pwd=NULL; - if(nt_status == NT_STATUS_OK) { + if (NT_STATUS_IS_OK(nt_status)) { /* * User validated ok against Domain controller. * If the admin wants us to try and create a UNIX @@ -127,7 +127,7 @@ void smb_user_control(char *unix_user, uint32 nt_status) smb_create_user(unix_user, pwd->pw_dir); } - } else if (nt_status == NT_STATUS_NO_SUCH_USER) { + } else if (NT_STATUS_V(nt_status) == NT_STATUS_V(NT_STATUS_NO_SUCH_USER)) { /* * User failed to validate ok against Domain controller. * If the failure was "user doesn't exist" and admin diff --git a/source3/smbd/error.c b/source3/smbd/error.c index a74b62de01..6b5a4b27b1 100644 --- a/source3/smbd/error.c +++ b/source3/smbd/error.c @@ -84,7 +84,7 @@ int unix_error_packet(char *outbuf,int def_class,uint32 def_code,int line) } } - return error_packet(outbuf,NT_STATUS(0),eclass,ecode,line); + return error_packet(outbuf,NT_STATUS_OK,eclass,ecode,line); } diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c index 21d18fc88c..eb0e7154a2 100644 --- a/source3/smbd/lanman.c +++ b/source3/smbd/lanman.c @@ -2016,6 +2016,7 @@ static BOOL api_RDosPrintJobDel(connection_struct *conn,uint16 vuid, char *param char *p = skip_string(str2,1); int jobid, errcode; extern struct current_user current_user; + WERROR werr = WERR_OK; jobid = SVAL(p,0); @@ -2036,18 +2037,21 @@ static BOOL api_RDosPrintJobDel(connection_struct *conn,uint16 vuid, char *param switch (function) { case 81: /* delete */ - if (print_job_delete(¤t_user, jobid, &errcode)) + if (print_job_delete(¤t_user, jobid, &werr)) errcode = NERR_Success; break; case 82: /* pause */ - if (print_job_pause(¤t_user, jobid, &errcode)) + if (print_job_pause(¤t_user, jobid, &werr)) errcode = NERR_Success; break; case 83: /* resume */ - if (print_job_resume(¤t_user, jobid, &errcode)) + if (print_job_resume(¤t_user, jobid, &werr)) errcode = NERR_Success; break; } + + if (!W_ERROR_IS_OK(werr)) + errcode = W_ERROR_V(werr); out: SSVAL(*rparam,0,errcode); @@ -2070,6 +2074,7 @@ static BOOL api_WPrintQueueCtrl(connection_struct *conn,uint16 vuid, char *param char *QueueName = skip_string(str2,1); int errcode = NERR_notsupported; int snum; + WERROR werr = WERR_OK; extern struct current_user current_user; /* check it's a supported varient */ @@ -2089,16 +2094,18 @@ static BOOL api_WPrintQueueCtrl(connection_struct *conn,uint16 vuid, char *param switch (function) { case 74: /* Pause queue */ - if (print_queue_pause(¤t_user, snum, &errcode)) errcode = NERR_Success; + if (print_queue_pause(¤t_user, snum, &werr)) errcode = NERR_Success; break; case 75: /* Resume queue */ - if (print_queue_resume(¤t_user, snum, &errcode)) errcode = NERR_Success; + if (print_queue_resume(¤t_user, snum, &werr)) errcode = NERR_Success; break; case 103: /* Purge */ - if (print_queue_purge(¤t_user, snum, &errcode)) errcode = NERR_Success; + if (print_queue_purge(¤t_user, snum, &werr)) errcode = NERR_Success; break; } + if (!W_ERROR_IS_OK(werr)) errcode = W_ERROR_V(werr); + out: SSVAL(*rparam,0,errcode); SSVAL(*rparam,2,0); /* converter word */ diff --git a/source3/smbd/notify.c b/source3/smbd/notify.c index a2a979b776..5aa0b4ad3f 100644 --- a/source3/smbd/notify.c +++ b/source3/smbd/notify.c @@ -47,7 +47,7 @@ static struct change_notify *change_notify_list; /**************************************************************************** Setup the common parts of the return packet and send it. *****************************************************************************/ -static void change_notify_reply_packet(char *inbuf, uint32 error_code) +static void change_notify_reply_packet(char *inbuf, NTSTATUS error_code) { char outbuf[smb_size+38]; diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c index 8a70e69365..aee5aa7798 100644 --- a/source3/smbd/nttrans.c +++ b/source3/smbd/nttrans.c @@ -1435,37 +1435,35 @@ static int call_nt_transact_rename(connection_struct *conn, int bufsize, char **ppsetup, char **ppparams, char **ppdata) { - char *params = *ppparams; - pstring new_name; - files_struct *fsp = file_fsp(params, 0); - BOOL replace_if_exists = (SVAL(params,2) & RENAME_REPLACE_IF_EXISTS) ? True : False; - int outsize = 0; - - CHECK_FSP(fsp, conn); - srvstr_pull(inbuf, new_name, params+4, sizeof(new_name), -1, STR_TERMINATE); - - outsize = rename_internals(conn, inbuf, outbuf, fsp->fsp_name, - new_name, replace_if_exists); - if(outsize == 0) { - /* - * Rename was successful. - */ - send_nt_replies(inbuf, outbuf, bufsize, NT_STATUS_OK, NULL, 0, NULL, 0); + char *params = *ppparams; + pstring new_name; + files_struct *fsp = file_fsp(params, 0); + BOOL replace_if_exists = (SVAL(params,2) & RENAME_REPLACE_IF_EXISTS) ? True : False; + NTSTATUS status; - DEBUG(3,("nt transact rename from = %s, to = %s succeeded.\n", - fsp->fsp_name, new_name)); + CHECK_FSP(fsp, conn); + srvstr_pull(inbuf, new_name, params+4, sizeof(new_name), -1, STR_TERMINATE); - outsize = -1; + status = rename_internals(conn, fsp->fsp_name, + new_name, replace_if_exists); + if (!NT_STATUS_IS_OK(status)) return ERROR_NT(status); /* + * Rename was successful. + */ + send_nt_replies(inbuf, outbuf, bufsize, NT_STATUS_OK, NULL, 0, NULL, 0); + + DEBUG(3,("nt transact rename from = %s, to = %s succeeded.\n", + fsp->fsp_name, new_name)); + + /* * Win2k needs a changenotify request response before it will * update after a rename.. */ - + process_pending_change_notify_queue((time_t)0); - } - return(outsize); + return -1; } diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 8b392e9e0a..73cfd5ac85 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -499,7 +499,7 @@ static int session_trust_account(connection_struct *conn, char *inbuf, char *out return(ERROR_NT(NT_STATUS_LOGON_FAILURE)); } - if (!smb_password_ok(sam_trust_acct, &user_info, &server_info)) { + if (!NT_STATUS_IS_OK(smb_password_ok(sam_trust_acct, &user_info, &server_info))) { DEBUG(0,("session_trust_account: Trust Account %s - password failed\n", user)); pdb_free_sam(sam_trust_acct); return(ERROR_NT(NT_STATUS_LOGON_FAILURE)); @@ -1751,14 +1751,13 @@ static BOOL can_delete(char *fname,connection_struct *conn, int dirtype) code. ****************************************************************************/ -int unlink_internals(connection_struct *conn, char *inbuf,char *outbuf, - int dirtype, char *name) +NTSTATUS unlink_internals(connection_struct *conn, int dirtype, char *name) { pstring directory; pstring mask; char *p; int count=0; - int error = ERRnoaccess; + NTSTATUS error = NT_STATUS_OK; BOOL has_wild; BOOL exists=False; BOOL bad_path = False; @@ -1797,7 +1796,7 @@ int unlink_internals(connection_struct *conn, char *inbuf,char *outbuf, pstrcat(directory,"/"); pstrcat(directory,mask); if (!can_delete(directory,conn,dirtype)) { - return ERROR_NT(NT_STATUS_SHARING_VIOLATION); + return NT_STATUS_SHARING_VIOLATION; } if (vfs_unlink(conn,directory) == 0) { count++; @@ -1817,7 +1816,7 @@ int unlink_internals(connection_struct *conn, char *inbuf,char *outbuf, */ if (dirptr) { - error = ERRbadfile; + error = NT_STATUS_OBJECT_NAME_NOT_FOUND; if (strequal(mask,"????????.???")) pstrcpy(mask,"*"); @@ -1828,7 +1827,7 @@ int unlink_internals(connection_struct *conn, char *inbuf,char *outbuf, if(!mask_match(fname, mask, case_sensitive)) continue; - error = ERRnoaccess; + error = NT_STATUS_ACCESS_DENIED; slprintf(fname,sizeof(fname)-1, "%s/%s",directory,dname); if (!can_delete(fname,conn,dirtype)) continue; if (vfs_unlink(conn,fname) == 0) count++; @@ -1838,19 +1837,11 @@ int unlink_internals(connection_struct *conn, char *inbuf,char *outbuf, } } - if (count == 0) { - if (exists) - return ERROR_DOS(ERRDOS,error); - else { - if((errno == ENOENT) && bad_path) { - unix_ERR_class = ERRDOS; - unix_ERR_code = ERRbadpath; - } - return(UNIXERROR(ERRDOS,error)); - } + if (count == 0 && NT_STATUS_IS_OK(error)) { + error = map_nt_error_from_unix(errno); } - - return 0; + + return error; } /**************************************************************************** @@ -1863,6 +1854,7 @@ int reply_unlink(connection_struct *conn, char *inbuf,char *outbuf, int dum_size int outsize = 0; pstring name; int dirtype; + NTSTATUS status; START_PROFILE(SMBunlink); dirtype = SVAL(inbuf,smb_vwv0); @@ -1873,16 +1865,16 @@ int reply_unlink(connection_struct *conn, char *inbuf,char *outbuf, int dum_size DEBUG(3,("reply_unlink : %s\n",name)); - outsize = unlink_internals(conn, inbuf, outbuf, dirtype, name); - if(outsize == 0) { - /* - * Win2k needs a changenotify request response before it will - * update after a rename.. - */ - process_pending_change_notify_queue((time_t)0); - - outsize = set_message(outbuf,0,0,True); - } + status = unlink_internals(conn, dirtype, name); + if (!NT_STATUS_IS_OK(status)) return ERROR_NT(status); + + /* + * Win2k needs a changenotify request response before it will + * update after a rename.. + */ + process_pending_change_notify_queue((time_t)0); + + outsize = set_message(outbuf,0,0,True); END_PROFILE(SMBunlink); return outsize; @@ -3171,28 +3163,22 @@ int reply_printwrite(connection_struct *conn, char *inbuf,char *outbuf, int dum_ The guts of the mkdir command, split out so it may be called by the NT SMB code. ****************************************************************************/ -int mkdir_internal(connection_struct *conn, char *inbuf, char *outbuf, pstring directory) +NTSTATUS mkdir_internal(connection_struct *conn, pstring directory) { - BOOL bad_path = False; - SMB_STRUCT_STAT sbuf; - int ret= -1; - - unix_convert(directory,conn,0,&bad_path,&sbuf); - - if (check_name(directory, conn)) - ret = vfs_mkdir(conn,directory,unix_mode(conn,aDIR,directory)); - - if (ret < 0) - { - if((errno == ENOENT) && bad_path) - { - unix_ERR_class = ERRDOS; - unix_ERR_code = ERRbadpath; - } - return(UNIXERROR(ERRDOS,ERRnoaccess)); - } - - return ret; + BOOL bad_path = False; + SMB_STRUCT_STAT sbuf; + int ret= -1; + + unix_convert(directory,conn,0,&bad_path,&sbuf); + + if (check_name(directory, conn)) + ret = vfs_mkdir(conn,directory,unix_mode(conn,aDIR,directory)); + + if (ret == -1) { + return map_nt_error_from_unix(errno); + } + + return NT_STATUS_OK; } /**************************************************************************** @@ -3203,13 +3189,15 @@ int reply_mkdir(connection_struct *conn, char *inbuf,char *outbuf, int dum_size, { pstring directory; int outsize; + NTSTATUS status; START_PROFILE(SMBmkdir); srvstr_pull(inbuf, directory, smb_buf(inbuf) + 1, sizeof(directory), -1, STR_TERMINATE); - outsize=mkdir_internal(conn, inbuf, outbuf, directory); - if(outsize == 0) - outsize = set_message(outbuf,0,0,True); + status = mkdir_internal(conn, directory); + if (!NT_STATUS_IS_OK(status)) return ERROR_NT(status); + + outsize = set_message(outbuf,0,0,True); DEBUG( 3, ( "mkdir %s ret=%d\n", directory, outsize ) ); @@ -3478,9 +3466,9 @@ static BOOL can_rename(char *fname,connection_struct *conn) The guts of the rename command, split out so it may be called by the NT SMB code. ****************************************************************************/ -int rename_internals(connection_struct *conn, - char *inbuf, char *outbuf, char *name, - char *newname, BOOL replace_if_exists) +NTSTATUS rename_internals(connection_struct *conn, + char *name, + char *newname, BOOL replace_if_exists) { pstring directory; pstring mask; @@ -3490,7 +3478,7 @@ int rename_internals(connection_struct *conn, BOOL bad_path1 = False; BOOL bad_path2 = False; int count=0; - int error = ERRnoaccess; + NTSTATUS error = NT_STATUS_OK; BOOL exists=False; BOOL rc = True; SMB_STRUCT_STAT sbuf1, sbuf2; @@ -3600,13 +3588,13 @@ int rename_internals(connection_struct *conn, if(resolve_wildcards(directory,newname) && can_rename(directory,conn) && - !conn->vfs_ops.rename(conn,directory,newname)) + conn->vfs_ops.rename(conn,directory,newname) == 0) count++; } else { if (resolve_wildcards(directory,newname) && can_rename(directory,conn) && !vfs_file_exist(conn,newname,NULL) && - !conn->vfs_ops.rename(conn,directory,newname)) + conn->vfs_ops.rename(conn,directory,newname) == 0) count++; } @@ -3616,7 +3604,7 @@ int rename_internals(connection_struct *conn, if (!count) exists = vfs_file_exist(conn,directory,NULL); if (!count && exists && vfs_file_exist(conn,newname,NULL)) { exists = True; - error = ERRrename; + error = NT_STATUS_OBJECT_NAME_COLLISION; } } else { /* @@ -3630,7 +3618,7 @@ int rename_internals(connection_struct *conn, dirptr = OpenDir(conn, directory, True); if (dirptr) { - error = ERRbadfile; + error = NT_STATUS_OBJECT_NAME_NOT_FOUND; if (strequal(mask,"????????.???")) pstrcpy(mask,"*"); @@ -3643,7 +3631,7 @@ int rename_internals(connection_struct *conn, if(!mask_match(fname, mask, case_sensitive)) continue; - error = ERRnoaccess; + error = NT_STATUS_ACCESS_DENIED; slprintf(fname,sizeof(fname)-1,"%s/%s",directory,dname); if (!can_rename(fname,conn)) { DEBUG(6,("rename %s refused\n", fname)); @@ -3660,7 +3648,7 @@ int rename_internals(connection_struct *conn, if (!replace_if_exists && vfs_file_exist(conn,destname, NULL)) { DEBUG(6,("file_exist %s\n", destname)); - error = 183; + error = NT_STATUS_OBJECT_NAME_COLLISION; continue; } @@ -3672,59 +3660,52 @@ int rename_internals(connection_struct *conn, } } - if (count == 0) { - if (exists) - return ERROR_DOS(ERRDOS,error); - else { - if((errno == ENOENT) && (bad_path1 || bad_path2)) { - unix_ERR_class = ERRDOS; - unix_ERR_code = ERRbadpath; - } - return(UNIXERROR(ERRDOS,error)); - } + if (count == 0 && NT_STATUS_IS_OK(error)) { + error = map_nt_error_from_unix(errno); } - return 0; + return error; } /**************************************************************************** Reply to a mv. ****************************************************************************/ -int reply_mv(connection_struct *conn, char *inbuf,char *outbuf, int dum_size, int dum_buffsize) +int reply_mv(connection_struct *conn, char *inbuf,char *outbuf, int dum_size, + int dum_buffsize) { - int outsize = 0; - pstring name; - pstring newname; - char *p; - - START_PROFILE(SMBmv); - - p = smb_buf(inbuf) + 1; - p += srvstr_pull(inbuf, name, p, sizeof(name), -1, STR_TERMINATE); - p++; - p += srvstr_pull(inbuf, newname, p, sizeof(newname), -1, STR_TERMINATE); - - RESOLVE_DFSPATH(name, conn, inbuf, outbuf); - RESOLVE_DFSPATH(newname, conn, inbuf, outbuf); + int outsize = 0; + pstring name; + pstring newname; + char *p; + NTSTATUS status; - DEBUG(3,("reply_mv : %s -> %s\n",name,newname)); + START_PROFILE(SMBmv); - outsize = rename_internals(conn, inbuf, outbuf, name, newname, False); - if(outsize == 0) { + p = smb_buf(inbuf) + 1; + p += srvstr_pull(inbuf, name, p, sizeof(name), -1, STR_TERMINATE); + p++; + p += srvstr_pull(inbuf, newname, p, sizeof(newname), -1, STR_TERMINATE); + + RESOLVE_DFSPATH(name, conn, inbuf, outbuf); + RESOLVE_DFSPATH(newname, conn, inbuf, outbuf); + + DEBUG(3,("reply_mv : %s -> %s\n",name,newname)); + + status = rename_internals(conn, name, newname, False); + if (!NT_STATUS_IS_OK(status)) { + return ERROR_NT(status); + } /* - * Win2k needs a changenotify request response before it will - * update after a rename.. - */ - - process_pending_change_notify_queue((time_t)0); - - outsize = set_message(outbuf,0,0,True); - } + * Win2k needs a changenotify request response before it will + * update after a rename.. + */ + process_pending_change_notify_queue((time_t)0); + outsize = set_message(outbuf,0,0,True); - END_PROFILE(SMBmv); - return(outsize); + END_PROFILE(SMBmv); + return(outsize); } /******************************************************************* diff --git a/source3/utils/smbpasswd.c b/source3/utils/smbpasswd.c index 74b9916d93..74f4e8833a 100644 --- a/source3/utils/smbpasswd.c +++ b/source3/utils/smbpasswd.c @@ -162,13 +162,13 @@ Join a domain using the administrator username and password /* Macro for checking RPC error codes to make things more readable */ #define CHECK_RPC_ERR(rpc, msg) \ - if ((result = rpc) != NT_STATUS_OK) { \ + if (!NT_STATUS_IS_OK(result = rpc)) { \ DEBUG(0, (msg ": %s\n", get_nt_error_msg(result))); \ goto done; \ } #define CHECK_RPC_ERR_DEBUG(rpc, debug_args) \ - if ((result = rpc) != NT_STATUS_OK) { \ + if (!NT_STATUS_IS_OK(result = rpc)) { \ DEBUG(0, debug_args); \ goto done; \ } @@ -203,7 +203,7 @@ static int join_domain_byuser(char *domain, char *remote_machine, /* Misc */ - uint32 result; + NTSTATUS result; int retval = 1; /* Connect to remote machine */ @@ -301,7 +301,7 @@ static int join_domain_byuser(char *domain, char *remote_machine, result = NT_STATUS_USER_EXISTS; } - if (result == NT_STATUS_USER_EXISTS) { + if (NT_STATUS_V(result) == NT_STATUS_V(NT_STATUS_USER_EXISTS)) { uint32 num_rids, *name_types, *user_rids; uint32 flags = 0x3e8; char *names; @@ -334,7 +334,7 @@ static int join_domain_byuser(char *domain, char *remote_machine, ("could not re-open existing user %s: %s\n", acct_name, get_nt_error_msg(result))); - } else if (result != NT_STATUS_OK) { + } else if (!NT_STATUS_IS_OK(result)) { DEBUG(0, ("error creating domain user: %s\n", get_nt_error_msg(result))); goto done; |