1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00
Commit Graph

82 Commits

Author SHA1 Message Date
Andrew Bartlett
e16c9904c6 s3-libsmbclient-examples Add tests for debug behaviour. 2010-11-02 04:36:04 +00:00
Karolin Seeger
fce533e3be examples: Fix typo in comment.
Karolin
2010-04-13 20:07:11 +02:00
Andrew Kroeger
71515ba190 s4: Call va_end() after all va_start()/va_copy() calls.
This corrects the issues reaised in bug #6129, and some others that were not
originally identified.  It also accounts for some code that was in the original
bug report but appears to have since been made common between S3 and S4.

Thanks to Erik Hovland <erik@hovland.org> for the original bug report.
2009-06-18 13:49:25 +10:00
Derrell Lipman
21ad907aa0 Ensure parameter types match format string 2009-03-27 18:03:00 -04:00
Derrell Lipman
352c97561e [Bug 6069] Add a fstatvfs function for libsmbclient
- Revert Tim's changes for the moment. I need to see what the issue is and
  arrange to use "struct statvfs" if at all possible.

Derrell
2009-02-14 09:44:36 -05:00
Tim Prouty
5e5d2b2cfa s3 libsmbclient: Fix fstatvfs to be more portable
The statvfs struct isn't guaranteed to be portable across operating
systems.  Since libsmbclient isn't actually calling statvfs and just
using the statvfs struct to store similar information, this patch adds
a new portable smbc_statvfs struct.  This fixes a few of the failures
in the build farm introduced by:
ae259575c4

Derrell, please check.
2009-02-13 12:59:30 -08:00
Derrell Lipman
ae259575c4 [Bug 6069] Add a fstatvfs function for libsmbclient
- port functionality from v3_3_test to master

Derrell
2009-02-12 10:39:48 -05:00
Michael Adam
747f4b358c examples/libsmbclient: fix Makefile after merged build patch changes.
New variable FLAGS in source3/Makefile.in introduced recursive
variable FLAGS in Makefile.internal.

Michael
2008-09-17 17:50:18 +02:00
Michael Adam
4d12acf326 examples/libsmbclient: adapt to new samba3 source dir "source3/
Michael
2008-09-17 17:50:18 +02:00
Michael Adam
fb0b833001 libsmbclient examples: source/bin to the library search path for smbwrapper build
Michael
(This used to be commit fe62098666)
2008-08-21 12:16:05 +02:00
Michael Adam
f14e833c53 libsmbclient examples: add Makefile.internal.in for building from a samba source
Without needing to install libsmbclient to /usr/local/samba first.

Michael
(This used to be commit f0e47bce2e)
2008-08-21 12:16:05 +02:00
Michael Adam
f1a45e3b6b libsmbclient examples: fix prototype for readlink
Michael
(This used to be commit 28688cfd57)
2008-08-21 12:16:04 +02:00
Jeremy Allison
03991ab073 Fix bug 5686 - libsmbclient segfaults with more than one SMBCCTX.
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 8c630efd25)
2008-08-12 13:35:15 -07:00
Andreas Schneider
ef0a7b0b94 Add krb5 support for the testbrowse example.
Signed-off-by: Andreas Schneider <anschneider@suse.de>
Signed-off-by: Derrell Lipman <derrell.lipman@unwireduniverse.com>
(This used to be commit 84b1ea39a4)
2008-06-23 15:36:37 -04:00
Karolin Seeger
f21058d61e man pages: Move 'smbsh' man page to the examples directory.
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
(This used to be commit 797ed744b1)
2008-06-17 13:23:09 +02:00
Derrell Lipman
3e20aeb18e Working on bug #5475
- Add code to test whether smbc_stat() munges future smbc_getxattr() results.

Derrell
(This used to be commit 5f6b301f92)
2008-05-30 10:38:35 -04:00
Derrell Lipman
cf4b2f4d24 Update libsmbclient examples to match new libraries
- talloc and tdb have been moved to separate libraries.  Link with those.

Derrell
(This used to be commit e4060ad864)
2008-05-30 10:24:55 -04:00
Derrell Lipman
ee45d0d663 Missed a few 'deprecated' markers
(This used to be commit 76ba37ac46)
2008-03-03 18:25:49 -05:00
Derrell Lipman
1363ee9d65 Continued revamping of libsmbclient.
- 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 a67f96fbe9)
2008-03-03 18:13:33 -05:00
Derrell Lipman
8a05c0a884 Remove use of deprecated function
(This used to be commit 93580bce83)
2008-03-02 16:21:48 -05:00
Derrell Lipman
223940d9a8 Additional revamped libsmbclient documentation
- 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 64b7150d92)
2008-03-01 20:47:22 -05:00
Derrell Lipman
257b7b0929 Initial revamp of the libsmbclient interface.
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 d4b4bae8de)
2008-03-01 20:47:22 -05:00
Derrell Lipman
ab9afdd311 add a test program for the new ftruncate functionality
(This used to be commit df995eddbd)
2008-02-26 21:46:08 -05:00
Derrell Lipman
76b5c674e7 Add a program to test repeated calls to smbc_getxattr().
(This used to be commit f5f46de404)
2008-01-17 11:46:41 -05:00
Derrell Lipman
dba2400192 Add some additional libsmbclient test programs.
testwrite: create or truncate a file and write to it.
teststat3: compare the results from smbc_stat() and smbc_fstat()

Derrell
(This used to be commit 5a4a7aec76)
2008-01-17 09:26:36 -05:00
Derrell Lipman
3e494442de Modify testread example to loop using same context.
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
(This used to be commit 9d75ea577b)
2008-01-16 14:41:11 +00:00
Derrell Lipman
735e98759c Replace GetTimeOfDay() with gettimeofday() in example program.
GetTimeOfDay() seems to no longer be exported.  For the smbsh example, just
use the native gettimeofday() for now.
(This used to be commit 296a6783fb)
2008-01-16 14:37:40 +00:00
Derrell Lipman
12d31ba2b8 Add a (very!) trivial cache to the example authentication callback.
(This used to be commit 01f6a4cca7)
2008-01-16 14:35:44 +00:00
Derrell Lipman
011e89c858 Fix smbc_listxattr() and friends (bug #5189)
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
(This used to be commit 913c335d21)
2008-01-13 17:10:06 -05:00
Derrell Lipman
d49ba81210 Fix compile and linking errors since last this code was tested
(This used to be commit 2f43284244)
2008-01-13 12:07:18 -05:00
Günther Deschner
83b1751615 Remove unused string.
Guenther
(This used to be commit 88d6683872)
2008-01-10 13:02:10 +01:00
Günther Deschner
af02de700d Fix build warning for libsmbclient example.
Guenther
(This used to be commit 8f411753b2)
2008-01-09 10:20:44 +01:00
Derrell Lipman
83fc92c82c r24388: - ACL retrieval provided incomplete information because the buffer 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
(This used to be commit 2ac502e29b)
2007-10-10 12:29:39 -05:00
Andrew Tridgell
58e9534300 r23785: use the GPLv3 boilerplate as recommended by the FSF and the license text
(This used to be commit d0e89d246d)
2007-10-10 12:28:23 -05:00
Jeremy Allison
d824b98f80 r23779: Change from v2 or later to v3 or later.
Jeremy.
(This used to be commit 407e6e695b)
2007-10-10 12:28:20 -05:00
Derrell Lipman
4a413b3043 r22914: - Fixes bug 4599. A missing <code>if</code> statement forced 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.
(This used to be commit 7213b5ebec)
2007-10-10 12:22:07 -05:00
Derrell Lipman
a8202531d8 r22130: - Ensure that the libsmbclient example programs link with the libsmbclient
library that's part of the current tree, not with whatever happens to have
  been previously installed.
(This used to be commit c65621e0b7)
2007-10-10 12:19:15 -05:00
Derrell Lipman
44c1504c03 r18012: Should fix bug 4018.
NetApp filers expect paths in Open AndX Request to have a leading slash.
Windows clients send the leading slash, so we should too.
(This used to be commit fc5b6e4bd8)
2007-10-10 11:39:48 -05:00
Derrell Lipman
40665edf5e r18011: Should fix bug 3835.
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 used to be commit fa664b24b8)
2007-10-10 11:39:48 -05:00
Derrell Lipman
5e44fc4cd4 r18009: Fixes bug 4026.
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).
(This used to be commit 8e119b64f1)
2007-10-10 11:39:47 -05:00
Derrell Lipman
9718506d35 r16550: Fix bug 3866. Thanks for the report!
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
(This used to be commit c1b4c51053)
2007-10-10 11:18:59 -05:00
Derrell Lipman
e836508704 r14664: r13868@cabra: derrell | 2006-03-22 17:04:30 -0500
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.
(This used to be commit 203b4911c1)
2007-10-10 11:15:42 -05:00
Derrell Lipman
673c356488 r12852: r12150@cabra: derrell | 2006-01-11 13:21:14 -0500
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
(This used to be commit 2b48665006)
2007-10-10 11:06:04 -05:00
Derrell Lipman
96d0d186db r12759: r12128@cabra: derrell | 2006-01-07 15:34:01 -0500
Incorporate a number of changes suggested by David Collier-Brown  Thanks, David!
(This used to be commit 0ae65b9af5)
2007-10-10 11:06:03 -05:00
Derrell Lipman
9a8ca1901c r12757: r12126@cabra: derrell | 2006-01-03 15:21:36 -0500
added flag to not request authentication information
(This used to be commit 8396c4b26c)
2007-10-10 11:06:02 -05:00
Derrell Lipman
cbc97b4e5a r12579: r12122@cabra: derrell | 2005-12-29 12:03:00 -0500
allow for arbitrary option value types
(This used to be commit 64c8e32b63)
2007-10-10 11:06:00 -05:00
Derrell Lipman
e13d0cb3ec r12576: r12115@cabra: derrell | 2005-12-29 11:16:03 -0500
bug (enhancement) #2651: add option to log debug messages to stderr instead of stdout
(This used to be commit 4182eb99af)
2007-10-10 11:05:59 -05:00
Derrell Lipman
494e332220 r12468: r12033@cabra: derrell | 2005-12-24 21:03:45 -0500
actually add the new test program
(This used to be commit e3bab0cc43)
2007-10-10 11:05:56 -05:00
Derrell Lipman
9d36d5ee2d r12467: r12029@cabra: derrell | 2005-12-24 20:25:59 -0500
add another libsmbclient test program
(This used to be commit 133cd3952b)
2007-10-10 11:05:56 -05:00
Derrell Lipman
765daab643 r12225: r11729@cabra: derrell | 2005-12-13 22:59:45 -0500
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.
(This used to be commit 62a02b8f2a)
2007-10-10 11:05:50 -05:00