| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Here is a patch to allow many subsystems to be re-initialized. The only
functional change I made was to remove the null context tracking, as the memory
allocated here is designed to be left for the complete lifetime of the program.
Freeing this early (when all smb contexts are destroyed) could crash other
users of talloc.
Jeremy.
(cherry picked from commit 4779f1efccc8364fd8b3ba446aa96ba0bddec689)
|
|
|
|
|
| |
Jeremy.
(cherry picked from commit 218ffbe3876dbd58f56e107819dec2e74f5d2f1a)
|
|
|
|
|
| |
Jeremy.
(cherry picked from commit 2518197d7f3833b5d85fe42b05b51d89fa69eb75)
|
|
|
|
|
|
| |
Signed-off-by: Andreas Schneider <anschneider@suse.de>
Signed-off-by: Derrell Lipman <derrell.lipman@unwireduniverse.com>
(cherry picked from commit 84b1ea39a4f27ebcf06a2bafed78396c7353df0e)
|
|
|
|
|
|
|
|
|
|
|
| |
smbsh.c is located in the examples directory. It does not make sense
to install a man page without installing the tool itself.
This fixes bug #4724.
Karolin
(cherry picked from commit 797ed744b15c94fa4831d9796b40bb0ab5df55b7)
(cherry picked from commit 23981be7a009dc9e056ba2e12c5df6e3a13ab193)
|
|
|
|
| |
(cherry picked from commit 76ba37ac46b4a77fe228ca90635fa19140541ccd)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- James suggested using gcc's "deprecated" attribute to mark the context
structure fields to generate warnings. This creates a scenario with the
best of all worlds. I'm able to move to an organization that more easily
allows future enhancements, while avoiding any mandatory changes by
applications. Thanks, James!
- Updated WHATSNEW.txt so that it accurately reflects the current state of
affairs.
Derrell
(cherry picked from commit a67f96fbe9683b46c2149f7cb439d13f7f0e6ecd)
|
|
|
|
| |
(cherry picked from commit 93580bce833453ba512ee436d6dfdbdcd2c53777)
|
|
|
|
|
|
|
|
|
| |
- Ensured that all public functions have documentation in libsmbclient.h
- Reformatted for "proper" indentation
- Re-added temporarily-disabled alternate authentication function capability
Derrell
(cherry picked from commit 64b7150d92849a1e1e2416b9dcc12fae8d6bea99)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The libsmbclient interface has suffered from difficulty of improvement and
feature enrichment without causing ABI breakage. Although there were a number
of issues, the primary ones were:
(a) the user of the library would manually manipulate the context structure
members, meaning that nothing in the context structure could change other
than adding stuff at the end;
(b) there were three methods of setting options: setting bits in a flags field
within the context structure, setting explicit options variables within an
options structure in the context structure, and by calling the
smbc_option_set() function;
(c) the authentication callback did not traditionally provide enough
information to the callee which required adding an option for a callback
with a different signature, and now there are requests for even more
information at the callback, requiring yet a third signature and option to
set it (if we implement that feature).
This commit provides a reorganization of the code which fixes (a) and (b).
The context structure is now entirely opaque, and there are setter and getter
functions for manipulating it. This makes maintaining ABI consistency much,
much easier.
Additionally, the options setting/getting has been unified into a single
mechanism using smbc_option_set() and smbc_option_get().
Yet to be completed is a refactoring of the authentication callback (c).
The test programs in examples/libsmbclient have been modified (if necessary;
some applications require no changes at all) for the new API and a few have
been minimally tested.
Derrell
(cherry picked from commit d4b4bae8ded824d06ad5ab0e219f71187ee5c771)
|
| |
|
| |
|
|
|
|
|
|
|
| |
testwrite: create or truncate a file and write to it.
teststat3: compare the results from smbc_stat() and smbc_fstat()
Derrell
|
|
|
|
|
|
|
|
|
|
|
| |
There's been a problem seen where open/read/close a number of times causes
open failures eventually. This program has been modified to create the
context once and then loop requesting file names to open/read/close.
This program also demonstrates the current error in cli_read() where it
returns an error instead of length 0 upon end of file.
Derrell
|
|
|
|
|
| |
GetTimeOfDay() seems to no longer be exported. For the smbsh example, just
use the native gettimeofday() for now.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When the capability of using full names for DOS attributes was added, a bug
was introduced which caused the wrong number of bytes to be returned. This
patch to smbc_listxattr_ctx() fixes the problem.
Thanks to Jack Schmidt for this patch.
Derrell
|
| |
|
|
|
|
| |
Guenther
|
|
|
|
| |
Guenther
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pointer was
incremented too far in some circumstances. In these cases, only the first
of multiple concatenated strings would be seen.
- Working on bug 4649 pertaining to delete an ACL, this fixes the reported
crash. It appears to have been an incomplete switchover from malloc to
talloc, as the memory was still being freed with SAFE_FREE.
Deleting ACLs still doesn't work. Although a valid request is sent to the
server and a SUCCESS response is returned, the method that's used in
libsmbclient for deleting ACLs seems to be incorrect. In looking at the
samba4 torture tests, it appears that we should be turning on the INHERIT
flag if we want to delete the ACL. (I could use some assistance on the
proper flags to send, from anyone familiar with this stuff.)
- Apply patch from SATOH Fumiyasu to fix bug 4750. smbc_telldir_ctx() was not
returning a value useful to smbc_lseekdir_ctx().
Derrell
|
| |
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
| |
subseqeuent
attempts to set attributes to fail.
- I also noticed that missing attributes were setting an invalid return string
by getxattr(), e.g. if there was not group, the return string had "GROUP:;"
instead of excluding the GROUP attribute entirely as it should. The big
problem with the way it was, is that the string could not then be passed to
setxattr() and parsed.
|
|
|
|
|
|
|
| |
libsmbclient
library that's part of the current tree, not with whatever happens to have
been previously installed.
|
|
|
|
|
| |
NetApp filers expect paths in Open AndX Request to have a leading slash.
Windows clients send the leading slash, so we should too.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Jeremy: requires your eyes...
If the remote connection timed out while cli_list() was retrieving its list of
files, the error was not returned to the user, e.g. via smbc_opendir(), so the
user didn't have a way to know to set the timeout longer and try again. This
problem would occur when a very large directory is being read with a too-small
timeout on the cli.
Jeremy, although there were a couple of areas that needed to be handled, I
needed to make one change that you should bless, in libsmb/clientgen.c. It
was setting
cli->smb_rw_error = smb_read_error;
but smb_read_error is zero, so this had no effect. I'm now doing
cli->smb_rw_error = READ_TIMEOUT;
instead, and according to the OP, these (cumulative) changes (in a slightly
different form) solve the problem.
Please confirm this smb_rw_error change will have no other adverse effects
that you can see.
Derrell
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This completes the work Jeremy began last week, disambiguating the meaning of
c_time. (In POSIX terminology, c_time means "status Change time", not "create
time".) All uses of c_time, a_time and m_time have now been replaced with
change_time, access_time, and write_time, and when creation time is intended,
create_time is used.
Additionally, the capability of setting and retrieving the create time have
been added to the smbc_setxattr() and smbc_getxattr() functions. An example
of setting all four times can be seen with the program
examples/libsmbclient/testacl
with the following command line similar to:
testacl -f -S "system.*:CREATE_TIME:1000000000,ACCESS_TIME:1000000060,WRITE_TIME:1000000120,CHANGE_TIME:1000000180" 'smb://server/share/testfile.txt'
The -f option turns on the new mode which uses full time names in the
attribute specification (e.g. ACCESS_TIME vs A_TIME).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Although I've never met a computer or compiler that produced pointers to
functions which are a different size than pointers to data, I suppose they
probably exist. Assigning a pointer to a function is technically illegal in C
anyway.
Change casts of the option_value based on the option_name to use of variable
argument lists.
For binary compatibility, I've maintained but deprecated the old behavior of
debug_stderr (which expected to be passed a NULL or non-NULL pointer) and
added a new option debug_to_stderr which properly expects a boolean (int)
parameter.
Derrell
|
|
|
|
|
|
|
|
| |
Implement enhancement request 3505. Two additional features are added here.
There is now a method of saving an opaque user data handle in the smbc_
context, and there is now a way to request that the context be passed to the
authentication function. See examples/libsmbclient/testbrowse.c for an example
of using these features.
|
|
|
|
| |
Although RTLD_NEXT was not working properly a number of years ago, it seems to be now. Replace dlopen(/lib/libc...) with direct use of RTLD_NEXT
|
|
|
|
| |
Incorporate a number of changes suggested by David Collier-Brown Thanks, David!
|
|
|
|
| |
added flag to not request authentication information
|
|
|
|
| |
allow for arbitrary option value types
|
|
|
|
| |
bug (enhancement) #2651: add option to log debug messages to stderr instead of stdout
|
|
|
|
| |
actually add the new test program
|
|
|
|
| |
add another libsmbclient test program
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Fix a crash bug which should have reared its ugly head ages ago, but for
some reason, remained dormant until recently. The bug pertained to
libsmbclient doing a structure assignment of a cli after having opened a
pipe. The pipe open code makes a copy of the cli pointer that was passed
to it. If the cli is later copied (and that cli pointer that was saved
is no longer valid), the pipe code will cause a crash during shutdown or
when the copied cli is closed.
2. The 'type' field in enumerated shares was not being set correctly with
the new RPC-based mechanism for enumerating shares.
|
|
|
|
| |
fixed another memory leak and reverted an (incorrect) fix from yesterday
|
|
|
|
|
|
| |
Correct some memory and file descriptor leaks.
This should fix bugs 3257, 3267 and 3273.
|
|
|
|
| |
let's now actually add the new test file
|
|
|
|
| |
added example to read a file and test download time
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Although
the function that was being used to set attributes is a core protocol
function (SMBsetatr = 0x09), it does not appear to work on win98. As a
temporary measure, when file times are to be set, this version opens the
file and uses SMBsetattrE = 0x22 instead. (The other advantage of this
function over the original one is that it supports setting access time as
well as modification time.)
The next step, the proper solution if it can be made to work, is to write
functions that use TRANS2_SET_PATH_INFO instead.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. using smbc_getxattr() et al, one may now request all access control
entities in the ACL without getting all other NT attributes.
2. added the ability to exclude specified attributes from the result set
provided by smbc_getxattr() et al, when requesting all attributes,
all NT attributes, or all DOS attributes.
3. eliminated all compiler warnings, including when --enable-developer
compiler flags are in use. removed -Wcast-qual flag from list, as that
is specifically to force warnings in the case of casting away qualifiers.
Note: In the process of eliminating compiler warnings, a few nasties were
discovered. In the file libads/sasl.c, PRIVATE kerberos interfaces
are being used; and in libsmb/clikrb5.c, both PRIAVE and DEPRECATED
kerberos interfaces are being used. Someone who knows kerberos
should look at these and determine if there is an alternate method
of accomplishing the task.
|
| |
|