summaryrefslogtreecommitdiff
path: root/source3/libsmb/clientgen.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1998-10-06 13:10:06 +0000
committerAndrew Tridgell <tridge@samba.org>1998-10-06 13:10:06 +0000
commit404f14fb36577ee182fd8a928e6cb7b374e4ecb9 (patch)
tree980f944f086c8810ed25106b2089b836f80950e1 /source3/libsmb/clientgen.c
parentfff618aeb4142773ff388ac9b52d127a510c6690 (diff)
downloadsamba-404f14fb36577ee182fd8a928e6cb7b374e4ecb9.tar.gz
samba-404f14fb36577ee182fd8a928e6cb7b374e4ecb9.tar.bz2
samba-404f14fb36577ee182fd8a928e6cb7b374e4ecb9.zip
implemented unix semantics for rename in smbwrapper
(This used to be commit a5c18f9c82f5f76b00ff29c5668b4f0d3e8d6bd0)
Diffstat (limited to 'source3/libsmb/clientgen.c')
-rw-r--r--source3/libsmb/clientgen.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c
index 2d49144695..93f7a3d222 100644
--- a/source3/libsmb/clientgen.c
+++ b/source3/libsmb/clientgen.c
@@ -1196,6 +1196,8 @@ size_t cli_read(struct cli_state *cli, int fnum, char *buf, off_t offset, size_t
int mid;
int blocks = (size + (block-1)) / block;
+ if (size == 0) return 0;
+
while (received < blocks) {
int size2;
@@ -1295,6 +1297,8 @@ size_t cli_write(struct cli_state *cli, int fnum, char *buf, off_t offset, size_
int mid;
int blocks = (size + (block-1)) / block;
+ if (size == 0) return 0;
+
while (received < blocks) {
int size2;
@@ -2309,6 +2313,8 @@ int cli_error(struct cli_state *cli, uint8 *eclass, uint32 *num)
case ERRbadfile: return ENOENT;
case ERRbadpath: return ENOTDIR;
case ERRnoaccess: return EACCES;
+ case ERRfilexists: return EEXIST;
+ case ERRrename: return EEXIST;
}
}
if (rcls == ERRSRV) {