diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-08-14 07:39:11 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:29:40 -0500 |
commit | b41b38031f8eeec916e0e5f9fb80cd8ecd5e22cd (patch) | |
tree | e4b848975de7f43c646f1aa3622af1d310731e7c /source3/smbd/nttrans.c | |
parent | bba684f2c0c40c58fcc263eb6794c389760d0d44 (diff) | |
download | samba-b41b38031f8eeec916e0e5f9fb80cd8ecd5e22cd.tar.gz samba-b41b38031f8eeec916e0e5f9fb80cd8ecd5e22cd.tar.bz2 samba-b41b38031f8eeec916e0e5f9fb80cd8ecd5e22cd.zip |
r24398: Convert call_nt_transact_notify_change to the new API
(This used to be commit 607b3ab8bc6052770f0324b57f3db6e1c11a7005)
Diffstat (limited to 'source3/smbd/nttrans.c')
-rw-r--r-- | source3/smbd/nttrans.c | 72 |
1 files changed, 31 insertions, 41 deletions
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c index 970703a2d6..401fdca929 100644 --- a/source3/smbd/nttrans.c +++ b/source3/smbd/nttrans.c @@ -2071,15 +2071,15 @@ int reply_ntrename(connection_struct *conn, don't allow a directory to be opened. ****************************************************************************/ -static int call_nt_transact_notify_change(connection_struct *conn, char *inbuf, - char *outbuf, int length, - int bufsize, - uint16 **ppsetup, uint32 setup_count, - char **ppparams, - uint32 parameter_count, - char **ppdata, uint32 data_count, - uint32 max_data_count, - uint32 max_param_count) +static void call_nt_transact_notify_change(connection_struct *conn, + struct smb_request *req, + uint16 **ppsetup, + uint32 setup_count, + char **ppparams, + uint32 parameter_count, + char **ppdata, uint32 data_count, + uint32 max_data_count, + uint32 max_param_count) { uint16 *setup = *ppsetup; files_struct *fsp; @@ -2088,7 +2088,8 @@ static int call_nt_transact_notify_change(connection_struct *conn, char *inbuf, BOOL recursive; if(setup_count < 6) { - return ERROR_DOS(ERRDOS,ERRbadfunc); + reply_doserror(req, ERRDOS, ERRbadfunc); + return; } fsp = file_fsp(SVAL(setup,4)); @@ -2098,14 +2099,16 @@ static int call_nt_transact_notify_change(connection_struct *conn, char *inbuf, DEBUG(3,("call_nt_transact_notify_change\n")); if(!fsp) { - return ERROR_DOS(ERRDOS,ERRbadfid); + reply_doserror(req, ERRDOS, ERRbadfid); + return; } { char *filter_string; if (!(filter_string = notify_filter_string(NULL, filter))) { - return ERROR_NT(NT_STATUS_NO_MEMORY); + reply_nterror(req,NT_STATUS_NO_MEMORY); + return; } DEBUG(3,("call_nt_transact_notify_change: notify change " @@ -2116,7 +2119,8 @@ static int call_nt_transact_notify_change(connection_struct *conn, char *inbuf, } if((!fsp->is_directory) || (conn != fsp->conn)) { - return ERROR_NT(NT_STATUS_INVALID_PARAMETER); + reply_nterror(req, NT_STATUS_INVALID_PARAMETER); + return; } if (fsp->notify == NULL) { @@ -2126,7 +2130,8 @@ static int call_nt_transact_notify_change(connection_struct *conn, char *inbuf, if (!NT_STATUS_IS_OK(status)) { DEBUG(10, ("change_notify_create returned %s\n", nt_errstr(status))); - return ERROR_NT(status); + reply_nterror(req, status); + return; } } @@ -2141,26 +2146,25 @@ static int call_nt_transact_notify_change(connection_struct *conn, char *inbuf, * here. */ - change_notify_reply(inbuf, max_param_count, fsp->notify); + change_notify_reply(req->inbuf, max_param_count, fsp->notify); /* * change_notify_reply() above has independently sent its * results */ - return -1; + return; } /* * No changes pending, queue the request */ - status = change_notify_add_request(inbuf, max_param_count, filter, + status = change_notify_add_request(req->inbuf, max_param_count, filter, recursive, fsp); if (!NT_STATUS_IS_OK(status)) { - return ERROR_NT(status); + reply_nterror(req, status); } - - return -1; + return; } /**************************************************************************** @@ -3166,28 +3170,14 @@ static void handle_nttrans(connection_struct *conn, case NT_TRANSACT_NOTIFY_CHANGE: { - char *inbuf, *outbuf; - int size, bufsize; - START_PROFILE(NT_transact_notify_change); - - if (!reply_prep_legacy(req, &inbuf, &outbuf, &size, - &bufsize)) { - reply_nterror(req, NT_STATUS_NO_MEMORY); - END_PROFILE(SMBnttrans); - return; - } - - reply_post_legacy( - req, - call_nt_transact_notify_change( - conn, inbuf, outbuf, size, bufsize, - &state->setup, state->setup_count, - &state->param, state->total_param, - &state->data, state->total_data, - state->max_data_return, - state->max_param_return)); - + call_nt_transact_notify_change( + conn, req, + &state->setup, state->setup_count, + &state->param, state->total_param, + &state->data, state->total_data, + state->max_data_return, + state->max_param_return); END_PROFILE(NT_transact_notify_change); break; } |