Remove all calls to reply_doserror - turn them into
authorJeremy Allison <jra@samba.org>
Mon, 21 Dec 2009 19:05:25 +0000 (11:05 -0800)
committerJeremy Allison <jra@samba.org>
Mon, 21 Dec 2009 19:05:25 +0000 (11:05 -0800)
correct reply_nterror calls. Next rename reply_doserror ->
reply_force_doserror and plumb in when NT_STATUS_DOS is
used.
Jeremy.

source3/smbd/message.c
source3/smbd/nttrans.c
source3/smbd/pipes.c
source3/smbd/process.c
source3/smbd/reply.c
source3/smbd/trans2.c

index e6d5f451cd5d687697f5c26f1bbd8b28e2218b14..82b3dc30a223eb2c7ebe9bd02ce81b6a4cc57e84 100644 (file)
@@ -145,7 +145,7 @@ void reply_sends(struct smb_request *req)
        START_PROFILE(SMBsends);
 
        if (!(*lp_msg_command())) {
-               reply_doserror(req, ERRSRV, ERRmsgoff);
+               reply_nterror(req, NT_STATUS_REQUEST_NOT_ACCEPTED);
                END_PROFILE(SMBsends);
                return;
        }
@@ -193,7 +193,7 @@ void reply_sendstrt(struct smb_request *req)
        START_PROFILE(SMBsendstrt);
 
        if (!(*lp_msg_command())) {
-               reply_doserror(req, ERRSRV, ERRmsgoff);
+               reply_nterror(req, NT_STATUS_REQUEST_NOT_ACCEPTED);
                END_PROFILE(SMBsendstrt);
                return;
        }
@@ -240,7 +240,7 @@ void reply_sendtxt(struct smb_request *req)
        START_PROFILE(SMBsendtxt);
 
        if (! (*lp_msg_command())) {
-               reply_doserror(req, ERRSRV, ERRmsgoff);
+               reply_nterror(req, NT_STATUS_REQUEST_NOT_ACCEPTED);
                END_PROFILE(SMBsendtxt);
                return;
        }
@@ -288,7 +288,7 @@ void reply_sendend(struct smb_request *req)
        START_PROFILE(SMBsendend);
 
        if (! (*lp_msg_command())) {
-               reply_doserror(req, ERRSRV, ERRmsgoff);
+               reply_nterror(req, NT_STATUS_REQUEST_NOT_ACCEPTED);
                END_PROFILE(SMBsendend);
                return;
        }
index be50090192df017f67d972d9e971ebd131ecffb9..656375499f5efde690b59170bd3c439e08a247f1 100644 (file)
@@ -512,7 +512,7 @@ void reply_ntcreate_and_X(struct smb_request *req)
                        do_ntcreate_pipe_open(conn, req);
                        goto out;
                }
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                goto out;
        }
 
@@ -752,7 +752,7 @@ static void do_nt_transact_create_pipe(connection_struct *conn,
 
        if(parameter_count < 54) {
                DEBUG(0,("do_nt_transact_create_pipe - insufficient parameters (%u)\n", (unsigned int)parameter_count));
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                return;
        }
 
@@ -782,7 +782,7 @@ static void do_nt_transact_create_pipe(connection_struct *conn,
        }
        params = nttrans_realloc(ppparams, param_len);
        if(params == NULL) {
-               reply_doserror(req, ERRDOS, ERRnomem);
+               reply_nterror(req, NT_STATUS_NO_MEMORY);
                return;
        }
 
@@ -957,7 +957,7 @@ static void call_nt_transact_create(connection_struct *conn,
                                ppdata, data_count);
                        goto out;
                }
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                goto out;
        }
 
@@ -1159,7 +1159,7 @@ static void call_nt_transact_create(connection_struct *conn,
        }
        params = nttrans_realloc(ppparams, param_len);
        if(params == NULL) {
-               reply_doserror(req, ERRDOS, ERRnomem);
+               reply_nterror(req, NT_STATUS_NO_MEMORY);
                goto out;
        }
 
@@ -1595,7 +1595,7 @@ static void call_nt_transact_notify_change(connection_struct *conn,
        bool recursive;
 
        if(setup_count < 6) {
-               reply_doserror(req, ERRDOS, ERRbadfunc);
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                return;
        }
 
@@ -1606,7 +1606,7 @@ static void call_nt_transact_notify_change(connection_struct *conn,
        DEBUG(3,("call_nt_transact_notify_change\n"));
 
        if(!fsp) {
-               reply_doserror(req, ERRDOS, ERRbadfid);
+               reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                return;
        }
 
@@ -1700,7 +1700,7 @@ static void call_nt_transact_rename(connection_struct *conn,
        TALLOC_CTX *ctx = talloc_tos();
 
         if(parameter_count < 5) {
-               reply_doserror(req, ERRDOS, ERRbadfunc);
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                return;
        }
 
@@ -1769,13 +1769,13 @@ static void call_nt_transact_query_security_desc(connection_struct *conn,
        DATA_BLOB blob;
 
         if(parameter_count < 8) {
-               reply_doserror(req, ERRDOS, ERRbadfunc);
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                return;
        }
 
        fsp = file_fsp(req, SVAL(params,0));
        if(!fsp) {
-               reply_doserror(req, ERRDOS, ERRbadfid);
+               reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                return;
        }
 
@@ -1787,7 +1787,7 @@ static void call_nt_transact_query_security_desc(connection_struct *conn,
 
        params = nttrans_realloc(ppparams, 4);
        if(params == NULL) {
-               reply_doserror(req, ERRDOS, ERRnomem);
+               reply_nterror(req, NT_STATUS_NO_MEMORY);
                return;
        }
 
@@ -1839,7 +1839,7 @@ static void call_nt_transact_query_security_desc(connection_struct *conn,
 
        data = nttrans_realloc(ppdata, sd_size);
        if(data == NULL) {
-               reply_doserror(req, ERRDOS, ERRnomem);
+               reply_nterror(req, NT_STATUS_NO_MEMORY);
                return;
        }
 
@@ -1880,12 +1880,12 @@ static void call_nt_transact_set_security_desc(connection_struct *conn,
        NTSTATUS status;
 
        if(parameter_count < 8) {
-               reply_doserror(req, ERRDOS, ERRbadfunc);
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                return;
        }
 
        if((fsp = file_fsp(req, SVAL(params,0))) == NULL) {
-               reply_doserror(req, ERRDOS, ERRbadfid);
+               reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                return;
        }
 
@@ -1899,7 +1899,7 @@ static void call_nt_transact_set_security_desc(connection_struct *conn,
                 fsp_str_dbg(fsp), (unsigned int)security_info_sent));
 
        if (data_count == 0) {
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                return;
        }
 
@@ -2243,7 +2243,7 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
                DEBUG(1,("get_user_quota: access_denied service [%s] user "
                         "[%s]\n", lp_servicename(SNUM(conn)),
                         conn->server_info->unix_name));
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                return;
        }
 
@@ -2253,7 +2253,7 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
 
        if (parameter_count < 4) {
                DEBUG(0,("TRANSACT_GET_USER_QUOTA: requires %d >= 4 bytes parameters\n",parameter_count));
-               reply_doserror(req, ERRDOS, ERRinvalidparam);
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                return;
        }
 
@@ -2288,7 +2288,7 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
                                param_len = 4;
                                params = nttrans_realloc(ppparams, param_len);
                                if(params == NULL) {
-                                       reply_doserror(req, ERRDOS, ERRnomem);
+                                       reply_nterror(req, NT_STATUS_NO_MEMORY);
                                        return;
                                }
 
@@ -2308,7 +2308,7 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
                        }
 
                        if (start_enum && vfs_get_user_ntquota_list(fsp,&(qt_handle->quota_list))!=0) {
-                               reply_doserror(req, ERRSRV, ERRerror);
+                               reply_nterror(req, NT_STATUS_INTERNAL_ERROR);
                                return;
                        }
 
@@ -2316,7 +2316,7 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
                        param_len = 4;
                        params = nttrans_realloc(ppparams, param_len);
                        if(params == NULL) {
-                               reply_doserror(req, ERRDOS, ERRnomem);
+                               reply_nterror(req, NT_STATUS_NO_MEMORY);
                                return;
                        }
 
@@ -2325,7 +2325,7 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
 
                        pdata = nttrans_realloc(ppdata, max_data_count);/* should be max data count from client*/
                        if(pdata == NULL) {
-                               reply_doserror(req, ERRDOS, ERRnomem);
+                               reply_nterror(req, NT_STATUS_NO_MEMORY);
                                return;
                        }
 
@@ -2388,20 +2388,20 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
 
                        if (data_count < 8) {
                                DEBUG(0,("TRANSACT_GET_USER_QUOTA_FOR_SID: requires %d >= %d bytes data\n",data_count,8));
-                               reply_doserror(req, ERRDOS, ERRunknownlevel);
+                               reply_nterror(req, NT_STATUS_INVALID_LEVEL);
                                return;
                        }
 
                        sid_len = IVAL(pdata,4);
                        /* Ensure this is less than 1mb. */
                        if (sid_len > (1024*1024)) {
-                               reply_doserror(req, ERRDOS, ERRnomem);
+                               reply_nterror(req, NT_STATUS_NO_MEMORY);
                                return;
                        }
 
                        if (data_count < 8+sid_len) {
                                DEBUG(0,("TRANSACT_GET_USER_QUOTA_FOR_SID: requires %d >= %lu bytes data\n",data_count,(unsigned long)(8+sid_len)));
-                               reply_doserror(req, ERRDOS, ERRunknownlevel);
+                               reply_nterror(req, NT_STATUS_INVALID_LEVEL);
                                return;
                        }
 
@@ -2432,13 +2432,13 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
                        param_len = 4;
                        params = nttrans_realloc(ppparams, param_len);
                        if(params == NULL) {
-                               reply_doserror(req, ERRDOS, ERRnomem);
+                               reply_nterror(req, NT_STATUS_NO_MEMORY);
                                return;
                        }
 
                        pdata = nttrans_realloc(ppdata, data_len);
                        if(pdata == NULL) {
-                               reply_doserror(req, ERRDOS, ERRnomem);
+                               reply_nterror(req, NT_STATUS_NO_MEMORY);
                                return;
                        }
 
@@ -2472,7 +2472,7 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
 
                default:
                        DEBUG(0,("do_nt_transact_get_user_quota: fnum %d unknown level 0x%04hX\n",fsp->fnum,level));
-                       reply_doserror(req, ERRSRV, ERRerror);
+                       reply_nterror(req, NT_STATUS_INVALID_LEVEL);
                        return;
                        break;
        }
@@ -2510,7 +2510,7 @@ static void call_nt_transact_set_user_quota(connection_struct *conn,
                DEBUG(1,("set_user_quota: access_denied service [%s] user "
                         "[%s]\n", lp_servicename(SNUM(conn)),
                         conn->server_info->unix_name));
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                return;
        }
 
@@ -2520,7 +2520,7 @@ static void call_nt_transact_set_user_quota(connection_struct *conn,
 
        if (parameter_count < 2) {
                DEBUG(0,("TRANSACT_SET_USER_QUOTA: requires %d >= 2 bytes parameters\n",parameter_count));
-               reply_doserror(req, ERRDOS, ERRinvalidparam);
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                return;
        }
 
@@ -2534,7 +2534,7 @@ static void call_nt_transact_set_user_quota(connection_struct *conn,
 
        if (data_count < 40) {
                DEBUG(0,("TRANSACT_SET_USER_QUOTA: requires %d >= %d bytes data\n",data_count,40));
-               reply_doserror(req, ERRDOS, ERRunknownlevel);
+               reply_nterror(req, NT_STATUS_INVALID_LEVEL);
                return;
        }
 
@@ -2548,7 +2548,7 @@ static void call_nt_transact_set_user_quota(connection_struct *conn,
 
        if (data_count < 40+sid_len) {
                DEBUG(0,("TRANSACT_SET_USER_QUOTA: requires %d >= %lu bytes data\n",data_count,(unsigned long)40+sid_len));
-               reply_doserror(req, ERRDOS, ERRunknownlevel);
+               reply_nterror(req, NT_STATUS_INVALID_LEVEL);
                return;
        }
 
@@ -2565,7 +2565,7 @@ static void call_nt_transact_set_user_quota(connection_struct *conn,
                ((qt.usedspace != 0xFFFFFFFF)||
                (IVAL(pdata,20)!=0xFFFFFFFF))) {
                /* more than 32 bits? */
-               reply_doserror(req, ERRDOS, ERRunknownlevel);
+               reply_nterror(req, NT_STATUS_INVALID_LEVEL);
                return;
        }
 #endif /* LARGE_SMB_OFF_T */
@@ -2579,7 +2579,7 @@ static void call_nt_transact_set_user_quota(connection_struct *conn,
                ((qt.softlim != 0xFFFFFFFF)||
                (IVAL(pdata,28)!=0xFFFFFFFF))) {
                /* more than 32 bits? */
-               reply_doserror(req, ERRDOS, ERRunknownlevel);
+               reply_nterror(req, NT_STATUS_INVALID_LEVEL);
                return;
        }
 #endif /* LARGE_SMB_OFF_T */
@@ -2593,7 +2593,7 @@ static void call_nt_transact_set_user_quota(connection_struct *conn,
                ((qt.hardlim != 0xFFFFFFFF)||
                (IVAL(pdata,36)!=0xFFFFFFFF))) {
                /* more than 32 bits? */
-               reply_doserror(req, ERRDOS, ERRunknownlevel);
+               reply_nterror(req, NT_STATUS_INVALID_LEVEL);
                return;
        }
 #endif /* LARGE_SMB_OFF_T */
@@ -2604,7 +2604,7 @@ static void call_nt_transact_set_user_quota(connection_struct *conn,
        /* 44 unknown bytes left... */
 
        if (vfs_set_ntquota(fsp, SMB_USER_QUOTA_TYPE, &sid, &qt)!=0) {
-               reply_doserror(req, ERRSRV, ERRerror);
+               reply_nterror(req, NT_STATUS_INTERNAL_ERROR);
                return;
        }
 
@@ -2738,7 +2738,7 @@ static void handle_nttrans(connection_struct *conn,
                        /* Error in request */
                        DEBUG(0,("handle_nttrans: Unknown request %d in "
                                 "nttrans call\n", state->call));
-                       reply_doserror(req, ERRSRV, ERRerror);
+                       reply_nterror(req, NT_STATUS_INVALID_LEVEL);
                        return;
        }
        return;
@@ -2774,7 +2774,7 @@ void reply_nttrans(struct smb_request *req)
        function_code = SVAL(req->vwv+18, 0);
 
        if (IS_IPC(conn) && (function_code != NT_TRANSACT_CREATE)) {
-               reply_doserror(req, ERRSRV, ERRaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBnttrans);
                return;
        }
@@ -2788,7 +2788,7 @@ void reply_nttrans(struct smb_request *req)
        }
 
        if ((state = TALLOC_P(conn, struct trans_state)) == NULL) {
-               reply_doserror(req, ERRSRV, ERRaccess);
+               reply_nterror(req, NT_STATUS_NO_MEMORY);
                END_PROFILE(SMBnttrans);
                return;
        }
@@ -2834,7 +2834,7 @@ void reply_nttrans(struct smb_request *req)
        /* Don't allow more than 128mb for each value. */
        if ((state->total_data > (1024*1024*128)) ||
            (state->total_param > (1024*1024*128))) {
-               reply_doserror(req, ERRDOS, ERRnomem);
+               reply_nterror(req, NT_STATUS_NO_MEMORY);
                END_PROFILE(SMBnttrans);
                return;
        }
@@ -2855,7 +2855,7 @@ void reply_nttrans(struct smb_request *req)
                        DEBUG(0,("reply_nttrans: data malloc fail for %u "
                                 "bytes !\n", (unsigned int)state->total_data));
                        TALLOC_FREE(state);
-                       reply_doserror(req, ERRDOS, ERRnomem);
+                       reply_nterror(req, NT_STATUS_NO_MEMORY);
                        END_PROFILE(SMBnttrans);
                        return;
                }
@@ -2877,7 +2877,7 @@ void reply_nttrans(struct smb_request *req)
                                 "bytes !\n", (unsigned int)state->total_param));
                        SAFE_FREE(state->data);
                        TALLOC_FREE(state);
-                       reply_doserror(req, ERRDOS, ERRnomem);
+                       reply_nterror(req, NT_STATUS_NO_MEMORY);
                        END_PROFILE(SMBnttrans);
                        return;
                }
@@ -2910,7 +2910,7 @@ void reply_nttrans(struct smb_request *req)
                        SAFE_FREE(state->data);
                        SAFE_FREE(state->param);
                        TALLOC_FREE(state);
-                       reply_doserror(req, ERRDOS, ERRnomem);
+                       reply_nterror(req, NT_STATUS_NO_MEMORY);
                        END_PROFILE(SMBnttrans);
                        return;
                }
index 091db099872a89ea5353c16b93b36c9a897dc9c0..bf64c59afdaab9486df4d31eedcaecc92ab4b8d5 100644 (file)
@@ -105,7 +105,7 @@ void reply_open_pipe_and_X(connection_struct *conn, struct smb_request *req)
        /* at a mailslot or something we really, really don't understand, */
        /* not just something we really don't understand. */
        if ( strncmp(pipe_name,PIPE,PIPELEN) != 0 ) {
-               reply_doserror(req, ERRSRV, ERRaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                return;
        }
 
@@ -119,7 +119,7 @@ void reply_open_pipe_and_X(connection_struct *conn, struct smb_request *req)
         * Hack for NT printers... JRA.
         */
        if(should_fail_next_srvsvc_open(fname)) {
-               reply_doserror(req, ERRSRV, ERRaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                return;
        }
 #endif
@@ -171,7 +171,7 @@ void reply_pipe_write(struct smb_request *req)
        struct tevent_req *subreq;
 
        if (!fsp_is_np(fsp)) {
-               reply_doserror(req, ERRDOS, ERRbadfid);
+               reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                return;
        }
 
@@ -223,7 +223,7 @@ static void pipe_write_done(struct tevent_req *subreq)
 
        /* Looks bogus to me now. Needs to be removed ? JRA. */
        if ((nwritten == 0 && state->numtowrite != 0)) {
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                goto send;
        }
 
@@ -266,7 +266,7 @@ void reply_pipe_write_and_X(struct smb_request *req)
        struct tevent_req *subreq;
 
        if (!fsp_is_np(fsp)) {
-               reply_doserror(req, ERRDOS, ERRbadfid);
+               reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                return;
        }
 
@@ -340,7 +340,7 @@ static void pipe_write_andx_done(struct tevent_req *subreq)
 
        /* Looks bogus to me now. Is this error message correct ? JRA. */
        if (nwritten != state->numtowrite) {
-               reply_doserror(req, ERRDOS,ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                goto done;
        }
 
@@ -384,7 +384,7 @@ void reply_pipe_read_and_X(struct smb_request *req)
 #endif
 
        if (!fsp_is_np(fsp)) {
-               reply_doserror(req, ERRDOS, ERRbadfid);
+               reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                return;
        }
 
index 15d89a545043d3e5bc46e38e1aac0ed55f10b71a..18b2fd2d3086dd125f088cc399095a62ec36a3fb 100644 (file)
@@ -1335,7 +1335,7 @@ static connection_struct *switch_message(uint8 type, struct smb_request *req, in
                        if (type == SMBntcreateX) {
                                reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                        } else {
-                               reply_doserror(req, ERRSRV, ERRinvnid);
+                               reply_nterror(req, NT_STATUS_NETWORK_NAME_DELETED);
                        }
                        return NULL;
                }
@@ -1357,7 +1357,7 @@ static connection_struct *switch_message(uint8 type, struct smb_request *req, in
 
                /* IPC services are limited */
                if (IS_IPC(conn) && !(flags & CAN_IPC)) {
-                       reply_doserror(req, ERRSRV,ERRaccess);
+                       reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                        return conn;
                }
        } else {
@@ -1382,7 +1382,7 @@ static connection_struct *switch_message(uint8 type, struct smb_request *req, in
                if (!set_current_service(conn,SVAL(req->inbuf,smb_flg),
                                         (flags & (AS_USER|DO_CHDIR)
                                          ?True:False))) {
-                       reply_doserror(req, ERRSRV, ERRaccess);
+                       reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                        return conn;
                }
                conn->num_smb_operations++;
@@ -1393,7 +1393,7 @@ static connection_struct *switch_message(uint8 type, struct smb_request *req, in
            && (!change_to_guest() ||
                !check_access(smbd_server_fd(), lp_hostsallow(-1),
                              lp_hostsdeny(-1)))) {
-               reply_doserror(req, ERRSRV, ERRaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                return conn;
        }
 
index f63ffeb5c35ea0d69981fbb96ceb31c63cfd2d5c..64774ccf0dc254fe6aff041adea08c2b90e02ee0 100644 (file)
@@ -704,7 +704,7 @@ void reply_tcon_and_X(struct smb_request *req)
        }
 
        if ((passlen > MAX_PASS_LEN) || (passlen >= req->buflen)) {
-               reply_doserror(req, ERRDOS, ERRbuftoosmall);
+               reply_nterror(req, NT_STATUS_DOS(ERRDOS, ERRbuftoosmall));
                END_PROFILE(SMBtconX);
                return;
        }
@@ -744,7 +744,7 @@ void reply_tcon_and_X(struct smb_request *req)
                q = strchr_m(path+2,'\\');
                if (!q) {
                        data_blob_clear_free(&password);
-                       reply_doserror(req, ERRDOS, ERRnosuchshare);
+                       reply_nterror(req, NT_STATUS_BAD_NETWORK_NAME);
                        END_PROFILE(SMBtconX);
                        return;
                }
@@ -864,7 +864,7 @@ void reply_unknown_new(struct smb_request *req, uint8 type)
 {
        DEBUG(0, ("unknown command type (%s): type=%d (0x%X)\n",
                  smb_fn_name(type), type, type));
-       reply_doserror(req, ERRSRV, ERRunknownsmb);
+       reply_nterror(req, NT_STATUS_DOS(ERRSRV, ERRunknownsmb));
        return;
 }
 
@@ -901,7 +901,7 @@ void reply_ioctl(struct smb_request *req)
                    replysize = 32;
                    break;
            default:
-                   reply_doserror(req, ERRSRV, ERRnosupport);
+                   reply_nterror(req, NT_STATUS_DOS(ERRSRV, ERRnosupport));
                    END_PROFILE(SMBioctl);
                    return;
        }
@@ -920,7 +920,7 @@ void reply_ioctl(struct smb_request *req)
                        files_struct *fsp = file_fsp(
                                req, SVAL(req->vwv+0, 0));
                        if (!fsp) {
-                               reply_doserror(req, ERRDOS, ERRbadfid);
+                               reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                                END_PROFILE(SMBioctl);
                                return;
                        }
@@ -1652,7 +1652,7 @@ void reply_fclose(struct smb_request *req)
        p += 2;
 
        if (status_len == 0) {
-               reply_doserror(req, ERRSRV, ERRsrverror);
+               reply_nterror(req, NT_STATUS_DOS(ERRSRV, ERRsrverror));
                END_PROFILE(SMBfclose);
                return;
        }
@@ -1789,7 +1789,8 @@ void reply_open(struct smb_request *req)
                DEBUG(3,("attempt to open a directory %s\n",
                         fsp_str_dbg(fsp)));
                close_file(req, fsp, ERROR_CLOSE);
-               reply_doserror(req, ERRDOS,ERRnoaccess);
+               reply_botherror(req, NT_STATUS_ACCESS_DENIED,
+                       ERRDOS, ERRnoaccess);
                goto out;
        }
 
@@ -1875,7 +1876,7 @@ void reply_open_and_X(struct smb_request *req)
                if (lp_nt_pipe_support()) {
                        reply_open_pipe_and_X(conn, req);
                } else {
-                       reply_doserror(req, ERRSRV, ERRaccess);
+                       reply_nterror(req, NT_STATUS_NETWORK_ACCESS_DENIED);
                }
                goto out;
        }
@@ -1963,7 +1964,7 @@ void reply_open_and_X(struct smb_request *req)
        mtime = convert_timespec_to_time_t(smb_fname->st.st_ex_mtime);
        if (fattr & aDIR) {
                close_file(req, fsp, ERROR_CLOSE);
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                goto out;
        }
 
@@ -3198,7 +3199,7 @@ void reply_lockread(struct smb_request *req)
        }
 
        if (!CHECK_READ(fsp,req)) {
-               reply_doserror(req, ERRDOS, ERRbadaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBlockread);
                return;
        }
@@ -3308,7 +3309,7 @@ void reply_read(struct smb_request *req)
        }
 
        if (!CHECK_READ(fsp,req)) {
-               reply_doserror(req, ERRDOS, ERRbadaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBread);
                return;
        }
@@ -3669,7 +3670,7 @@ void reply_read_and_X(struct smb_request *req)
                                 "used and we don't support 64 bit offsets.\n",
                                 (unsigned int)IVAL(req->vwv+10, 0) ));
                        END_PROFILE(SMBreadX);
-                       reply_doserror(req, ERRDOS, ERRbadaccess);
+                       reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                        return;
                }
 
@@ -3752,7 +3753,7 @@ void reply_writebraw(struct smb_request *req)
        }
 
        if (!CHECK_WRITE(fsp)) {
-               reply_doserror(req, ERRDOS, ERRbadaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                error_to_writebrawerr(req);
                END_PROFILE(SMBwritebraw);
                return;
@@ -3802,7 +3803,7 @@ void reply_writebraw(struct smb_request *req)
                (int)nwritten, (int)write_through));
 
        if (nwritten < (ssize_t)numtowrite)  {
-               reply_doserror(req, ERRHRD, ERRdiskfull);
+               reply_nterror(req, NT_STATUS_DISK_FULL);
                error_to_writebrawerr(req);
                goto strict_unlock;
        }
@@ -3812,7 +3813,7 @@ void reply_writebraw(struct smb_request *req)
        /* Allocate a buffer of 64k + length. */
        buf = TALLOC_ARRAY(NULL, char, 65540);
        if (!buf) {
-               reply_doserror(req, ERRDOS, ERRnomem);
+               reply_nterror(req, NT_STATUS_NO_MEMORY);
                error_to_writebrawerr(req);
                goto strict_unlock;
        }
@@ -3968,7 +3969,7 @@ void reply_writeunlock(struct smb_request *req)
        }
 
        if (!CHECK_WRITE(fsp)) {
-               reply_doserror(req, ERRDOS,ERRbadaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBwriteunlock);
                return;
        }
@@ -4013,7 +4014,7 @@ void reply_writeunlock(struct smb_request *req)
        }
 
        if((nwritten < numtowrite) && (numtowrite != 0)) {
-               reply_doserror(req, ERRHRD, ERRdiskfull);
+               reply_nterror(req, NT_STATUS_DISK_FULL);
                goto strict_unlock;
        }
 
@@ -4089,7 +4090,7 @@ void reply_write(struct smb_request *req)
        }
 
        if (!CHECK_WRITE(fsp)) {
-               reply_doserror(req, ERRDOS, ERRbadaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBwrite);
                return;
        }
@@ -4147,7 +4148,7 @@ void reply_write(struct smb_request *req)
        }
 
        if((nwritten == 0) && (numtowrite != 0)) {
-               reply_doserror(req, ERRHRD, ERRdiskfull);
+               reply_nterror(req, NT_STATUS_DISK_FULL);
                goto strict_unlock;
        }
 
@@ -4299,14 +4300,14 @@ void reply_write_and_X(struct smb_request *req)
                        return;
                }
                if (numtowrite != req->unread_bytes) {
-                       reply_doserror(req, ERRDOS, ERRbadmem);
+                       reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                        END_PROFILE(SMBwriteX);
                        return;
                }
        } else {
                if (smb_doff > smblen || smb_doff + numtowrite < numtowrite ||
                                smb_doff + numtowrite > smblen) {
-                       reply_doserror(req, ERRDOS, ERRbadmem);
+                       reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                        END_PROFILE(SMBwriteX);
                        return;
                }
@@ -4315,7 +4316,7 @@ void reply_write_and_X(struct smb_request *req)
        /* If it's an IPC, pass off the pipe handler. */
        if (IS_IPC(conn)) {
                if (req->unread_bytes) {
-                       reply_doserror(req, ERRDOS, ERRbadmem);
+                       reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                        END_PROFILE(SMBwriteX);
                        return;
                }
@@ -4358,7 +4359,7 @@ void reply_write_and_X(struct smb_request *req)
                        DEBUG(0,("reply_write_and_X - large offset (%x << 32) "
                                 "used and we don't support 64 bit offsets.\n",
                                 (unsigned int)IVAL(req->vwv+12, 0) ));
-                       reply_doserror(req, ERRDOS, ERRbadaccess);
+                       reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                        END_PROFILE(SMBwriteX);
                        return;
                }
@@ -4400,7 +4401,7 @@ void reply_write_and_X(struct smb_request *req)
        }
 
        if((nwritten == 0) && (numtowrite != 0)) {
-               reply_doserror(req, ERRHRD, ERRdiskfull);
+               reply_nterror(req, NT_STATUS_DISK_FULL);
                goto strict_unlock;
        }
 
@@ -4690,7 +4691,7 @@ void reply_writeclose(struct smb_request *req)
                return;
        }
        if (!CHECK_WRITE(fsp)) {
-               reply_doserror(req, ERRDOS,ERRbadaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBwriteclose);
                return;
        }
@@ -4732,7 +4733,7 @@ void reply_writeclose(struct smb_request *req)
                 conn->num_files_open));
 
        if(((nwritten == 0) && (numtowrite != 0))||(nwritten < 0)) {
-               reply_doserror(req, ERRHRD, ERRdiskfull);
+               reply_nterror(req, NT_STATUS_DISK_FULL);
                goto strict_unlock;
        }
 
@@ -4882,7 +4883,7 @@ void reply_tdis(struct smb_request *req)
 
        if (!conn) {
                DEBUG(4,("Invalid connection in tdis\n"));
-               reply_doserror(req, ERRSRV, ERRinvnid);
+               reply_nterror(req, NT_STATUS_NETWORK_NAME_DELETED);
                END_PROFILE(SMBtdis);
                return;
        }
@@ -4982,7 +4983,7 @@ void reply_printopen(struct smb_request *req)
        }
 
        if (!CAN_PRINT(conn)) {
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBsplopen);
                return;
        }
@@ -5088,7 +5089,7 @@ void reply_printqueue(struct smb_request *req)
           one printer - I think we should now only accept it if they
           get it right (tridge) */
        if (!CAN_PRINT(conn)) {
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBsplretq);
                return;
        }
@@ -5182,13 +5183,13 @@ void reply_printwrite(struct smb_request *req)
         }
 
        if (!CAN_PRINT(conn)) {
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBsplwr);
                return;
        }
 
        if (!CHECK_WRITE(fsp)) {
-               reply_doserror(req, ERRDOS, ERRbadaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBsplwr);
                return;
        }
@@ -6548,7 +6549,7 @@ void reply_copy(struct smb_request *req)
        if (tid2 != conn->cnum) {
                /* can't currently handle inter share copies XXXX */
                DEBUG(3,("Rejecting inter-share copy\n"));
-               reply_doserror(req, ERRSRV, ERRinvdevice);
+               reply_nterror(req, NT_STATUS_BAD_DEVICE_TYPE);
                goto out;
        }
 
@@ -6587,19 +6588,19 @@ void reply_copy(struct smb_request *req)
        target_is_directory = VALID_STAT_OF_DIR(smb_fname_dst->st);
 
        if ((flags&1) && target_is_directory) {
-               reply_doserror(req, ERRDOS, ERRbadfile);
+               reply_nterror(req, NT_STATUS_NO_SUCH_FILE);
                goto out;
        }
 
        if ((flags&2) && !target_is_directory) {
-               reply_doserror(req, ERRDOS, ERRbadpath);
+               reply_nterror(req, NT_STATUS_OBJECT_PATH_NOT_FOUND);
                goto out;
        }
 
        if ((flags&(1<<5)) && VALID_STAT_OF_DIR(smb_fname_src->st)) {
                /* wants a tree copy! XXXX */
                DEBUG(3,("Rejecting tree copy\n"));
-               reply_doserror(req, ERRSRV, ERRerror);
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                goto out;
        }
 
@@ -6810,7 +6811,7 @@ void reply_copy(struct smb_request *req)
        }
 
        if (count == 0) {
-               reply_doserror(req, ERRDOS, error);
+               reply_nterror(req, dos_to_ntstatus(ERRDOS, error));
                goto out;
        }
 
@@ -7282,7 +7283,7 @@ void reply_lockingX(struct smb_request *req)
                                return;
                        } else {
                                END_PROFILE(SMBlockingX);
-                               reply_doserror(req, ERRDOS, ERRlock);
+                               reply_nterror(req, NT_STATUS_FILE_LOCK_CONFLICT);
                                return;
                        }
                }
@@ -7350,8 +7351,8 @@ void reply_lockingX(struct smb_request *req)
                 * There is no error code marked "stupid client bug".... :-).
                 */
                if(err) {
+                       reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                        END_PROFILE(SMBlockingX);
-                       reply_doserror(req, ERRDOS, ERRnoaccess);
                        return;
                }
        }
@@ -7385,8 +7386,8 @@ void reply_lockingX(struct smb_request *req)
                 * There is no error code marked "stupid client bug".... :-).
                 */
                if(err) {
+                       reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                        END_PROFILE(SMBlockingX);
-                       reply_doserror(req, ERRDOS, ERRnoaccess);
                        return;
                }
        }
@@ -7427,7 +7428,7 @@ void reply_lockingX(struct smb_request *req)
 void reply_readbmpx(struct smb_request *req)
 {
        START_PROFILE(SMBreadBmpx);
-       reply_doserror(req, ERRSRV, ERRuseSTD);
+       reply_nterror(req, NT_STATUS_DOS(ERRSRV, ERRuseSTD));
        END_PROFILE(SMBreadBmpx);
        return;
 }
@@ -7441,7 +7442,7 @@ void reply_readbmpx(struct smb_request *req)
 void reply_readbs(struct smb_request *req)
 {
        START_PROFILE(SMBreadBs);
-       reply_doserror(req, ERRSRV, ERRuseSTD);
+       reply_nterror(req, NT_STATUS_DOS(ERRSRV, ERRuseSTD));
        END_PROFILE(SMBreadBs);
        return;
 }
@@ -7468,7 +7469,7 @@ void reply_setattrE(struct smb_request *req)
        fsp = file_fsp(req, SVAL(req->vwv+0, 0));
 
        if(!fsp || (fsp->conn != conn)) {
-               reply_doserror(req, ERRDOS, ERRbadfid);
+               reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                goto out;
        }
 
@@ -7499,7 +7500,7 @@ void reply_setattrE(struct smb_request *req)
 
        status = smb_set_file_time(conn, fsp, fsp->fsp_name, &ft, true);
        if (!NT_STATUS_IS_OK(status)) {
-               reply_doserror(req, ERRDOS, ERRnoaccess);
+               reply_nterror(req, status);
                goto out;
        }
 
@@ -7527,7 +7528,7 @@ void reply_setattrE(struct smb_request *req)
 void reply_writebmpx(struct smb_request *req)
 {
        START_PROFILE(SMBwriteBmpx);
-       reply_doserror(req, ERRSRV, ERRuseSTD);
+       reply_nterror(req, NT_STATUS_DOS(ERRSRV, ERRuseSTD));
        END_PROFILE(SMBwriteBmpx);
        return;
 }
@@ -7541,7 +7542,7 @@ void reply_writebmpx(struct smb_request *req)
 void reply_writebs(struct smb_request *req)
 {
        START_PROFILE(SMBwriteBs);
-       reply_doserror(req, ERRSRV, ERRuseSTD);
+       reply_nterror(req, NT_STATUS_DOS(ERRSRV, ERRuseSTD));
        END_PROFILE(SMBwriteBs);
        return;
 }
@@ -7568,7 +7569,7 @@ void reply_getattrE(struct smb_request *req)
        fsp = file_fsp(req, SVAL(req->vwv+0, 0));
 
        if(!fsp || (fsp->conn != conn)) {
-               reply_doserror(req, ERRDOS, ERRbadfid);
+               reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                END_PROFILE(SMBgetattrE);
                return;
        }
index 40c1af2aebdd2ae37ee34143311849bf286aff85..ce001cb2fa2ac6b761541f88121b2465cd8cb6fd 100644 (file)
@@ -1012,7 +1012,7 @@ static void call_trans2open(connection_struct *conn,
        pname = &params[28];
 
        if (IS_IPC(conn)) {
-               reply_doserror(req, ERRSRV, ERRaccess);
+               reply_nterror(req, NT_STATUS_NETWORK_ACCESS_DENIED);
                goto out;
        }
 
@@ -1055,7 +1055,7 @@ static void call_trans2open(connection_struct *conn,
                                         &access_mask, &share_mode,
                                         &create_disposition,
                                         &create_options)) {
-               reply_doserror(req, ERRDOS, ERRbadaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                goto out;
        }
 
@@ -1121,7 +1121,7 @@ static void call_trans2open(connection_struct *conn,
        inode = smb_fname->st.st_ex_ino;
        if (fattr & aDIR) {
                close_file(req, fsp, ERROR_CLOSE);
-               reply_doserror(req, ERRDOS,ERRnoaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                goto out;
        }
 
@@ -2334,7 +2334,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
                }
 
                if (!lp_ea_support(SNUM(conn))) {
-                       reply_doserror(req, ERRDOS, ERReasnotsupported);
+                       reply_nterror(req, NT_STATUS_EAS_NOT_SUPPORTED);
                        goto out;
                }
 
@@ -2462,7 +2462,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
        if(numentries == 0) {
                dptr_close(sconn, &dptr_num);
                if (get_Protocol() < PROTOCOL_NT1) {
-                       reply_doserror(req, ERRDOS, ERRnofiles);
+                       reply_nterror(req, NT_STATUS_DOS(ERRDOS, ERRnofiles));
                        goto out;
                } else {
                        reply_botherror(req, NT_STATUS_NO_SUCH_FILE,
@@ -2649,7 +2649,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
                }
 
                if (!lp_ea_support(SNUM(conn))) {
-                       reply_doserror(req, ERRDOS, ERReasnotsupported);
+                       reply_nterror(req, NT_STATUS_EAS_NOT_SUPPORTED);
                        return;
                }
 
@@ -2682,7 +2682,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
 
        /* Check that the dptr is valid */
        if(!(dirptr = dptr_fetch_lanman2(sconn, dptr_num))) {
-               reply_doserror(req, ERRDOS, ERRnofiles);
+               reply_nterror(req, STATUS_NO_MORE_FILES);
                return;
        }
 
@@ -2691,7 +2691,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
        /* Get the wildcard mask from the dptr */
        if((p = dptr_wcard(sconn, dptr_num))== NULL) {
                DEBUG(2,("dptr_num %d has no wildcard\n", dptr_num));
-               reply_doserror(req, ERRDOS, ERRnofiles);
+               reply_nterror(req, STATUS_NO_MORE_FILES);
                return;
        }
 
@@ -5231,8 +5231,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
                        }
 
                        if (!lp_ea_support(SNUM(conn))) {
-                               reply_doserror(req, ERRDOS,
-                                              ERReasnotsupported);
+                               reply_nterror(req, NT_STATUS_EAS_NOT_SUPPORTED);
                                return;
                        }
 
@@ -7664,7 +7663,8 @@ static void call_trans2setfilepathinfo(connection_struct *conn,
                                                    max_data_bytes);
                                return;
                        } else {
-                               reply_doserror(req, ERRDOS, ERRbadpath);
+                               reply_nterror(req,
+                                       NT_STATUS_OBJECT_PATH_NOT_FOUND);
                                return;
                        }
                } else {
@@ -7804,7 +7804,7 @@ static void call_trans2mkdir(connection_struct *conn, struct smb_request *req,
        TALLOC_CTX *ctx = talloc_tos();
 
        if (!CAN_WRITE(conn)) {
-               reply_doserror(req, ERRSRV, ERRaccess);
+               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                return;
        }
 
@@ -8023,7 +8023,7 @@ static void call_trans2getdfsreferral(connection_struct *conn,
        max_referral_level = SVAL(params,0);
 
        if(!lp_host_msdfs()) {
-               reply_doserror(req, ERRDOS, ERRbadfunc);
+               reply_nterror(req, NT_STATUS_NOT_IMPLEMENTED);
                return;
        }
 
@@ -8065,7 +8065,7 @@ static void call_trans2ioctl(connection_struct *conn,
        /* check for an invalid fid before proceeding */
 
        if (!fsp) {
-               reply_doserror(req, ERRDOS, ERRbadfid);
+               reply_nterror(req, NT_STATUS_INVALID_HANDLE);
                return;
        }
 
@@ -8094,7 +8094,7 @@ static void call_trans2ioctl(connection_struct *conn,
        }
 
        DEBUG(2,("Unknown TRANS2_IOCTL\n"));
-       reply_doserror(req, ERRSRV, ERRerror);
+       reply_nterror(req, NT_STATUS_NOT_IMPLEMENTED);
 }
 
 /****************************************************************************
@@ -8320,7 +8320,7 @@ static void handle_trans2(connection_struct *conn, struct smb_request *req,
        default:
                /* Error in request */
                DEBUG(2,("Unknown request %d in trans2 call\n", state->call));
-               reply_doserror(req, ERRSRV,ERRerror);
+               reply_nterror(req, NT_STATUS_NOT_IMPLEMENTED);
        }
 }
 
@@ -8372,7 +8372,7 @@ void reply_trans2(struct smb_request *req)
                case TRANSACT2_SETFSINFO:
                        break;
                default:
-                       reply_doserror(req, ERRSRV, ERRaccess);
+                       reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                        END_PROFILE(SMBtrans2);
                        return;
                }