summaryrefslogtreecommitdiffstats
path: root/source/libsmb/libsmbclient.c
diff options
context:
space:
mode:
authorRichard Sharpe <sharpe@samba.org>2001-03-05 13:34:48 +0000
committerRichard Sharpe <sharpe@samba.org>2001-03-05 13:34:48 +0000
commit7557f9145ccdced3fcebdd20e1eb6fc5a27abda2 (patch)
tree8f1b10afb3ad228c328761f4eca67484f1f8802f /source/libsmb/libsmbclient.c
parent65275e73ee7c58352ee20175cbbb43378e16f417 (diff)
downloadsamba-7557f9145ccdced3fcebdd20e1eb6fc5a27abda2.tar.gz
samba-7557f9145ccdced3fcebdd20e1eb6fc5a27abda2.tar.xz
samba-7557f9145ccdced3fcebdd20e1eb6fc5a27abda2.zip
smb.h: add one error code for no such printer job
libsmbclient.c: fix problems with return codes on smbc_unlink_print_job
Diffstat (limited to 'source/libsmb/libsmbclient.c')
-rw-r--r--source/libsmb/libsmbclient.c31
1 files changed, 28 insertions, 3 deletions
diff --git a/source/libsmb/libsmbclient.c b/source/libsmb/libsmbclient.c
index 29f2d807ba3..410e2ebdd68 100644
--- a/source/libsmb/libsmbclient.c
+++ b/source/libsmb/libsmbclient.c
@@ -851,8 +851,9 @@ int smbc_unlink(const char *fname)
return -1;
}
- if (cli_printjob_del(&srv->cli, job) != 0) {
+ if ((err = cli_printjob_del(&srv->cli, job)) != 0) {
+
return -1;
}
@@ -2102,6 +2103,7 @@ off_t smbc_telldir(int fd)
int smbc_lseekdir(int fd, off_t offset, int whence)
{
+ struct smbc_file *fe;
if (!smbc_initialized) {
@@ -2117,6 +2119,24 @@ int smbc_lseekdir(int fd, off_t offset, int whence)
}
+ fe = smbc_file_table[fd - smbc_start_fd];
+
+ if (!fe) {
+
+ errno = EBADF;
+ return -1;
+
+ }
+
+ if (fe->file != False) { /* FIXME, should be dir, perhaps */
+
+ errno = ENOTDIR;
+ return -1;
+
+ }
+
+ /* Now, check what we were passed and see if it is OK ... */
+
return ENOSYS; /* Not implemented so far ... */
}
@@ -2309,6 +2329,7 @@ int smbc_unlink_print_job(const char *fname, int id)
struct smbc_server *srv;
fstring server, share, user, password;
pstring path;
+ int err;
if (!smbc_initialized) {
@@ -2338,11 +2359,15 @@ int smbc_unlink_print_job(const char *fname, int id)
}
- if (cli_printjob_del(&srv->cli, id) < 0) {
+ if ((err = cli_printjob_del(&srv->cli, id)) != 0) {
- errno = smbc_errno(&srv->cli);
+ if (err < 0)
+ errno = smbc_errno(&srv->cli);
+ else if (err == ERRnosuchprintjob)
+ errno = EINVAL;
return -1;
+
}
return 0;