Andrew Bartlett [Mon, 17 Aug 2009 01:33:25 +0000 (11:33 +1000)]
s4:provision Avoid one more call to ltdb_reindex
The Samba4 schema code (called via
samdb.set_schema_from_ldb(schema.ldb)) manages the @ATTRIBUTES and
@INDEXLIST records, so don't wipe them early. The chances are that we
will not change them anyway.
Andrew Tridgell [Mon, 17 Aug 2009 01:12:10 +0000 (11:12 +1000)]
fixed the updateNow schema test to use a canonical OID
The expression time.strftime("%s", time.gmtime())[3:] leads to a
string with a leading 0. When added then read back from the prefix map
this leads to a different string, so it is never found.
Use the simpler str(random.randint(a,b)) expression instead
Andrew Bartlett [Fri, 14 Aug 2009 07:51:14 +0000 (17:51 +1000)]
s4:selftest Remove the 'subunit filter' from make testenv etc
The extra filter is no use for 'testenv', as we are not running tests,
but an xterm. The filter also breaks running 'GDB_PROVISION=yes make
test', but at least if we can run 'GDB_PROVISION=yes make testenv'
then we can debug provision.
Andrew Bartlett [Thu, 13 Aug 2009 22:29:19 +0000 (08:29 +1000)]
s4:provision Keep a single transaction for the erase and rebuild
Using a single transaction to both erase the bulk of the data and the
rebuild of that data means that the in-memory index list is
maintained, and not written out to disk until it is all compleated.
All the writes then occour at the end.
Andrew Bartlett [Thu, 13 Aug 2009 07:01:27 +0000 (17:01 +1000)]
s4:provision Rework provision-backend into provision
This removes a *lot* of duplicated code and the cause of much
administrator frustration. We now handle starting and stopping the
slapd (at least for the provision), and ensure that there is only one
'right' way to configure the OpenLDAP and Fedora DS backend
We now run OpenLDAP in 'cn=config' mode for online configuration.
To test what was the provision-backend code, a new --ldap-dryrun-mode
option has been added to provision. It quits the provision just
before it would start the LDAP binaries
Andrew Bartlett [Thu, 13 Aug 2009 04:37:06 +0000 (14:37 +1000)]
s4:python Push some helper functions from SamDB into samba.Ldb
This makes it possible to do a bit more of the provision with Samba
helpers, but without some of the otherwise useful things (such as
loading in the global schema) that SamDB does.
Rewrite provision_erase to use a recursive search, rather than a
looping subtree search. This is much more efficient, particularly now
we have one-level indexes enabled.
Delete the @INDEX and similar records *after* deleting all other
visible records, this hopefully also assists performance.
Andrew Bartlett [Wed, 12 Aug 2009 23:58:38 +0000 (09:58 +1000)]
s4:schema Provide a way to reference a loaded schema between ldbs
This allows us to load the schema against one ldb context, but apply
it to another. This will be useful in the provision script, as we
need the schema before we start the LDAP server backend.
Jeff Layton [Fri, 14 Aug 2009 11:59:50 +0000 (07:59 -0400)]
cifs.upcall: use ip address passed by kernel to get server's hostname
Instead of using the hostname given by the upcall to get the server's
principal, take the IP address given in the upcall and reverse resolve
it to a hostname.
Jeff Layton [Fri, 14 Aug 2009 11:59:50 +0000 (07:59 -0400)]
cifs.upcall: try getting a "cifs/" principal and fall back to "host/"
cifs.upcall takes a "-c" flag that tells the upcall to get a principal
in the form of "cifs/hostname.example.com@REALM" instead of
"host/hostname.example.com@REALM". This has turned out to be a source of
great confusion for users.
Instead of requiring this flag, have the upcall try to get a "cifs/"
principal first. If that fails, fall back to getting a "host/"
principal.
Jeff Layton [Fri, 14 Aug 2009 11:59:49 +0000 (07:59 -0400)]
cifs.upcall: declare a structure for holding decoded args
The argument list for the decoder is becoming rather long. Declare an
args structure and use that for holding the args. This also simplifies
pointer handling a bit.
Jeff Layton [Fri, 14 Aug 2009 11:59:49 +0000 (07:59 -0400)]
cifs.upcall: clean up logging and add debug messages
Change the log levels to be more appropriate to the messages being
logged. Error messages should be LOG_ERR and not LOG_WARNING, for
instance.
Add some LOG_DEBUG messages that we can use to diagnose problems with
krb5 upcalls. With these, someone can set up syslog to log daemon.debug
and should be able to get more info when things aren't working.
Andrew Bartlett [Fri, 14 Aug 2009 02:48:10 +0000 (12:48 +1000)]
s4:ldap_server Don't talloc_steal (with references) in ldap_backend
There may or may not be a need to take a reference to the 'name' in
the ldb_map code, but given we seal the whole msg just above here, it
makes no senst to steal the name, but not the values.
Jeremy Allison [Thu, 13 Aug 2009 00:07:13 +0000 (17:07 -0700)]
Move build over to storing DOS attributes in EA's.
Turn off "map to" directives. I've now fixed the
issues with the build tests running this way. I think
this is how most people run these days - please raise this on
the list (or revert) if you disagree.
Jeremy Allison [Wed, 12 Aug 2009 23:27:17 +0000 (16:27 -0700)]
When mapping EA's into a TDB, don't remove the EA
until the last link to the file is gone (fixes the
build farm RAW-RENAME test with xattr's in tdb's).
Jeremy.
Jeremy Allison [Wed, 12 Aug 2009 22:08:23 +0000 (15:08 -0700)]
Fix BASE-DELAYWRITE test by removing const from struct smb_filename
in smbd_do_qfilepathinfo(). update_stat_ex_mtime() modifies the
stat struct inside the smb_fname so don't make a copy of that
stat struct, use it directly - it's meant to be updated and
represent the state of the file we're returning.
Jeremy.
Matt Kraai [Wed, 12 Aug 2009 06:49:24 +0000 (08:49 +0200)]
libreplace: undef AI_ADDRCONFIG on QNX 6.3.0 (fix bug #6630)
Some of the functions in source3/lib/util_sock.c use AI_ADDRCONFIG. On QNX
6.3.0, this macro is defined but, if it's used, getaddrinfo will fail. This
prevents smbd from opening any sockets.
If I undefine AI_ADDRCONFIG on such systems and allow
lib/replace/system/network.h to define it to be 0, this works around the issue.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Tests for the right behaviour of this introduced constructed attribute.
Since we don't support the read-only-ness of those attributes yet, I commented
some lines out.
Also I had to add a function for python which converts domain SIDs in RIDs.
And a small fix for the "groupType" test.
This moves the "operational" LDB module to the right place under "dsdb/samdb/ldb_modules"
(suggested by abartlet) and enhances it for supporting dynamic generated
"primaryGroupToken" for AD groups. This should fix bug #6466.
This fixes the problem with the setting and getting of the "minPwdAge" and
"maxPwdAge" attributes. I wanted to handle them in days but forgot to add
conversions (from "ticks" (tenth of microsecond) -> "days" and backwards).
torture/basic: in run_derefopen() the file could have been deleted before the last unlink
Through a suggestion pointed out in bug #6622 the test file sometimes doesn't exist on
the last turn anymore. So we haven't to fail here since it could have been deleted by
a concurrent process (e.g. when the same test runs multiple times). Therefore also
NT_STATUS_OBJECT_NAME_NOT_FOUND is an acceptable result.
This commit includes:
- Additional static object data in SAMBA 4's AD to start supporting of
- forest updates, - lost and found, - quotas on DS, - physical locations,
- licensing of sites, - subnets, - policies for WMI, - DNS entries in AD
- Reordering of provision*.ldif files to be able to find entries and make future
additions easier
- Add comments in provision*.ldif files to point out where subentries are located
when they are based in other LDIFs
- Removations of autogenerated "cn" attributes
Andrew Tridgell [Wed, 12 Aug 2009 04:41:44 +0000 (14:41 +1000)]
Allow selection of the samba4 process model for 'make test'
To choose the process model, set the environment variable
SAMBA_PROCESS_MODEL to the desired model. This will allow us to enable
the standard process model for some machines in the build farm without
enabling it for all of them. I don't want to just enable it
universally as I am concerned with total memory using during some of
the tests.
Andrew Tridgell [Wed, 12 Aug 2009 04:38:55 +0000 (14:38 +1000)]
print server log on stderr as well as to log file
I think we are missing some important messages from the server during
'make test' because we don't show the log file contents during
runs. This patch uses tee to put the log messages to stderr so we can
see any server messages associated with the test that caused them.