Age | Commit message (Collapse) | Author | Files | Lines |
|
string conversion. For RPC, all string conversions are supposed to be
done by the NDR layer, using string flags set in the IDL. The reason
this wasn't working is that I had been too lazy to do the STR_ASCII
string types properly at the NDR layer when initially writing
ndr_basic.c.
This commit fixes the ndr_basic code properly to do all ASCII
varients, by re-using the non-ascii code and a "byte_mul" local
variable. I have also removed the manual string conversion in the SAMR
torture test code.
(This used to be commit aad0e7e9d890bb56447f1f933b8f2bb78a3ee269)
|
|
(This used to be commit e9a7f729b3b5e1d970f124b0a25255f40e18c9b4)
|
|
- rename handle -> bind_handle
- change function types to NTSTATUS
metze
(This used to be commit de73676342be8dbf39df8d3fe68817932ee71ccb)
|
|
of associated functions.
The motivation for this change was to avoid having to convert to/from
ucs2 strings for so many operations. Doing that was slow, used many
static buffers, and was also incorrect as it didn't cope properly with
unicode codepoints above 65536 (which could not be represented
correctly as smb_ucs2_t chars)
The two core functions that allowed this change are next_codepoint()
and push_codepoint(). These functions allow you to correctly walk a
arbitrary multi-byte string a character at a time without converting
the whole string to ucs2.
While doing this cleanup I also fixed several ucs2 string handling
bugs. See the commit for details.
The following code (which counts the number of occuraces of 'c' in a
string) shows how to use the new interface:
size_t count_chars(const char *s, char c)
{
size_t count = 0;
while (*s) {
size_t size;
codepoint_t c2 = next_codepoint(s, &size);
if (c2 == c) count++;
s += size;
}
return count;
}
(This used to be commit 814881f0e50019196b3aa9fbe4aeadbb98172040)
|
|
scanner in RPC-SCANNER
(This used to be commit 04eaae59cda8a8d67bcca896a32dec2ad402a4f2)
|
|
IDL so this works (the previous IDL was bogus)
- changed a hyper to uint64 after looking at output on cascade on sparc
(This used to be commit db1ed5675a5271085ea0b89dd634b037ee710178)
|
|
possible to a structure creation routine. This makes for much easier
global cleanup.
(This used to be commit e14ee428ec357fab76a960387a9820a673786e27)
|
|
(This used to be commit 9e74144aa8e5f9a8b6e3d5293833c4afeebeddb0)
|
|
simplifies things quite a bit
(This used to be commit c82a9cf750829c4f6982ca3133295c8599023c4e)
|
|
RPC-SAMR torture test. This closes the samr connection before working
on a open domain handle. The server is supposed to know that the open
domain handle still holds a reference to the connection, so the
connection remains valid even though it has been closed.
(This used to be commit f31e5d56e364ce8ab76fdb20b30e179b458b2ffa)
|
|
The intial motivation for this commit was to merge in some of the
bugfixes present in Samba3's chrcnv and string handling code into
Samba4. However, along the way I found a lot of unused functions, and
decided to do a bit more...
The strlen_m code now does not use a fixed buffer, but more work is
needed to finish off other functions in str_util.c. These fixed
length buffers hav caused very nasty, hard to chase down bugs at some
sites.
The strupper_m() function has a strupper_talloc() to replace it (we
need to go around and fix more uses, but it's a start). Use of these
new functions will avoid bugs where the upper or lowercase version of
a string is a different length.
I have removed the push_*_allocate functions, which are replaced by
calls to push_*_talloc. Likewise, pstring and other 'fixed length'
wrappers are removed, where possible.
I have removed the first ('base pointer') argument, used by push_ucs2,
as the Samba4 way of doing things ensures that this is always on an
even boundary anyway. (It was used in only one place, in any case).
(This used to be commit dfecb0150627b500cb026b8a4932fe87902ca392)
|
|
Andrew Bartlett
(This used to be commit 4904d814c0efd870ac42c790028a8448984e4749)
|
|
compile)
(This used to be commit c98fbfe2507ef08cfd2ed5486f1122b6010939f9)
|
|
(This used to be commit 90a9e754db91647607eef3a2ccb08d3651fca9df)
|
|
does Microsoft style async rpc serving
(This used to be commit 050dcd9b95576e1a9c0cb2144fc01c690853abc0)
|
|
(This used to be commit a0e571a9ddc01b8e90a93d591aec4b10c9926818)
|
|
metze
(This used to be commit a0c2a3a5d4fba2a6a78cc3d167cbc19941fb43dc)
|
|
(This used to be commit 59b3d68bd047231d72fa3299e7289aef25702e9b)
|
|
have the handle type implied by the parameter name. There are four
types of handle: connect, domain, user and group handles. The
various samr_Connect functions return a connect handle, and the
samr_OpenFoo functions return a foo handle.
There is one exception - the samr_{Get,Set}Security function can
take any type of handle.
Fix up all C callers.
(This used to be commit 32f0f3154a8eb63de83145cbc8806b8906ccdc3e)
|
|
server
closes the connetion and we got EBADF from select() and event_loop_once() fails
metze
(This used to be commit 9c0e50a6f3d628156b4543d5ded89e06be696f64)
|
|
metze
(This used to be commit 3cd63030b1433ddc3ae89e2f45c6f7a27b7d1756)
|
|
seems that [in,out,ref] vars should be initialize
the [in] and [out] part
metze
(This used to be commit 47e613a5a1063d8e93e831252db03f19cdb08590)
|
|
now do these two calls successfully against w2k3.
note that you must use ncacn_ip_tcp, and must enable dcerpc sealing,
otherwise w2k3 refuses the first DRSUAPI call.
(This used to be commit 7d3e34742277f264e41739721dbf08036eebb598)
|
|
fails this and it kills the pipe, so we can't run the rest of the test
(This used to be commit bdb49f01b75aa5b3a458ee4629e867bee1d03358)
|
|
now works on NCACN_IP_TCP as well.
(This used to be commit 9cc33d936407255b5c5fb9bde37d918cf268c784)
|
|
(This used to be commit f6ea24296acaaadcd2d59740bc88ef1a93fb1c28)
|
|
passwords - where the LM hash is invalid.
Also, we now drive all the logon levels and validation levels from the
outer loop, so we can check the expected return values (rather than
overwriting them).
Andrew Bartlett
(This used to be commit f7f7c3de23ffb042f7cf7b4fa42b6b18c205719d)
|
|
the ndr->offset=0; stuff is ugly. We need a better way to handle this.
(This used to be commit e909bfa708aeceeaa37faa6f6dff0274f8ac7920)
|
|
killed it :(
(This used to be commit 60a88595e23eb2953edfacf9dfc9fe3f08ec5eeb)
|
|
random keys
(This used to be commit d98ed1fbe52b547c461f1b6a859504e96e0e3ee7)
|
|
(This used to be commit 591ee2308c95982caf5453d35ebf6530208037fd)
|
|
(This used to be commit e1d13631f0163b69401a07c51e449ea1e32239bf)
|
|
encryption on ncacn_ip_tcp is a fixed buffer! I don't yet know what
the buffer is, but this code proves its the same buffer for different
w2k3 servers and different user passwords, plus it is independent of
the negotiated NTLMSSP session key.
(This used to be commit 05fd38f3cfd9476bc1cf7fed838a942a75569c0a)
|
|
ID, so the client can choose what language they get the privilege
description in.
this is the first time I've seen a language ID on the wire in CIFS.
(This used to be commit e99d88915fbfcfb50b04330cd1a32b90222fbca3)
|
|
for test_LookupPrivDisplayName
(This used to be commit 2d8f4005926e15dcb56a6501091a56475a99712d)
|
|
also add a demonstration of its use in the netlogon async example
(This used to be commit f2a0438c66b999189c1a2ad726e91efd0748eb90)
|
|
LSAKEY problem holding up other tests
(This used to be commit ad8d54fd7dd93cb984d23acecfc1c611b63a5d58)
|
|
(This used to be commit 4c370c3c917f399497f936a2037ea2868b2196d2)
|
|
(This used to be commit 25f85efd75bd54ff142027a8741edaa94725ca9a)
|
|
(This used to be commit 306eb848654e0cadb0ebe10c29420fc0c30a64c4)
|
|
RPC-ECHO test to use it to test asynchronous rpc operations.
(This used to be commit a5eb6cad5050928fab593e1f9a82fbfba589120c)
|
|
generate a separate *_send() async function for every RPC call, and
there is a single dcerpc_ndr_request_recv() call that processes the
receive side of any rpc call. The caller can use
dcerpc_event_context() to get a pointer to the event context for the
pipe so that events can be waited for asynchronously.
The only part that remains synchronous is the initial bind
calls. These could also be made async if necessary, although I suspect
most applications won't need them to be.
(This used to be commit f5d004d8eb8c76c03342cace1976b27266cfa1f0)
|
|
this means -U DOM\\user is know allowed
- torture:userdomain is a new smb.conf parameter
because lp_workgroup is not the domain of the user
- we use torture:userdomain now in the tests instad of lp_workgroup
- for backward compat the userdomain is lp_workgroup() by default and
not lp_netbios_name(), which my change later to match 'net' and 'smbclient'..
- we now have dublicate options e.g. -N -s ...
tridge: can we change this?
metze
(This used to be commit 4733dcbf5f17422a8a4c9f99664270b3aa66c586)
|
|
Andrew Bartlett
(This used to be commit 4e2c5a5fb3e428ffcdeef3b95fab644a420cc20c)
|
|
(This used to be commit eddb31d19654853189d1c3c52105a6240d100456)
|
|
to a uint32, there're two uint32 with 0x00000000
metze
(This used to be commit 80f27766cb6d2c4e00232f7e3d5cde75ad84d094)
|
|
This version does the following:
1) talloc_free(), talloc_realloc() and talloc_steal() lose their
(redundent) first arguments
2) you can use _any_ talloc pointer as a talloc context to allocate
more memory. This allows you to create complex data structures
where the top level structure is the logical parent of the next
level down, and those are the parents of the level below
that. Then destroy either the lot with a single talloc_free() or
destroy any sub-part with a talloc_free() of that part
3) you can name any pointer. Use talloc_named() which is just like
talloc() but takes the printf style name argument as well as the
parent context and the size.
The whole thing ends up being a very simple piece of code, although
some of the pointer walking gets hairy.
So far, I'm just using the new talloc() like the old one. The next
step is to actually take advantage of the new interface
properly. Expect some new commits soon that simplify some common
coding styles in samba4 by using the new talloc().
(This used to be commit e35bb094c52e550b3105dd1638d8d90de71d854f)
|
|
(this need to be done more generic for all dcerpc calls,
but for now I just need it in this 2 places)
metze
(This used to be commit d965f84f69ada2a10e9159aa1743c0bee7790488)
|
|
interface method.
(This used to be commit ec41c73ae136bffea4285ade8be322b3c4cf3629)
|
|
http://www.hsc.fr/ressources/articles/win_net_srv
(This used to be commit 8d36dbed8c5bdc82176083b2c6f8d989ae903ba5)
|