Age | Commit message (Collapse) | Author | Files | Lines |
|
The thing that finally convinced me that minimal includes was worth
pursuing for rpc was a compiler (tcc) that failed to build Samba due
to reaching internal limits of the size of include files. Also the
fact that includes.h.gch was 16MB, which really seems excessive. This
patch brings it back to 12M, which is still too large, but
better. Note that this patch speeds up compile times for both the pch
and non-pch case.
This change also includes the addition iof a "depends()" option in our
IDL files, allowing you to specify that one IDL file depends on
another. This capability was needed for the auto-includes generation.
(This used to be commit b8f5fa8ac8e8725f3d321004f0aedf4246fc6b49)
|
|
(This used to be commit 3f902f8d851d32fa81d89ed61bfda6edaea00984)
|
|
We now pass the RPC-WINREG torture test.
Also, constructions like the following work now:
regtree <-> smbd <-> NTUSER.DAT
(This used to be commit df952e95cd1cbbfb62b4620e9452993aaef44ad3)
|
|
Add support flush_key and close_hive.
(This used to be commit c526273df238c994c4de3c1704c6e95433f2331c)
|
|
Andrew Bartlett
(This used to be commit effd10883b7b9d879a3e96801ef37992bc93bc97)
|
|
var/locks/smbd.tmp/
and deletes that dir on startup.
(This used to be commit 7e942e7f1bd2c293a0e6648df43a96f8b8a2a295)
|
|
now against samba 4, at least with a ldb backend:
winreg_Open*
winreg_OpenKey
winreg_EnumKey
winreg_DeleteKey
winreg_CreateKey
(This used to be commit a71d51dd3b136a1bcde1704fe9830985e06bb01b)
|
|
in the server.
(This used to be commit da65a248c292a90342e1394ee4132ef2c7afd3c8)
|
|
most other calls
return WERR_NOT_SUPPORTED for now.
Hive backends can be set like this:
registry:HKEY_LOCAL_MACHINE = ldb:tdb://registry.tdb
registry:HKEY_CURRENT_USER = gconf
registry:HKEY_USERS = dir:/tmp/registry
registry:HKEY_CLASSES_ROOT = nt4:/path/to/NTUSER.DAT
registry:HKEY_PERFORMANCE_DATA = w95:/path/to/USER.DAT
(This used to be commit 42844a4e3422bbbe891ba944c0e97861db7763ec)
|
|
(This used to be commit 5921587ec26e4892efc678421277e4969417d7f5)
|
|
and sends
it now passes the non-blocking test suite
(This used to be commit 6cdf485fb263c69d62ea2e98236d92ffbf6b7a3e)
|
|
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)
|
|
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)
|
|
(This used to be commit 478ba629158e8ce5e15467105b1013ba60f04ec1)
|
|
- Support binding strings like :
ncacn_np:[sign]
ncacn_np:myhost[seal,sign,endpoint]
again
(This used to be commit b53f4cd1697345065c7d979ba63237bf828dc07f)
|
|
(This used to be commit adbfd206f4e077ed915a014e89a970470b43e125)
|
|
(This used to be commit 1161c33794cdb16a3d09a66258f46e0020c4aeef)
|
|
options[0].
(This used to be commit 18582083af800abd3d8de40eb73255c8ae6598dd)
|
|
(This used to be commit 3de0cf22ddd6b7fb4a2214f3f99d37174c54840f)
|
|
Examples of binding strings are :
ncalrpc:[EPMAPPER]
ncacn_unix_stream:[/tmp/epmapper]
N.B. The unix socket support in lib/socket/ appears to close and remove the
socket it is listening on after the first client disconnects so until
that has been fixed, it is only possible to do one ncalrpc: or ncacn_unix_stream: request per instance of smbd :-)
Support for looking up NCALRPC names via the endpoint mapper will be added later.
(This used to be commit 426f3e63cae3d306dcdc13ee4b655eed30057ff8)
|
|
easier to deal with more different transports.
(This used to be commit ee9bcfddf01ed65082bdf0bb2b43e4f3a66c3f5b)
|
|
- Make sure a epm_tower struct is completely initialized
- Some more minor fixes
(This used to be commit d560dcbdb85cb2c6915bdb9e2f82f1872b0f5a52)
|
|
struct dcerpc_binding.
(This used to be commit 2046e14cf8d010d4e715124859df2c1c3c782266)
|
|
- Add protocol sequence to dcerpc transports (will be used later on)
- Add more transports to the list
(This used to be commit ab110192e6e2c1e5a3b2befe7b61158744f15d18)
|
|
(This used to be commit 7baf493966aa3fb61623d6030b5ccc26a5fcb186)
|
|
(This used to be commit 53567a83cbca9df60bef76a15df24d2cd89a16b0)
|
|
SAMR_FIELD_PASSWORD has been split up).
Andrew Bartlett
(This used to be commit 5f2295a5fb422ad028e67b240e55206acefb48bd)
|
|
Andrew Bartlett
(This used to be commit 51774a9bcad97686e5259ac8d753b3df58072622)
|
|
Andrew Bartlett
(This used to be commit 4091fee8e807e5cd7089dc6753324766d10678c2)
|
|
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)
|
|
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)
|
|
metze
(This used to be commit 757f67c08b0b1309d8a0b900539111c7bc430b0e)
|
|
metze
(This used to be commit 98ca7640c59aa8694abde03f5661b8908cf088bb)
|
|
metze
(This used to be commit 1bb71e7a8699bfd32d171a48c4c3b5f35faf3e51)
|
|
- do more crackname tests in the torture test
- move server code for cracknames to a different file
metze
(This used to be commit 18050ea6037b3c0c7cfe975eb9c872368b9e3328)
|
|
- we currently only do it for our REALM
metze
(This used to be commit e2df8c4285d3430085594a3a3b5534c514acd1f9)
|
|
metze
(This used to be commit a2cc9517208adedbcbed4b01d18a1478f75d70df)
|
|
(I need to find out what the fields mean but it works)
metze
(This used to be commit eff51fc623f2e7b57e7e53eb81760684815db2f4)
|
|
(This used to be commit 273d0049b5339e3288b264e5a4393bfab1d4e239)
|
|
the current ones. It took me three hours to realise that the DCOM standard
contains false protocol numbers (apparently someone converted the protocol
numbers to hex twice, i.e. 13 -> 0c and 14 to 0d). There are no longer
duplicates in the list with protocol numbers now.
(This used to be commit f355cd426462a72575ef3c3b769f676334976986)
|
|
- with DsBind and DsUnbind implmented :-)
the RPC-DRSUAPI test works
metze
(This used to be commit 536af87ef12024615728ce0060b557f6f504e33f)
|
|
metze
(This used to be commit 5143a9bd8aa84b80763c304638a27395b53b54cc)
|
|
so talloc now doesn't contain any ldb specific functions.
allow NULL to be passed to a couple more talloc() functions
(This used to be commit 1246f80d806fb5f63cfbf3879de6d546384552a8)
|
|
(This used to be commit feb63e74f923f2a50c6836e18a6c2bda39644e71)
|
|
possible to a structure creation routine. This makes for much easier
global cleanup.
(This used to be commit e14ee428ec357fab76a960387a9820a673786e27)
|
|
- Start working on OXIDResolver interface
- Add torture test for SimplePing()
(This used to be commit b54d14a01a71082251ff926ab57974c6eb3c0a41)
|
|
simplifies things quite a bit
(This used to be commit c82a9cf750829c4f6982ca3133295c8599023c4e)
|
|
void *talloc_reference(const void *context, const void *ptr);
this function makes a secondary reference to ptr, and hangs it off the
given context. This greatly simplifies some of the current reference
counting code in the samr server and I suspect it will be widely used
in other places too.
the way you use it is like this:
domain_state->connect_state = talloc_reference(domain_state, connect_state);
that makes the element connect_state of domain_state a secondary
reference to connect_state. The connect_state structure will then only
be freed when both domain_state and the original connect_state go
away, allowing you to free them independently and in any order.
you could do this alrady using a talloc destructor, and that is what
the samr server did previously, but that meant this construct was
being reinvented in several places. So this convenience function sets
up the destructor for you, giving a much more convenient and less
error prone API.
(This used to be commit dc5315086156644fad093cbe6b02d999adba8540)
|
|
existing call rather than creating a new one. This prevents call
structures hanging around on the rpc connection context until it is
closed
(This used to be commit c51ca7c0e73b97435c245cd440a4fb979cf6a4f3)
|
|
taking a context (so when you pass a NULL pointer you end up with
memory in a top level context). Fixed it by changing the API to take a
context. The context is only used if the pointer you are reallocing is
NULL.
(This used to be commit 8dc23821c9f54b2f13049b5e608a0cafb81aa540)
|