Age | Commit message (Collapse) | Author | Files | Lines |
|
- Begin converting init functions to use SMB_THREAD_ONCE. libsmbclient
module-wide initialization is now moved into a separate function and called
via SMB_THREAD_ONCE.
- libsmbclient counts users (contexts) so that it can release global resources
when the last context is closed. That count of contexts is now protected by
a mutex.
Derrell
|
|
callers pass in a struct user_auth_info * instead. This commit causes
smbc_set_credentials() to print out a message telling callers to use
smbc_set_credentials_with_fallback() instead, as smbc_set_credentials()
has a broken API (no SMBCCTX * pointer). No more global variables used
in the connection manager API for client dfs calls.
Jeremy.
|
|
- Use const in function signatures whenever appropriate, to help prevent
errant scribbling on users' buffers. smbc_set_credentials() always acted as
if its formal parameters were const char *, and changing the formal
declaration to specify that should not cause any change to the ABI. It is
still allowable to pass a writable buffer to a function which specifies that
it will not write to the buffer.
I'm making this change only in master.
Derrell
|
|
const approptiately.
Jeremy.
|
|
|
|
Signed-off-by: Derrell Lipman <derrell.lipman@unwireduniverse.com>
|
|
- port functionality from v3_3_test to master
Derrell
|
|
- Most of the time, we can determine from the file system we're connecting to
whether it supports case sensitivity. In those cases, we now set the
internal case sensitivity flag automatically. For those cases where the
request to retrieve file system attributes fails, we'll use the
user-specified option value.
Derrell
|
|
*** THIS COMMIT CAUSES A CHANGE OF DEFAULT BEHAVIOR IN libsmbclient!!! ***
- libsmbclient now calls cli_set_case_sensitive() for a new CLI. By default,
it requests case-sensitive, but the old behavior of case-insensitive can be
requested with smbc_setOptionCaseSensitive(context, False);
The change of behavior is considered a bug fix, as it was previously
possible to accidentally overwrite a file that had the same case-insensitive
name but a different case-sensitive name as a previously-existing file,
while creating a new file.
Derrell
|
|
version.h changes rather frequently. Since it is included via includes.h,
this means each C file will be a cache miss. This applies to the following
situations:
* When building a new package with a new Samba version
* building in a git branch after calling mkversion.sh
after a new commit (i.e. virtually always)
This patch improves the situation in the following way:
* remove inlude "version.h" from includes.h
* Use samba_version_string() instead of SAMBA_VERSION_STRING
in files that use no other macro from version.h instead of
SAMBA_VERSION_STRING.
* explicitly include "version.h" in those files that use more
macros from "version.h" than just SAMBA_VERSION_STRING.
Michael
|
|
This involves changing all our clients, that's why it's so large.
|
|
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.
(This used to be commit 8c630efd25cf17aff59448ca05c1b44a41964b16)
|
|
Signed-off-by: Andreas Schneider <anschneider@suse.de>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit d2682295f55a18d526434062834c033aa18e794b)
|
|
(This used to be commit 11d74fc51c637b8129304b5de85bbe02a86a69ce)
|
|
libsmbclient doesn't have bool defined; rather it uses smbc_bool
Derrell
(This used to be commit e1ade80f468e8ed827f9d4fd035d79546fa0ee0a)
|
|
Signed-off-by: Andreas Schneider <anschneider@suse.de>
(This used to be commit 7a65053bc8579b4f56045fb2c658a91a4af0dfea)
|
|
Brian Sheehan provided a nice patch intended for the 3.0 code base. This
commit applies a similar patch for the 3.3 code base. It adds a new public
function to libsmbclient -- smbc_set_credentials() -- that may be called from
the authentication callback when DFS referrals are in use.
Derrell
(This used to be commit 888f922bd0d1c84a687d404e95ae314a9dd0aee1)
|
|
During my initial plans for, and the subsequent discussion of a more
significant change to the API for libsmbclient, I had removed the
AuthDataWithContext usage, in favor of a more generalized planned interface.
When the API returned to its original state, I neglected to reinsert this
code.
Use of an authentication function with the context can be tested using
examples/libsmbclient/testbrowse -C
Derrell
(This used to be commit 38eab68dfb2d8abe8ad00f5a86fc54c778d0d303)
|
|
Derrell
(This used to be commit b7f34e7ef2907b498a0645ce68f2773ed7d60cdc)
|
|
(This used to be commit e473e6d50c56f52ef5e4853e4ca3b3548af06f51)
|
|
- 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
(This used to be commit a67f96fbe9683b46c2149f7cb439d13f7f0e6ecd)
|
|
(This used to be commit 23cb9c49e3724cecaa66655ef64c3111bf14c552)
|
|
- Ensured that all public functions have documentation in libsmbclient.h
- Reformatted for "proper" indentation
- Re-added temporarily-disabled alternate authentication function capability
Derrell
(This used to be commit 64b7150d92849a1e1e2416b9dcc12fae8d6bea99)
|
|
Given the tacit (if that) approval by some people, and clear disapproval by
others for my proposed clean-up and reorganization of libsmbclient, I've come
up with a slightly different approach. This commit changes back to the
original libsmbclient.h SMBCCTX structure which will maintain ABI
compatibility. I retain, here, the setter and getter functions which all new
code should use. Older programs already compiled should continue to work
fine. Older programs being recompiled will encounter compile-time errors
(intentionally!) so that the code can be corrected to use the setter/getter
interfaces.
Although this doesn't clean up the interface in the way I had wanted, the code
reorganization and requirement for new programs to use the setters and getters
allows future progress to be made on libsmbclient without further muddying up
the interface, while retaining the ABI compatibility that was the big issue
causing disapproval. I hope that this compromise is adequate.
Derrell
(This used to be commit 56429a3d60b2a48963342f6340b3c01469a892c6)
|
|
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
(This used to be commit d4b4bae8ded824d06ad5ab0e219f71187ee5c771)
|