diff options
author | Jeremy Allison <jra@samba.org> | 2001-06-09 01:38:54 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-06-09 01:38:54 +0000 |
commit | 1b3977c5367a0b713b194f369abd9872ae01ac2a (patch) | |
tree | acbfc993c1bfdd750797a785fac55f1834c7a406 /source/smbd/blocking.c | |
parent | 81b5a628d1471f71964b21817b9bec1ac80585c4 (diff) | |
download | samba-1b3977c5367a0b713b194f369abd9872ae01ac2a.tar.gz samba-1b3977c5367a0b713b194f369abd9872ae01ac2a.tar.xz samba-1b3977c5367a0b713b194f369abd9872ae01ac2a.zip |
*Wonderful* patch from Andrew Bartlett that will help ensure tdb's are
cleaned on clients abending connections. Thanks Andrew !
Jeremy.
Diffstat (limited to 'source/smbd/blocking.c')
-rw-r--r-- | source/smbd/blocking.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/source/smbd/blocking.c b/source/smbd/blocking.c index e8dc29f80ac..cebad5ce356 100644 --- a/source/smbd/blocking.c +++ b/source/smbd/blocking.c @@ -130,10 +130,11 @@ for fnum = %d, name = %s\n", length, (int)blr->expire_time, lock_timeout, static void send_blocking_reply(char *outbuf, int outsize) { - if(outsize > 4) - smb_setlen(outbuf,outsize - 4); + if(outsize > 4) + smb_setlen(outbuf,outsize - 4); - send_smb(smbd_server_fd(),outbuf); + if (!send_smb(smbd_server_fd(),outbuf)) + exit_server("send_blocking_reply: send_smb failed.\n"); } /**************************************************************************** @@ -171,15 +172,16 @@ static void reply_lockingX_success(blocking_lock_record *blr) static void generic_blocking_lock_error(blocking_lock_record *blr, int eclass, int32 ecode) { - char *outbuf = OutBuffer; - char *inbuf = blr->inbuf; - construct_reply_common(inbuf, outbuf); + char *outbuf = OutBuffer; + char *inbuf = blr->inbuf; + construct_reply_common(inbuf, outbuf); - if(eclass == 0) /* NT Error. */ - SSVAL(outbuf,smb_flg2, SVAL(outbuf,smb_flg2) | FLAGS2_32_BIT_ERROR_CODES); + if(eclass == 0) /* NT Error. */ + SSVAL(outbuf,smb_flg2, SVAL(outbuf,smb_flg2) | FLAGS2_32_BIT_ERROR_CODES); - ERROR(eclass,ecode); - send_smb(smbd_server_fd(),outbuf); + ERROR(eclass,ecode); + if (!send_smb(smbd_server_fd(),outbuf)) + exit_server("generic_blocking_lock_error: send_smb failed.\n"); } /**************************************************************************** |