ddiss/samba.git
11 years agos3-torture: Use static printer for smbd spooler test bso8719_smbd_spooler_rb1
David Disseldorp [Fri, 22 Jun 2012 16:49:50 +0000 (18:49 +0200)]
s3-torture: Use static printer for smbd spooler test

11 years agos3-printing: use euid for vlp job tracking
David Disseldorp [Thu, 21 Jun 2012 13:49:55 +0000 (15:49 +0200)]
s3-printing: use euid for vlp job tracking

vlp can be called by print_run_command as root with euids set
appropriately, vlp should use this to track the job owner.

11 years agos3-printing: fill print_generic sysjob id on job submission
David Disseldorp [Thu, 9 Feb 2012 11:08:27 +0000 (12:08 +0100)]
s3-printing: fill print_generic sysjob id on job submission

Change the generic print backend to fill the printing backend job
identifier (sysjob) on submission of a new job.
This is needed to ensure correct mapping of spoolss jobs and entries in
the backend print queue.

This and the last 13 commits attempt to address bug 8719.

11 years agos3-printing: pass lpq command to job_submit
David Disseldorp [Wed, 8 Feb 2012 17:47:11 +0000 (18:47 +0100)]
s3-printing: pass lpq command to job_submit

Currently the generic print backend does not fill the printing backend
job identifier (sysjob) on submission of a new job. The sysjob
identifier is required to correctly map jobs in the printer queue to
corresponding spoolss print jobs.

Passing the lpq command to job_submit allows the generic print backend
to check the printer queue for the new job following submission. This
behaviour will come in a later commit.

11 years agos3-printing: remove unused print_job_fname()
David Disseldorp [Wed, 8 Feb 2012 16:03:06 +0000 (17:03 +0100)]
s3-printing: remove unused print_job_fname()

11 years agos3-printing: pass a talloc ctx to unpack_pjob
David Disseldorp [Wed, 8 Feb 2012 16:57:02 +0000 (17:57 +0100)]
s3-printing: pass a talloc ctx to unpack_pjob

Rather than allocating the devicemode on a null context.

11 years agos3-printing: return talloced print jobs
David Disseldorp [Wed, 8 Feb 2012 15:55:40 +0000 (16:55 +0100)]
s3-printing: return talloced print jobs

print_job_find() currently returns print jobs to callers via a
statically allocated variable, this is particularly messy as the
device mode is talloced under the static variable.

This change adds or passes a talloc context to all callers, giving them
ownership of the returned print job.

11 years agos3-printing: clean up print_job_pause/resume interface
David Disseldorp [Wed, 8 Feb 2012 14:01:15 +0000 (15:01 +0100)]
s3-printing: clean up print_job_pause/resume interface

Currently both return a bool and sometimes set a werr pointer argument,
always return werror instead.

11 years agos3-printing: fix potential print db refcount leak
David Disseldorp [Wed, 8 Feb 2012 12:45:40 +0000 (13:45 +0100)]
s3-printing: fix potential print db refcount leak

11 years agos3-spoolss: remove duplicate "." in smbd spooler path
David Disseldorp [Wed, 1 Feb 2012 12:21:04 +0000 (13:21 +0100)]
s3-spoolss: remove duplicate "." in smbd spooler path

11 years agos3-printing: remove print_parse_jobid()
David Disseldorp [Mon, 30 Jan 2012 16:35:28 +0000 (17:35 +0100)]
s3-printing: remove print_parse_jobid()

With all callers fixed, it is now safe to remove.

11 years agos3-printing: remove redundant variable set
David Disseldorp [Mon, 30 Jan 2012 15:05:21 +0000 (16:05 +0100)]
s3-printing: remove redundant variable set

11 years agos3-printing: remove print_parse_jobid() calls from printing.c
David Disseldorp [Mon, 30 Jan 2012 12:35:21 +0000 (13:35 +0100)]
s3-printing: remove print_parse_jobid() calls from printing.c

In all cases the spoolss layer job id can be determinded from the
printing subsystem allocated job identifier (sysjob).

11 years agos3-printing: rename queue->job sysjob
David Disseldorp [Fri, 27 Jan 2012 11:33:27 +0000 (12:33 +0100)]
s3-printing: rename queue->job sysjob

Print jobs maintain two job identifiers, the jobid allocated by the
spoolss layer (pj->jobid), and the job identifier defined by the
printing backend (pj->sysjob).

Printer job queues currently only contain a single job identifier
variable (queue->job), the variable is sometimes representative of the
spoolss layer job identifier, and more often representative of the
printing backend id.

This change renames the queue job identifier from queue->job to
queue->sysjob, in preparation for a change to only store the printing
backend identifier.

11 years agos3-printing: remove print_parse_jobid() from print_cups.c
David Disseldorp [Mon, 30 Jan 2012 12:44:33 +0000 (13:44 +0100)]
s3-printing: remove print_parse_jobid() from print_cups.c

The spoolss print job identifier is now passed to the cups layer via
struct printjob, therefore it is no longer necessary to parse the job
filename to determine it.

11 years agos3-printing: store print jobid as part of struct printjob
David Disseldorp [Thu, 26 Jan 2012 14:28:34 +0000 (15:28 +0100)]
s3-printing: store print jobid as part of struct printjob

Printing code in some places relies upon the spool-file format to
retrieve the print jobid. By storing the jobid as part of struct
printjob, and hence in the printing TDB, we can move away from this ugly
behaviour.

11 years agotorture: add test for smbd print job spooling
David Disseldorp [Thu, 21 Jun 2012 15:12:23 +0000 (17:12 +0200)]
torture: add test for smbd print job spooling

Clients can print by performing file IO on a printer share, rather than
issuing spoolss RPCs.
This commit attempts to reproduce bug 8719.

11 years agos4-join: Setup correct DNS configuration
Andrew Bartlett [Sun, 24 Jun 2012 11:10:34 +0000 (21:10 +1000)]
s4-join: Setup correct DNS configuration

This means we do not need to run samba_upgradedns any more.

Andrew Bartlett

Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Sun Jun 24 18:10:10 CEST 2012 on sn-devel-104

11 years agos4-samba_upgradedns: Do not set DNS account for internal server
Andrew Bartlett [Sun, 24 Jun 2012 10:52:06 +0000 (20:52 +1000)]
s4-samba_upgradedns: Do not set DNS account for internal server

The internal DNS server does not need the samba-only NAME-dns
account.

Andrew Bartlett

11 years agos4-join: Import DNS zones in AD DC join
Andrew Bartlett [Thu, 21 Jun 2012 13:46:21 +0000 (23:46 +1000)]
s4-join: Import DNS zones in AD DC join

11 years agoselftest: Test unix.whoami with kerberos on plugin_s4_dc
Andrew Bartlett [Sun, 24 Jun 2012 08:16:48 +0000 (18:16 +1000)]
selftest: Test unix.whoami with kerberos on plugin_s4_dc

This also tests the comparison with LDAP on anonymous connections
and marks this as knownfail, while we investigate the correct
behaviour here.

Andrew Bartlett

11 years agos4-classicupgrade: Allow DNS backend to be specified
Andrew Bartlett [Sun, 24 Jun 2012 06:31:37 +0000 (16:31 +1000)]
s4-classicupgrade: Allow DNS backend to be specified

11 years agos4-drepl: Ensure that the op->source does not get deallocated too early
Andrew Bartlett [Thu, 21 Jun 2012 23:42:02 +0000 (09:42 +1000)]
s4-drepl: Ensure that the op->source does not get deallocated too early

We need to have the struct dreplsrv_partition_source_dsa around until the end of the
async op, so we use talloc_reference after carefully checking the callers and
making the modifications required.

This prevents a crash when replicating partitions in the vampire_dc test after
adding DNS replication at join time.

Andrew Bartlett

11 years agoselftest: schema is not automatically reloaded now so if you modify it you have to...
Matthieu Patou [Tue, 12 Jun 2012 19:23:52 +0000 (12:23 -0700)]
selftest: schema is not automatically reloaded now so if you modify it you have to reload it

Autobuild-User(master): Matthieu Patou <mat@samba.org>
Autobuild-Date(master): Sat Jun 23 10:48:13 CEST 2012 on sn-devel-104

11 years agos4-dsdb: operational handle modifyTimeStamp on the CN=aggregate DN
Matthieu Patou [Fri, 18 May 2012 06:58:36 +0000 (23:58 -0700)]
s4-dsdb: operational handle modifyTimeStamp on the CN=aggregate DN

modifyTimeStamp is a generated attribute, for most object it's generated
directly from the whenChanged attribute. But for the CN=aggregate object
in the schema we have to handle it in a different way, that's because
for this object whenChanged!=modifyTimeStamp (as checked against Windows
2003R2 DCs) instead the modifyTimeStamp reflect the timestamp of the
most recently modified and loaded schema object (that is to the one with
the highest USN before the schema was reload due to timeout or by the
reloadSchemaNow command).
Some third party are using this information to know if they have to
update their schema cache and also to check that schema updates have
been correctly reloaded by the DC, a good example of this behavior is
exchange 2010.

11 years agos4-schema: improve the documentation of the dsdb_schema structure
Matthieu Patou [Mon, 11 Jun 2012 05:44:12 +0000 (22:44 -0700)]
s4-schema: improve the documentation of the dsdb_schema structure

11 years agos4-dsdb: Check for key SCHEMA_SEQ_NUM in metadata.tdb updates
Matthieu Patou [Tue, 22 May 2012 22:13:04 +0000 (15:13 -0700)]
s4-dsdb: Check for key SCHEMA_SEQ_NUM in metadata.tdb updates

If the value has changed then reload the schema, this means that now the
schema is only reloaded on a periodical basis or if we have been asked
explicitly to do it and not necesserly if the schema partition has
changed.

11 years agos4-dsdb: Add/Update SCHEMA_SEQ_NUM key in the metadata.tdb after schemaUpdateNow
Matthieu Patou [Wed, 30 May 2012 17:43:27 +0000 (10:43 -0700)]
s4-dsdb: Add/Update SCHEMA_SEQ_NUM key in the metadata.tdb after schemaUpdateNow

The idea is to signal to other process accessing the database that the
schema was forced to be reloaded and so they should reload as well.

11 years agos4-drs: if schema has changed during replication notify other process that they have...
Matthieu Patou [Wed, 30 May 2012 17:42:56 +0000 (10:42 -0700)]
s4-drs: if schema has changed during replication notify other process that they have to reload the schema

11 years agos4-dsdb: move schema_load at the top of module stack
Matthieu Patou [Wed, 30 May 2012 17:41:56 +0000 (10:41 -0700)]
s4-dsdb: move schema_load at the top of module stack

11 years agos4-extended: do not try to fix if there is no schema
Matthieu Patou [Wed, 30 May 2012 17:57:06 +0000 (10:57 -0700)]
s4-extended: do not try to fix if there is no schema

11 years agos4-schema: keep track of the timestamp of the most recently changed/created object
Matthieu Patou [Tue, 22 May 2012 23:25:50 +0000 (16:25 -0700)]
s4-schema: keep track of the timestamp of the most recently changed/created object

11 years agos4-schema: generalized time use its own syntax now
Matthieu Patou [Fri, 18 May 2012 06:59:06 +0000 (23:59 -0700)]
s4-schema: generalized time use its own syntax now

11 years agoldb: lay foundation for proper utc/generalized time handling
Matthieu Patou [Fri, 18 May 2012 06:57:55 +0000 (23:57 -0700)]
ldb: lay foundation for proper utc/generalized time handling

We use to handle UTCtime and generalized time the same way. The thing is
that it's not the case, they are different in the way they are set (most
of the time) with different format and also stored and return in
different format too.

11 years agos4-drsuapi: Fix a const warning
Matthieu Patou [Thu, 17 May 2012 06:52:51 +0000 (23:52 -0700)]
s4-drsuapi: Fix a const warning

11 years agos4-drsuapi: rework the crackname implementation of functionnal names
Matthieu Patou [Thu, 17 May 2012 06:52:30 +0000 (23:52 -0700)]
s4-drsuapi: rework the crackname implementation of functionnal names

11 years agos4-dsdb-linkedattributes: register the VERIFY_NAME control, handle it when we are...
Matthieu Patou [Wed, 16 May 2012 02:25:25 +0000 (19:25 -0700)]
s4-dsdb-linkedattributes: register the VERIFY_NAME control, handle it when we are a GC

In theory when presented this control and not a GC we should use the
specified name as the DC to contact for cross-domain link verification.
But for the moment we don't support this so we just fail when we have
this control and are not a GC.

11 years agos4-ldap: handle VERIFY_NAME control encoding/decoding
Matthieu Patou [Tue, 15 May 2012 18:15:38 +0000 (11:15 -0700)]
s4-ldap: handle VERIFY_NAME control encoding/decoding

11 years agoldb: add the VERIFY_NAME control
Matthieu Patou [Tue, 15 May 2012 17:14:55 +0000 (10:14 -0700)]
ldb: add the VERIFY_NAME control

11 years agos4-dsdb: support otherWellKnownObjects
Matthieu Patou [Tue, 15 May 2012 03:16:11 +0000 (20:16 -0700)]
s4-dsdb: support otherWellKnownObjects

11 years agos4-dsdb: Try to avoid much of the time a db search for msDS-IntID
Matthieu Patou [Sat, 12 May 2012 09:13:42 +0000 (02:13 -0700)]
s4-dsdb: Try to avoid much of the time a db search for msDS-IntID

We search in the schema if we have already this intid (using dsdb_attribute_by_attributeID_id because
in the range 0x80000000 0xBFFFFFFFF, attributeID is a DSDB_ATTID_TYPE_INTID).
If so generate another random value.
If not check if the highest USN in the database for the schema partition is the
one that we know.
If so it means that's only this ldb context that is touching the schema in the database.
If not it means that's someone else has modified the database while we are doing our changes too
(this case should be very bery rare) in order to be sure do the search in the database.

11 years agodsdb-schema: do not reload more often than schema_reload_interval
Matthieu Patou [Thu, 10 May 2012 05:08:55 +0000 (22:08 -0700)]
dsdb-schema: do not reload more often than schema_reload_interval

Samba 4 use to try to reload the schema every time dsdb_get_schema was
called (which could be 20+ time per ldb request). Now we only reload at
most every xx seconds (xx being the value of dsdb:"schema_reload_interval"
 or 120). The timestamp of the last reloaded schema is kept in the
 dsdb_schema object. There is also a timestamp in the ldb_context, that
 is used by the LDAP server to know if it has to reload the schema after
 handling the request. This is used to allow that the schema will be
 immediately reload after a schemaUpdateNow request has been issued, the
 reload can't occur in the handling of the LDAP request itself because
 we have a transaction autostarted.

11 years agos4-dsdb: fix a warning about unused variable
Matthieu Patou [Wed, 30 May 2012 06:03:09 +0000 (23:03 -0700)]
s4-dsdb: fix a warning about unused variable

11 years agos3: Correct documentation of case sensitive
Olaf Flebbe [Fri, 28 Oct 2011 07:59:07 +0000 (09:59 +0200)]
s3: Correct documentation of case sensitive

this fixes bug #8552

Autobuild-User(master): Björn Jacke <bj@sernet.de>
Autobuild-Date(master): Fri Jun 22 21:59:59 CEST 2012 on sn-devel-104

11 years agos3-vfs_gpfs: Fix bug #9003, posix acl on gpfs
Volker Lendecke [Fri, 22 Jun 2012 13:46:13 +0000 (15:46 +0200)]
s3-vfs_gpfs: Fix bug #9003, posix acl on gpfs

gpfs2smb_acl can leave errno!=0 around even if it returned a correct
result!=NULL. We can only rely on errno being set if another error
condition (in this case result==NULL) indicates an error. If
result!=NULL, errno is undefined and can be anything. This leads to
SAFE_FREE(result) further down even in the success case.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Fri Jun 22 19:27:39 CEST 2012 on sn-devel-104

11 years agos3: Give machine password changes 10 minutes of time
Volker Lendecke [Fri, 22 Jun 2012 12:26:45 +0000 (14:26 +0200)]
s3: Give machine password changes 10 minutes of time

This is what we do at domain join time as well, see
lib/netapi/joindomain.c:141

Signed-off-by: Stefan Metzmacher <metze@samba.org>
11 years agos3:torture:smb2: pass smb2-session-reconnect test (add generosity in error case)
Michael Adam [Wed, 18 Apr 2012 15:55:51 +0000 (17:55 +0200)]
s3:torture:smb2: pass smb2-session-reconnect test (add generosity in error case)

samba checks tree before file, so we get a
STATUS_NETWORK_NAME_DELETED instead STATUS_FILE_CLOSED
when operating on a file handle on a invalid tree id.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
11 years agodbwrap: don't ignore the result of dbwrap_parse_record in dbwrap_fetch_int32()
Stefan Metzmacher [Fri, 22 Jun 2012 13:10:00 +0000 (15:10 +0200)]
dbwrap: don't ignore the result of dbwrap_parse_record in dbwrap_fetch_int32()

metze

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Fri Jun 22 17:10:52 CEST 2012 on sn-devel-104

11 years agodbwrap: intialize state.status in dbwrap_fetch_int32()
Stefan Metzmacher [Fri, 22 Jun 2012 13:08:22 +0000 (15:08 +0200)]
dbwrap: intialize state.status in dbwrap_fetch_int32()

This might not be needed, but it makes it more clear that
we won't use uninitialized memory, it the callback was not triggered.

metze

11 years agodbwrap: Convert fetch_int32 to dbwrap_parse_record
Volker Lendecke [Tue, 12 Jun 2012 10:58:47 +0000 (12:58 +0200)]
dbwrap: Convert fetch_int32 to dbwrap_parse_record

Now dbwrap_fetch_int32 is used in smbd/locking/posix.c is used a
lot more often than before.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
11 years agos3: Remove reduce_windows_lock_ref_count, used only once
Volker Lendecke [Tue, 12 Jun 2012 10:14:59 +0000 (12:14 +0200)]
s3: Remove reduce_windows_lock_ref_count, used only once

Signed-off-by: Stefan Metzmacher <metze@samba.org>
11 years agos3: Make reduce_windows_lock_ref_count static
Volker Lendecke [Tue, 12 Jun 2012 10:13:15 +0000 (12:13 +0200)]
s3: Make reduce_windows_lock_ref_count static

Signed-off-by: Stefan Metzmacher <metze@samba.org>
11 years agos3: Use dbwrap_util for windows_lock_ref_count
Volker Lendecke [Tue, 12 Jun 2012 10:11:40 +0000 (12:11 +0200)]
s3: Use dbwrap_util for windows_lock_ref_count

Signed-off-by: Stefan Metzmacher <metze@samba.org>
11 years agodbwrap: Add dbwrap_fetch_int32
Volker Lendecke [Fri, 15 Jun 2012 08:52:07 +0000 (10:52 +0200)]
dbwrap: Add dbwrap_fetch_int32

Signed-off-by: Stefan Metzmacher <metze@samba.org>
11 years agodbwrap: Add dbwrap_change_int32_atomic
Volker Lendecke [Fri, 15 Jun 2012 08:50:00 +0000 (10:50 +0200)]
dbwrap: Add dbwrap_change_int32_atomic

Signed-off-by: Stefan Metzmacher <metze@samba.org>
11 years agoscript/autobuild: fix path to random-sleep.sh
Stefan Metzmacher [Fri, 22 Jun 2012 12:58:25 +0000 (14:58 +0200)]
script/autobuild: fix path to random-sleep.sh

metze

11 years agoselftest/knownfail: mark ^samba4.raw.session.expire1 as knownfail
Stefan Metzmacher [Fri, 22 Jun 2012 10:58:04 +0000 (12:58 +0200)]
selftest/knownfail: mark ^samba4.raw.session.expire1 as knownfail

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Fri Jun 22 15:03:16 CEST 2012 on sn-devel-104

11 years agos4:torture/raw: add raw.session.expire1
Stefan Metzmacher [Fri, 22 Jun 2012 09:02:39 +0000 (11:02 +0200)]
s4:torture/raw: add raw.session.expire1

This demonstrates the interaction of CAP_DYNAMIC_REAUTH
and NT_STATUS_NETWORK_SESSION_EXPIRED.

metze

11 years agos3:smbd: fix warning in smbd_tevent_trace_callback() without profile support
Stefan Metzmacher [Fri, 22 Jun 2012 10:10:00 +0000 (12:10 +0200)]
s3:smbd: fix warning in smbd_tevent_trace_callback() without profile support

metze

11 years agos3:serverid: don't ignore the result of dbwrap_parse_record()
Stefan Metzmacher [Fri, 22 Jun 2012 10:20:54 +0000 (12:20 +0200)]
s3:serverid: don't ignore the result of dbwrap_parse_record()

metze

11 years agos4:torture/smb2: run smb2.session.reauth5 in a subdirectory
Stefan Metzmacher [Fri, 22 Jun 2012 07:40:53 +0000 (09:40 +0200)]
s4:torture/smb2: run smb2.session.reauth5 in a subdirectory

This way we can give anonymous full access to the directory.

metze

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Fri Jun 22 11:30:06 CEST 2012 on sn-devel-104

11 years agotdb: don't use err.h in tests.
Rusty Russell [Fri, 22 Jun 2012 05:37:44 +0000 (15:07 +0930)]
tdb: don't use err.h in tests.

It's not portable.  While we could use ccan/err, it seems overkill since
we actually only use it in one test (I obviously cut & paste the #include).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Autobuild-User(master): Rusty Russell <rusty@rustcorp.com.au>
Autobuild-Date(master): Fri Jun 22 09:22:28 CEST 2012 on sn-devel-104

11 years agotdb: make TDB_NOSYNC merely disable sync.
Rusty Russell [Fri, 22 Jun 2012 05:37:44 +0000 (15:07 +0930)]
tdb: make TDB_NOSYNC merely disable sync.

(As suggested by Stefan Metzmacher, based on the change to ntdb.)

Since commit ec96ea690edbe3398d690b4a953d487ca1773f1c, we handle the case
where a process dies during a transaction commit.  Unfortunately, TDB_NOSYNC
means this no longer works, as it disables the recovery area as well as the
actual msync/fsync.  We should do everything except the syncs.

This also means we can do a complete test with $TDB_NO_FSYNC set; just
to get more complete coverage, we disable it explicitly for one test
(where we override the actual sync calls anyway).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agodbwrap: dbwrap_hash_size().
Rusty Russell [Fri, 22 Jun 2012 05:37:44 +0000 (15:07 +0930)]
dbwrap: dbwrap_hash_size().

Implemented for ntdb and tdb; falls back to 0 for others.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agodbwrap: dbwrap_name().
Rusty Russell [Fri, 22 Jun 2012 05:37:44 +0000 (15:07 +0930)]
dbwrap: dbwrap_name().

Useful for debug messages: particularly once we start switching between .tdb
and .ntdb files.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agodbwrap: dbwrap_transaction_start_nonblock().
Rusty Russell [Fri, 22 Jun 2012 05:37:44 +0000 (15:07 +0930)]
dbwrap: dbwrap_transaction_start_nonblock().

Implemented for ntdb and tdb; falls back to the blocking variant
for others.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agodbwrap: dbwrap_fetch_locked_timeout().
Rusty Russell [Fri, 22 Jun 2012 05:37:44 +0000 (15:07 +0930)]
dbwrap: dbwrap_fetch_locked_timeout().

Implemented for ntdb and tdb; falls back to the non-timeout variant
for others.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agodbwrap: add dbwrap_check() function.
Rusty Russell [Fri, 22 Jun 2012 05:37:43 +0000 (15:07 +0930)]
dbwrap: add dbwrap_check() function.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agodbwrap: dbwrap_local_open()
Rusty Russell [Fri, 22 Jun 2012 05:37:43 +0000 (15:07 +0930)]
dbwrap: dbwrap_local_open()

This simply opens a tdb: it will eventually switch depending on the
extension.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agodbwrap: remove get_flags().
Rusty Russell [Fri, 22 Jun 2012 05:37:43 +0000 (15:07 +0930)]
dbwrap: remove get_flags().

The flags returned were TDB-specific: this was only used for detecting
the endianness of obsolete databases (the conversion code was put in in
2003, with reference to Samba 2.3).

It's easier to remove it than to translate the NTDB flags to TDB flags,
and it's a really weird thing to ask for anyway.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agoutil_tdb: move timeout chainlock variants from source3/lib/util/util_tdb.c
Rusty Russell [Fri, 22 Jun 2012 05:37:36 +0000 (15:07 +0930)]
util_tdb: move timeout chainlock variants from source3/lib/util/util_tdb.c

We're about to use them for dbwrap.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agoutil: util_ntdb ntdb_fetch_int32/ntdb_store_int32 and ntdb_add_int32_atomic
Rusty Russell [Fri, 22 Jun 2012 00:14:42 +0000 (09:44 +0930)]
util: util_ntdb ntdb_fetch_int32/ntdb_store_int32 and ntdb_add_int32_atomic

Similar to the util_tdb versions, but return the error code.

ntdb_add_int32_atomic seems a clearer name than tdb_change_int32_atomic.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agoutil: util_ntdb.c gets NTDB_ERROR => NTSTATUS map.
Rusty Russell [Fri, 22 Jun 2012 00:14:41 +0000 (09:44 +0930)]
util: util_ntdb.c gets NTDB_ERROR => NTSTATUS map.

Very similar to the tdb version.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agoutil: util_ntdb.c gains bystring functions.
Rusty Russell [Fri, 22 Jun 2012 00:14:41 +0000 (09:44 +0930)]
util: util_ntdb.c gains bystring functions.

Very similar to the util_tdb versions, but these return the error.
I've only implemented those functions actually used.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agoutil: ntdb_new() supports NTDB_CLEAR_IF_FIRST.
Rusty Russell [Fri, 22 Jun 2012 00:14:41 +0000 (09:44 +0930)]
util: ntdb_new() supports NTDB_CLEAR_IF_FIRST.

There are various issues with NTDB_CLEAR_IF_FIRST which makes it
better if we don't have to use it, but much of the code does, so
we fake up support here.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agoutil: util_ntdb.c
Rusty Russell [Fri, 22 Jun 2012 00:14:41 +0000 (09:44 +0930)]
util: util_ntdb.c

The first function is ntdb_new: this is preferred over ntdb_open, as
it makes the ntdb_context returned (and all NTDB_DATA returned from
ntdb_fetch) valid talloc pointers.

The API is very similar to tdb_wrap_open().

Note that we handle $TDB_NO_FSYNC here, since ntdb doesn't do that
hack (and it's great for speeding up testing!).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agontdb: take advantage of direct access across expand.
Rusty Russell [Fri, 22 Jun 2012 00:14:41 +0000 (09:44 +0930)]
ntdb: take advantage of direct access across expand.

This means we no longer have to unmap if we want to compare a record.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agontdb: test arbitrary operations during ntdb_parse_record().
Rusty Russell [Fri, 22 Jun 2012 00:14:41 +0000 (09:44 +0930)]
ntdb: test arbitrary operations during ntdb_parse_record().

In particular, this tests that we can store enough records to make the
database expand while we map the given record.  We use a global lock for
this, but it could happen in theory with another process.

It also tests the that we can recurse inside ntdb_parse_record().

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agontdb: make database read-only during ntdb_parse() callback.
Rusty Russell [Fri, 22 Jun 2012 00:14:41 +0000 (09:44 +0930)]
ntdb: make database read-only during ntdb_parse() callback.

Since we have a readlock, any write will grab a write lock: if it happens
to be on the same bucket, we'll fail.

For that reason, enforce read-only so every write operation fails
(even for NTDB_NOLOCK or NTDB_INTERNAL dbs), and document it!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agontdb: allow direct access for NTDB_INTERNAL dbs during expansion.
Rusty Russell [Fri, 22 Jun 2012 00:14:40 +0000 (09:44 +0930)]
ntdb: allow direct access for NTDB_INTERNAL dbs during expansion.

NTDB_INTERNAL databases need to malloc and copy to keep old versions
around if we expand, in a similar way to the manner in which keep old
mmaps around.

Of course, it only works for read-only accesses, since the two copies
are not synced.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agontdb: enhancement to allow direct access to the ntdb map during expansion.
Rusty Russell [Fri, 22 Jun 2012 00:14:40 +0000 (09:44 +0930)]
ntdb: enhancement to allow direct access to the ntdb map during expansion.

This means keeping the old mmap around when we expand the database.
We could revert to read/write, except for platforms with incoherent
mmap (ie. OpenBSD), where we need to use mmap for all accesses.

Thus we keep a linked list of old maps, and unmap them when the last access
finally goes away.

This is required if we want ntdb_parse_record() callbacks to be able
to expand the database.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agontdb: don't munmap the database on every close.
Rusty Russell [Fri, 22 Jun 2012 00:14:40 +0000 (09:44 +0930)]
ntdb: don't munmap the database on every close.

Since we can have multiple openers, we should leave the mmap in place
for the other openers to use.  Enhance the test to check the bug (it
still works, because without mmap we fall back to read/write, but
performance would be terrible!).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agontdb: hand correct error code when alloc_read allocation fails.
Rusty Russell [Fri, 22 Jun 2012 00:14:40 +0000 (09:44 +0930)]
ntdb: hand correct error code when alloc_read allocation fails.

-ECUTNPASTE.  This is not a usage error!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agoautobuild: always set TDB_NO_FSYNC.
Rusty Russell [Fri, 22 Jun 2012 00:14:36 +0000 (09:44 +0930)]
autobuild: always set TDB_NO_FSYNC.

Then we unset it inside the tdb test target itself.  This means that
new code can't accidently forget it, and we can set it in the
'buildnice' script on sn-devel, for example.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agontdb: respect TDB_NO_FSYNC flag for 'make test'
Rusty Russell [Thu, 21 Jun 2012 23:47:13 +0000 (09:17 +0930)]
ntdb: respect TDB_NO_FSYNC flag for 'make test'

This reduces test time from 31 seconds to 6, on my laptop.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
11 years agos4:torture/smb2: add smb2.durable-open.lock-oplock
Stefan Metzmacher [Thu, 21 Jun 2012 22:28:26 +0000 (00:28 +0200)]
s4:torture/smb2: add smb2.durable-open.lock-oplock

metze

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Fri Jun 22 03:37:54 CEST 2012 on sn-devel-104

11 years agoselftest: samba3.smb2.durable-open.lock => samba3.smb2.durable-open.lock-lease
Stefan Metzmacher [Thu, 21 Jun 2012 21:06:08 +0000 (23:06 +0200)]
selftest: samba3.smb2.durable-open.lock => samba3.smb2.durable-open.lock-lease

metze

11 years agos4:torture/smb2: rename smb2.durable-open.lock to smb2.durable-open.lock-lease
Stefan Metzmacher [Thu, 21 Jun 2012 10:10:09 +0000 (12:10 +0200)]
s4:torture/smb2: rename smb2.durable-open.lock to smb2.durable-open.lock-lease

metze

11 years agoautobuild: run "samba3-ctdb" by default
Michael Adam [Wed, 20 Jun 2012 12:16:13 +0000 (14:16 +0200)]
autobuild: run "samba3-ctdb" by default

Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Fri Jun 22 01:46:13 CEST 2012 on sn-devel-104

11 years agoautobuild: run "samba-ctdb" by default to catch dbwrap_ctdb regressions
Michael Adam [Wed, 20 Jun 2012 12:15:34 +0000 (14:15 +0200)]
autobuild: run "samba-ctdb" by default to catch dbwrap_ctdb regressions

11 years agoautobuild: add a target "samba3-ctdb" that builds samba3 (autoconf) with cluster...
Michael Adam [Wed, 20 Jun 2012 12:09:09 +0000 (14:09 +0200)]
autobuild: add a target "samba3-ctdb" that builds samba3 (autoconf) with cluster support

This is achieved by using the ctdb header files copied in from current ctdb
master. Tests are not run. For this we would need to have a full ctdb built and
configured.

11 years agoautobuild: add a target "samba-ctdb" that builds samba (waf) with cluster support
Michael Adam [Wed, 20 Jun 2012 12:05:50 +0000 (14:05 +0200)]
autobuild: add a target "samba-ctdb" that builds samba (waf) with cluster support

This is achieved by using the ctdb header files copied in from current ctdb
master. Tests are not run. For this we would need to have a full ctdb built and
configured.

11 years agoautobuild: rename the "samba4-libs" target to "samba-libs"
Michael Adam [Wed, 20 Jun 2012 11:23:04 +0000 (13:23 +0200)]
autobuild: rename the "samba4-libs" target to "samba-libs"

11 years agoautobuild: rename the "samba4" target to "samba"
Michael Adam [Wed, 20 Jun 2012 11:22:18 +0000 (13:22 +0200)]
autobuild: rename the "samba4" target to "samba"

11 years agoAdd current headers from ctdb master.
Michael Adam [Wed, 20 Jun 2012 10:01:32 +0000 (12:01 +0200)]
Add current headers from ctdb master.

(ctdb.h, ctdb_protocol.h, ctdb_private.h, ctdb_typesafe_cb.h, ctdb_client.h)

This will allow us to check for build regressions against ctdb from autobuild.

11 years agowintest: enable dns forwarding for internal dns
Björn Baumbach [Thu, 21 Jun 2012 11:45:18 +0000 (13:45 +0200)]
wintest: enable dns forwarding for internal dns

Internal DNS will forward dns requests to the original nameserver
(specified in resolv.conf).

Signed-off-by: Kai Blin <kai@samba.org>
Autobuild-User(master): Kai Blin <kai@samba.org>
Autobuild-Date(master): Thu Jun 21 23:47:35 CEST 2012 on sn-devel-104

11 years agowintest: get original nameserver for forwarding on a more general place
Björn Baumbach [Thu, 21 Jun 2012 11:43:22 +0000 (13:43 +0200)]
wintest: get original nameserver for forwarding on a more general place

Signed-off-by: Kai Blin <kai@samba.org>
11 years agowintest: extend get_is_dc function with additional expectations
Björn Baumbach [Tue, 5 Jun 2012 11:57:59 +0000 (13:57 +0200)]
wintest: extend get_is_dc function with additional expectations

Windows Server 2003 r2 answers "wintest2k3 is not a DC."

Signed-off-by: Kai Blin <kai@samba.org>
11 years agowintest: check netcats exitstatus instead of output
Björn Baumbach [Tue, 12 Jun 2012 17:45:51 +0000 (19:45 +0200)]
wintest: check netcats exitstatus instead of output

There are many netcat implementations with different output messages.

Signed-off-by: Kai Blin <kai@samba.org>
11 years agowintest: set recursive queries for internal dns
Björn Baumbach [Tue, 5 Jun 2012 08:35:19 +0000 (10:35 +0200)]
wintest: set recursive queries for internal dns

Need dns recursive queries = yes, since
host expects answers with RA-bit.

Signed-off-by: Kai Blin <kai@samba.org>