diff options
author | Richard Sharpe <sharpe@samba.org> | 2001-03-05 13:34:48 +0000 |
---|---|---|
committer | Richard Sharpe <sharpe@samba.org> | 2001-03-05 13:34:48 +0000 |
commit | 7557f9145ccdced3fcebdd20e1eb6fc5a27abda2 (patch) | |
tree | 8f1b10afb3ad228c328761f4eca67484f1f8802f /source/libsmb/libsmbclient.c | |
parent | 65275e73ee7c58352ee20175cbbb43378e16f417 (diff) | |
download | samba-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.c | 31 |
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; |