summaryrefslogtreecommitdiff
path: root/source4/lib
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r3323: more warning reductionsAndrew Tridgell7-46/+27
(This used to be commit 5921587ec26e4892efc678421277e4969417d7f5)
2007-10-10r3322: fixed a bunch of warnings in the build, including one case where it ↵Andrew Tridgell1-5/+5
was a real bug (This used to be commit 02d5d0f685e44bd66aff4a007f0bf34c8f915574)
2007-10-10r3318: generate random STATUS_MORE_ENTRIES errors (1 in 10 packets) as wellAndrew Tridgell1-2/+10
as randomly short recv/send when socket:testnonblock is enabled (This used to be commit 718175a265d34bfdbcbf0cc6b55dbf6b389f3194)
2007-10-10r3314: added a option "socket:testnonblock" to the generic socket code. IfAndrew Tridgell5-14/+31
you set this option (either on the command line using --option or in smb.conf) then every socket recv or send will return short by random amounts. This allows you to test that the non-blocking socket logic in your code works correctly. I also removed the flags argument to socket_accept(), and instead made the new socket inherit the flags of the old socket, which makes more sense to me. (This used to be commit 406d356e698da01c84e8aa5b7894752b4403f63c)
2007-10-10r3313: in socket_accept() make the new socket non-blocking unless ↵Andrew Tridgell2-0/+16
SOCKET_FLAG_BLOCK is set. (This used to be commit a2d92aa431e0e9752387eebe741d9e6f376f74d7)
2007-10-10r3304: changed the API to lib/socket/ a little.Andrew Tridgell5-81/+41
The main change is to make socket_recv() take a pre-allocated buffer, rather than allocating one itself. This allows non-blocking users of this API to avoid a memcpy(). As a result our messaging code is now about 10% faster, and the ncacn_ip_tcp and ncalrpc code is also faster. The second change was to remove the unused mem_ctx argument from socket_send(). Having it there implied that memory could be allocated, which meant the caller had to worry about freeing that memory (if for example it is sending in a tight loop using the same memory context). Removing that unused argument keeps life simpler for users. (This used to be commit a16e4756cd68ca8aab4ffc59d4d9db0b6e44dbd1)
2007-10-10r3300: initialise *sendlen on failure, to allow for callers to check only forAndrew Tridgell1-0/+2
NT_STATUS_IS_ERR() (This used to be commit 80a109de8458420ac0b40c563f4b3bc51424d759)
2007-10-10r3279: Removed MSG_DONTWAIT flags as many platform don't have it.Andrew Tridgell2-19/+1
If a socket is non-blocking then adding MSG_DONTWAIT is pointless (it does nothing), so all we lose is the ability to set non-blocking on a packet-by-packet basis, which is not a very useful thing to have anyway if the socket is blocking then the code already adds MSG_WAITALL, so MSG_DONTWAIT is also not needed in that case. (This used to be commit b8a2afae67691a609b4a7a577fee3f9518adc9d2)
2007-10-10r3278: - rewrote the client side rpc connection code to use lib/socket/Andrew Tridgell7-125/+54
rather than doing everything itself. This greatly simplifies the code, although I really don't like the socket_recv() interface (it always allocates memory for you, which means an extra memcpy in this code) - fixed several bugs in the socket_ipv4.c code, in particular client side code used a non-blocking connect but didn't handle EINPROGRESS, so it had no chance of working. Also fixed the error codes, using map_nt_error_from_unix() - cleaned up and expanded map_nt_error_from_unix() - changed interpret_addr2() to not take a mem_ctx. It makes absolutely no sense to allocate a fixed size 4 byte structure like this. Dozens of places in the code were also using interpret_addr2() incorrectly (precisely because the allocation made no sense) (This used to be commit 7f2c771b0e0e98c5c9e5cf662592d64d34ff1205)
2007-10-10r3271: use "struct messaging_context *" instead of "void *" in messaging APIAndrew Tridgell1-22/+19
(This used to be commit cc93813e4a09c538ad485dc2b3cb4c9be34f3d18)
2007-10-10r3267: make LIBTDB depend on LIBREPLACE. This is needed for building the tdb ↵Andrew Tridgell1-0/+2
tools on Solaris. (This used to be commit c5d338d06137fe7464849df02671d8ab833e3b4e)
2007-10-10r3261: added seek to RAW-SEARCH testAndrew Tridgell1-10/+19
(This used to be commit 05530bfb99011db8a00f5debcf8eec19b5e8a5d6)
2007-10-10r3238: rename null_mtime() to the more accurate name "null_time()", andAndrew Tridgell1-7/+7
expose it for use by the posix backend (This used to be commit 687633b5d68c8f883a4d9cdd92c660dabc5d7cfa)
2007-10-10r3223: continue the effort on LIBREPLACE to try to get the ldb tools toAndrew Tridgell3-34/+35
compile on platforms like solaris without having to link to the whole of the Samba4 lib directory. (This used to be commit f6862bfc1cbc9278914b4b73365f63d3da0a08dd)
2007-10-10r3210: split lib/replace.o into a separate build subsystem LIBREPLACE, andAndrew Tridgell5-35/+44
make the ldb tools depend on it. This should help the build of the ldb tools on platforms without strnlen() or strndup() (This used to be commit e6ddb9d8f3a218b22b0176a2525b5daaca7170e4)
2007-10-10r3184: don't setup socket options on unix domain sockets (our smb.conf ↵Andrew Tridgell1-1/+0
socket options are really meant for tcp) (This used to be commit 238febb0088f85933c869052f4f83ff31f164df1)
2007-10-10r3183: moved the unlink of the messaging unixdom socket to the messaging ↵Andrew Tridgell2-9/+1
destructor (This used to be commit ab222b236a091d31b1f5f2cba150a11585ab5836)
2007-10-10r3169: unlink() is called on the listening unix socket every time a child ↵Jelmer Vernooij1-0/+4
process exits. Commenting it out until we have a clean way of doing this. (This used to be commit fa0760dd5fa361be3b72dc4adc8b736e8a862606)
2007-10-10r3164: Look up ncalrpc identifiers using the EPMAPPER. ncalrpc now works ↵Jelmer Vernooij1-1/+6
nicely :-) The various interface that support ncalrpc work nicely when tested with smbtorture and ncalrpc. Running RPC-SAMR against local smbd here is slightly faster using ncalrpc: ncalrpc: 1.8 sec ncacn_ip_tcp: 1.9 sec ncacn_np: 2.5 sec (This used to be commit 2cfc8f24ce209f47153d3a5bd7007dd1b0578b26)
2007-10-10r3130: - added a LOCAL-IDTREE test suiteAndrew Tridgell1-31/+37
- made idtree return a "struct idr_context *" instead of a void* - more efficient idr_remove for ids that are not present (patch from Jim Houston) (This used to be commit f8d12d4b4ae5a38de7869deb782cb8f48504844c)
2007-10-10r3102: typoStefan Metzmacher1-1/+1
metze (This used to be commit 3bbda7475a63f939019a41a0b7da8d179c533d79)
2007-10-10r3101: some minor fixesStefan Metzmacher1-8/+9
metze (This used to be commit 61de2229e27c55041cb4e1aac32bc1d8ed68a05c)
2007-10-10r3100: support 'bin/smbclient //w2k3-101/c$ -U ↵Stefan Metzmacher2-2/+7
\\administrator@w2k3.vmnet1.vm.base' we need to send an empty string as userdomain in this case. fix bug #1317 in the client side metze (This used to be commit 958aa8de630b2a88f29ccdf80ac0fc44a8205401)
2007-10-10r3095: - fix a free'ing of msg.dnStefan Metzmacher3-8/+8
- reenable index tests metze (This used to be commit 1e7e94fdb10db831090f9bd37e39053dfcde04ce)
2007-10-10r3093: - implment ldb_rename() and ldbrenameStefan Metzmacher9-13/+271
- add tests for ldbrename - disable all tests which regenerate the index (this is broken for me...the process hangs, tridge we need to discuss that) - link only the needed stuff to the ldb tools - build ldbtest inside samba metze (This used to be commit 18552f4786c24e0019cc87726ef4c05365fe586e)
2007-10-10r3092: prepare for build inside sambaStefan Metzmacher1-4/+4
metze (This used to be commit f7564bf4d2efb702cf3d11237fbe2adf5efb1ebf)
2007-10-10r3091: link only the needed stuffStefan Metzmacher1-2/+2
metze (This used to be commit 71ccac56c21635e7f6eb8d558230f637f50149ad)
2007-10-10r3089: fix memleakStefan Metzmacher1-0/+1
metze (This used to be commit 52eab8dc17a1cd1a8c0382ab8d6e7f6c7ddeea19)
2007-10-10r3073: Fix bug in the handling of null-terminated ASCII strings in RPC.Andrew Bartlett1-0/+18
Because we didn't count the null terminator, we would not move past it in the packet. Andrew Bartlett (This used to be commit 8b38bffc7098610c469ab61b7e0e6884f046f286)
2007-10-10r3064: - use UINT8_MAX and UINT16_MAX instead of hex values for ↵Andrew Tridgell1-2/+2
idr_get_new() limits - change idr_get_new() to use > instead of >= in the limit check (This used to be commit 834b09929bcb8aabdd151b7c2306001497cabdb4)
2007-10-10r3063: our default dos charset is CP850, but some systems don't have that, soAndrew Tridgell1-0/+14
as a special case, automatically fall back to ASCII if its not found. (This used to be commit 55aeb33343180929fbd7b3568b058b506aee7540)
2007-10-10r3061: change a debug to help track down a charset problemAndrew Tridgell1-1/+2
(This used to be commit 4d2497b7f4cb6aa6fdf1e03b56f72b1022cb92b8)
2007-10-10r3058: we don't use the bitmap code any more, delete itAndrew Tridgell2-164/+0
(This used to be commit 2b0554b3b598accb1b2ddade1bf17fa2cc2cb05b)
2007-10-10r3057: - moved the idtree.c code into lib/Andrew Tridgell2-1/+362
- converted the tid handling to use a idtree instead of bitmaps (This used to be commit 4220914179d10132057216650b65ed7f7679717e)
2007-10-10r3052: added talloc_zero_p() and talloc_zero_array_p() calls, for allocating ↵Andrew Tridgell1-2/+13
zeroed memory (This used to be commit 65b7316e9b4589b02a8bd94150ccbfe526f6d159)
2007-10-10r3034: - fixed a bug in message dispatch, when the dispatch function called ↵Andrew Tridgell1-2/+3
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-10r3029: implemented byte range lock timeouts.Andrew Tridgell1-2/+3
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-10r3028: use talloc_free() instead of talloc_unlink(), as theAndrew Tridgell1-3/+3
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-10r3026: - added automatic retry to messages when the servers listen queue isAndrew Tridgell1-2/+47
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-10r3023: added immediate send of messages when they are first queued. This ↵Andrew Tridgell1-0/+2
makes things a bit more efficient (This used to be commit 8380225d326e4bfb3f15fddc72c097870713132a)
2007-10-10r3020: better error handling in socket_unixAndrew Tridgell1-50/+43
(This used to be commit 64514ff5b7734667a1364de925114091fe208b3a)
2007-10-10r3018: handle STATUS_MORE_ENTRIES from socket_recv() in the messaging codeAndrew Tridgell1-0/+2
(This used to be commit 13739b68d8357d5d330f12b851d0311feb81e545)
2007-10-10r3017: nicer memory handling for event_context_merge()Andrew Tridgell1-15/+10
(This used to be commit 1cef44505e5de9b8ae5206522b624082ad2343b2)
2007-10-10r3016: - converted the events code to tallocAndrew Tridgell5-37/+473
- 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-10r3015: fixed typo noticed by abartlettAndrew Tridgell1-3/+4
(This used to be commit b367209a9f94e471efed233639467babbb2b99d7)
2007-10-10r3014: got rid of the old intra-smbd messaging system in preparation for the ↵Andrew Tridgell4-700/+0
new one (This used to be commit 283e38aeb210e048302dc2759a75879cfc81eeb5)
2007-10-10r3013: added support for unix domain sockets in the generic socket library. IAndrew Tridgell5-1/+334
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-10r3005: added talloc wrappers around tdb_open() and ldb_connect(), so that theAndrew Tridgell6-81/+208
caller doesn't have to worry about the constraint of only opening a database a single time in a process. These wrappers will ensure that only a single open is done, and will auto-close when the last instance is gone. When you are finished with a database pointer, use talloc_free() to close it. note that this code does not take account of the threads process model, and does not yet take account of symlinks or hard links to tdb files. (This used to be commit 04e1171996612ddb15f84134cadded68f0d173b2)
2007-10-10r3004: removed some unused functionsAndrew Tridgell3-297/+0
(This used to be commit 247421ee648d1935b68a47195fe1709bb861a7d5)
2007-10-10r2985: got rid of the unused tdb_lockkeys() and tdb_unlockkeys() functionsAndrew Tridgell2-74/+0
they have been broken for 4 years (ever since they were added) and have been never used, which makes them prime candidates for destruction. (This used to be commit 0b53ab85aae4569c04495f07c18a65fd6b47bf4c)