1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00
https://gitlab.com/samba-team/samba is the Official GitLab mirror of https://git.samba.org/samba.git -- Merge requests should be made on GitLab (not on GitHub)
Go to file
Tim Beale 89cf5c3f76 replmd: Don't fail cycle if we get link for deleted object with GET_TGT
We are going to end up supporting 2 different server schemes:
A. the old/default behaviour of sending all the linked attributes last,
   at the end of the replication cycle.
B. the new/Microsoft way of sending the linked attributes interleaved
   with the source/target objects.

Normally if we're talking to a server using the old scheme-A, we won't
ever use the GET_TGT flag. However, there are a couple of cases where
it can happen:
- A link to a new object was added during the replication cycle.
- An object was deleted while the replication was in progress (and
the linked attribute got queued before the object was deleted).

Talking to an Samba DC running the old scheme will just cause it to
start the replication cycle from scratch again, which is fairly
harmless. However, there is a chance that the same thing can happen
again, in which case the replication cycle will fail (because GET_TGT
was already set).

Even if we're using the new scheme (B), we could still potentially hit
this case, as we can still queue up linked attributes between requests
(group memberships can be larger than what can fit into a single
replication chunk).

If GET_TGT is set in the GetNcChanges request, then the local copy of
the target object should always be up-to-date when we process the linked
attribute. So if we still think the target object is deleted/recycled at
this point, then it's safe to ignore the linked attribute (because we
know our local copy is up-to-date). This logic matches the MS spec logic
in ProcessLinkValue().

Not failing the replication cycle may be beneficial if we're trying to
do a full-sync of a large database. Otherwise it might be time-consuming
and frustrating to repeat the sync unnecessarily.

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Garming Sam <garming@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12972
2017-08-18 06:07:12 +02:00
auth auth/common: add support for auth4_ctx->check_ntlm_password_send/recv() 2017-08-07 15:20:03 +02:00
buildtools build: Do not recurse on symlinks to directories when building tarballs 2017-08-10 06:43:13 +02:00
coverity coverity: Add modeling file for Coverity scan 2017-02-23 07:11:18 +01:00
ctdb ctdb-daemon: Fix a return value 2017-08-17 15:50:37 +02:00
dfs_server Avoid including libds/common/roles.h in public loadparm.h header. 2016-01-13 04:43:23 +01:00
docs-xml scripts: Scripts to replay and generate samba traffic 2017-08-17 04:06:06 +02:00
dynconfig param: Remove winbindd privileged socket directory option 2017-01-22 18:30:12 +01:00
examples examples: add cache effectiveness stats to gencache.stp 2017-08-11 14:19:24 +02:00
file_server s4: Add TALLOC_CTX * to register_server_service(). 2017-05-11 20:30:13 +02:00
include
lib util: Add documentation for PID file handling 2017-08-17 19:45:32 +02:00
libcli werror: Add WERR_DS_DRA_RECYCLED_TARGET 2017-08-18 06:07:11 +02:00
libds/common Avoid including libds/common/roles.h in public loadparm.h header. 2016-01-13 04:43:23 +01:00
libgpo lib: Give util_paths.c its own header 2017-06-24 01:21:10 +02:00
librpc drepl: Support GET_TGT on periodic replication client 2017-08-18 06:07:12 +02:00
nsswitch libwbclient: Fix CID 1414781 Dereference null return value 2017-07-12 22:12:21 +02:00
packaging packaging: Remove Mandrake 2017-05-10 07:35:20 +02:00
pidl s4: COM: Remove talloc_autofree_context() from (unused) COM code. 2017-07-26 21:35:21 +02:00
python drs_utils: Add GET_TGT support to 'samba-tool drs replicate --local' 2017-08-18 06:07:12 +02:00
release-scripts release-scripts/build-manpages-nogit: run make realdistclean at the end 2015-08-17 17:43:36 +02:00
script tests: replace traffic_summary test with python blackbox test 2017-08-17 07:59:38 +02:00
selftest scripts: Scripts to replay and generate samba traffic 2017-08-17 04:06:06 +02:00
source3 s3: libsmb: Add cli_smb2_chkpath() and use from cli_chkpath(). 2017-08-18 00:51:25 +02:00
source4 replmd: Don't fail cycle if we get link for deleted object with GET_TGT 2017-08-18 06:07:12 +02:00
testdata scripts: Scripts to replay and generate samba traffic 2017-08-17 04:06:06 +02:00
testprogs lib: talloc: Use the system <talloc.h> include. 2017-08-17 00:53:48 +02:00
tests smbd: remove quota support for some ancient OSs 2016-03-17 01:08:32 +01:00
testsuite unittests: Do not install the test_dummy rpc module 2017-07-05 22:21:06 +02:00
third_party third_party/dnspython: fix variable name in dnssec 2017-06-23 02:25:25 +02:00
wintest wintest: Try harder to make wintest force the telnet server to start 2014-03-14 14:51:20 +01:00
.bzrignore
.gitignore gitignore: ignore .gpg-* generated files (for ubuntu 16.04) 2017-06-15 21:40:07 +02:00
.testr.conf testr: Use waf testonly and create a custom directory for new workers. 2014-10-14 06:44:07 +02:00
.travis.yml travis-ci: Also build samba-systemkrb5 2017-06-30 02:12:22 +02:00
.ycm_extra_conf.py Update .ycm_extra_conf.py 2016-11-18 02:22:10 +01:00
BUILD_SYSTEMS.txt doc: Modify build doc concerning missing headers 2014-01-07 04:13:27 +01:00
callcatcher-exceptions.grep
configure configure: Unload the wrappers so waf configure succeeds. 2014-10-09 19:32:16 +02:00
configure.developer lib: Change socket_wrapper to preloadable version. 2014-04-17 14:56:06 +02:00
COPYING
install_with_python.sh install_with_python: Secure Python download with sha256 checks. 2015-07-24 05:19:05 +02:00
Makefile make perftest: for performance testing 2016-08-31 07:09:26 +02:00
PFIF.txt
prog_guide4.txt
README Fix little typo in README file 2015-12-04 06:08:29 +01:00
README.cifs-utils
README.Coding README.Coding: add "Error and out logic" 2017-08-10 14:36:01 +02:00
README.contributing Update mailing list references to point at lists.samba.org 2015-02-10 07:08:28 +01:00
simple-dc-steps.sh dbcheck linked attribute tests: save environment with bad links 2016-07-15 10:01:30 +02:00
VERSION VERSION: Bump version up to 4.8.0pre1... 2017-07-04 13:11:16 +02:00
WHATSNEW.txt WHATSNEW: Start release notes for Samba 4.8.0pre1. 2017-07-04 17:41:59 +02:00
wscript waf: Only build unit tests with selftest enabled 2017-07-05 17:54:10 +02:00
wscript_build waf: Only build unit tests with selftest enabled 2017-07-05 17:54:10 +02:00
wscript_build_embedded_heimdal wscript: Build the KDC code if we have the AD DC build enabled 2016-03-17 04:32:28 +01:00
wscript_build_system_heimdal wscript: Build the KDC code if we have the AD DC build enabled 2016-03-17 04:32:28 +01:00
wscript_build_system_mitkrb5
wscript_configure_system_mitkrb5 waf: Improve log errors for MIT build 2017-05-02 23:42:14 +02:00

This is the release version of Samba, the free SMB and CIFS client and
server and Domain Controller for UNIX and other operating
systems. Samba is maintained by the Samba Team, who support the
original author, Andrew Tridgell.

>>>> Please read THE WHOLE of this file as it gives important information
>>>> about the configuration and use of Samba.

NOTE: Installation instructions may be found
      for the file/print server and domain member in:
      docs/htmldocs/Samba3-HOWTO/install.html

      For the AD DC implementation a full HOWTO is provided at:
      http://wiki.samba.org/index.php/Samba4/HOWTO

This software is freely distributable under the GNU public license, a
copy of which you should have received with this software (in a file
called COPYING). 


WHAT IS SMB/CIFS?
=================

This is a big question. 

The very short answer is that it is the protocol by which a lot of
PC-related machines share files and printers and other information
such as lists of available files and printers. Operating systems that
support this natively include Windows 9x, Windows NT (and derivatives), 
OS/2, Mac OS X and Linux.  Add on packages that achieve the same 
thing are available for DOS, Windows 3.1, VMS, Unix of all kinds, 
MVS, and more.  Some Web Browsers can speak this protocol as well 
(smb://).  Alternatives to SMB include Netware, NFS, Appletalk, 
Banyan Vines, Decnet etc; many of these have advantages but none are 
both public specifications and widely implemented in desktop machines 
by default.

The Common Internet File system (CIFS) is what the new SMB initiative
is called. For details watch http://samba.org/cifs.


WHY DO PEOPLE WANT TO USE SMB?
==============================

1. Many people want to integrate their Microsoft desktop clients
   with their Unix servers.

2. Others want to integrate their Microsoft (etc) servers with Unix
   servers. This is a different problem to integrating desktop 
   clients.

3. Others want to replace protocols like NFS, DecNet and Novell NCP,
   especially when used with PCs.


WHAT CAN SAMBA DO?
==================

Please refer to the WHATSNEW.txt included with this README for
a list of features in the latest Samba release.

Here is a very short list of what samba includes, and what it does. 
For many networks this can be simply summarized by "Samba provides 
a complete replacement for Windows NT, Warp, NFS or Netware servers."

- a SMB server, to provide Windows NT and LAN Manager-style file and print 
  services to SMB clients such as Windows 95, Warp Server, smbfs and others.

- a Windows Domain Controller (NT4 and AD) replacement.

- a file/print server that can act as a member of a Windows NT 4.0
  or Active Directory domain.

- a NetBIOS (rfc1001/1002) nameserver, which amongst other things gives 
  browsing support. Samba can be the master browser on your LAN if you wish.

- a ftp-like SMB client so you can access PC resources (disks and
  printers) from UNIX, Netware, and other operating systems

- a tar extension to the client for backing up PCs

- limited command-line tool that supports some of the NT administrative
  functionality, which can be used on Samba, NT workstation and NT server.

For a much better overview have a look at the web site at
http://samba.org/samba, and browse the user survey.

Related packages include:

- cifsvfs, an advanced Linux-only filesystem allowing you to mount 
  remote SMB filesystems from PCs on your Linux box. This is included 
  as standard with Linux 2.5 and later.

- smbfs, the previous Linux-only filesystem allowing you to mount remote SMB
  filesystems from PCs on your Linux box. This is included as standard with
  Linux 2.0 and later.



CONTRIBUTIONS
=============

1. To contribute via GitHub
  - fork the official Samba team repository on GitHub
      * see https://github.com/samba-team/samba
  - become familiar with the coding standards as described in README.Coding
  - make sure you read the Samba copyright policy
      * see https://www.samba.org/samba/devel/copyright-policy.html
  - create a feature branch
  - make changes
  - when committing, be sure to add signed-off-by tags
      * see https://wiki.samba.org/index.php/CodeReview#commit_message_tags
  - send a pull request for your branch through GitHub
  - this will trigger an email to the samba-technical mailing list
  - discussion happens on the samba-technical mailing list as described below
  - more info on using Git for Samba development can be found on the Samba Wiki
      * see https://wiki.samba.org/index.php/Using_Git_for_Samba_Development

2. If you want to contribute to the development of the software then
please join the mailing list. The Samba team accepts patches
(preferably in "diff -u" format, see http://samba.org/samba/devel/ 
for more details) and are always glad to receive feedback or 
suggestions to the address samba@lists.samba.org.  More information
on the various Samba mailing lists can be found at http://lists.samba.org/.

You can also get the Samba sourcecode straight from the git repository - see
http://wiki.samba.org/index.php/Using_Git_for_Samba_Development.

If you like a particular feature then look through the git change-log
(on the web at http://gitweb.samba.org/?p=samba.git;a=summary) and see
who added it, then send them an email.

Remember that free software of this kind lives or dies by the response
we get. If no one tells us they like it then we'll probably move onto
something else.

MORE INFO
=========

DOCUMENTATION
-------------

There is quite a bit of documentation included with the package,
including man pages, and lots of .html files with hints and useful
info. This is also available from the web page. There is a growing
collection of information under docs/.

A list of Samba documentation in languages other than English is
available on the web page.

If you would like to help with the documentation, please coordinate
on the samba@samba.org mailing list.  See the next section for details 
on subscribing to samba mailing lists.


MAILING LIST
------------

Please do NOT send subscription/unsubscription requests to the lists!

There is a mailing list for discussion of Samba.  For details go to
<http://lists.samba.org/> or send mail to <samba-subscribe@lists.samba.org>

There is also an announcement mailing list where new versions are
announced.  To subscribe go to <http://lists.samba.org/> or send mail
to <samba-announce-subscribe@lists.samba.org>.  All announcements also
go to the samba list, so you only need to be on one.

For details of other Samba mailing lists and for access to archives, see
<http://lists.samba.org/>


MAILING LIST ETIQUETTE
----------------------

A few tips when submitting to this or any mailing list.

1. Make your subject short and descriptive. Avoid the words "help" or
   "Samba" in the subject. The readers of this list already know that
   a) you need help, and b) you are writing about samba (of course,
   you may need to distinguish between Samba PDC and other file
   sharing software). Avoid phrases such as "what is" and "how do
   i". Some good subject lines might look like "Slow response with
   Excel files" or "Migrating from Samba PDC to NT PDC".

2. If you include the original message in your reply, trim it so that
   only the relevant lines, enough to establish context, are
   included. Chances are (since this is a mailing list) we've already
   read the original message.

3. Trim irrelevant headers from the original message in your
   reply. All we need to see is a) From, b) Date, and c) Subject. We
   don't even really need the Subject, if you haven't changed
   it. Better yet is to just preface the original message with "On
   [date] [someone] wrote:".

4. Please don't reply to or argue about spam, spam filters or viruses
   on any Samba lists. We do have a spam filtering system that is
   working quite well thank you very much but occasionally unwanted
   messages slip through. Deal with it.

5. Never say "Me too." It doesn't help anyone solve the
   problem. Instead, if you ARE having the same problem, give more
   information. Have you seen something that the other writer hasn't
   mentioned, which may be helpful?

6. If you ask about a problem, then come up with the solution on your
   own or through another source, by all means post it. Someone else
   may have the same problem and is waiting for an answer, but never
   hears of it.

7. Give as much *relevant* information as possible such as Samba
   release number, OS, kernel version, etc...

8. RTFM. Google. groups.google.com.


WEB SITE
--------

A Samba WWW site has been setup with lots of useful info. Connect to:

http://samba.org/

As well as general information and documentation, this also has searchable 
archives of the mailing list and a user survey that shows who else is using
this package.