summaryrefslogtreecommitdiff
path: root/source3/libsmb/async_smb.c
AgeCommit message (Collapse)AuthorFilesLines
2011-08-12s3:libsmb: keep a cli_smb_state->one_wayStefan Metzmacher1-12/+19
This moves the SMB1 specific stuff to cli_smb_req_create(), instead of having it in the core dispatching code. metze
2011-08-12s3:libsmb: abstract the incoming dispatch function via a function pointerStefan Metzmacher1-5/+6
This will allow handling of SMB2 in future. metze
2011-08-12s3:libsmb: split out cli_state_dispatch_smb1() from cli_smb_received()Stefan Metzmacher1-45/+66
metze
2011-08-12s3:libsmb: add missing TALLOC_FREE(frame) to cli_smb_received()Stefan Metzmacher1-0/+1
metze
2011-08-12s3:libsmb: keep the request order in cli_smb_req_unset_pending()Stefan Metzmacher1-1/+3
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Fri Aug 12 12:36:03 CEST 2011 on sn-devel-104
2011-08-12s3:libsmb: use tevent_req_defer_callback() unless there's only one request ↵Stefan Metzmacher1-4/+41
in cli_smb_received() Callers of tevent_req_done() (or similar functions) have to return directly. Otherwise the callback could invalidate the current stack state, which is likely to trigger segfaults. If there was only one pending request and we just got the response for that one, we can use tevent_req_done() directly. Otherwise there're more pending requests and we need to call cli_state_receive_next() or we got the response for chained requests. Both means that we have to use tevent_req_defer_callback(). metze
2011-08-12s3:libsmb: make use of cli_state_receive_next() in cli_smb_received()Stefan Metzmacher1-17/+2
metze
2011-08-12s3:libsmb: notify all request about failures in cli_smb_req_set_pending()Stefan Metzmacher1-0/+7
It's up to the caller to notify the current request, but we have to notify all other pending requests if we're not able to read the next response from the server. metze
2011-08-12s3:libsmb: split out cli_state_receive_next() from cli_smb_req_set_pending()Stefan Metzmacher1-2/+25
metze
2011-08-12s3:libsmb: use talloc_stackframe() in cli_smb_received()Stefan Metzmacher1-8/+12
metze
2011-08-12s3:libsmb: call cli_smb_req_unset_pending() before tevent_req_done() also ↵Stefan Metzmacher1-0/+1
for chained requests metze
2011-08-12s3:libsmb: reset the destructor in cli_smb_req_unset_pending()Stefan Metzmacher1-1/+2
metze
2011-08-12s3:libsmb: add cli_state_notify_pending() and use itStefan Metzmacher1-25/+45
If we got a problem on the connection we need to notify every pending request. But we need to make use of tevent_req_defer_callback() before tevent_req_nterror(), otherwise the callback, triggered by tevent_req_nterror(), could invalidate the state of current caller, which will likely cause segfaults. metze
2011-07-27s3: Fix async smb handlingVolker Lendecke1-9/+21
In cli_echo with more than one response we ended up with more than one read_smb request. One from the call to cli_smb_req_set_pending called from cli_smb_received. The other one from cli_smb_received itself. I don't really see another way to deal with this than to hold the read_smb request in the cli_state. Metze, please check! Volker
2011-07-22s3:libsmb: move cli_state->fd to cli_state->conn.fdStefan Metzmacher1-3/+3
metze
2011-07-22s3:libsmb: make use of cli_state_disconnect()Stefan Metzmacher1-10/+3
metze
2011-07-22s3:libsmb: make use of cli_state_is_connected()Stefan Metzmacher1-1/+1
metze
2011-07-22s3:libsmb: move cli_state->outgoing to cli_state->conn.outgoingStefan Metzmacher1-2/+2
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Fri Jul 22 09:53:59 CEST 2011 on sn-devel-104
2011-07-22s3:libsmb: move cli_state->pending to cli_state->conn.pendingStefan Metzmacher1-24/+26
metze
2011-07-20s3:libsmb: move cli->cnum to cli->smb1.tid and hide it behind ↵Stefan Metzmacher1-1/+1
cli_state_[g|s]et_tid() metze
2011-07-20s3:libsmb: move cli->mid to cli->smb1.midStefan Metzmacher1-1/+1
metze
2011-07-13s3:libsmb: remove unused cli_smb_inbuf()Stefan Metzmacher1-7/+0
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Wed Jul 13 01:19:51 CEST 2011 on sn-devel-104
2011-07-08s3:libsmb: don't use the cli->inbuf to store the last errorStefan Metzmacher1-34/+16
We keep the raw error in cli->raw_status now, until we fixed all caller to get the NTSTATUS from the function calls. metze
2011-06-20Use tevent_req_oomVolker Lendecke1-1/+1
This fixes a few Coverity errors
2011-06-10s3:libsmb/async_smb: add helpers to get and set the seqnum for signingStefan Metzmacher1-0/+14
This will be used for correct signing in [nt]trans[2][s] requests. metze
2011-06-10s3:libsmb/async_smb: don't remove pending requests if the mid is setStefan Metzmacher1-0/+15
If the mid was set explicitly, it means the request expects more than one reply, so leave it in the pending array. metze
2011-06-10s3:libsmb/async_smb: call cli_smb_req_unset_pending() instead of destructor ↵Stefan Metzmacher1-2/+2
directly metze
2011-06-10s3:libsmb/async_smb: let cli_smb_recv() initialize output values for one way ↵Stefan Metzmacher1-0/+18
requests metze
2011-06-06s3: Remove a pointless if-statementVolker Lendecke1-3/+1
We are here only if we have more than one num_pending Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Mon Jun 6 18:21:17 CEST 2011 on sn-devel-104
2011-06-01lib/util/time.c: timeval_current_ofs_msecRusty Russell1-2/+1
Several places want "milliseconds from current time", and several were simply doing "msec * 1000" which can (and does in one place) result in a usec value over 1 a million. Using a helper to do this is safer and more readable. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-05-23s3: Directly call common_encrypt_buffer in cli_smb_req_iov_sendVolker Lendecke1-2/+2
2011-05-19s3: Do central cli_set_errorVolker Lendecke1-0/+2
2011-05-19s3: Make read_smb_send/recv publicVolker Lendecke1-87/+1
2011-05-10async_smb.c: convert cli->timeout properlyRusty Russell1-1/+2
I have a test failure on my 32-bit Ubuntu system, in that samba3.smbtorture_s3.plain(s3dc).LOCK9 immediately times out (rather than waiting 5 seconds for the child). Debugging revealed this code: timeout is in ms and is set to > 1000 in various places. The code dates from 2002, and other perturbations didn't reveal why it breaks now, but fix it anyway. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Autobuild-User: Rusty Russell <rusty@rustcorp.com.au> Autobuild-Date: Tue May 10 12:09:07 CEST 2011 on sn-devel-104
2011-05-06s3-libsmb: move protos to libsmb/proto.hGünther Deschner1-0/+1
Guenther
2011-05-05More const fixes for compiler warnings from the waf build.Jeremy Allison1-1/+1
2011-04-29s3-tevent: only include ../lib/util/tevent wrappers where needed.Günther Deschner1-0/+2
Guenther Autobuild-User: Günther Deschner <gd@samba.org> Autobuild-Date: Fri Apr 29 14:00:30 CEST 2011 on sn-devel-104
2011-03-30s3-libsmb: put namequery headers to nmblib.hGünther Deschner1-0/+1
We might find a better name for it and merge other namequery related things as well here... Guenther
2011-03-16s3-libsmb: move smb encryption structs into own header.Günther Deschner1-0/+1
Guenther
2010-12-22s3: Add async cli_session_requestVolker Lendecke1-0/+127
This does not do the redirects, but I think that might be obsolete anyway
2010-11-18s3: Make winbind recover from a signing errorVolker Lendecke1-0/+2
When winbind sees a signing error on the smb connection to a DC (for whatever reason, our bug, network glitch, etc) it should recover properly. The "old" code in clientgen.c just closed the socket in this case. This is the right thing to do, this connection is spoiled anyway. The new, async code did not do this so far, which led to the code in winbindd_cm.c not detect that we need to reconnect.
2010-09-20s3-build: only include async headers where needed.Günther Deschner1-0/+2
Guenther
2010-08-19s3-libsmbclient Convert dos error codes to NTstatus in async libsmbclient.Jim McDonough1-7/+1
DOS error codes were being lost with the conversion to async libsmbclient. If we're passing around NTSTATUS internally, let's just convert it when we get it. DOS ACCESS_DENIED on nautilus was not prompting for other credentials, because it was not being mapped.
2010-03-30If the timeout has been set to zero, don't register an end time.Jeremy Allison1-3/+5
The caller doesn't want a timeout. Jeremy.
2010-02-28s3: Fix the CHAIN1 torture testVolker Lendecke1-1/+9
I've tried to solve this just within cli_smb_recv(), but I could not find a way to sanely determine when we are receiving the last entry in the chain just from looking at the blob. This solves it in an a bit more brutal way...
2010-02-22s3: Explicitly handle inbuf in cli_smb_oplock_break_waiter_doneVolker Lendecke1-2/+3
2010-02-22s3: Add a talloc_move for the inbuf to cli_smb_recvVolker Lendecke1-3/+8
2010-02-21s3: Avoid calling cli_alloc_mid twice in cli_smb_req_iov_sendVolker Lendecke1-1/+2
I hate macros....
2010-01-26s3:async_smb: remove unused variableBjörn Jacke1-2/+0
2010-01-03s3: NT_STATUS_MORE_PROCESSING_REQUIRED is a valid sesssetup return valueVolker Lendecke1-9/+23