1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-29 21:47:30 +03:00

2270 Commits

Author SHA1 Message Date
Andrew Tridgell
343545a883 r3063: our default dos charset is CP850, but some systems don't have that, so
as a special case, automatically fall back to ASCII if its not found.
(This used to be commit 55aeb33343180929fbd7b3568b058b506aee7540)
2007-10-10 13:01:55 -05:00
Andrew Tridgell
904f20a9fb r3062: handle spaces at the start of options in lp_set_cmdline()
(This used to be commit 069305adaf5e88d83f4591acced807d5ea1aa194)
2007-10-10 13:01:55 -05:00
Andrew Tridgell
23d3b714f1 r3061: change a debug to help track down a charset problem
(This used to be commit 4d2497b7f4cb6aa6fdf1e03b56f72b1022cb92b8)
2007-10-10 13:01:55 -05:00
Tim Potter
b98218c84b r3060: Replace magic number with a C99 constant.
(This used to be commit b572be00b3432317169c6fa6df3f91a0c8f23fcb)
2007-10-10 13:01:55 -05:00
Andrew Tridgell
24bba442bc r3059: completely get rid of the MAX_CONNECTIONS limit, as a idle tree
connect is very cheap now.
(This used to be commit 8856f010e96d2f20d349a51820f225a8493f6eef)
2007-10-10 13:01:55 -05:00
Andrew Tridgell
198be6fc77 r3058: we don't use the bitmap code any more, delete it
(This used to be commit 2b0554b3b598accb1b2ddade1bf17fa2cc2cb05b)
2007-10-10 13:01:54 -05:00
Andrew Tridgell
b2b8282b8c r3057: - moved the idtree.c code into lib/
- converted the tid handling to use a idtree instead of bitmaps
(This used to be commit 4220914179d10132057216650b65ed7f7679717e)
2007-10-10 13:01:54 -05:00
Andrew Tridgell
cf1b85348a r3056: added a id -> pointer data structure (a type of radix tree). This is
an extremely efficient way of mapping from an integer handle (such as
an open file handle) to a pointer (such as the structure containing
the open file information). The code is taken from lib/idr.c in the
2.6 Linux kernel, and is very fast and space efficient. By using
talloc it even has auto cleanup.

This commit converts the handling of open file handles and open
directory search handles to use the idtree routines. In combination
with talloc destructors, this simplifies the structure handling in the
pvfs backend a lot. For example, we no longer need to keep a linked
list of open directory searches at all, and we no longer need to do
linear scans of the list of open files on most operations.

The end result is that the pvfs code is now extremely scalable. You
can have 10s of thousands of open files and open searches and the code
still runs very fast.

I have also added a small optimisation into the file close path, to
avoid looking in the byte range locking database if we know that there
are no locks outstanding.
(This used to be commit 16835a0ef91a16fa01145b773aad8d43da215dbf)
2007-10-10 13:01:54 -05:00
Andrew Tridgell
2b8aa720f4 r3055: use talloc_zero_p()
(This used to be commit 7bea9afeed219efa51aa8268af96f782f23f2400)
2007-10-10 13:01:54 -05:00
Andrew Tridgell
002f883202 r3054: use talloc_zero_array_p() in a couple of places
(This used to be commit cccd59009d54d63ccf57181c15d161998a15da6b)
2007-10-10 13:01:54 -05:00
Andrew Tridgell
c5465ae50f r3053: make the maxfid test use subdirectories, so it doesn't create 64k
files in one directory (running the test was very slow) and can clean
up after itself easily.
(This used to be commit 6dea60e3b9a1d2557e8a5be505a5052dc9847a8f)
2007-10-10 13:01:54 -05:00
Andrew Tridgell
53e30b391d r3052: added talloc_zero_p() and talloc_zero_array_p() calls, for allocating zeroed memory
(This used to be commit 65b7316e9b4589b02a8bd94150ccbfe526f6d159)
2007-10-10 13:01:53 -05:00
Jelmer Vernooij
06fe5d6cd9 r3047: Always include a \ again before the pipe name we're opening. Without a
backslash works, but is not like Windows does it.
(This used to be commit f6deb3d065e1a88f92bcb8a4a138453650c97b0b)
2007-10-10 13:01:53 -05:00
Jelmer Vernooij
2c081d2c47 r3046: \\PIPE\\ is internal (not actually included on the wire)
(This used to be commit 7771b5d8fa3db759487474eb7172df45bb3221ae)
2007-10-10 13:01:53 -05:00
Jelmer Vernooij
80a30263aa r3045: Allow object-uuid@... binding strings
(This used to be commit 38e9290bcf0295fb2a68090061310a4a8cb6c490)
2007-10-10 13:01:53 -05:00
Stefan Metzmacher
d78ae0b646 r3044: resolve the error code for WERR_DS_OBJ_NOT_FOUND to the name
metze
(This used to be commit c79bbe54b400f8e088401e1d59a626cb2a37ee34)
2007-10-10 13:01:53 -05:00
Jelmer Vernooij
31403d548e r3043: Use binding strings for specifying endpoints. The property for
specifying a endpoint is now also 'endpoint' instead of 'endpoints'. The
default endpoint (if none is specified) is still "ncacn_np:[\\pipe\\ifacename]",
where ifacename is the name of the interface.

Examples:

[
  uuid(60a15ec5-4de8-11d7-a637-005056a20182),
  endpoint("ncacn_np:[\\pipe\\rpcecho]", "ncacn_ip_tcp:")
]
interface rpcecho
{
	void dummy();
}

dcerpc_binding is now converted to ep_description in the server, but I hope to
completely eliminate ep_description later on.

The eventual goal of all these changes is to make it easier to add
 transports as I'm going to add support for
 ncalrpc (local RPC over named pipes) and ncacn_unix_stream (Unix sockets).
(This used to be commit f3da7c8b443a29b0c656c687a277384ae1353792)
2007-10-10 13:01:53 -05:00
Stefan Metzmacher
b1b8f49a5b r3041: a start of a README/HOWTO for the samba4 build system.
(still incomplete, but should be a good start...)

can someone look for spelling and grammar mistakes...

metze
(This used to be commit 66565187724c9f42367b590c29ff9775cc7472b4)
2007-10-10 13:00:01 -05:00
Jim McDonough
9529b4948e r3040: Add sleeps between operations to nbench. Submitted by aliguori@us.ibm.com.
(This used to be commit b1bbf0a431a9bcfc786b773be1adf39eaccb0b6e)
2007-10-10 13:00:01 -05:00
Andrew Tridgell
142d295aa8 r3039: This solves the problem of async handlers in ntvfs backends not being
in the right state when called. For example, when we use the unixuid
handler in the chain of handlers, and a backend decides to continue a
call asynchronously then we need to ensure that the continuation
happens with the right security context.

The solution is to add a new ntvfs operation ntvfs_async_setup(),
which calls all the way down through the layers, setting up anything
that is required, and takes a private pointer. The backend wanting to
make a async calls can use ntvfs_async_setup() to ensure that the
modules above it are called when doing async processing.
(This used to be commit a256e71029727fa1659ade6257085df537308c7d)
2007-10-10 13:00:01 -05:00
Tim Potter
3406ac3092 r3036: Add function to pull an array of structures. Abstracts away the
individual routines in ndr_spoolss_buf.c.
(This used to be commit e080a2483da61ee95d21b0355471a4af13c20a81)
2007-10-10 13:00:01 -05:00
Andrew Tridgell
8e8c6aef3c r3035: if the ntvfs layers prior to us have said that we can't perform an
operation asynchronously (such as the nbench module), then ignore lock
timeouts, as they would make no sense
(This used to be commit 2894dd0ac0ddd0ae5b4d536d5cff0690bbfab1a0)
2007-10-10 13:00:00 -05:00
Andrew Tridgell
384f87bd38 r3034: - fixed a bug in message dispatch, when the dispatch function called messaging_deregister()
- added a pvfs_lock_close_pending() hook to remove pending locks on file close

 - fixed the private ptr argument to messaging_deregister() in pvfs_wait

 - fixed a bug in continuing lock requests after a lock that is blocking a pending lock is removed

 - removed bogus brl_unlock() call in lock continue

 - corrected error code for LOCKING_ANDX_CHANGE_LOCKTYPE

 - expanded the lock cancel test suite to test lock cancel by unlock and by close

 - added a testsuite for LOCKING_ANDX_CHANGE_LOCKTYPE
(This used to be commit 5ef80f034d4aa4dd6810532c63ad041bfc019cb8)
2007-10-10 13:00:00 -05:00
Jelmer Vernooij
a03a7d0aea r3033: Use the C struct directly if we can instead of generating a binding
string and parsing that.
(This used to be commit 1977932b5471f20a788adb1b99d60953f4e12470)
2007-10-10 13:00:00 -05:00
Jelmer Vernooij
656c04da48 r3032: Somewhat stricter syntax for binding strings:
[] is now mandatory
 : after the hostname is no longer allowed

examples of allowed binding strings:

ncacn_np:myhost[samr]
ncacn_ip_tcp:10.0.0.1[1045]
ncacn_ip_tcp:2001:7b8:37b:1:210:dcff:fecb:a9e3[1024,sign,seal]
ncacn_np:myhost
ncacn_ip_tcp:192.168.4.2
308FB580-1EB2-11CA-923B-08002B1075A7@ncacn_ip_tcp:192.168.4.2
308FB580-1EB2-11CA-923B-08002B1075A7@ncacn_ip_tcp:192.168.4.2[,print]

Note that the last two lines are not recognized by smbtorture as a binding
 string yet. dcerpc_parse_binding() does accept them though.
(This used to be commit c15862e778507287bddef7967383d4b5d22eaee9)
2007-10-10 13:00:00 -05:00
Andrew Tridgell
43a80e1d83 r3031: added support for lock cancelation, which effectively just triggers an early lock timeout
added support for more of the bizarre special lock offset semantics of w2k3
(This used to be commit d5bfc910b1200fb283e26572dc57fcf93652fd32)
2007-10-10 13:00:00 -05:00
Andrew Tridgell
0ca4a77005 r3030: added testing of lock cancel, and some more special offsets (locks
with the top bit set are special)
(This used to be commit f732a983d4fde29d5ad893ad35fd182ee3d8a75b)
2007-10-10 13:00:00 -05:00
Andrew Tridgell
d0cc571e30 r3029: implemented byte range lock timeouts.
This adds a pvfs_wait_message() routine which uses the new messaging
system, event timers and talloc destructors to give a nice generic
async event handling system with a easy to use interface. The
extensions to pvfs_lock.c are based on calls to pvfs_wait_message()
routines.

We now pass all of our smbtorture locking tests, although while
writing this code I have thought of some additonal tests that should
be added, particularly for lock cancel operations. I'll work on that
soon.

This commit also extends the smbtorture lock tests to test the rather
weird 0xEEFFFFFF locking semantics that I have discovered in
win2003. Win2003 treats the 0xEEFFFFFF boundary as special, and will
give different error codes on either side of it. Locks on both sides
are allowed, the only difference is which error code is given when a
lock is denied. Anyone like to hazard a guess as to why? It has
me stumped.
(This used to be commit 4395c0557ab175d6a8dd99df03c266325949ffa5)
2007-10-10 13:00:00 -05:00
Andrew Tridgell
d37acd0fe7 r3028: use talloc_free() instead of talloc_unlink(), as the
event_context_merge() code leaves the events as grandchildren of the
events context, not children, so talloc_unlink() will not work after
the merge
(This used to be commit 2d0dfe607dcfb522669d6fb3d566cf121d84274a)
2007-10-10 12:59:59 -05:00
Andrew Tridgell
260b012f22 r3027: got rid of some configure checks we don't need any more
(This used to be commit 6a3f356b763b0577e2ad3e7ea74bee932c04a46b)
2007-10-10 12:59:59 -05:00
Andrew Tridgell
ca7e02fd37 r3026: - added automatic retry to messages when the servers listen queue is
full. This means callers can just "send and forget" rather than
  having to check for a temporary failure. The mechanism takes nice
  advantage of the timed events handling is our events code. A message
  will only fail now if we completely run out of some resource (such
  as memory).

- changed the test code not to do retries itself, but only to warn on real failures
(This used to be commit 8cddc610a25e64c1ad39dd6a2fc2e7f467e04fc9)
2007-10-10 12:59:59 -05:00
Andrew Tridgell
9a499a8010 r3025: don't warn about no path in a service, as some backends (like cifs) don't need a path
(This used to be commit a8c49a0de3f806bddaf6bd594ec052cf9f4a3fab)
2007-10-10 12:59:59 -05:00
Andrew Tridgell
e81230df4b r3024: run the *_connect() NTVFS initialisation operation as root, to allow
backends to open databases and perform any other privileged
operations that might be needed.
(This used to be commit 54fd395025656d9b264ba1c1fab6e3ce8ca3d357)
2007-10-10 12:59:59 -05:00
Andrew Tridgell
6cc8941f05 r3023: added immediate send of messages when they are first queued. This makes things a bit more efficient
(This used to be commit 8380225d326e4bfb3f15fddc72c097870713132a)
2007-10-10 12:59:59 -05:00
Tim Potter
605560149e r3022: Work on unmarshalling arrays of structs in a buffer (Python string) for
spoolss.  Doesn't quite work yet.
(This used to be commit 9045645ddf4eb8b5596d220ed936c8731641ef0a)
2007-10-10 12:59:59 -05:00
Andrew Tridgell
21e72e0154 r3021: under heavy load the listen queue for messaging unix domain socket can fill up, leading to refused
connections. The caller needs to retry. This adds testing of the retry in LOCAL-MESSAGING
(This used to be commit 2c568d4dc20303061a89c815b9a9a0bafc283633)
2007-10-10 12:59:58 -05:00
Andrew Tridgell
b071fe60d7 r3020: better error handling in socket_unix
(This used to be commit 64514ff5b7734667a1364de925114091fe208b3a)
2007-10-10 12:59:58 -05:00
Andrew Tridgell
6723885121 r3019: make the LOCAL-MESSAGING test a 2 process test
(This used to be commit 68890247c1247f5f9e299ac1f579052cd022e79f)
2007-10-10 12:59:58 -05:00
Andrew Tridgell
5882311fc4 r3018: handle STATUS_MORE_ENTRIES from socket_recv() in the messaging code
(This used to be commit 13739b68d8357d5d330f12b851d0311feb81e545)
2007-10-10 12:59:58 -05:00
Andrew Tridgell
53891ed37e r3017: nicer memory handling for event_context_merge()
(This used to be commit 1cef44505e5de9b8ae5206522b624082ad2343b2)
2007-10-10 12:59:58 -05:00
Andrew Tridgell
6591a22614 r3016: - converted the events code to talloc
- added the new messaging system, based on unix domain sockets. It
  gets over 10k messages/second on my laptop without any socket
  cacheing, which is better than I expected.

- added a LOCAL-MESSAGING torture test
(This used to be commit 3af06478da7ab34a272226d8d9ac87e0a4940cfb)
2007-10-10 12:59:57 -05:00
Andrew Tridgell
844de2b65c r3015: fixed typo noticed by abartlett
(This used to be commit b367209a9f94e471efed233639467babbb2b99d7)
2007-10-10 12:59:57 -05:00
Andrew Tridgell
8d1e35e243 r3014: got rid of the old intra-smbd messaging system in preparation for the new one
(This used to be commit 283e38aeb210e048302dc2759a75879cfc81eeb5)
2007-10-10 12:59:57 -05:00
Andrew Tridgell
f42402da83 r3013: added support for unix domain sockets in the generic socket library. I
will shortly be using this for a rewrite of the intra-smbd messaging
library, which is needed to get lock timeouts working properly (and
share modes, oplocks etc)
(This used to be commit 6f4926d846965a901e40d24546eab356c4a537c7)
2007-10-10 12:59:57 -05:00
Andrew Tridgell
fef617c31b r3012: added initial support for byte range locking in the posix vfs. This is
enough for us to pass locktest, but does not yet support lock timeouts
and some of the other esoteric features.
(This used to be commit 58a92abd88f190bc60894a68e0528e95ae33fe39)
2007-10-10 12:59:57 -05:00
Andrew Tridgell
f6da6a10de r3011: separated the locktest code into a separate module in smbtorture
(This used to be commit f4a91be63502c0bb32c52c0558dfc7d4d0a21fae)
2007-10-10 12:59:57 -05:00
Tim Potter
85a2db200a r3010: Do some more PyInt vs PyLong checks.
(This used to be commit b19dc6cd9c1ac44d970b092f09cf96c737a90fdd)
2007-10-10 12:59:57 -05:00
Tim Potter
c7a762bc74 r3009: Fix up unmarshall functions to return Python dict instead of a NTSTATUS.
We can now unmarshall a single printer returned from an EnumPrinters.
(This used to be commit 89da7a9196d40699881f12c9a5fe62301aafd4cf)
2007-10-10 12:59:56 -05:00
Tim Potter
71aaba4ea7 r3007: uint32 values need to be stored in Python longs, as on 32-bit machines
Python ints can only hold int32 values.
(This used to be commit 7c5ada63bf5d876a1b67df2cf7bd44942e4b0a98)
2007-10-10 12:59:56 -05:00
Jelmer Vernooij
c209120056 r3006: Poptify
(This used to be commit 5c46747c36aa09289c6b2df3927833aec78059fd)
2007-10-10 12:59:56 -05:00