1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-27 03:21:53 +03:00
Commit Graph

40 Commits

Author SHA1 Message Date
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
fa341d5262 add smbc_ftruncate() to emulate POSIX ftruncate()
(This used to be commit 6f5051b9c1)
2008-02-26 21:44:51 -05: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
Andrew Tridgell
153cfb9c83 r23801: The FSF has moved around a lot. This fixes their Mass Ave address.
(This used to be commit 87c91e4362)
2007-10-10 12:28:27 -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
7bcf281c9c r21132: - Fixes bug 4366. Documentation for smbc_utimes() was incorrect.
- Should fix bug 4115 (but needs confirmation from OP).  If the kerberos use
  flag is set in the context, then also pass it to smbc_attr_server for use by
  cli_full_connection()

- Should fix bug 4309 (but needs confirmation from OP).  We no longer send a
  keepalive packet unconditionally.  Instead, we assume (yes, possibly
  incorrectly, but it's the best guess we can make) that if the connection is
  on port 139, it's netbios and otherwise, it isn't.  If netbios is in use, we
  send a keepalive packet.  Otherwise, we check that the connection is alive
  using getpeername().
(This used to be commit 2f9be59c10)
2007-10-10 12:17:42 -05:00
Derrell Lipman
315f416211 r18013: Fix for "bug" (enhancement) 3684.
Provide a new option to specify the share mode to be used when opening a
file.
(This used to be commit 9b6fee5f6f)
2007-10-10 11:39:48 -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
Jeremy Allison
5cc61b3825 r11719: Remove silly #define of close -> close_fn as this borks
any code that includes libsmbclient.h that also calls the
system close() fn. Doh ! Thanks to John Terpstra for
reporting this.
Jeremy.
(This used to be commit 6e1cb7047a)
2007-10-10 11:05:25 -05:00
Jeremy Allison
fcceedd67c r11573: Adding Andrew Bartlett's patch to make machine account
logons work if the client gives the MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT
or MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT flags. This changes
the auth module interface to 2 (from 1). The effect of this is
that clients can access resources as a machine account if they
set these flags. This is the same as Windows (think of a VPN
where the vpn client authenticates itself to a VPN server
using machine account credentials - the vpn server checks
that the machine password was valid by performing a machine
account check with the PDC in the same was as it would a
user account check. I may add in a restriction (parameter)
to allow this behaviour to be turned off (as it was previously).
That may be on by default.
Andrew Bartlett please review this change carefully.
Jeremy.
(This used to be commit d1caef8663)
2007-10-10 11:05:20 -05:00
Derrell Lipman
7dd03e891e r9540: correct comments in struct smbc_dirent (fixes bug 3030)
(This used to be commit 1f8aff85a6)
2007-10-10 11:01:12 -05:00
Volker Lendecke
3a8af94424 r8093: Next round. Now it compiles with --enable-socket-wrapper.
Volker
(This used to be commit 25cbcfba30)
2007-10-10 10:58:11 -05:00
Tim Potter
100b7adcd7 r5916: Only one C++ guard is necessary, not one around each smbc function.
(This used to be commit e446f16a40)
2007-10-10 10:56:08 -05:00
Gerald Carter
51310680ce r5752: implement derrell's solution for binary compatibilty in the _SMBCCTX structure; note that we break compat with 3.0.11 but are ok with earlier versions
(This used to be commit 6e8d171551)
2007-10-10 10:55:59 -05:00
Gerald Carter
9d65e07784 r5735: rest of derrel's patch for BUG 2308; had to move the options structure from the _SMBCCTX to the internals structure to maintain binary compatibility (derrel, we should talk more about this)
(This used to be commit a5ea01bf15)
2007-10-10 10:55:58 -05:00
Jeremy Allison
c24c328a9e r4970: Fix for bug 2092, allowing fallback after kerberos and allow
gnome vfs to prevent auto-anonymous logon.
Jeremy.
(This used to be commit 843e85bcd9)
2007-10-10 10:55:10 -05:00
Richard Sharpe
c9f1b5b022 r599: Bug #1178. Make the libsmbclient routines callable by C++ programs. Also
clean up the format of the file a bit.
(This used to be commit 63c846fa1d)
2007-10-10 10:51:31 -05:00
Tim Potter
31e6157dfd Add prototype for smbc_remove_unused_server() to fix compiler warning.
Bug #706.
(This used to be commit eaf69b1ae7)
2003-11-02 14:15:36 +00:00
Richard Sharpe
2f84a990bc Commit Derrell's changes to libsmbclient plus a small change to configure.in
to see if SGI and other platforms will build.
(This used to be commit cf9311044c)
2003-10-24 17:01:19 +00:00
Jelmer Vernooij
a8c95d79f8 Add support for the new modules system to auth/ (merge from HEAD)
(This used to be commit c7a1de090d)
2003-04-16 12:13:07 +00:00
Richard Sharpe
16925589eb Now that I am running config.developer, I decided to get rif of some warnings:
1. reboot in parse_reg and cli_reg was shadowing a definition on FreeBSD
   4.3 from system includes.

2. Added a bit of const to places.

3. Made sure internal functions were declared where needed.
(This used to be commit fd847aa936)
2003-01-13 20:04:40 +00:00
Gerald Carter
a834a73e34 sync'ing up for 3.0alpha20 release
(This used to be commit 65e7b5273b)
2002-09-25 15:19:00 +00:00
Andrew Tridgell
e90b652848 updated the 3.0 branch from the head branch - ready for alpha18
(This used to be commit 03ac082dcb)
2002-07-15 10:35:28 +00:00
Tim Potter
cd68afe312 Removed version number from file header.
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
(This used to be commit 6a58c9bd06)
2002-01-30 06:08:46 +00:00
Tim Potter
8e267ac007 Made a libsmbclient doxygen group and moved all the libsmbclient groups
under it.
(This used to be commit 43c496598f)
2001-11-22 04:29:10 +00:00
Richard Sharpe
7c74cc5cab Fix up libsmbclient in head.
Apply the patches from Tom Jansen, get rid of fprintfs and change them to
DEBUGs, etc ...
(This used to be commit 7ac404c853)
2001-11-21 03:55:59 +00:00
Richard Sharpe
5d72464a56 Updated the inplace documentation to reflect change from EUCLEAN to EINVAL.
(This used to be commit d090ae63ae)
2001-05-15 01:47:22 +00:00
Richard Sharpe
9579f927dc More documentation in the header in doxygen format
(This used to be commit db2e712ad3)
2001-03-10 01:29:20 +00:00
Richard Sharpe
2b22019e42 Fix the definition and implementation of smbc_lseekdir ...
(This used to be commit e628d80d1e)
2001-03-07 04:39:31 +00:00
Richard Sharpe
167a7d76d9 Added commented/documented version of libsmbclient.h and fixed up a small
problem in libsmbclient.c where we no longer pass the workgroup.
(This used to be commit 3c66114346)
2001-02-12 12:17:54 +00:00
Richard Sharpe
5455f2896f Fix problems in libsmbclient with pring job struct plus add implementation
of last two print routines ...
(This used to be commit 7c50af3b71)
2001-02-06 19:25:12 +00:00
Richard Sharpe
ca03ad79cf Implement two printing related functions and start the remaining two.
(This used to be commit c19559a286)
2001-02-05 13:02:20 +00:00
Richard Sharpe
2fd7e6e6a0 Fix some further small bugs in libsmbclient to make it pass the
Caldera test suite and start to add the printing routines.
(This used to be commit 838cfad404)
2001-02-04 19:48:26 +00:00
Richard Sharpe
338fd23290 Some more bug fixes plus implementations of smbc_mkdir and smbc_rmdir,
both tested ...

More later.
(This used to be commit 66bb40153a)
2001-01-12 12:48:55 +00:00
Richard Sharpe
fb40134446 Many bug fixes to the libsmbclient.c code plus
- an implementation of smbc_readdir
  - extensions to tree.c to show files in a second window
  - changes to auth_fn to provide buffers for username, password, etc
    from caller rather than callee
(This used to be commit 7f559c1a73)
2001-01-12 05:10:45 +00:00
Richard Sharpe
c6d5280a54 More fixes and implementation bits and pieces for libsmbclient
(This used to be commit 991f6907ac)
2001-01-07 07:10:50 +00:00
Richard Sharpe
c29e85cf89 Fix a small type in libsmbclient.h ...
(This used to be commit 807e2e1faa)
2001-01-05 22:32:53 +00:00
Richard Sharpe
b6e811b90b The latest changes to libsmbclient ...
It can now do a directory listing for workgroups, servers, and shares, and,
with a bit more effort, it will be able to list directories and files.

I also does not request a username and password for the IPC$ share, but it
should if the first attempt to connect fails.
(This used to be commit 38ff91c505)
2001-01-05 13:43:19 +00:00
Richard Sharpe
b87c484051 First pass at the libsmbclient code ...
This code handles the basic stuff and compiles and links under Linux, but
I do not know about any other operating systems. Now onto directory
listing routines, including those that list workgroups, servers, etc.

Nothing is built automatically yet, you have to make client/testsmbc to build
the library and test program. Also, no make install targets are defined for
libsmbclient.so as yet, either.

Would be good if people test on operating systems other than Linux.
(This used to be commit 51c0436a50)
2000-12-26 05:57:10 +00:00