summaryrefslogtreecommitdiff
path: root/source4/librpc/ndr
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r3787: a function to generate a random GUIDStefan Metzmacher1-0/+10
metze (This used to be commit 8bd2e3cb4e5123a3e26965b8535e16ee18005714)
2007-10-10r3785: this strings are not constStefan Metzmacher1-2/+2
metze (This used to be commit 436da375a2a815926aaa0565120a4750ead37cb0)
2007-10-10r3611: DCOM client support works!!Jelmer Vernooij1-0/+2
The torture test DCOM-SIMPLE now successfully does an IStream_Read and a IStream_Write call. This test can now be run successfully against the "Simple DCOM" Visual Studio example. (You have to quote out line 337 in pidl. pidl complains if the variable that contains the array size follows the array. I still need to fix this properly) Next goals: - Clean up code - Server side support - Support custom marshalling - Support DCOM interfaces in files other then dcom.idl (This used to be commit 8693344772a9b700533179f4bacfe27ec27dfcfe)
2007-10-10r3606: More DCOM fixes:Jelmer Vernooij2-0/+205
- OXID tables work now. IOXIDResolver is used if there is used for getting a STRINGBINDING if none is known yet - Add custom dissectors for STRINGARRAY and DUALSTRINGARRAY. If there's a way to get rid of these later on (by supporting them thru pidl somehow), I'd be happy to use that instead of doing it manually. I can now get to the point where we have created an object and are connected to it. The only thing left to do is being able to set the Object UUID properly.. (This used to be commit 54e1e5edca50d3cd496c080715e84ec62cb2a10c)
2007-10-10r3582: more gcc-4.0 signedness fixesStefan Metzmacher1-5/+5
metze (This used to be commit 07405f1c67e9df8a972e17f5bdaf312977960474)
2007-10-10r3549: added support for DOS extended attribute lists (name/value pairs)Andrew Tridgell2-2/+15
stored in posix xattrs (This used to be commit bad6a88371264cffce2bf5d6ce904b7b357081de)
2007-10-10r3545: initial support for using extended attributes to hold extended dos ↵Andrew Tridgell1-40/+18
attributes of files. I decided to use IDL/NDR to encode the attribute, as it gives us a simple way to describe and extend the saved attributes. The xattr code needs to hook into quite a few more places in the pvfs code, but this at least gets the basics done. I will start encoding alternate data streams streams, DOS EAs etc soon using the same basic mechanism. I'll probably stick to "version 1" for the xattr.idl for quite a while even though it will be changing, as I don't expect anyone to be deploying this in production just yet. Once we have production users we will need to keep compatibility by supporting all the old version numbers in xattr.idl. (This used to be commit c54253ed1b7dce1d14f43e747da61089aea87094)
2007-10-10r3512: - support DsCrackName GUID strings ↵Stefan Metzmacher1-2/+25
('{faedf4f9-0de8-4582-b8b6-c475efefbe5a}') - resolve the GUID's we got in DsGetDomainControllerInfo in the DsCrackNames test metze (This used to be commit f6310695821a7e750dd37936a6145232d81ab413)
2007-10-10r3484: - add support for conformant string arrays at the end of a structStefan Metzmacher2-25/+73
- add support for strings where the length excludes the NULLTERM metze (This used to be commit 8251d8b3e5af351972aa41aed63f7a7d2640910e)
2007-10-10r3463: separated out some more headers (asn_1.h, messages.h, dlinklist.h and ↵Andrew Tridgell1-0/+1
ioctl.h) (This used to be commit b97e395c814762024336c1cf4d7c25be8da5813a)
2007-10-10r3432: Support WERROR's in arguments (not just as return type). Some ofJelmer Vernooij1-2/+52
the DCOM calls are wrappers around several local calls, so you get things like: WERROR foobar ( [in] int num_ifaces, [in,size_is(num_ifaces)] IID *ifaces, [out,size_is(num_ifaces)] WERROR *results); (This used to be commit 0873bf2cbe3589988e518cf68ad4d14343b9240b)
2007-10-10r3428: switched to using minimal includes for the auto-generated RPC code.Andrew Tridgell1-0/+1
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)
2007-10-10r3424: don't run mkproto.pl on pidl generated code, instead rely on pidl ↵Andrew Tridgell1-4/+0
generating the prototypes itself (This used to be commit e694aeefe7c725d417abdd3c48d16ff1d932c223)
2007-10-10r3395: added support for "string32" type, to fix the fixed width stringAndrew Tridgell2-1/+30
problem that tim found. (This used to be commit 2cf35cb4d2513a7be46065e12c6fd1e2b90f4b8a)
2007-10-10r3358: Try to put all the basic struct dom_sid manipulation functions in oneAndrew Bartlett1-57/+0
place. (I always have trouble finding one half or the other). Andrew Bartlett (This used to be commit 224b59edba7c00ad515b4c5e3e9a886700247ad4)
2007-10-10r3322: fixed a bunch of warnings in the build, including one case where it ↵Andrew Tridgell1-0/+2
was a real bug (This used to be commit 02d5d0f685e44bd66aff4a007f0bf34c8f915574)
2007-10-10r3073: Fix bug in the handling of null-terminated ASCII strings in RPC.Andrew Bartlett1-1/+1
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-10r3036: Add function to pull an array of structures. Abstracts away theTim Potter1-0/+21
individual routines in ndr_spoolss_buf.c. (This used to be commit e080a2483da61ee95d21b0355471a4af13c20a81)
2007-10-10r2990: Add support to pidl for autogenerating ndr_size_*() functions. AddingJelmer Vernooij2-0/+17
the [gensize] property to a struct or union will make pidl generate a ndr_size_*() function. (not all nasty bits of NDR are completely covered yet by the ndr_size*() functions, support for those will be added when necessary) I also have a local patch (not applied now) that simplifies the pidl output and eliminates the number of functions required. It would, however, make pidl more complex. (This used to be commit 7c823f886afd0c4c6ee838f17882ca0658417011)
2007-10-10r2989: fix the printing of unions with negative cases when :print is usedAndrew Tridgell1-2/+2
(This used to be commit d8152f896119418d95d7697cc2ca23f5319c32a9)
2007-10-10r2987: added support for signed 32 bit integers in pidlAndrew Tridgell1-0/+31
(This used to be commit 24122eb93e39de8db3675618b6c227c95eb58d9c)
2007-10-10r2968: fixed the byte order problem with the new RHS parsing on ncacn_ip_tcpAndrew Tridgell1-0/+11
(This used to be commit cc00f9b6b87783d189df00de0ce9ae92b907e21a)
2007-10-10r2948: added support for the [range(low,high)] attribute in pidl. This allowsAndrew Tridgell1-1/+2
range checking of any integer value, to help protect against denial of service attacks (which could otherwise cause large memory allocations) (This used to be commit dbe6430d78f1b9aa59969074077e4afa5adf7570)
2007-10-10r2910: I noticed that the samr torture test was doing its own DOS->UNIXAndrew Tridgell1-129/+138
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)
2007-10-10r2857: this commit gets rid of smb_ucs2_t, wpstring and fpstring, plus lots ↵Andrew Tridgell1-7/+3
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)
2007-10-10r2671: we're getting too many errors caused by the talloc_realloc() API notAndrew Tridgell1-1/+1
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)
2007-10-10r2625: use talloc_p, not talloc when possible (when allocating a structure ↵Andrew Tridgell1-1/+1
in particular), as it gives us type checking. (This used to be commit dabc7ddd9f940db414d1c3c7bf3cebcd108fbf6f)
2007-10-10r2552: Character set conversion and string handling updates.Andrew Bartlett1-4/+4
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)
2007-10-10r2247: talloc_destroy -> talloc_freeTim Potter1-1/+1
(This used to be commit 6c1a72c5d667245b1eec94f58e68acd22dd720ce)
2007-10-10r2209: patch from volker to add EnumPorts spoolss IDL and test codeAndrew Tridgell1-0/+21
the ndr->offset=0; stuff is ugly. We need a better way to handle this. (This used to be commit e909bfa708aeceeaa37faa6f6dff0274f8ac7920)
2007-10-10r2208: little attempt to (almost) fix spoolss relativeVolker Lendecke1-1/+1
(This used to be commit ef5414676ea07004aaa78d5f4c1746b3c8669d16)
2007-10-10r2206: another (untested) attempt to make RELATIVE_CURRENT work for volker,Andrew Tridgell1-40/+6
plus removed unused ndr_pull_relative() function once volker commits a test for this I'll be able to ensure it really works as expected (This used to be commit 8ffe136ad2be52f3504d73ead0785c9c5f5d8770)
2007-10-10r2205: fixed an incorrect cast that broke relative strings in spoolssAndrew Tridgell1-1/+1
(This used to be commit d2d3433de1c1e1bc757381e9736147cc24fe8cf0)
2007-10-10r2204: added [flag(RELATIVE_CURRENT)] to change [relative] pointer behaviourAndrew Tridgell2-6/+14
for this struct and all sub-structures to be like spoolss relative pointers (where offset is relative to current position). volker will test this for me :) (This used to be commit bd45329a3fb55a5d9f006ad601ae26a80b9a563f)
2007-10-10r2180: added RPC flags "padcheck" which enables checking of all received padAndrew Tridgell2-2/+33
bytes to make sure they are zero. Non-zero values usually indicate one of two things: - the server is leaking data through sending uninitialised memory - we have mistaken a real field in the IDL for padding to differentiate between the two you really need to run with "print,padcheck" and look carefully at whether the non-zero pad bytes are random or appear to be deliberate. (This used to be commit 7fdb778f81f14aaab75ab204431e4342a462957a)
2007-10-10r2159: converted samba4 over to UTF-16.Andrew Tridgell1-4/+4
I had previously thought this was unnecessary, as windows doesn't use standards compliant UTF-16, and for filesystem operations treats bytes as UCS-2, but Bjoern Jacke has pointed out to me that this means we don't correctly store extended UTF-16 characters as UTF-8 on disk. This can be seen with (for example) the gothic characters with codepoints above 64k. This commit also adds a LOCAL-ICONV torture test that tests the first 1 million codepoints against the system iconv library, and tests 5 million random UTF-16LE buffers for identical error handling to the system iconv library. the lib/iconv.c changes need backporting to samba3 (This used to be commit 756f28ac95feaa84b42402723d5f7286865c78db)
2007-10-10r2121: fix compiler warningStefan Metzmacher1-1/+0
metze (This used to be commit 2de544181ec75da63fdcd5ecdde9e6a533603a38)
2007-10-10r2100: rework the dcerpc client side library so that it is async. We nowAndrew Tridgell1-7/+1
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)
2007-10-10r2055: Add PRINTF_ATTRIBUTE to many more parts of the code, and a newAndrew Bartlett1-2/+2
--enable-developer warning for when they are missing. Andrew Bartlett (This used to be commit 8115e44d47bcd65edba08d10117180ae508cdbc1)
2007-10-10r1994: fix compiler warningStefan Metzmacher1-1/+1
metze (This used to be commit a3a4b9c9ea2692b3ca85d9a4a094e36609831f19)
2007-10-10r1985: take advantage of the new talloc in a few more placesAndrew Tridgell4-72/+70
(This used to be commit 6ffdfd779936ce8c5ca49c5f444e8da2bbeee0a8)
2007-10-10r1983: a completely new implementation of tallocAndrew Tridgell1-1/+1
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)
2007-10-10r1884: remove empty header fileStefan Metzmacher2-1/+0
metze (This used to be commit 874d4506094123a1f42c32c3ad37f6374f5958e8)
2007-10-10r1848: fix LIBNDR_STRING_FLAGS to include LIBNDR_STRING_BYTESIZEStefan Metzmacher1-1/+1
metze (This used to be commit 7f1fceeb7f7e2e51fb67f48b1513a32564b7cdff)
2007-10-10r1847: add STR_BYTESIZE flag, to handle cases whereStefan Metzmacher2-6/+53
the size is in bytes not in unicode chars metze (This used to be commit 6d094d60d377479de28790bad8ceb4c083c902cd)
2007-10-10r1770: here's the krb5 server code,Stefan Metzmacher1-0/+1
there're some cleanups needed and we need to verify the PAC correctly and create the auth_session_info correctly... metze (This used to be commit d8fe497097ee49611bb05c4a2fed36912d8e16b4)
2007-10-10r1757: much simpler (and smaller, faster etc) way of doing relative pointersAndrew Tridgell3-80/+106
in pidl. This mechanism should be much easier to extend to the "retrospective subcontexts" that jelmer needs. also produced more standards complient full-pointer offsets. This keeps ethereal happy with decoding our epmapper frames. (This used to be commit ecb7378bbcd86727aedfa04a9e302e06b0a2ccd9)
2007-10-10r1736: - Pidl updates:Jelmer Vernooij1-0/+48
- Support for "object oriented" interfaces in pidl - Support for inherited interfaces in pidl - Simplification of the support for properties on an interface - Start on dcom rpc torture tests (This used to be commit 45c3d0036b8510102816f9cdff9210098259cc5f)
2007-10-10r1671: make [relative] pointers in idl much more generic, treating them justAndrew Tridgell1-3/+1
like normal pointers in most cases. This means we can now support relative pointers to unions, builtin types etc, whereas we could only previously support relative pointers to structures. metze needs this for the PAC decoding. (This used to be commit 0d063725e12f51375b7d0be55a19072a9a54e7e6)
2007-10-10r1644: changed the way [relative] pointers work in pidl, making them muchAndrew Tridgell1-0/+12
simpler. This doesn't appear to hurt any of the existing uses of [relative], but fixes its use for svcctl that jelmer is working on. (This used to be commit 573f56a44785526d15c0179c5bbdab4c8b9461f1)