Author: metze Date: 2005-08-23 19:31:26 +0000 (Tue, 23 Aug 2005) New Revision: 9538
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9538 Log: [EMAIL PROTECTED] (orig r9519): jelmer | 2005-08-23 15:19:33 +0200 Use the value() value of an element when that element is used in limited expressions (size_is,length_is,subcontext_size,etc) [EMAIL PROTECTED] (orig r9526): metze | 2005-08-23 18:13:39 +0200 provide DCERPC auth type 16 metze [EMAIL PROTECTED] (orig r9527): metze | 2005-08-23 18:19:04 +0200 add the magic Bind GUID's, that are needed to fetch the whole tree with DsGeNCChanges(), this is possible as administrator without having a DC account joined to the domain metze Modified: branches/SOC/SAMBA_4_0/ branches/SOC/SAMBA_4_0/source/auth/gensec/gensec_gssapi.c branches/SOC/SAMBA_4_0/source/librpc/idl/drsuapi.idl branches/SOC/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm Changeset: Property changes on: branches/SOC/SAMBA_4_0 ___________________________________________________________________ Name: svk:merge - 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9518 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5596 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5594 + 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9527 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5596 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5594 Modified: branches/SOC/SAMBA_4_0/source/auth/gensec/gensec_gssapi.c =================================================================== --- branches/SOC/SAMBA_4_0/source/auth/gensec/gensec_gssapi.c 2005-08-23 19:06:07 UTC (rev 9537) +++ branches/SOC/SAMBA_4_0/source/auth/gensec/gensec_gssapi.c 2005-08-23 19:31:26 UTC (rev 9538) @@ -843,6 +843,7 @@ /* As a server, this could in theory accept any GSSAPI mech */ static const struct gensec_security_ops gensec_gssapi_krb5_security_ops = { .name = "gssapi_krb5", + .auth_type = DCERPC_AUTH_TYPE_KRB5, .oid = gensec_krb5_oids, .client_start = gensec_gssapi_client_start, .server_start = gensec_gssapi_server_start, Modified: branches/SOC/SAMBA_4_0/source/librpc/idl/drsuapi.idl =================================================================== --- branches/SOC/SAMBA_4_0/source/librpc/idl/drsuapi.idl 2005-08-23 19:06:07 UTC (rev 9537) +++ branches/SOC/SAMBA_4_0/source/librpc/idl/drsuapi.idl 2005-08-23 19:31:26 UTC (rev 9538) @@ -100,6 +100,11 @@ * maybe the bind_guid could also be the invocation_id see drsuapi_DsReplicaConnection04 */ const string DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d"; + /* + * this magic guid are needed to fetch the whole tree with drsuapi_DsGetNCChanges() + */ + const string DRSUAPI_DS_BIND_GUID_W2K = "6abec3d1-3054-41c8-a362-5a0c5b7d5d71"; + const string DRSUAPI_DS_BIND_GUID_W2K3 = "6afab99c-6e26-464a-975f-f58f105218bc"; WERROR drsuapi_DsBind( [in] GUID *bind_guid, @@ -444,7 +449,7 @@ typedef struct { [range(0,10485760),value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(object, ndr->flags))] uint32 __ndr_size; - [subcontext(4)] drsuapi_DsReplicaObjectIdentifier3 *object; + [subcontext(4),subcontext_size(__ndr_size)] drsuapi_DsReplicaObjectIdentifier3 *object; } drsuapi_DsAttributeValueDNString; typedef struct { Modified: branches/SOC/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm =================================================================== --- branches/SOC/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm 2005-08-23 19:06:07 UTC (rev 9537) +++ branches/SOC/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm 2005-08-23 19:31:26 UTC (rev 9538) @@ -235,6 +235,20 @@ return \%env; } +sub EnvSubstituteValue($$) +{ + my ($env,$s) = @_; + + # Substitute the value() values in the env + foreach my $e (@{$s->{ELEMENTS}}) { + next unless (my $v = has_property($e, "value")); + + $env->{$e->{NAME}} = ParseExpr($v, $env); + } + + return $env; +} + sub GenerateFunctionInEnv($) { my $fn = shift; @@ -1095,6 +1109,8 @@ my $env = GenerateStructEnv($struct); + EnvSubstituteValue($env, $struct); + # save the old relative_base_offset pidl "uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);" if defined($struct->{PROPERTIES}{relative_base}); @@ -1326,6 +1342,8 @@ my $env = GenerateStructEnv($struct); + EnvSubstituteValue($env, $struct); + foreach my $e (@{$struct->{ELEMENTS}}) { DeclareArrayVariables($e); } @@ -1870,6 +1888,7 @@ pidl "ndr->depth++;"; my $env = GenerateFunctionInEnv($fn); + EnvSubstituteValue($env, $fn); foreach my $e (@{$fn->{ELEMENTS}}) { if (grep(/in/,@{$e->{DIRECTION}})) { @@ -1925,6 +1944,8 @@ my $env = GenerateFunctionInEnv($fn); + EnvSubstituteValue($env, $fn); + foreach my $e (@{$fn->{ELEMENTS}}) { if (grep(/in/,@{$e->{DIRECTION}})) { ParseElementPush($e, "ndr", "r->in.", $env, 1, 1);