Age | Commit message (Collapse) | Author | Files | Lines |
|
should
now able to use constructions like these:
[size_is(20)] int *x; -> Pointer to array of 20 ints
[size_is(20)] int x[]; -> Array of 20 ints
[size_is(20)] int *x[]; -> Array of 20 pointers to ints
[size_is(20,)] int *x[] -> Array of 20 pointers to ints
[size_is(,20)] int *x[]; -> Pointer to array of 20 ints
[size_is(,20)] int **x; -> Pointer to pointer to array of 20 ints
[size_is(20)] int x[][30]; -> 20 blocks of 30 ints
(This used to be commit ecf583da71c2f80be124c17fccdcb284b47e0695)
|
|
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
|
|
comparitive benchmarks
(This used to be commit d4e702da77be0e96198fc1585fa7858717d236a6)
|
|
array can now only be :
type *name[];
rather then :
type *name;
which was supported in the past. Warnings will be given when the first
syntax is used. Reasons for this change in behaviour include improved
readability and the fact that the second format makes dealing with multiple
levels of pointers harder.
(This used to be commit a416de5825c540fd3741731c4be05e9a659a6fdb)
|
|
metze
(This used to be commit 2a859fbc90a6b043bac318196e42c2949958d57f)
|
|
metze
(This used to be commit 7886000e031622795fecb6ec37990c133b1e66f7)
|
|
- add torture test for NetShareCheck()
metze
(This used to be commit 96000a2261ed56fda613a45e3aa460eb3c87082a)
|
|
- implement srvsvc_NetGetShareInfo()
- add more error checks
- bring the rest of the code in the same layout
metze
(This used to be commit 0dd14d9fc611a33dad4e559321d6c50d82efb5d1)
|
|
W_ERROR_HAVE_NO_MEMORY() macro
- add parameters for
server_info:platform_id = 500 /* this is PLATFORM_ID_NT */
server_info:version_major = 5
server_info:version_minor = 2
- implmented srvsvc_NetSrvGetInfo level 101
- make dcesrv_common_get_server_name() match w2k3
metze
(This used to be commit 16f43207704397c6e3c0132e9f17c8a1a846ddca)
|
|
metze
(This used to be commit 0c6d4246a45f649e7373606f12db74c2acd0f538)
|
|
- move dom_sid, security_descriptor, security_* funtions to one place
and rename some of them
metze
(This used to be commit b620bdd672cfdf0e009492e648b0709e6b6d8596)
|
|
the build on systems like solaris with the SunPRO compiler
(This used to be commit fe913ad11bf1c5e9fe04ed769a93b0ea16aa0a34)
|
|
- IDL fixes + adding comments
- Start working on dcom infrastructure
(This used to be commit ef0fc269f06c82594c34ad8673c76c5ea099250e)
|
|
metze
(This used to be commit 7d5ca8cc7cdeef0fc9307f8f98366958aa4ce3c2)
|
|
metze
(This used to be commit 3f2b77d7ec024f54dc478522d85278ced8fce617)
|
|
but is not the same as the default case
metze
(This used to be commit 5fe88379ad2de0a346bb7155e74eb00cfa3ef44c)
|
|
metze
(This used to be commit f5240737629ccd57693f8fb162ba7baca53a4672)
|
|
(This used to be commit 93977055939c5282dbf218f3a6739fa17ebfc641)
|
|
servers. Previously the server pipe code needed to return the RPC
level status (nearly always "OK") and separately set the function call
return using r->out.result. All the programmers writing servers
(metze, jelmer and me) were often getting this wrong, by doing things
like "return NT_STATUS_NO_MEMORY" which was really quite meaningless
as there is no code like that at the dcerpc level.
I have now modified pidl to generate the necessary boilerplate so that
just returning the status you want from the function will work. So for
a NTSTATUS function you return NT_STATUS_XXX and from a WERROR
function you return WERR_XXX. If you really want to generate a DCERPC
level fault rather than just a return value in your function then you
should use the DCESRV_FAULT() macro which will correctly generate a
fault for you.
As a side effect, this also adds automatic type checking of all of our
server side rpc functions, which was impossible with the old API. When
I changed the API I found and fixed quite a few functions with the
wrong type information, so this is definately useful.
I have also changed the server side template generation to generate a
DCERPC "operation range error" by default when you have not yet filled
in a server side function. This allows us to correctly implement
functions in any order in our rpc pipe servers and give the client the
right information about the fault.
(This used to be commit a4df5c7cf88891a78d82c8d6d7f058d8485e73f0)
|
|
I'd like to see more protocol defininitions in the IDL files and less
in smb.h where possible.
(This used to be commit 854b875bbe447955fb0c3876f046931d0bfde06c)
|
|
(This used to be commit 59557a557df6e61af4f01534489691416398fb26)
|
|
strangely, the output doesn't seem to contain an info level. Some
programmer stuffed up the IDL :)
(This used to be commit a39ee5d00341e1dbde0b38474ba4d5e980e74538)
|
|
for the server rpc boilerplate to correctly generate for multiple
interfaces on an endpoint
(This used to be commit 56143689ecf623e8a6ef5c453e6ad1ca9404411c)
|
|
interface. We now support an arbitrary set of flags to each parser,
and these can be used to control the string types. I have provided
some common IDL string types in librpc/idl/idl_types.h which needs to
be included in every IDL file.
* added IDL for the endpoint mapper. Added a test suite that enumerates
all endpoints on the server.
(This used to be commit d2665f36a75b482ff82733f72ffac938c2acf87a)
|
|
(This used to be commit ab4056e25ccfde5136ff3a1cd5d1efa78f1eee1b)
|
|
(This used to be commit 9810e6f180564247dee584d197180d394b208c24)
|
|
* use empty defaults instead of a dummy empty structure
(This used to be commit 555a340d3c0697b147799bc0a6615e01e196daf6)
|
|
alignment correctly for unions that have non-uint16 discriminants
fixed the union handling in srvsvc.idl. (metze, please take a look at
the changes, your IDL did match what was one the wire in most cases,
but isn't the way IDL is usually coded)
(This used to be commit 7b5d0287298e8505e0ec7b22d75d9f9a8a610031)
|
|
entriesreturned does not appear as a top-level IDL item. It appears in the
structure that is returned.
I have traces of TransportEnum that Ethereal properly dissects ...
(This used to be commit e3f046037844e3017653f56d6c262951db1f1d4f)
|
|
I am also concerned about the difference between NetShareEnum and
NetShareEnumAll. I would be interested to see a trace of NetShareEnumAll.
I also think we should stick to the names used in MSDN where possible, as
that makes it easier for people who are familiar with MSDN to help us get
this right.
(This used to be commit 580939e62e80a06b9a8ad974f6798c49dab4f78c)
|
|
(This used to be commit 54d3cb22dc0ddc46eb114aa104e0660b3a437cb2)
|