svn commit: samba-web r1350 - in trunk/DTD: .

2009-12-23 Thread gd
Author: gd
Date: 2009-12-23 02:23:06 -0700 (Wed, 23 Dec 2009)
New Revision: 1350

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=samba-webrev=1350

Log:
DTD: bring public copy of samba.entities uptodate with the copy in docs-xml.

Guenther

Modified:
   trunk/DTD/samba.entities


Changeset:
Modified: trunk/DTD/samba.entities
===
--- trunk/DTD/samba.entities2009-12-15 23:28:55 UTC (rev 1349)
+++ trunk/DTD/samba.entities2009-12-23 09:23:06 UTC (rev 1350)
@@ -50,8 +50,8 @@
 !ENTITY person.gd '
 firstnameGuenther/firstnamesurnameDeschner/surname
 affiliation
-   orgnameSuSE/orgname
-   addressemailg...@suse.de/email/address
+   orgnameSamba Team/orgname
+   addressemailg...@samba.org/email/address
 /affiliation'
 
 !ENTITY author.gd 'authorperson.gd;/author'
@@ -180,7 +180,7 @@
 data, most of which is extremely cryptic./para
 
 paraNote that specifying this parameter here will 
-override the smbconfoption name=log level / parameter
+override the smbconfoptionnamelog level/name/smbconfoption parameter
 in the smb.conf; file./para
 /listitem
 /varlistentry'
@@ -207,14 +207,14 @@
 data, most of which is extremely cryptic./para
 
 paraNote that specifying this parameter here will 
-override the smbconfoption name=log level / parameter
+override the smbconfoptionnamelog level/name/smbconfoption parameter
 in the smb.conf; file./para
 /listitem
 /varlistentry'
 
 !ENTITY stdarg.configfile '
 varlistentry
-term-s lt;configuration filegt;/term
+term-s|--configfile lt;configuration filegt;/term
 listitemparaThe file specified contains the 
 configuration details required by the server.  The 
 information in this file includes server-specific
@@ -227,7 +227,7 @@
 
 !ENTITY stdarg.version '
 varlistentry
-term-V/term
+term-V|--version/term
 listitemparaPrints the program version number.
 /para/listitem
 /varlistentry'
@@ -249,7 +249,7 @@
 
 !ENTITY stdarg.resolve.order '
 varlistentry
-term-R lt;name resolve ordergt;/term 
+term-R|--name-resolve lt;name resolve ordergt;/term
 listitemparaThis option is used to determine what naming 
 services and in what order to resolve 
 host names to IP addresses. The option takes a space-separated 
@@ -297,20 +297,20 @@
 
 paraIf this parameter is not set then the name resolve order 
 defined in the smb.conf; file parameter  
-(smbconfoption name=name resolve order /) will be used.
+(smbconfoptionnamename resolve order/name/smbconfoption) will be used.
 /para
 
 paraThe default order is lmhosts, host, wins, bcast. Without 
-this parameter or any entry in the smbconfoption name=name resolve order / 
parameter of the smb.conf; file, the name 
+this parameter or any entry in the smbconfoptionnamename resolve 
order/name/smbconfoption parameter of the smb.conf; file, the name 
 resolution methods will be attempted in this order. /para/listitem
 /varlistentry'
 
 !ENTITY stdarg.netbios.name '
 varlistentry
-term-n lt;primary NetBIOS namegt;/term
+term-n|--netbiosname lt;primary NetBIOS namegt;/term
 listitemparaThis option allows you to override
 the NetBIOS name that Samba uses for itself. This is identical
-to setting the smbconfoption name=netbios name/ parameter in the 
smb.conf; file. 
+to setting the smbconfoptionnamenetbios name/name/smbconfoption 
parameter in the smb.conf; file. 
 However, a command
 line setting will take precedence over settings in
 smb.conf;./para/listitem
@@ -318,7 +318,7 @@
 
 !ENTITY stdarg.scope '
 varlistentry
-term-i lt;scopegt;/term
+term-i|--scope lt;scopegt;/term
 listitemparaThis specifies a NetBIOS scope that
 commandnmblookup/command will use to communicate with when
 generating NetBIOS names. For details on the use of NetBIOS
@@ -340,7 +340,7 @@
 
 !ENTITY stdarg.socket.options '
 varlistentry
-term-O socket options/term
+term-O|--socket-options socket options/term
 listitemparaTCP socket options to set on the client
 socket. See the socket options parameter in
 the smb.conf; manual page for the list of valid
@@ -357,7 +357,7 @@
 
 !ENTITY stdarg.nopass '
 varlistentry
-term-N/term
+term-N|--no-pass/term
 listitemparaIf specified, this parameter suppresses the normal
 password prompt from the client to the user. This is useful when
 accessing a service that does not require a password. /para
@@ -420,7 +420,7 @@
 
 !ENTITY stdarg.kerberos '
 varlistentry
-term-k/term
+term-k|--kerberos/term
 listitempara
 Try to authenticate with kerberos. Only useful in
 an Active Directory environment.



svn commit: samba-web r1288 - in trunk/news: .

2009-04-06 Thread gd
Author: gd
Date: 2009-04-06 12:03:02 + (Mon, 06 Apr 2009)
New Revision: 1288

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=samba-webrev=1288

Log:
Adding myself to news/samba_and_guis.html.

Guenther

Modified:
   trunk/news/samba_and_guis.html


Changeset:
Modified: trunk/news/samba_and_guis.html
===
--- trunk/news/samba_and_guis.html  2009-04-06 11:52:34 UTC (rev 1287)
+++ trunk/news/samba_and_guis.html  2009-04-06 12:03:02 UTC (rev 1288)
@@ -63,7 +63,7 @@
everyone and is developed as a community of equals./p
 
 pVolker Lendecke, Jeremy Allison, Jim McDonough, Lars Muuml;ller,
-   and Michael Adambr
+   Michael Adam and Guuml;nther Deschnerbr
 Samba Team/p
 
 !--#include virtual=/samba/footer.html --



svn commit: samba-web r1202 - in trunk: .

2008-07-01 Thread gd
Author: gd
Date: 2008-07-01 17:56:56 + (Tue, 01 Jul 2008)
New Revision: 1202

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=samba-webrev=1202

Log:
Fix version mismatch.

Guenther

Modified:
   trunk/index.html


Changeset:
Modified: trunk/index.html
===
--- trunk/index.html2008-07-01 15:53:22 UTC (rev 1201)
+++ trunk/index.html2008-07-01 17:56:56 UTC (rev 1202)
@@ -31,7 +31,7 @@
 pThe uncompressed tarballs and patch files have been signed
 using GnuPG (ID 6568B7EA).  The source code can be 
 a href=/samba/ftp/stable/samba-3.2.0.tar.gzdownloaded
-now/a.  See a href=/samba/history/samba-3.0.2.htmlthe
+now/a.  See a href=/samba/history/samba-3.2.0.htmlthe
 release notes for more info/a./p
 
 h45 June 2008/h4



svn commit: samba r26698 - in branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3: .

2008-01-09 Thread gd
Author: gd
Date: 2008-01-09 10:56:07 + (Wed, 09 Jan 2008)
New Revision: 26698

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26698

Log:
Prettify samba3 client code a little more.

Guenther

Modified:
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm


Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm
===
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm   
2008-01-09 05:36:02 UTC (rev 26697)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm   
2008-01-09 10:56:07 UTC (rev 26698)
@@ -2,6 +2,7 @@
 # Samba3 client generator for IDL structures
 # on top of Samba4 style NDR functions
 # Copyright [EMAIL PROTECTED] 2005-2006
+# Copyright [EMAIL PROTECTED] 2008
 # released under the GNU GPL
 
 package Parse::Pidl::Samba3::ClientNDR;
@@ -27,6 +28,15 @@
 sub pidl_hdr($$) { my ($self, $txt) = @_; $self-{res_hdr} .= $txt\n; } 
 sub fn_declare($$) { my ($self,$n) = @_; $self-pidl($n); 
$self-pidl_hdr($n;); }
 
+sub genpad($)
+{
+   my ($s) = @_;
+   my $nt = int((length($s)+1)/8);
+   my $lt = ($nt*8)-1;
+   my $ns = (length($s)-$lt);
+   return \tx($nt). x($ns);
+}
+
 sub new($)
 {
my ($class) = shift;
@@ -38,20 +48,23 @@
 {
my ($self, $if, $fn) = @_;
 
-   my $inargs = ;
-   my $defargs = ;
+   my $fn_args = ;
my $uif = uc($if);
my $ufn = NDR_.uc($fn-{NAME});
+   my $fn_str = NTSTATUS rpccli_$fn-{NAME};
+   my $pad = genpad($fn_str);
 
+   $fn_args .= struct rpc_pipe_client *cli,\n . $pad . TALLOC_CTX 
*mem_ctx;
+
foreach (@{$fn-{ELEMENTS}}) {
-   $defargs .= ,  . DeclLong($_);
+   $fn_args .= ,\n . $pad . DeclLong($_);
}
 
if (defined($fn-{RETURN_TYPE})  ($fn-{RETURN_TYPE} eq WERROR)) {
-   $defargs .= , WERROR *werror;
+   $fn_args .= ,\n . $pad . WERROR *werror;
}
 
-   $self-fn_declare(NTSTATUS rpccli_$fn-{NAME}(struct rpc_pipe_client 
*cli, TALLOC_CTX *mem_ctx$defargs));
+   $self-fn_declare($fn_str($fn_args));
$self-pidl({);
$self-indent;
$self-pidl(struct $fn-{NAME} r;);
@@ -62,7 +75,7 @@
foreach (@{$fn-{ELEMENTS}}) {
if (grep(/in/, @{$_-{DIRECTION}})) {
$self-pidl(r.in.$_-{NAME} = $_-{NAME};);
-   } 
+   }
}
 
$self-pidl();
@@ -72,7 +85,12 @@
$self-deindent;
$self-pidl(});
$self-pidl();
-   $self-pidl(status = cli_do_rpc_ndr(cli, mem_ctx, PI_$uif, 
ndr_table_$if, $ufn, r););
+   $self-pidl(status = cli_do_rpc_ndr(cli,);
+   $self-pidl(\t\t\tmem_ctx,);
+   $self-pidl(\t\t\tPI_$uif,);
+   $self-pidl(\t\t\tndr_table_$if,);
+   $self-pidl(\t\t\t$ufn,);
+   $self-pidl(\t\t\tr););
$self-pidl();
 
$self-pidl(if (!NT_STATUS_IS_OK(status)) {);



svn commit: samba r26699 - in branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3: .

2008-01-09 Thread gd
Author: gd
Date: 2008-01-09 11:28:53 + (Wed, 09 Jan 2008)
New Revision: 26699

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26699

Log:
Some minor cosmetics for pidl samba3 server code.

Guenther

Modified:
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm


Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm
===
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm   
2008-01-09 10:56:07 UTC (rev 26698)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm   
2008-01-09 11:28:53 UTC (rev 26699)
@@ -22,11 +22,11 @@
 my $tabs = ;
 sub indent() { $tabs.=\t; }
 sub deindent() { $tabs = substr($tabs, 1); }
-sub pidl($) { $res .= $tabs.(shift).\n; }
+sub pidl($) { my ($txt) = @_; $res .= $txt?$tabs.(shift).\n:\n; }
 sub pidl_hdr($) { $res_hdr .= (shift).\n; }
 sub fn_declare($) { my ($n) = @_; pidl $n; pidl_hdr $n;; }
 
-sub DeclLevel($$) 
+sub DeclLevel($$)
 {
my ($e, $l) = @_;
my $res = ;
@@ -73,7 +73,7 @@
 
pidl if ($name == NULL) {;
pidl \ttalloc_free($mem_ctx);;
-   pidl \treturn False;;
+   pidl \treturn false;;
pidl };
pidl ;
 }
@@ -98,29 +98,30 @@
pidl ;
pidl r = talloc(NULL, struct $fn-{NAME});;
pidl if (r == NULL) {;
-   pidl \treturn False;;
+   pidl \treturn false;;
pidl };
pidl ;
pidl if (!prs_data_blob(p-in_data.data, blob, r)) {;
pidl \ttalloc_free(r);;
-   pidl \treturn False;;
+   pidl \treturn false;;
pidl };
pidl ;
pidl pull = ndr_pull_init_blob(blob, r);;
pidl if (pull == NULL) {;
pidl \ttalloc_free(r);;
-   pidl \treturn False;;
+   pidl \treturn false;;
pidl };
pidl ;
pidl pull-flags |= LIBNDR_FLAG_REF_ALLOC;;
pidl ndr_err = call-ndr_pull(pull, NDR_IN, r);;
pidl if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {;
pidl \ttalloc_free(r);;
-   pidl \treturn False;;
+   pidl \treturn false;;
pidl };
pidl ;
-   pidl if (DEBUGLEVEL = 10);
+   pidl if (DEBUGLEVEL = 10) {;
pidl \tNDR_PRINT_IN_DEBUG($fn-{NAME}, r);;
+   pidl };
pidl ;
 
my $env = GenerateFunctionOutEnv($fn);
@@ -137,7 +138,7 @@
my @dir = @{$_-{DIRECTION}};
if (grep(/in/, @dir) and grep(/out/, @dir)) {
pidl r-out.$_-{NAME} = r-in.$_-{NAME};;
-   } elsif (grep(/out/, @dir) and not 
+   } elsif (grep(/out/, @dir) and not
 has_property($_, represent_as)) {
AllocOutVar($_, r, r-out.$_-{NAME}, $env);
}
@@ -158,34 +159,35 @@
pidl ;
pidl if (p-rng_fault_state) {;
pidl \ttalloc_free(r);;
-   pidl \t/* Return True here, srv_pipe_hnd.c will take care */;
-   pidl \treturn True;;
+   pidl \t/* Return true here, srv_pipe_hnd.c will take care */;
+   pidl \treturn true;;
pidl };
pidl ;
-   pidl if (DEBUGLEVEL = 10);
+   pidl if (DEBUGLEVEL = 10) {;
pidl \tNDR_PRINT_OUT_DEBUG($fn-{NAME}, r);;
+   pidl };
pidl ;
pidl push = ndr_push_init_ctx(r);;
pidl if (push == NULL) {;
pidl \ttalloc_free(r);;
-   pidl \treturn False;;
+   pidl \treturn false;;
pidl };
pidl ;
pidl ndr_err = call-ndr_push(push, NDR_OUT, r);;
pidl if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {;
pidl \ttalloc_free(r);;
-   pidl \treturn False;;
+   pidl \treturn false;;
pidl };
pidl ;
pidl blob = ndr_push_blob(push);;
-   pidl if (!prs_copy_data_in(p-out_data.rdata, (const char 
*)blob.data, (uint32)blob.length)) {;
+   pidl if (!prs_copy_data_in(p-out_data.rdata, (const char 
*)blob.data, (uint32_t)blob.length)) {;
pidl \ttalloc_free(r);;
-   pidl \treturn False;;
+   pidl \treturn false;;
pidl };
pidl ;
pidl talloc_free(r);;
pidl ;
-   pidl return True;;
+   pidl return true;;
deindent;
pidl };
pidl ;
@@ -251,7 +253,7 @@
pidl #include \$header\;
pidl_hdr #include \$ndr_header\;
pidl ;
-   
+
foreach (@$ndr) {
ParseInterface($_) if ($_-{TYPE} eq INTERFACE);
}



svn commit: samba r26695 - in branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3: .

2008-01-08 Thread gd
Author: gd
Date: 2008-01-08 17:02:53 + (Tue, 08 Jan 2008)
New Revision: 26695

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26695

Log:
Cosmetic fix for pidl generated samba3 client code.

Guenther

Modified:
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm


Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm
===
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm   
2008-01-08 14:27:40 UTC (rev 26694)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm   
2008-01-08 17:02:53 UTC (rev 26695)
@@ -23,7 +23,7 @@
 
 sub indent($) { my ($self) = @_; $self-{tabs}.=\t; }
 sub deindent($) { my ($self) = @_; $self-{tabs} = substr($self-{tabs}, 1); }
-sub pidl($$) { my ($self,$txt) = @_; $self-{res} .= $self-{tabs}$txt\n; }
+sub pidl($$) { my ($self,$txt) = @_; $self-{res} .= $txt ? 
$self-{tabs}$txt\n : \n; }
 sub pidl_hdr($$) { my ($self, $txt) = @_; $self-{res_hdr} .= $txt\n; } 
 sub fn_declare($$) { my ($self,$n) = @_; $self-pidl($n); 
$self-pidl_hdr($n;); }
 



svn commit: samba r26696 - in branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3: .

2008-01-08 Thread gd
Author: gd
Date: 2008-01-08 22:56:44 + (Tue, 08 Jan 2008)
New Revision: 26696

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26696

Log:
Some more minor pidl samba3 client cosmetics.

Guenther

Modified:
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm


Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm
===
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm   
2008-01-08 17:02:53 UTC (rev 26695)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm   
2008-01-08 22:56:44 UTC (rev 26696)
@@ -66,8 +66,11 @@
}
 
$self-pidl();
-   $self-pidl(if (DEBUGLEVEL = 10));
-   $self-pidl(\tNDR_PRINT_IN_DEBUG($fn-{NAME}, r););
+   $self-pidl(if (DEBUGLEVEL = 10) {);
+   $self-indent;
+   $self-pidl(NDR_PRINT_IN_DEBUG($fn-{NAME}, r););
+   $self-deindent;
+   $self-pidl(});
$self-pidl();
$self-pidl(status = cli_do_rpc_ndr(cli, mem_ctx, PI_$uif, 
ndr_table_$if, $ufn, r););
$self-pidl();
@@ -79,11 +82,16 @@
$self-pidl(});
 
$self-pidl();
-   $self-pidl(if (DEBUGLEVEL = 10));
-   $self-pidl(\tNDR_PRINT_OUT_DEBUG($fn-{NAME}, r););
+   $self-pidl(if (DEBUGLEVEL = 10) {);
+   $self-indent;
+   $self-pidl(NDR_PRINT_OUT_DEBUG($fn-{NAME}, r););
+   $self-deindent;
+   $self-pidl(});
$self-pidl();
$self-pidl(if (NT_STATUS_IS_ERR(status)) {);
-   $self-pidl(\treturn status;);
+   $self-indent;
+   $self-pidl(return status;);
+   $self-deindent;
$self-pidl(});
$self-pidl();
$self-pidl(/* Return variables */);



svn commit: samba r26558 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/netlogon

2007-12-21 Thread gd
Author: gd
Date: 2007-12-21 23:52:14 + (Fri, 21 Dec 2007)
New Revision: 26558

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26558

Log:
Add IDL for netr_GetForestTrustInformation().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/netlogon.idl
   branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/netlogon.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/netlogon.idl   2007-12-21 22:55:02 UTC 
(rev 26557)
+++ branches/SAMBA_4_0/source/librpc/idl/netlogon.idl   2007-12-21 23:52:14 UTC 
(rev 26558)
@@ -1294,7 +1294,14 @@
 
//
/* Function 0x2c */
-   WERROR netr_NETRGETFORESTTRUSTINFORMATION();
+   WERROR netr_GetForestTrustInformation(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in,ref] [string,charset(UTF16)] uint16 *trusted_domain_name,
+   [in,ref] netr_Authenticator *credential,
+   [out,ref] netr_Authenticator *return_authenticator,
+   [in] uint32 flags,
+   [out,ref] lsa_ForestTrustInformation **forest_trust_info
+   );
 
//
/* Function 0x2d */

Modified: branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c
===
--- branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c 
2007-12-21 22:55:02 UTC (rev 26557)
+++ branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c 
2007-12-21 23:52:14 UTC (rev 26558)
@@ -1237,11 +1237,11 @@
 }
 
 
-/* 
-  netr_NETRGETFORESTTRUSTINFORMATION 
+/*
+  netr_GetForestTrustInformation
 */
-static WERROR dcesrv_netr_NETRGETFORESTTRUSTINFORMATION(struct 
dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-  struct netr_NETRGETFORESTTRUSTINFORMATION *r)
+static WERROR dcesrv_netr_GetForestTrustInformation(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct netr_GetForestTrustInformation *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }



svn commit: samba r26393 - in branches/SAMBA_4_0/source/auth: .

2007-12-11 Thread gd
Author: gd
Date: 2007-12-11 10:18:10 + (Tue, 11 Dec 2007)
New Revision: 26393

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26393

Log:
Fix inline comment.

Guenther

Modified:
   branches/SAMBA_4_0/source/auth/auth_sam_reply.c


Changeset:
Modified: branches/SAMBA_4_0/source/auth/auth_sam_reply.c
===
--- branches/SAMBA_4_0/source/auth/auth_sam_reply.c 2007-12-11 09:14:39 UTC 
(rev 26392)
+++ branches/SAMBA_4_0/source/auth/auth_sam_reply.c 2007-12-11 10:18:10 UTC 
(rev 26393)
@@ -81,9 +81,7 @@
}
}
 
-   sam-user_flags = 0; /* TODO: w2k3 uses 0x120.  We know 0x20
- * as extra sids (PAC doc) but what is
- * 0x100? */
+   sam-user_flags = 0; /* w2k3 uses NETLOGON_EXTRA_SIDS | 
NETLOGON_NTLMV2_ENABLED */
sam-acct_flags = server_info-acct_flags;
sam-logon_server.string = server_info-logon_server;
sam-domain.string = server_info-domain_name;



svn commit: samba r26332 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-12-07 Thread gd
Author: gd
Date: 2007-12-07 11:45:17 + (Fri, 07 Dec 2007)
New Revision: 26332

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26332

Log:
Add samr_ValidationStatus error mapping to samr_ValidatePassword().
Torture test to follow.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/samr.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/samr.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/samr.idl   2007-12-07 11:36:32 UTC 
(rev 26331)
+++ branches/SAMBA_4_0/source/librpc/idl/samr.idl   2007-12-07 11:45:17 UTC 
(rev 26332)
@@ -1324,6 +1324,26 @@
NetValidatePasswordReset = 3
} samr_ValidatePasswordLevel;
 
+   /* NetApi maps samr_ValidationStatus errors to WERRORs. Haven't
+* identified the mapping of
+* - NERR_PasswordFilterError
+* - NERR_PasswordExpired and
+* - NERR_PasswordCantChange
+* yet - Guenther
+*/
+
+   typedef enum {
+   SAMR_VALIDATION_STATUS_SUCCESS = 0,
+   SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE = 1,
+   SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT = 2,
+   SAMR_VALIDATION_STATUS_BAD_PASSWORD = 4,
+   SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT = 5,
+   SAMR_VALIDATION_STATUS_PWD_TOO_SHORT = 6,
+   SAMR_VALIDATION_STATUS_PWD_TOO_LONG = 7,
+   SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH = 8,
+   SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT = 9
+   } samr_ValidationStatus;
+
typedef struct {
uint32 length;
[size_is(length)] uint8 *data;
@@ -1341,7 +1361,7 @@
 
typedef struct {
samr_ValidatePasswordInfo info;
-   uint16 status;
+   samr_ValidationStatus status;
} samr_ValidatePasswordRepCtr;
 
typedef [switch_type(uint16)] union {



svn commit: samba r26331 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-12-07 Thread gd
Author: gd
Date: 2007-12-07 11:36:32 + (Fri, 07 Dec 2007)
New Revision: 26331

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26331

Log:
Add IDL for samr_ValidatePassword(). A very interesting call.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/samr.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/samr.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/samr.idl   2007-12-07 03:18:12 UTC 
(rev 26330)
+++ branches/SAMBA_4_0/source/librpc/idl/samr.idl   2007-12-07 11:36:32 UTC 
(rev 26331)
@@ -1308,9 +1308,79 @@
 
//
/* Function0x43 */
-   /*
- I haven't been able to work out the format of this one yet.
- Seems to start with a switch level for a union?
-   */
-   NTSTATUS samr_ValidatePassword();
+   //
+   typedef [bitmap32bit] bitmap {
+   SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET   = 0x0001,
+   SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME   = 0x0002,
+   SAMR_VALIDATE_FIELD_LOCKOUT_TIME= 0x0004,
+   SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT  = 0x0008,
+   SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH = 0x0010,
+   SAMR_VALIDATE_FIELD_PASSWORD_HISTORY= 0x0020
+   } samr_ValidateFieldsPresent;
+
+   typedef enum {
+   NetValidateAuthentication = 1,
+   NetValidatePasswordChange= 2,
+   NetValidatePasswordReset = 3
+   } samr_ValidatePasswordLevel;
+
+   typedef struct {
+   uint32 length;
+   [size_is(length)] uint8 *data;
+} samr_ValidationBlob;
+
+   typedef struct {
+   samr_ValidateFieldsPresent fields_present;
+   NTTIME_hyper last_password_change;
+   NTTIME_hyper bad_password_time;
+   NTTIME_hyper lockout_time;
+   uint32 bad_pwd_count;
+   uint32 pwd_history_len;
+   [size_is(pwd_history_len)] samr_ValidationBlob *pwd_history;
+   } samr_ValidatePasswordInfo;
+
+   typedef struct {
+   samr_ValidatePasswordInfo info;
+   uint16 status;
+   } samr_ValidatePasswordRepCtr;
+
+   typedef [switch_type(uint16)] union {
+   [case(1)] samr_ValidatePasswordRepCtr ctr1;
+   [case(2)] samr_ValidatePasswordRepCtr ctr2;
+   [case(3)] samr_ValidatePasswordRepCtr ctr3;
+   } samr_ValidatePasswordRep;
+
+   typedef struct {
+   samr_ValidatePasswordInfo info;
+   lsa_StringLarge password;
+   lsa_StringLarge account;
+   samr_ValidationBlob hash;
+   boolean8 pwd_must_change_at_next_logon;
+   boolean8 clear_lockout;
+   } samr_ValidatePasswordReq3;
+
+   typedef struct {
+   samr_ValidatePasswordInfo info;
+   lsa_StringLarge password;
+   lsa_StringLarge account;
+   samr_ValidationBlob hash;
+   boolean8 password_matched;
+   } samr_ValidatePasswordReq2;
+
+   typedef struct {
+   samr_ValidatePasswordInfo info;
+   boolean8 password_matched;
+   } samr_ValidatePasswordReq1;
+
+   typedef [switch_type(uint16)] union {
+   [case(1)] samr_ValidatePasswordReq1 req1;
+   [case(2)] samr_ValidatePasswordReq2 req2;
+   [case(3)] samr_ValidatePasswordReq3 req3;
+   } samr_ValidatePasswordReq;
+
+   NTSTATUS samr_ValidatePassword(
+   [in] samr_ValidatePasswordLevel level,
+   [in,switch_is(level)] samr_ValidatePasswordReq req,
+   [out,switch_is(level)] samr_ValidatePasswordRep *rep
+   );
 }



svn commit: samba r26285 - in branches/SAMBA_4_0/source: . librpc/idl rpc_server/netlogon torture/rpc

2007-12-04 Thread gd
Author: gd
Date: 2007-12-04 09:41:28 + (Tue, 04 Dec 2007)
New Revision: 26285

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26285

Log:
Add IDL and torture test for netr_ServerPasswordGet().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/netlogon.idl
   branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c
   branches/SAMBA_4_0/source/samba4-knownfail
   branches/SAMBA_4_0/source/torture/rpc/netlogon.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/netlogon.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/netlogon.idl   2007-12-04 05:32:23 UTC 
(rev 26284)
+++ branches/SAMBA_4_0/source/librpc/idl/netlogon.idl   2007-12-04 09:41:28 UTC 
(rev 26285)
@@ -1112,7 +1112,15 @@
 
//
/* Function 0x1f */
-   WERROR netr_NETRSERVERPASSWORDGET();
+   WERROR netr_ServerPasswordGet(
+   [in]  [string,charset(UTF16)] uint16 *server_name,
+   [in]  [string,charset(UTF16)] uint16 account_name[],
+   [in]  netr_SchannelType secure_channel_type,
+   [in]  [string,charset(UTF16)] uint16 computer_name[],
+   [in,ref] netr_Authenticator *credential,
+   [out,ref] netr_Authenticator *return_authenticator,
+   [out,ref] samr_Password *password
+   );
 
//
/* Function 0x20 */

Modified: branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c
===
--- branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c 
2007-12-04 05:32:23 UTC (rev 26284)
+++ branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c 
2007-12-04 09:41:28 UTC (rev 26285)
@@ -946,11 +946,11 @@
 
 
 
-/* 
-  netr_NETRSERVERPASSWORDGET 
+/*
+  netr_ServerPasswordGet
 */
-static WERROR dcesrv_netr_NETRSERVERPASSWORDGET(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct netr_NETRSERVERPASSWORDGET *r)
+static WERROR dcesrv_netr_ServerPasswordGet(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct netr_ServerPasswordGet *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/samba4-knownfail
===
--- branches/SAMBA_4_0/source/samba4-knownfail  2007-12-04 05:32:23 UTC (rev 
26284)
+++ branches/SAMBA_4_0/source/samba4-knownfail  2007-12-04 09:41:28 UTC (rev 
26285)
@@ -29,5 +29,6 @@
 RPC-NETLOGON.*/DsrGetDcSiteCoverageW
 RPC-NETLOGON.*/DsRAddressToSitenamesW
 RPC-NETLOGON.*/DsRAddressToSitenamesExW
+RPC-NETLOGON.*/GetPassword
 BASE-CHARSET.*/Testing partial surrogate
 .*NET-API-DELSHARE.*   # DelShare isn't implemented yet

Modified: branches/SAMBA_4_0/source/torture/rpc/netlogon.c
===
--- branches/SAMBA_4_0/source/torture/rpc/netlogon.c2007-12-04 05:32:23 UTC 
(rev 26284)
+++ branches/SAMBA_4_0/source/torture/rpc/netlogon.c2007-12-04 09:41:28 UTC 
(rev 26285)
@@ -438,6 +438,36 @@
return true;
 }
 
+static bool test_GetPassword(struct torture_context *tctx,
+struct dcerpc_pipe *p,
+struct cli_credentials *machine_credentials)
+{
+   struct netr_ServerPasswordGet r;
+   struct creds_CredentialState *creds;
+   struct netr_Authenticator credential;
+   NTSTATUS status;
+   struct netr_Authenticator return_authenticator;
+   struct samr_Password password;
+
+   if (!test_SetupCredentials(p, tctx, machine_credentials, creds)) {
+   return false;
+   }
+
+   creds_client_authenticator(creds, credential);
+
+   r.in.server_name = talloc_asprintf(tctx, %s, 
dcerpc_server_name(p));
+   r.in.account_name = talloc_asprintf(tctx, %s$, TEST_MACHINE_NAME);
+   r.in.secure_channel_type = SEC_CHAN_BDC;
+   r.in.computer_name = TEST_MACHINE_NAME;
+   r.in.credential = credential;
+   r.out.return_authenticator = return_authenticator;
+   r.out.password = password;
+
+   status = dcerpc_netr_ServerPasswordGet(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status, ServerPasswordGet);
+
+   return true;
+}
 /*
   try a netlogon SamLogon
 */



svn commit: samba r26256 - in branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3: .

2007-12-03 Thread gd
Author: gd
Date: 2007-12-03 16:49:45 + (Mon, 03 Dec 2007)
New Revision: 26256

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26256

Log:
When generating Samba3 pidl output for WERROR based functions, make sure the
client caller can retrieve the WERROR.

Jelmer, no idea how to add a test for that...

Guenther

Modified:
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm


Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm
===
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm   
2007-12-03 16:46:45 UTC (rev 26255)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm   
2007-12-03 16:49:45 UTC (rev 26256)
@@ -46,6 +46,11 @@
foreach (@{$fn-{ELEMENTS}}) {
$defargs .= ,  . DeclLong($_);
}
+
+   if ($fn-{RETURN_TYPE} eq WERROR) {
+   $defargs .= , WERROR *werror;
+   }
+
$self-fn_declare(NTSTATUS rpccli_$fn-{NAME}(struct rpc_pipe_client 
*cli, TALLOC_CTX *mem_ctx$defargs));
$self-pidl({);
$self-indent;
@@ -123,6 +128,12 @@
} elsif ($fn-{RETURN_TYPE} eq NTSTATUS) {
$self-pidl(return r.out.result;);
} elsif ($fn-{RETURN_TYPE} eq WERROR) {
+   $self-pidl(if (werror) {);
+   $self-indent;
+   $self-pidl(*werror = r.out.result;);
+   $self-deindent;
+   $self-pidl(});
+   $self-pidl();
$self-pidl(return werror_to_ntstatus(r.out.result););
} else {
warning($fn-{ORIGINAL}, Unable to convert $fn-{RETURN_TYPE} 
to NTSTATUS);



svn commit: samba r26257 - in branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3: .

2007-12-03 Thread gd
Author: gd
Date: 2007-12-03 17:00:10 + (Mon, 03 Dec 2007)
New Revision: 26257

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26257

Log:
Get rid of uninitialized value warning in the samba3 pidl generator.
Jelmer, please check.

Guenther

Modified:
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm


Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm
===
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm   
2007-12-03 16:49:45 UTC (rev 26256)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm   
2007-12-03 17:00:10 UTC (rev 26257)
@@ -47,7 +47,7 @@
$defargs .= ,  . DeclLong($_);
}
 
-   if ($fn-{RETURN_TYPE} eq WERROR) {
+   if (defined($fn-{RETURN_TYPE})  ($fn-{RETURN_TYPE} eq WERROR)) {
$defargs .= , WERROR *werror;
}
 



svn commit: samba r26273 - in branches/SAMBA_4_0/source: . librpc/idl rpc_server/netlogon torture/rpc

2007-12-03 Thread gd
Author: gd
Date: 2007-12-03 23:38:54 + (Mon, 03 Dec 2007)
New Revision: 26273

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26273

Log:
Add IDL and torture test for netr_NetrEnumerateTurstedDomains() and
netr_NetrEnumerateTurstedDomainsEx().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/netlogon.idl
   branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c
   branches/SAMBA_4_0/source/samba4-knownfail
   branches/SAMBA_4_0/source/torture/rpc/netlogon.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/netlogon.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/netlogon.idl   2007-12-03 23:33:22 UTC 
(rev 26272)
+++ branches/SAMBA_4_0/source/librpc/idl/netlogon.idl   2007-12-03 23:38:54 UTC 
(rev 26273)
@@ -903,8 +903,16 @@
 
/*/
/* Function 0x13 */
-   WERROR netr_NETRENUMERATETRUSTEDDOMAINS() ;
+   typedef struct {
+   uint32 length;
+   [size_is(length)] uint8 *data;
+   } netr_Blob;
 
+   WERROR netr_NetrEnumerateTrustedDomains(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [out,ref] netr_Blob *trusted_domains_blob
+   );
+
/*/
/* Function 0x14 */
 
@@ -1027,11 +1035,6 @@
//
/* Function 0x1d */
 
-   typedef struct {
-   uint32 length;
-   [size_is(length)] uint8 *data;
-   } netr_Blob;
-
typedef [flag(NDR_PAHEX)] struct {
uint16 length;
uint16 size;
@@ -1153,8 +1156,53 @@
 
//
/* Function 0x24 */
-   WERROR netr_NETRENUMERATETRUSTEDDOMAINSEX();
+   typedef [bitmap32bit] bitmap {
+   NETR_TRUST_FLAG_IN_FOREST = 0x0001,
+   NETR_TRUST_FLAG_OUTBOUND  = 0x0002,
+   NETR_TRUST_FLAG_TREEROOT  = 0x0004,
+   NETR_TRUST_FLAG_PRIMARY   = 0x0008,
+   NETR_TRUST_FLAG_NATIVE= 0x0010,
+   NETR_TRUST_FLAG_INBOUND   = 0x0020
+   } netr_TrustFlags;
 
+   typedef [v1_enum] enum {
+   NETR_TRUST_TYPE_DOWNLEVEL   = 1,
+   NETR_TRUST_TYPE_UPLEVEL = 2,
+   NETR_TRUST_TYPE_MIT = 3,
+   NETR_TRUST_TYPE_DCE = 4
+   } netr_TrustType;
+
+   typedef [bitmap32bit] bitmap {
+   NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE = 0x0001,
+   NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY   = 0x0002,
+   NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN = 0x0004,
+   NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE  = 0x0008,
+   NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION = 0x0010,
+   NETR_TRUST_ATTRIBUTE_WITHIN_FOREST  = 0x0020,
+   NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL  = 0x0040
+   } netr_TrustAttributes;
+
+   typedef struct {
+   [string,charset(UTF16)] uint16  *netbios_name;
+   [string,charset(UTF16)] uint16  *dns_name;
+   netr_TrustFlags trust_flags;
+   uint32  parent_index;
+   netr_TrustType  trust_type;
+   netr_TrustAttributestrust_attributes;
+   dom_sid2*sid;
+   GUIDguid;
+   } netr_DomainTrust;
+
+typedef struct {
+uint32 count;
+[size_is(count)] netr_DomainTrust *array;
+} netr_DomainTrustList;
+
+   WERROR netr_NetrEnumerateTrustedDomainsEx(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [out,ref] netr_DomainTrustList *dom_trust_list
+   );
+
//
/* Function 0x25 */
typedef struct {
@@ -1199,43 +1247,6 @@
//
/* Function 0x28 */
 
-   typedef [bitmap32bit] bitmap {
-   NETR_TRUST_FLAG_IN_FOREST = 0x0001,
-   NETR_TRUST_FLAG_OUTBOUND  = 0x0002,
-   NETR_TRUST_FLAG_TREEROOT  = 0x0004,
-   NETR_TRUST_FLAG_PRIMARY   = 0x0008,
-   NETR_TRUST_FLAG_NATIVE= 0x0010,
-   NETR_TRUST_FLAG_INBOUND   = 0x0020
-   } netr_TrustFlags;
-
-   typedef [v1_enum] enum {
-   NETR_TRUST_TYPE_DOWNLEVEL   = 1,
-   NETR_TRUST_TYPE_UPLEVEL = 2,
-   NETR_TRUST_TYPE_MIT = 3,
-   NETR_TRUST_TYPE_DCE = 4
-   } netr_TrustType;
-
-   typedef [bitmap32bit] bitmap {
-   NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE = 0x0001,
-   NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY   = 0x0002,
-   NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN = 0x0004

svn commit: samba r26216 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-30 Thread gd
Author: gd
Date: 2007-11-30 09:55:15 + (Fri, 30 Nov 2007)
New Revision: 26216

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26216

Log:
Add very basic torture test for wkssvc_NetrUnjoinDomain2().

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-30 09:53:20 UTC 
(rev 26215)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-30 09:55:15 UTC 
(rev 26216)
@@ -1290,6 +1290,93 @@
return true;
 }
 
+static bool test_NetrUnjoinDomain2(struct torture_context *tctx,
+  struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrUnjoinDomain2 r;
+   const char *domain_admin_account = NULL;
+   const char *domain_admin_password = NULL;
+   struct wkssvc_PasswordBuffer pwd_buf;
+   enum wkssvc_NetJoinStatus join_status;
+   const char *join_name = NULL;
+   WERROR expected_err;
+
+   /* FIXME: this test assumes to join workstations / servers and does not
+* handle DCs (WERR_SETUP_DOMAIN_CONTROLLER) */
+
+   if (!test_GetJoinInformation(tctx, p, join_status, join_name))
+   {
+   return false;
+   }
+
+   switch (join_status) {
+   case NetSetupUnjoined:
+   expected_err = WERR_SETUP_NOT_JOINED;
+   break;
+   case NetSetupDomainName:
+   case NetSetupUnknownStatus:
+   case NetSetupWorkgroupName:
+   default:
+   expected_err = WERR_OK;
+   break;
+   }
+
+   domain_admin_account = lp_parm_string(global_loadparm, NULL,
+ torture,
+ domain_admin_account);
+
+   domain_admin_password = lp_parm_string(global_loadparm, NULL,
+  torture,
+  domain_admin_password);
+
+   if ((domain_admin_account == NULL) ||
+   (domain_admin_password == NULL)) {
+   torture_comment(tctx, not enough input parameter\n);
+   return false;
+   }
+
+   if (!encode_wkssvc_join_password_buffer(tctx, p,
+   domain_admin_password,
+   pwd_buf))
+   {
+   return false;
+   }
+
+   r.in.server_name = dcerpc_server_name(p);
+   r.in.account = domain_admin_account;
+   r.in.encrypted_password = pwd_buf;
+   r.in.unjoin_flags = 0;
+
+   torture_comment(tctx, testing NetrUnjoinDomain2 (assuming non-DC)\n);
+
+   status = dcerpc_wkssvc_NetrUnjoinDomain2(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrUnjoinDomain2 failed);
+   torture_assert_werr_equal(tctx, r.out.result, expected_err,
+ NetrUnjoinDomain2 failed);
+
+   if (!test_GetJoinInformation(tctx, p, join_status, join_name))
+   {
+   return false;
+   }
+
+   switch (join_status) {
+   case NetSetupUnjoined:
+   case NetSetupWorkgroupName:
+   break;
+   case NetSetupUnknown:
+   case NetSetupDomainName:
+   default:
+   torture_comment(tctx,
+   Unjoin verify failed: got %d\n, join_status);
+   return false;
+   }
+
+   return true;
+}
+
+
 struct torture_suite *torture_rpc_wkssvc(TALLOC_CTX *mem_ctx)
 {
struct torture_suite *suite;
@@ -1351,6 +1438,9 @@
test = torture_rpc_tcase_add_test(tcase, NetrJoinDomain2,
  test_NetrJoinDomain2);
test-dangerous = true;
+   test = torture_rpc_tcase_add_test(tcase, NetrUnjoinDomain2,
+ test_NetrUnjoinDomain2);
+   test-dangerous = true;
 
torture_rpc_tcase_add_test(tcase, NetrJoinDomain,
   test_NetrJoinDomain);



svn commit: samba r26215 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-30 Thread gd
Author: gd
Date: 2007-11-30 09:53:20 + (Fri, 30 Nov 2007)
New Revision: 26215

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26215

Log:
Verify that test_NetrJoinDomain2() has suceeded.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-30 09:49:20 UTC 
(rev 26214)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-30 09:53:20 UTC 
(rev 26215)
@@ -1275,6 +1275,18 @@
   NetrJoinDomain2 failed);
torture_assert_werr_equal(tctx, r.out.result, expected_err,
  NetrJoinDomain2 failed);
+
+   if (!test_GetJoinInformation(tctx, p, join_status, join_name))
+   {
+   return false;
+   }
+
+   if (join_status != NetSetupDomainName) {
+   torture_comment(tctx,
+   Join verify failed: got %d\n, join_status);
+   return false;
+   }
+
return true;
 }
 



svn commit: samba r26214 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-30 Thread gd
Author: gd
Date: 2007-11-30 09:49:20 + (Fri, 30 Nov 2007)
New Revision: 26214

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26214

Log:
Add note about remotely joining an unjoined XP SP2 workstation.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 23:31:12 UTC 
(rev 26213)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-30 09:49:20 UTC 
(rev 26214)
@@ -1192,6 +1192,15 @@
return true;
 }
 
+/*
+ * prerequisites for remotely joining an unjoined XP SP2 workstation:
+ * - firewall needs to be disabled (or open for ncacn_np access)
+ * - HKLM\System\CurrentControlSet\Control\Lsa\forceguest needs to 0
+ * see also:
+ * http://support.microsoft.com/kb/294355/EN-US/ and
+ * http://support.microsoft.com/kb/290403/EN-US/
+ */
+
 static bool test_NetrJoinDomain2(struct torture_context *tctx,
 struct dcerpc_pipe *p)
 {



svn commit: samba r26217 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-30 Thread gd
Author: gd
Date: 2007-11-30 13:04:59 + (Fri, 30 Nov 2007)
New Revision: 26217

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26217

Log:
Let encode_wkssvc_join_password_buffer() take the session key as parameter.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-30 09:55:15 UTC 
(rev 26216)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-30 13:04:59 UTC 
(rev 26217)
@@ -1155,32 +1155,25 @@
  * buffer), calling MD5Update() first with session_key and then with confounder
  * (vice versa in samr) - Guenther */
 
-static bool encode_wkssvc_join_password_buffer(struct torture_context *tctx,
-  struct dcerpc_pipe *p,
+static void encode_wkssvc_join_password_buffer(TALLOC_CTX *mem_ctx,
   const char *pwd,
+  DATA_BLOB *session_key,
   struct wkssvc_PasswordBuffer 
*pwd_buf)
 {
-   NTSTATUS status;
uint8_t buffer[516];
struct MD5Context ctx;
 
-   DATA_BLOB confounded_session_key = data_blob_talloc(tctx, NULL, 16);
-   DATA_BLOB session_key;
+   DATA_BLOB confounded_session_key = data_blob_talloc(mem_ctx, NULL, 16);
 
int confounder_len = 8;
uint8_t confounder[8];
 
encode_pw_buffer(buffer, pwd, STR_UNICODE);
 
-   status = dcerpc_fetch_session_key(p, session_key);
-   if (!NT_STATUS_IS_OK(status)) {
-   return false;
-   }
-
generate_random_buffer((uint8_t *)confounder, confounder_len);
 
MD5Init(ctx);
-   MD5Update(ctx, session_key.data, session_key.length);
+   MD5Update(ctx, session_key-data, session_key-length);
MD5Update(ctx, confounder, confounder_len);
MD5Final(confounded_session_key.data, ctx);
 
@@ -1189,7 +1182,7 @@
memcpy(pwd_buf-data[0], confounder, confounder_len);
memcpy(pwd_buf-data[8], buffer, 516);
 
-   return true;
+   data_blob_free(confounded_session_key);
 }
 
 /*
@@ -1213,6 +1206,7 @@
enum wkssvc_NetJoinStatus join_status;
const char *join_name = NULL;
WERROR expected_err;
+   DATA_BLOB session_key;
 
/* FIXME: this test assumes to join workstations / servers and does not
 * handle DCs (WERR_SETUP_DOMAIN_CONTROLLER) */
@@ -1253,13 +1247,14 @@
return false;
}
 
-   if (!encode_wkssvc_join_password_buffer(tctx, p,
-   domain_admin_password,
-   pwd_buf))
-   {
+   status = dcerpc_fetch_session_key(p, session_key);
+   if (!NT_STATUS_IS_OK(status)) {
return false;
}
 
+   encode_wkssvc_join_password_buffer(tctx, domain_admin_password,
+  session_key, pwd_buf);
+
r.in.server_name = dcerpc_server_name(p);
r.in.domain_name = domain_name;
r.in.account_ou = NULL;
@@ -1301,6 +1296,7 @@
enum wkssvc_NetJoinStatus join_status;
const char *join_name = NULL;
WERROR expected_err;
+   DATA_BLOB session_key;
 
/* FIXME: this test assumes to join workstations / servers and does not
 * handle DCs (WERR_SETUP_DOMAIN_CONTROLLER) */
@@ -1336,13 +1332,14 @@
return false;
}
 
-   if (!encode_wkssvc_join_password_buffer(tctx, p,
-   domain_admin_password,
-   pwd_buf))
-   {
+   status = dcerpc_fetch_session_key(p, session_key);
+   if (!NT_STATUS_IS_OK(status)) {
return false;
}
 
+   encode_wkssvc_join_password_buffer(tctx, domain_admin_password,
+  session_key, pwd_buf);
+
r.in.server_name = dcerpc_server_name(p);
r.in.account = domain_admin_account;
r.in.encrypted_password = pwd_buf;



svn commit: samba r26208 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-29 Thread gd
Author: gd
Date: 2007-11-29 21:52:20 + (Thu, 29 Nov 2007)
New Revision: 26208

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26208

Log:
Add torture test for (unsupported) wkssvc_NetrJoinDomain() and
wkssvc_NetrUnjoinDomain().

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 17:49:13 UTC 
(rev 26207)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 21:52:20 UTC 
(rev 26208)
@@ -1055,6 +1055,67 @@
 
return true;
 }
+
+static bool test_NetrUnjoinDomain(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrUnjoinDomain r;
+   struct cli_credentials *creds = cmdline_credentials;
+   const char *user = cli_credentials_get_username(creds);
+   const char *admin_account = NULL;
+
+   admin_account = talloc_asprintf(tctx, %s\\%s,
+   lp_workgroup(global_loadparm),
+   user);
+
+   r.in.server_name = dcerpc_server_name(p);
+   r.in.Account = admin_account;
+   r.in.password = NULL;
+   r.in.unjoin_flags = 0;
+
+   torture_comment(tctx, testing NetrUnjoinDomain\n);
+
+   status = dcerpc_wkssvc_NetrUnjoinDomain(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrUnjoinDomain failed);
+   torture_assert_werr_equal(tctx, r.out.result, WERR_NOT_SUPPORTED,
+ NetrUnjoinDomain failed);
+   return true;
+}
+
+
+static bool test_NetrJoinDomain(struct torture_context *tctx,
+   struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrJoinDomain r;
+   struct cli_credentials *creds = cmdline_credentials;
+   const char *user = cli_credentials_get_username(creds);
+   const char *admin_account = NULL;
+
+   admin_account = talloc_asprintf(tctx, %s\\%s,
+   lp_workgroup(global_loadparm),
+   user);
+
+   r.in.server_name = dcerpc_server_name(p);
+   r.in.domain_name = lp_realm(global_loadparm);
+   r.in.account_ou = NULL;
+   r.in.Account = admin_account;
+   r.in.password = NULL;
+   r.in.join_flags = 0;
+
+   torture_comment(tctx, testing NetrJoinDomain\n);
+
+   status = dcerpc_wkssvc_NetrJoinDomain(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrJoinDomain failed);
+   torture_assert_werr_equal(tctx, r.out.result, WERR_NOT_SUPPORTED,
+ NetrJoinDomain failed);
+   return true;
+}
+
+
 struct torture_suite *torture_rpc_wkssvc(TALLOC_CTX *mem_ctx)
 {
struct torture_suite *suite;
@@ -1113,6 +1174,12 @@
torture_rpc_tcase_add_test(tcase, NetrEnumerateComputerNames,
   test_NetrEnumerateComputerNames);
 
+   torture_rpc_tcase_add_test(tcase, NetrJoinDomain,
+  test_NetrJoinDomain);
+   test-dangerous = true;
+   torture_rpc_tcase_add_test(tcase, NetrUnjoinDomain,
+  test_NetrUnjoinDomain);
+   test-dangerous = true;
torture_rpc_tcase_add_test(tcase, NetrGetJoinInformation,
   test_NetrGetJoinInformation);
torture_rpc_tcase_add_test(tcase, NetrGetJoinableOus,



svn commit: samba r26209 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-11-29 Thread gd
Author: gd
Date: 2007-11-29 21:53:50 + (Thu, 29 Nov 2007)
New Revision: 26209

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26209

Log:
For consistency, rename one argument in NetrJoinDomain.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-29 21:52:20 UTC 
(rev 26208)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-29 21:53:50 UTC 
(rev 26209)
@@ -578,7 +578,7 @@
[in,ref] [string,charset(UTF16)] uint16 *domain_name,
[in] [string,charset(UTF16)] uint16 *account_ou,
[in] [string,charset(UTF16)] uint16 *Account,
-   [in] [string,charset(UTF16)] uint16 *unknown,
+   [in] [string,charset(UTF16)] uint16 *password,
[in] wkssvc_joinflags join_flags
);
 



svn commit: samba r26210 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-29 Thread gd
Author: gd
Date: 2007-11-29 22:22:19 + (Thu, 29 Nov 2007)
New Revision: 26210

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26210

Log:
w00t!

Solved the nasty crypto problem of the 524 byte wkssvc_PasswordBuffer for
wkssvc_JoinDomain()/wkssvc_UnjoinDomain().

Very soon we will be able to remotely join windows workstations into AD domains
using smbtorture :-)

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 21:53:50 UTC 
(rev 26209)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 22:22:19 UTC 
(rev 26210)
@@ -25,6 +25,8 @@
 #include torture/rpc/rpc.h
 #include lib/cmdline/popt_common.h
 #include param/param.h
+#include lib/crypto/crypto.h
+#include libcli/auth/libcli_auth.h
 
 #define SMBTORTURE_MACHINE_NAME smbtrt_name
 #define SMBTORTURE_ALTERNATE_NAME smbtrt_altname
@@ -1115,7 +1117,49 @@
return true;
 }
 
+/* encode a wkssvc_PasswordBuffer for remote joining/unjoining:
+ *
+ * similar to samr_CryptPasswordEx. Different: 8byte confounder (instead of
+ * 16byte), confounder at the beginning of the 516 byte buffer (instead of at
+ * the end), MD5Update() reordering of session_key and confounder - Guenther */
 
+static bool encode_wkssvc_join_password_buffer(struct torture_context *tctx,
+  struct dcerpc_pipe *p,
+  const char *pwd,
+  struct wkssvc_PasswordBuffer 
*pwd_buf)
+{
+   NTSTATUS status;
+   uint8_t buffer[516];
+   struct MD5Context ctx;
+
+   DATA_BLOB confounded_session_key = data_blob_talloc(tctx, NULL, 16);
+   DATA_BLOB session_key;
+
+   int confounder_len = 8;
+   uint8_t confounder[8];
+
+   encode_pw_buffer(buffer, pwd, STR_UNICODE);
+
+   status = dcerpc_fetch_session_key(p, session_key);
+   if (!NT_STATUS_IS_OK(status)) {
+   return false;
+   }
+
+   generate_random_buffer((uint8_t *)confounder, confounder_len);
+
+   MD5Init(ctx);
+   MD5Update(ctx, session_key.data, session_key.length);
+   MD5Update(ctx, confounder, confounder_len);
+   MD5Final(confounded_session_key.data, ctx);
+
+   arcfour_crypt_blob(buffer, 516, confounded_session_key);
+
+   memcpy(pwd_buf-data[0], confounder, confounder_len);
+   memcpy(pwd_buf-data[8], buffer, 516);
+
+   return true;
+}
+
 struct torture_suite *torture_rpc_wkssvc(TALLOC_CTX *mem_ctx)
 {
struct torture_suite *suite;



svn commit: samba r26212 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-29 Thread gd
Author: gd
Date: 2007-11-29 23:22:49 + (Thu, 29 Nov 2007)
New Revision: 26212

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26212

Log:
Make test_NetrJoinDomain2() a little more robust against missing parameters.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 23:09:37 UTC 
(rev 26211)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 23:22:49 UTC 
(rev 26212)
@@ -1198,10 +1198,11 @@
struct wkssvc_NetrJoinDomain2 r;
const char *domain_admin_account = NULL;
const char *domain_admin_password = NULL;
+   const char *domain_name = NULL;
struct wkssvc_PasswordBuffer pwd_buf;
enum wkssvc_NetJoinStatus join_status;
const char *join_name = NULL;
-   WERROR expected_err = WERR_OK;
+   WERROR expected_err;
 
/* FIXME: this test assumes to join workstations / servers and does not
 * handle DCs (WERR_SETUP_DOMAIN_CONTROLLER) */
@@ -1218,6 +1219,8 @@
case NetSetupUnknownStatus:
case NetSetupUnjoined:
case NetSetupWorkgroupName:
+   default:
+   expected_err = WERR_OK;
break;
}
 
@@ -1229,6 +1232,17 @@
   torture,
   domain_admin_password);
 
+   domain_name = lp_parm_string(global_loadparm, NULL,
+torture,
+domain_name);
+
+   if ((domain_admin_account == NULL) ||
+   (domain_admin_password == NULL) ||
+   (domain_name == NULL)) {
+   torture_comment(tctx, not enough input parameter\n);
+   return false;
+   }
+
if (!encode_wkssvc_join_password_buffer(tctx, p,
domain_admin_password,
pwd_buf))
@@ -1237,7 +1251,7 @@
}
 
r.in.server_name = dcerpc_server_name(p);
-   r.in.domain_name = lp_realm(global_loadparm);
+   r.in.domain_name = domain_name;
r.in.account_ou = NULL;
r.in.admin_account = domain_admin_account;
r.in.encrypted_password = pwd_buf;



svn commit: samba r26213 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-29 Thread gd
Author: gd
Date: 2007-11-29 23:31:12 + (Thu, 29 Nov 2007)
New Revision: 26213

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26213

Log:
Trying to fix confusing inline comment about wkssvc_PasswordBuffer.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 23:22:49 UTC 
(rev 26212)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 23:31:12 UTC 
(rev 26213)
@@ -1151,8 +1151,9 @@
 /* encode a wkssvc_PasswordBuffer for remote joining/unjoining:
  *
  * similar to samr_CryptPasswordEx. Different: 8byte confounder (instead of
- * 16byte), confounder at the beginning of the 516 byte buffer (instead of at
- * the end), MD5Update() reordering of session_key and confounder - Guenther */
+ * 16byte), confounder in front of the 516 byte buffer (instead of after that
+ * buffer), calling MD5Update() first with session_key and then with confounder
+ * (vice versa in samr) - Guenther */
 
 static bool encode_wkssvc_join_password_buffer(struct torture_context *tctx,
   struct dcerpc_pipe *p,



svn commit: samba r26211 - in branches/SAMBA_4_0/source: librpc/idl torture/rpc

2007-11-29 Thread gd
Author: gd
Date: 2007-11-29 23:09:37 + (Thu, 29 Nov 2007)
New Revision: 26211

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26211

Log:
Add very basic test_NetrJoinDomain2() test which can join xp workstations into
an AD domain.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-29 22:22:19 UTC 
(rev 26210)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-29 23:09:37 UTC 
(rev 26211)
@@ -689,7 +689,7 @@
WERROR wkssvc_NetrJoinDomain2 (
[in] [string,charset(UTF16)] uint16 *server_name,
[in,ref] [string,charset(UTF16)] uint16 *domain_name,
-   [in] [string,charset(UTF16)] uint16 *account_name,
+   [in] [string,charset(UTF16)] uint16 *account_ou,
[in] [string,charset(UTF16)] uint16 *admin_account,
[in] wkssvc_PasswordBuffer *encrypted_password,
[in] wkssvc_joinflags join_flags

Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 22:22:19 UTC 
(rev 26210)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-29 23:09:37 UTC 
(rev 26211)
@@ -1006,6 +1006,38 @@
return true;
 }
 
+static bool test_GetJoinInformation(struct torture_context *tctx,
+   struct dcerpc_pipe *p,
+   enum wkssvc_NetJoinStatus *join_status_p,
+   const char **name)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrGetJoinInformation r;
+   enum wkssvc_NetJoinStatus join_status;
+   const char *name_buffer = ;
+
+   r.in.server_name = dcerpc_server_name(p);
+   r.in.name_buffer = r.out.name_buffer = name_buffer;
+   r.out.name_type = join_status;
+
+   status = dcerpc_wkssvc_NetrGetJoinInformation(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrGetJoinInformation failed);
+   torture_assert_werr_ok(tctx, r.out.result,
+  NetrGetJoinInformation failed);
+
+   if (join_status_p) {
+   *join_status_p = join_status;
+   }
+
+   if (*name) {
+   *name = talloc_strdup(tctx, name_buffer);
+   }
+
+   return true;
+
+}
+
 static bool test_NetrGetJoinableOus(struct torture_context *tctx,
struct dcerpc_pipe *p)
 {
@@ -1086,7 +1118,6 @@
return true;
 }
 
-
 static bool test_NetrJoinDomain(struct torture_context *tctx,
struct dcerpc_pipe *p)
 {
@@ -1160,6 +1191,69 @@
return true;
 }
 
+static bool test_NetrJoinDomain2(struct torture_context *tctx,
+struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrJoinDomain2 r;
+   const char *domain_admin_account = NULL;
+   const char *domain_admin_password = NULL;
+   struct wkssvc_PasswordBuffer pwd_buf;
+   enum wkssvc_NetJoinStatus join_status;
+   const char *join_name = NULL;
+   WERROR expected_err = WERR_OK;
+
+   /* FIXME: this test assumes to join workstations / servers and does not
+* handle DCs (WERR_SETUP_DOMAIN_CONTROLLER) */
+
+   if (!test_GetJoinInformation(tctx, p, join_status, join_name))
+   {
+   return false;
+   }
+
+   switch (join_status) {
+   case NetSetupDomainName:
+   expected_err = WERR_SETUP_ALREADY_JOINED;
+   break;
+   case NetSetupUnknownStatus:
+   case NetSetupUnjoined:
+   case NetSetupWorkgroupName:
+   break;
+   }
+
+   domain_admin_account = lp_parm_string(global_loadparm, NULL,
+ torture,
+ domain_admin_account);
+
+   domain_admin_password = lp_parm_string(global_loadparm, NULL,
+  torture,
+  domain_admin_password);
+
+   if (!encode_wkssvc_join_password_buffer(tctx, p,
+   domain_admin_password,
+   pwd_buf))
+   {
+   return false;
+   }
+
+   r.in.server_name = dcerpc_server_name(p);
+   r.in.domain_name = lp_realm(global_loadparm);
+   r.in.account_ou = NULL;
+   r.in.admin_account = domain_admin_account;
+   r.in.encrypted_password = pwd_buf

svn commit: samba r26143 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/wkssvc torture/rpc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 09:41:50 + (Tue, 27 Nov 2007)
New Revision: 26143

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26143

Log:
Add IDL and torture test for wkssvc_NetrWkstaUserGetInfo.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 09:35:10 UTC 
(rev 26142)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 09:41:50 UTC 
(rev 26143)
@@ -192,8 +192,23 @@
 
/*/
/* Function0x03  */
-   WERROR WKSSVC_NETRWKSTAUSERGETINFO ();
+   typedef struct {
+   [string,charset(UTF16)] uint16 *other_domains;
+   } wkssvc_NetrWkstaUserInfo1101;
 
+   typedef [switch_type(uint32)] union {
+   [case(0)] wkssvc_NetrWkstaUserInfo0 *info0;
+   [case(1)] wkssvc_NetrWkstaUserInfo1 *info1;
+   [case(1101)] wkssvc_NetrWkstaUserInfo1101 *info1101;
+   } wkssvc_NetrWkstaUserInfo;
+
+   WERROR wkssvc_NetrWkstaUserGetInfo(
+   [in] [string,charset(UTF16)] uint16 *unknown,
+   [in] uint32 level,
+   [out] [switch_is(level)] [ref] wkssvc_NetrWkstaUserInfo *info
+   );
+
+
/*/
/* Function0x04  */
WERROR WKSSVC_NETRWKSTAUSERSETINFO ();

Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
09:35:10 UTC (rev 26142)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
09:41:50 UTC (rev 26143)
@@ -112,11 +112,11 @@
 }
 
 
-/* 
-  WKSSVC_NETRWKSTAUSERGETINFO 
+/*
+  wkssvc_NetrWkstaUserGetInfo
 */
-static WERROR dcesrv_WKSSVC_NETRWKSTAUSERGETINFO(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRWKSTAUSERGETINFO *r)
+static WERROR dcesrv_wkssvc_NetrWkstaUserGetInfo(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrWkstaUserGetInfo *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 09:35:10 UTC 
(rev 26142)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 09:41:50 UTC 
(rev 26143)
@@ -22,6 +22,8 @@
 #include torture/torture.h
 #include librpc/gen_ndr/ndr_wkssvc_c.h
 #include torture/rpc/rpc.h
+#include lib/cmdline/popt_common.h
+#include param/param.h
 
 static bool test_NetWkstaGetInfo(struct torture_context *tctx,
 struct dcerpc_pipe *p)
@@ -129,6 +131,53 @@
 
return true;
 }
+
+static bool test_NetrWkstaUserGetInfo(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrWkstaUserGetInfo r;
+   union wkssvc_NetrWkstaUserInfo info;
+   const char *dom = lp_workgroup(global_loadparm);
+   struct cli_credentials *creds = cmdline_credentials;
+   const char *user = cli_credentials_get_username(creds);
+   int i;
+
+   const struct {
+   const char *unknown;
+   uint32_t level;
+   WERROR result;
+   } tests[] = {
+   { NULL, 0, WERR_NO_SUCH_LOGON_SESSION },
+   { NULL, 1, WERR_NO_SUCH_LOGON_SESSION },
+   { NULL, 1101, WERR_OK },
+   { dom, 0, WERR_INVALID_PARAM },
+   { dom, 1, WERR_INVALID_PARAM },
+   { dom, 1101, WERR_INVALID_PARAM },
+   { user, 0, WERR_INVALID_PARAM },
+   { user, 1, WERR_INVALID_PARAM },
+   { user, 1101, WERR_INVALID_PARAM },
+   };
+
+   for (i=0; iARRAY_SIZE(tests); i++) {
+   r.in.unknown = tests[i].unknown;
+   r.in.level = tests[i].level;
+   r.out.info = info;
+
+   torture_comment(tctx, testing NetrWkstaUserGetInfo level %u\n,
+   r.in.level);
+
+   status = dcerpc_wkssvc_NetrWkstaUserGetInfo(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrWkstaUserGetInfo failed);
+   torture_assert_werr_equal(tctx, r.out.result,
+ tests[i].result,
+ NetrWkstaUserGetInfo failed);
+   }
+
+   return true;
+}
+
 struct torture_suite *torture_rpc_wkssvc

svn commit: samba r26144 - in branches/SAMBA_4_0/source: librpc/idl torture/rpc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 09:49:19 + (Tue, 27 Nov 2007)
New Revision: 26144

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26144

Log:
Add IDL and torture test for wkssvc_NetrWkstaTransportAdd and
wkssvc_NetrWkstaTransportDel.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 09:41:50 UTC 
(rev 26143)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 09:49:19 UTC 
(rev 26144)
@@ -232,26 +232,39 @@
 
typedef union {
[case(0)] wkssvc_NetWkstaTransportCtr0 *ctr0;
-   [default] ;
} wkssvc_NetWkstaTransportCtr;
 
+   typedef struct {
+   uint32 level;
+   [switch_is(level)] wkssvc_NetWkstaTransportCtr ctr;
+   } wkssvc_NetWkstaTransportInfo;
+
WERROR wkssvc_NetWkstaTransportEnum (
[in] [string,charset(UTF16)] uint16 *server_name,
-   [in,out] uint32 level,
-   [in,out,switch_is(level),ref] wkssvc_NetWkstaTransportCtr *ctr,
+   [in,out,ref] wkssvc_NetWkstaTransportInfo *info,
[in] uint32 max_buffer,
-   [out]uint32 totalentries,
+   [out,ref]uint32 *total_entries,
[in,out] uint32 *resume_handle
);
 
-
/*/
/* Function0x06  */
-   WERROR WKSSVC_NETRWKSTATRANSPORTADD ();
+   /* only supported on NT */
+   WERROR wkssvc_NetrWkstaTransportAdd(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in] uint32 level, /* must be 0 */
+   [in] [ref] wkssvc_NetWkstaTransportInfo0 *info0,
+   [in,out] uint32 *parm_err
+);
 
/*/
/* Function0x07  */
-   WERROR WKSSVC_NETRWKSTATRANSPORTDEL ();
+   /* only supported on NT */
+   WERROR wkssvc_NetrWkstaTransportDel(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in] [string,charset(UTF16)] uint16 *transport_name,
+   [in] uint32 unknown3
+   );
 
/*/
/* Function0x08  */

Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 09:41:50 UTC 
(rev 26143)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 09:49:19 UTC 
(rev 26144)
@@ -25,6 +25,8 @@
 #include lib/cmdline/popt_common.h
 #include param/param.h
 
+#define SMBTORTURE_TRANSPORT_NAME \\Device\\smbtrt_transport_name
+
 static bool test_NetWkstaGetInfo(struct torture_context *tctx,
 struct dcerpc_pipe *p)
 {
@@ -50,35 +52,97 @@
return true;
 }
 
-
 static bool test_NetWkstaTransportEnum(struct torture_context *tctx,
   struct dcerpc_pipe *p)
 {
NTSTATUS status;
struct wkssvc_NetWkstaTransportEnum r;
uint32_t resume_handle = 0;
+   struct wkssvc_NetWkstaTransportInfo info;
union wkssvc_NetWkstaTransportCtr ctr;
struct wkssvc_NetWkstaTransportCtr0 ctr0;
+   uint32_t total_entries = 0;
 
ZERO_STRUCT(ctr0);
ctr.ctr0 = ctr0;
 
+   info.level = 0;
+   info.ctr = ctr;
+
r.in.server_name = dcerpc_server_name(p);
-   r.in.level = 0;
-   r.in.ctr = ctr;
+   r.in.info = info;
r.in.max_buffer = (uint32_t)-1;
r.in.resume_handle = resume_handle;
-   r.out.ctr = ctr;
+   r.out.total_entries = total_entries;
+   r.out.info = info;
r.out.resume_handle = resume_handle;
 
+   torture_comment(tctx, testing NetWkstaTransportEnum level 0\n);
+
status = dcerpc_wkssvc_NetWkstaTransportEnum(p, tctx, r);
-   torture_assert_ntstatus_ok(tctx, status, NetWkstaTransportEnum 
failed);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetWkstaTransportEnum failed);
torture_assert_werr_ok(tctx, r.out.result, talloc_asprintf(tctx,
-   NetWkstaTransportEnum level %u failed, r.in.level));
+  NetWkstaTransportEnum level %u failed,
+  info.level));
 
return true;
 }
 
+static bool test_NetrWkstaTransportAdd(struct torture_context *tctx,
+  struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrWkstaTransportAdd r;
+   struct wkssvc_NetWkstaTransportInfo0 info0;
+   uint32_t parm_err = 0;
+
+   ZERO_STRUCT(info0);
+
+   info0

svn commit: samba r26145 - in branches/SAMBA_4_0/source: . rpc_server/wkssvc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 09:58:18 + (Tue, 27 Nov 2007)
New Revision: 26145

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26145

Log:
Fix server side of wkssvc_NetWkstaTransportEnum.

Guenther

Modified:
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
   branches/SAMBA_4_0/source/samba4-knownfail


Changeset:
Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
09:49:19 UTC (rev 26144)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
09:58:18 UTC (rev 26145)
@@ -138,19 +138,19 @@
 static WERROR dcesrv_wkssvc_NetWkstaTransportEnum(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
   struct wkssvc_NetWkstaTransportEnum *r)
 {
-   r-out.level = r-in.level;
-   r-out.totalentries = 0;
+   r-out.total_entries = 0;
r-out.resume_handle = NULL;
 
-   switch (r-in.level) {
+   switch (r-in.info-level) {
case 0:
-   r-out.ctr = talloc(mem_ctx, union wkssvc_NetWkstaTransportCtr);
-   W_ERROR_HAVE_NO_MEMORY(r-out.ctr);
-   r-out.ctr-ctr0 = talloc(mem_ctx, struct 
wkssvc_NetWkstaTransportCtr0);
-   W_ERROR_HAVE_NO_MEMORY(r-out.ctr-ctr0);
+   r-out.info = talloc(mem_ctx, struct 
wkssvc_NetWkstaTransportInfo);
+   W_ERROR_HAVE_NO_MEMORY(r-out.info);
+   r-out.info-level = r-in.info-level;
+   r-out.info-ctr.ctr0 = talloc(mem_ctx, struct 
wkssvc_NetWkstaTransportCtr0);
+   W_ERROR_HAVE_NO_MEMORY(r-out.info-ctr.ctr0);
 
-   r-out.ctr-ctr0-count = 0;
-   r-out.ctr-ctr0-array = NULL;
+   r-out.info-ctr.ctr0-count = 0;
+   r-out.info-ctr.ctr0-array = NULL;
 
return WERR_NOT_SUPPORTED;
 
@@ -162,21 +162,21 @@
 }
 
 
-/* 
-  WKSSVC_NETRWKSTATRANSPORTADD 
+/*
+  wkssvc_NetrWkstaTransportAdd
 */
-static WERROR dcesrv_WKSSVC_NETRWKSTATRANSPORTADD(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRWKSTATRANSPORTADD *r)
+static WERROR dcesrv_wkssvc_NetrWkstaTransportAdd(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrWkstaTransportAdd *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }
 
 
-/* 
-  WKSSVC_NETRWKSTATRANSPORTDEL 
+/*
+  wkssvc_NetrWkstaTransportDel
 */
-static WERROR dcesrv_WKSSVC_NETRWKSTATRANSPORTDEL(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRWKSTATRANSPORTDEL *r)
+static WERROR dcesrv_wkssvc_NetrWkstaTransportDel(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrWkstaTransportDel *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/samba4-knownfail
===
--- branches/SAMBA_4_0/source/samba4-knownfail  2007-11-27 09:49:19 UTC (rev 
26144)
+++ branches/SAMBA_4_0/source/samba4-knownfail  2007-11-27 09:58:18 UTC (rev 
26145)
@@ -6,8 +6,6 @@
 RAW-OPLOCK.*/OPLOCK
 RPC-WINREG
 LOCAL-REGISTRY.*/security # Not implemented yet
-RPC-WKSSVC.*NetWkstaGetInfo
-RPC-WKSSVC.*NetWkstaTransportEnum
 RPC-HANDLES.*/lsarpc-shared
 RPC-HANDLES.*/mixed-shared
 RPC-EPMAPPER.*/Insert



svn commit: samba r26146 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/wkssvc torture/rpc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 10:07:00 + (Tue, 27 Nov 2007)
New Revision: 26146

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26146

Log:
Add IDL and torture test for wkssvc_NetrUseEnum().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 09:58:18 UTC 
(rev 26145)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 10:07:00 UTC 
(rev 26146)
@@ -280,8 +280,67 @@
 
/*/
/* Function0x0b  */
-   WERROR WKSSVC_NETRUSEENUM ();
+   typedef struct {
+   [string,charset(UTF16)] uint16 *local;
+   [string,charset(UTF16)] uint16 *remote;
+   [string,charset(UTF16)] uint16 *password;
+   uint32 status;
+   uint32 asg_type;
+   uint32 ref_count;
+   uint32 use_count;
+   [string,charset(UTF16)] uint16 *user_name;
+   [string,charset(UTF16)] uint16 *domain_name;
+   } wkssvc_NetrUseInfo2;
 
+   typedef struct {
+   [string,charset(UTF16)] uint16 *local;
+   [string,charset(UTF16)] uint16 *remote;
+   [string,charset(UTF16)] uint16 *password;
+   uint32 status;
+   uint32 asg_type;
+   uint32 ref_count;
+   uint32 use_count;
+   } wkssvc_NetrUseInfo1;
+
+   typedef struct {
+   [string,charset(UTF16)] uint16 *local;
+   [string,charset(UTF16)] uint16 *remote;
+   } wkssvc_NetrUseInfo0;
+
+   typedef struct {
+   uint32 count;
+   [size_is(count)] wkssvc_NetrUseInfo2 *array;
+   } wkssvc_NetrUseEnumCtr2;
+
+   typedef struct {
+   uint32 count;
+   [size_is(count)] wkssvc_NetrUseInfo1 *array;
+   } wkssvc_NetrUseEnumCtr1;
+
+   typedef struct {
+   uint32 count;
+   [size_is(count)] wkssvc_NetrUseInfo0 *array;
+   } wkssvc_NetrUseEnumCtr0;
+
+   typedef [switch_type(uint32)] union {
+   [case(0)] wkssvc_NetrUseEnumCtr0 *ctr0;
+   [case(1)] wkssvc_NetrUseEnumCtr1 *ctr1;
+   [case(2)] wkssvc_NetrUseEnumCtr2 *ctr2;
+   } wkssvc_NetrUseEnumCtr;
+
+   typedef struct {
+   uint32 level;
+   [switch_is(level)] wkssvc_NetrUseEnumCtr ctr;
+   } wkssvc_NetrUseEnumInfo;
+
+   WERROR wkssvc_NetrUseEnum(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in,out] [ref] wkssvc_NetrUseEnumInfo *info,
+   [in] uint32 prefmaxlen,
+   [out,ref] uint32 *entries_read,
+   [in,out] uint32 *resume_handle
+   );
+
/*/
/* Function0x0c  */
WERROR WKSSVC_NETRMESSAGEBUFFERSEND ();

Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
09:58:18 UTC (rev 26145)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
10:07:00 UTC (rev 26146)
@@ -212,11 +212,11 @@
 }
 
 
-/* 
-  WKSSVC_NETRUSEENUM 
+/*
+  wkssvc_NetrUseEnum
 */
-static WERROR dcesrv_WKSSVC_NETRUSEENUM(struct dcesrv_call_state *dce_call, 
TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRUSEENUM *r)
+static WERROR dcesrv_wkssvc_NetrUseEnum(struct dcesrv_call_state *dce_call, 
TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrUseEnum *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 09:58:18 UTC 
(rev 26145)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 10:07:00 UTC 
(rev 26146)
@@ -242,6 +242,62 @@
return true;
 }
 
+static bool test_NetrUseEnum(struct torture_context *tctx,
+struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrUseEnum r;
+   uint32_t handle = 0;
+   uint32_t entries_read = 0;
+   struct wkssvc_NetrUseEnumInfo info;
+   struct wkssvc_NetrUseEnumCtr0 *use0;
+   struct wkssvc_NetrUseEnumCtr1 *use1;
+   struct wkssvc_NetrUseEnumCtr2 *use2;
+   uint32_t levels[] = { 0, 1, 2 };
+   int i;
+
+   for (i=0; iARRAY_SIZE(levels); i++) {
+
+   ZERO_STRUCT(info);
+
+   info.level = levels[i];
+   switch (info.level) {
+   case 0

svn commit: samba r26151 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/wkssvc torture/rpc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 10:34:53 + (Tue, 27 Nov 2007)
New Revision: 26151

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26151

Log:
Add IDL and torture test for wkssvc_NetrValidateName() and
wkssvc_NetrValidateName2().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 10:29:19 UTC 
(rev 26150)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 10:34:53 UTC 
(rev 26151)
@@ -404,8 +404,23 @@
 
/*/
/* Function0x13  */
-   WERROR WKSSVC_NETRVALIDATENAME ();
+   typedef enum {
+   NetSetupUnknown = 0,
+   NetSetupMachine = 1,
+   NetSetupWorkgroup = 2,
+   NetSetupDomain = 3,
+   NetSetupNonExistentDomain = 4,
+   NetSetupDnsMachine = 5
+   } wkssvc_NetValidateNameType;
 
+   WERROR wkssvc_NetrValidateName(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in] [ref] [string,charset(UTF16)] uint16 *name,
+   [in] [string,charset(UTF16)] uint16 *Account,
+   [in] [string,charset(UTF16)] uint16 *Password,
+   [in] wkssvc_NetValidateNameType name_type
+   );
+
/*/
/* Function0x14  */
WERROR WKSSVC_NETRGETJOININFORMATION ();
@@ -482,7 +497,13 @@
 
/*/
/* Function0x19  */
-   WERROR WKSSVC_NETRVALIDATENAME2 ();
+   WERROR wkssvc_NetrValidateName2(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in] [ref] [string,charset(UTF16)] uint16 *name,
+   [in] [string,charset(UTF16)] uint16 *Account,
+   [in] wkssvc_PasswordBuffer *EncryptedPassword,
+   [in] wkssvc_NetValidateNameType name_type
+   );
 
/*/
/* Function0x1a  */

Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
10:29:19 UTC (rev 26150)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
10:34:53 UTC (rev 26151)
@@ -292,11 +292,11 @@
 }
 
 
-/* 
-  WKSSVC_NETRVALIDATENAME 
+/*
+  wkssvc_NetrValidateName
 */
-static WERROR dcesrv_WKSSVC_NETRVALIDATENAME(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRVALIDATENAME *r)
+static WERROR dcesrv_wkssvc_NetrValidateName(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrValidateName *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }
@@ -352,11 +352,11 @@
 }
 
 
-/* 
-  WKSSVC_NETRVALIDATENAME2 
+/*
+  wkssvc_NetrValidateName2
 */
-static WERROR dcesrv_WKSSVC_NETRVALIDATENAME2(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRVALIDATENAME2 *r)
+static WERROR dcesrv_wkssvc_NetrValidateName2(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrValidateName2 *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 10:29:19 UTC 
(rev 26150)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 10:34:53 UTC 
(rev 26151)
@@ -504,6 +504,66 @@
return true;
 }
 
+static bool test_NetrValidateName(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrValidateName r;
+   uint16_t levels[] = {0,1,2,3,4,5};
+   int i;
+
+   for (i=0; iARRAY_SIZE(levels); i++) {
+
+   r.in.server_name = talloc_asprintf(tctx, %s, 
dcerpc_server_name(p));
+   r.in.name = lp_workgroup(global_loadparm);
+   r.in.Account = NULL;
+   r.in.Password = NULL;
+   r.in.name_type = levels[i];
+
+   torture_comment(tctx, testing NetrValidateName level %u\n,
+   r.in.name_type);
+
+   status = dcerpc_wkssvc_NetrValidateName(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrValidateName failed);
+   torture_assert_werr_equal(tctx, r.out.result,
+ WERR_NOT_SUPPORTED

svn commit: samba r26154 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/wkssvc torture/rpc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 11:14:51 + (Tue, 27 Nov 2007)
New Revision: 26154

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26154

Log:
Add IDL and torture test for wkssvc_NetrWorkstationStatistics(). A lot of
unknowns, I know...

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 11:04:51 UTC 
(rev 26153)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 11:14:51 UTC 
(rev 26154)
@@ -376,8 +376,57 @@
 
/*/
/* Function0x0d  */
-   WERROR WKSSVC_NETRWORKSTATIONSTATISTICSGET ();
+   typedef struct {
+   hyper unknown1;
+   hyper unknown2;
+   hyper unknown3;
+   hyper unknown4;
+   hyper unknown5;
+   hyper unknown6;
+   hyper unknown7;
+   hyper unknown8;
+   hyper unknown9;
+   hyper unknown10;
+   hyper unknown11;
+   hyper unknown12;
+   hyper unknown13;
+   uint32 unknown14;
+   uint32 unknown15;
+   uint32 unknown16;
+   uint32 unknown17;
+   uint32 unknown18;
+   uint32 unknown19;
+   uint32 unknown20;
+   uint32 unknown21;
+   uint32 unknown22;
+   uint32 unknown23;
+   uint32 unknown24;
+   uint32 unknown25;
+   uint32 unknown26;
+   uint32 unknown27;
+   uint32 unknown28;
+   uint32 unknown29;
+   uint32 unknown30;
+   uint32 unknown31;
+   uint32 unknown32;
+   uint32 unknown33;
+   uint32 unknown34;
+   uint32 unknown35;
+   uint32 unknown36;
+   uint32 unknown37;
+   uint32 unknown38;
+   uint32 unknown39;
+   uint32 unknown40;
+   } wkssvc_NetrWorkstationStatistics;
 
+   WERROR wkssvc_NetrWorkstationStatisticsGet(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in] [string,charset(UTF16)] uint16 *unknown2,
+   [in] uint32 unknown3,
+   [in] uint32 unknown4,
+   [out] [ref] wkssvc_NetrWorkstationStatistics **info
+   );
+
/*/
/* Function0x0e  */
WERROR wkssvc_NetrLogonDomainNameAdd(

Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
11:04:51 UTC (rev 26153)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
11:14:51 UTC (rev 26154)
@@ -232,11 +232,11 @@
 }
 
 
-/* 
-  WKSSVC_NETRWORKSTATIONSTATISTICSGET 
+/*
+  wkssvc_NetrWorkstationStatisticsGet
 */
-static WERROR dcesrv_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct 
dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRWORKSTATIONSTATISTICSGET *r)
+static WERROR dcesrv_wkssvc_NetrWorkstationStatisticsGet(struct 
dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrWorkstationStatisticsGet *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 11:04:51 UTC 
(rev 26153)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 11:14:51 UTC 
(rev 26154)
@@ -716,6 +716,30 @@
return true;
 }
 
+static bool test_NetrWorkstationStatisticsGet(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrWorkstationStatisticsGet r;
+   struct wkssvc_NetrWorkstationStatistics *info;
+
+   ZERO_STRUCT(r);
+
+   info = talloc_zero(tctx, struct wkssvc_NetrWorkstationStatistics);
+
+   r.in.server_name = dcerpc_server_name(p);
+   r.out.info = info;
+
+   torture_comment(tctx, testing NetrWorkstationStatisticsGet\n);
+
+   status = dcerpc_wkssvc_NetrWorkstationStatisticsGet(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrWorkstationStatisticsGet failed);
+   torture_assert_werr_ok(tctx, r.out.result,
+  NetrWorkstationStatisticsGet failed);
+   return true;
+}
+
 struct torture_suite *torture_rpc_wkssvc(TALLOC_CTX

svn commit: samba r26155 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/wkssvc torture/rpc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 11:20:34 + (Tue, 27 Nov 2007)
New Revision: 26155

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26155

Log:
Add IDL and torture teset for wkssvc_NetrMessageBufferSend().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 11:14:51 UTC 
(rev 26154)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 11:20:34 UTC 
(rev 26155)
@@ -372,7 +372,13 @@
 
/*/
/* Function0x0c  */
-   WERROR WKSSVC_NETRMESSAGEBUFFERSEND ();
+   WERROR wkssvc_NetrMessageBufferSend(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in,ref] [string,charset(UTF16)] uint16 *message_name,
+   [in] [string,charset(UTF16)] uint16 *message_sender_name,
+   [in] [size_is(message_size)] [ref] uint8 *message_buffer,
+   [in] uint32 message_size
+   );
 
/*/
/* Function0x0d  */

Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
11:14:51 UTC (rev 26154)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
11:20:34 UTC (rev 26155)
@@ -222,11 +222,11 @@
 }
 
 
-/* 
-  WKSSVC_NETRMESSAGEBUFFERSEND 
+/*
+  wkssvc_NetrMessageBufferSend
 */
-static WERROR dcesrv_WKSSVC_NETRMESSAGEBUFFERSEND(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRMESSAGEBUFFERSEND *r)
+static WERROR dcesrv_wkssvc_NetrMessageBufferSend(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrMessageBufferSend *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 11:14:51 UTC 
(rev 26154)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 11:20:34 UTC 
(rev 26155)
@@ -28,6 +28,7 @@
 #define SMBTORTURE_ALTERNATE_NAME smbtrt_altname
 #define SMBTORTURE_TRANSPORT_NAME \\Device\\smbtrt_transport_name
 #define SMBTORTURE_USE_NAME S:
+#define SMBTORTURE_MESSAGE smbtrt_message
 
 static bool test_NetWkstaGetInfo(struct torture_context *tctx,
 struct dcerpc_pipe *p)
@@ -740,6 +741,35 @@
return true;
 }
 
+/* only succeeds as long as the local messenger service is running - Guenther 
*/
+
+static bool test_NetrMessageBufferSend(struct torture_context *tctx,
+  struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrMessageBufferSend r;
+   const char *message = SMBTORTURE_MESSAGE;
+   size_t size;
+   uint8_t *msg;
+
+   size = push_ucs2_talloc(tctx, (void **)msg, message);
+
+   r.in.server_name = dcerpc_server_name(p);
+   r.in.message_name = dcerpc_server_name(p);
+   r.in.message_sender_name = dcerpc_server_name(p);
+   r.in.message_buffer = msg;
+   r.in.message_size = size;
+
+   torture_comment(tctx, testing NetrMessageBufferSend\n);
+
+   status = dcerpc_wkssvc_NetrMessageBufferSend(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrMessageBufferSend failed);
+   torture_assert_werr_ok(tctx, r.out.result,
+  NetrMessageBufferSend failed);
+   return true;
+}
+
 struct torture_suite *torture_rpc_wkssvc(TALLOC_CTX *mem_ctx)
 {
struct torture_suite *suite;
@@ -790,6 +820,8 @@
 
torture_rpc_tcase_add_test(tcase, NetrWorkstationStatisticsGet,
   test_NetrWorkstationStatisticsGet);
+   torture_rpc_tcase_add_test(tcase, NetrMessageBufferSend,
+  test_NetrMessageBufferSend);
 
return suite;
 }



svn commit: samba r26156 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 11:21:26 + (Tue, 27 Nov 2007)
New Revision: 26156

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26156

Log:
Choose a more speaking message in test_NetrMessageBufferSend().

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 11:20:34 UTC 
(rev 26155)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 11:21:26 UTC 
(rev 26156)
@@ -28,7 +28,7 @@
 #define SMBTORTURE_ALTERNATE_NAME smbtrt_altname
 #define SMBTORTURE_TRANSPORT_NAME \\Device\\smbtrt_transport_name
 #define SMBTORTURE_USE_NAME S:
-#define SMBTORTURE_MESSAGE smbtrt_message
+#define SMBTORTURE_MESSAGE You are currently tortured by Samba
 
 static bool test_NetWkstaGetInfo(struct torture_context *tctx,
 struct dcerpc_pipe *p)



svn commit: samba r26158 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/wkssvc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 11:49:51 + (Tue, 27 Nov 2007)
New Revision: 26158

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26158

Log:
Add IDL for wkssvc_NetrRenameMachineInDomain().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 11:31:09 UTC 
(rev 26157)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 11:49:51 UTC 
(rev 26158)
@@ -455,8 +455,19 @@
 
/*/
/* Function0x12  */
-   WERROR WKSSVC_NETRRENAMEMACHINEINDOMAIN ();
+   typedef [bitmap32bit] bitmap {
+   /* TRUE: create the account in the domain */
+   WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE= 0x0002
+   } wkssvc_renameflags;
 
+   WERROR wkssvc_NetrRenameMachineInDomain(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in] [string,charset(UTF16)] uint16 *NewMachineName,
+   [in] [string,charset(UTF16)] uint16 *Account,
+   [in] [string,charset(UTF16)] uint16 *password,
+   [in] wkssvc_renameflags RenameOptions
+   );
+
/*/
/* Function0x13  */
typedef enum {
@@ -535,11 +546,6 @@
[in] wkssvc_joinflags unjoin_flags
);
 
-   typedef [bitmap32bit] bitmap {
-   /* TRUE: create the account in the domain */
-   WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE= 0x0002
-   } wkssvc_renameflags;
-
/*/
/* Function0x18  */
WERROR wkssvc_NetrRenameMachineInDomain2(

Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
11:31:09 UTC (rev 26157)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
11:49:51 UTC (rev 26158)
@@ -282,11 +282,11 @@
 }
 
 
-/* 
-  WKSSVC_NETRRENAMEMACHINEINDOMAIN 
+/*
+  wkssvc_NetrRenameMachineInDomain
 */
-static WERROR dcesrv_WKSSVC_NETRRENAMEMACHINEINDOMAIN(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRRENAMEMACHINEINDOMAIN *r)
+static WERROR dcesrv_wkssvc_NetrRenameMachineInDomain(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrRenameMachineInDomain *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }
@@ -342,8 +342,8 @@
 }
 
 
-/* 
-  WKSSVC_NETRRENAMEMACHINEINDOMAIN2 
+/*
+  wkssvc_NetrRenameMachineInDomain2
 */
 static WERROR dcesrv_wkssvc_NetrRenameMachineInDomain2(struct 
dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
   struct wkssvc_NetrRenameMachineInDomain2 *r)



svn commit: samba r26159 - in branches/SAMBA_4_0/source/rpc_server/wkssvc: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 11:51:22 + (Tue, 27 Nov 2007)
New Revision: 26159

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26159

Log:
Align to coding conventions.

Guenther

Modified:
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
11:49:51 UTC (rev 26158)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
11:51:22 UTC (rev 26159)
@@ -1,20 +1,20 @@
-/* 
+/*
Unix SMB/CIFS implementation.
 
endpoint server for the wkssvc pipe
 
Copyright (C) Stefan (metze) Metzmacher 2004
-   
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-   
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
-   
+
You should have received a copy of the GNU General Public License
along with this program.  If not, see http://www.gnu.org/licenses/.
 */
@@ -24,8 +24,8 @@
 #include librpc/gen_ndr/ndr_wkssvc.h
 #include rpc_server/common/common.h
 
-/* 
-  wkssvc_NetWkstaGetInfo 
+/*
+  wkssvc_NetWkstaGetInfo
 */
 static WERROR dcesrv_wkssvc_NetWkstaGetInfo(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
   struct wkssvc_NetWkstaGetInfo *r)
@@ -42,7 +42,7 @@
case 100:
{
struct wkssvc_NetWkstaInfo100 *info100;
-   
+
info100 = talloc(mem_ctx, struct wkssvc_NetWkstaInfo100);
W_ERROR_HAVE_NO_MEMORY(info100);
 
@@ -92,8 +92,8 @@
 }
 
 
-/* 
-  wkssvc_NetWkstaSetInfo 
+/*
+  wkssvc_NetWkstaSetInfo
 */
 static WERROR dcesrv_wkssvc_NetWkstaSetInfo(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
   struct wkssvc_NetWkstaSetInfo *r)
@@ -102,7 +102,7 @@
 }
 
 
-/* 
+/*
   wkssvc_NetWkstaEnumUsers
 */
 static WERROR dcesrv_wkssvc_NetWkstaEnumUsers(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
@@ -132,8 +132,8 @@
 }
 
 
-/* 
-  wkssvc_NetWkstaTransportEnum 
+/*
+  wkssvc_NetWkstaTransportEnum
 */
 static WERROR dcesrv_wkssvc_NetWkstaTransportEnum(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
   struct wkssvc_NetWkstaTransportEnum *r)
@@ -262,8 +262,8 @@
 }
 
 
-/* 
-  WKSSVC_NETRJOINDOMAIN 
+/*
+  WKSSVC_NETRJOINDOMAIN
 */
 static WERROR dcesrv_WKSSVC_NETRJOINDOMAIN(struct dcesrv_call_state *dce_call, 
TALLOC_CTX *mem_ctx,
   struct WKSSVC_NETRJOINDOMAIN *r)
@@ -272,8 +272,8 @@
 }
 
 
-/* 
-  WKSSVC_NETRUNJOINDOMAIN 
+/*
+  WKSSVC_NETRUNJOINDOMAIN
 */
 static WERROR dcesrv_WKSSVC_NETRUNJOINDOMAIN(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
   struct WKSSVC_NETRUNJOINDOMAIN *r)
@@ -302,8 +302,8 @@
 }
 
 
-/* 
-  WKSSVC_NETRGETJOININFORMATION 
+/*
+  WKSSVC_NETRGETJOININFORMATION
 */
 static WERROR dcesrv_WKSSVC_NETRGETJOININFORMATION(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
   struct WKSSVC_NETRGETJOININFORMATION *r)
@@ -312,8 +312,8 @@
 }
 
 
-/* 
-  WKSSVC_NETRGETJOINABLEOUS 
+/*
+  WKSSVC_NETRGETJOINABLEOUS
 */
 static WERROR dcesrv_WKSSVC_NETRGETJOINABLEOUS(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
   struct WKSSVC_NETRGETJOINABLEOUS *r)
@@ -322,8 +322,8 @@
 }
 
 
-/* 
-  WKSSVC_NETRJOINDOMAIN2 
+/*
+  WKSSVC_NETRJOINDOMAIN2
 */
 static WERROR dcesrv_wkssvc_NetrJoinDomain2(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
   struct wkssvc_NetrJoinDomain2 *r)
@@ -332,8 +332,8 @@
 }
 
 
-/* 
-  WKSSVC_NETRUNJOINDOMAIN2 
+/*
+  WKSSVC_NETRUNJOINDOMAIN2
 */
 static WERROR dcesrv_wkssvc_NetrUnjoinDomain2(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
   struct wkssvc_NetrUnjoinDomain2 *r)
@@ -362,8 +362,8 @@
 }
 
 
-/* 
-  WKSSVC_NETRGETJOINABLEOUS2 
+/*
+  WKSSVC_NETRGETJOINABLEOUS2
 */
 static WERROR dcesrv_WKSSVC_NETRGETJOINABLEOUS2(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
   struct WKSSVC_NETRGETJOINABLEOUS2 *r)



svn commit: samba r26160 - in branches/SAMBA_4_0/source/libcli/util: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 11:58:33 + (Tue, 27 Nov 2007)
New Revision: 26160

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26160

Log:
Add WERR_NAME_NOT_FOUND.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/util/doserr.c
   branches/SAMBA_4_0/source/libcli/util/werror.h


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/util/doserr.c
===
--- branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-11-27 11:51:22 UTC 
(rev 26159)
+++ branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-11-27 11:58:33 UTC 
(rev 26160)
@@ -133,6 +133,7 @@
{ WERR_FRS_INSUFFICIENT_PRIV, WERR_FRS_INSUFFICIENT_PRIV },
{ WERR_RPC_E_REMOTE_DISABLED, WERR_RPC_E_REMOTE_DISABLED },
{ WERR_NOT_CONNECTED, WERR_NOT_CONNECTED },
+   { WERR_NAME_NOT_FOUND, WERR_NAME_NOT_FOUND},
{ NULL, W_ERROR(0) }
 };
 

Modified: branches/SAMBA_4_0/source/libcli/util/werror.h
===
--- branches/SAMBA_4_0/source/libcli/util/werror.h  2007-11-27 11:51:22 UTC 
(rev 26159)
+++ branches/SAMBA_4_0/source/libcli/util/werror.h  2007-11-27 11:58:33 UTC 
(rev 26160)
@@ -115,6 +115,7 @@
 #define WERR_JOB_NOT_FOUND W_ERROR(2151)
 #define WERR_DEST_NOT_FOUND W_ERROR(2152)
 #define WERR_NOT_CONNECTED W_ERROR(2250)
+#define WERR_NAME_NOT_FOUND W_ERROR(2273)
 #define WERR_SESSION_NOT_FOUND W_ERROR(2312)
 #define WERR_FID_NOT_FOUND W_ERROR(2314)
 #define WERR_NOT_LOCAL_DOMAIN W_ERROR(2320)



svn commit: samba r26161 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 12:04:03 + (Tue, 27 Nov 2007)
New Revision: 26161

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26161

Log:
Add (dangerous) torture tests for wkssvc_NetrRenameMachineInDomain() and
wkssvc_NetrRenameMachineInDomain2().

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 11:58:33 UTC 
(rev 26160)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 12:04:03 UTC 
(rev 26161)
@@ -25,6 +25,7 @@
 #include lib/cmdline/popt_common.h
 #include param/param.h
 
+#define SMBTORTURE_MACHINE_NAME smbtrt_name
 #define SMBTORTURE_ALTERNATE_NAME smbtrt_altname
 #define SMBTORTURE_TRANSPORT_NAME \\Device\\smbtrt_transport_name
 #define SMBTORTURE_USE_NAME S:
@@ -812,7 +813,120 @@
return true;
 }
 
+static bool test_NetrRenameMachineInDomain(struct torture_context *tctx,
+  struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrRenameMachineInDomain r;
 
+   r.in.server_name = dcerpc_server_name(p);
+   r.in.NewMachineName = SMBTORTURE_MACHINE_NAME;
+   r.in.Account = NULL;
+   r.in.password = NULL;
+   r.in.RenameOptions = 0;
+
+   torture_comment(tctx, testing NetrRenameMachineInDomain\n);
+
+   status = dcerpc_wkssvc_NetrRenameMachineInDomain(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrRenameMachineInDomain failed);
+   torture_assert_werr_equal(tctx, r.out.result, WERR_NOT_SUPPORTED,
+ NetrRenameMachineInDomain failed);
+   return true;
+}
+
+static bool test_NetrRenameMachineInDomain2_name(struct torture_context *tctx,
+struct dcerpc_pipe *p,
+const char *new_name)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrRenameMachineInDomain2 r;
+
+   r.in.server_name = dcerpc_server_name(p);
+   r.in.NewMachineName = new_name;
+   r.in.Account = NULL;
+   r.in.EncryptedPassword = NULL;
+   r.in.RenameOptions = 0;
+
+   status = dcerpc_wkssvc_NetrRenameMachineInDomain2(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrRenameMachineInDomain2 failed);
+   torture_assert_werr_ok(tctx, r.out.result,
+  NetrRenameMachineInDomain2 failed);
+   return true;
+}
+
+static bool test_NetrRenameMachineInDomain2(struct torture_context *tctx,
+   struct dcerpc_pipe *p)
+{
+   const char **names_o = NULL, **names = NULL;
+   int num_names_o = 0, num_names = 0;
+
+   torture_comment(tctx, testing NetrRenameMachineInDomain2\n);
+
+   return test_NetrRenameMachineInDomain2_name(tctx, p, 
w2k3dc-rhber.ber.redhat.com);
+
+   if (!test_NetrEnumerateComputerNames_level(tctx, p,
+  NetPrimaryComputerName,
+  names_o, num_names_o))
+   {
+   return false;
+   }
+
+   if (num_names_o != 1) {
+   return false;
+   }
+
+   if (!test_NetrRenameMachineInDomain2_name(tctx, p,
+ SMBTORTURE_MACHINE_NAME))
+   {
+   return false;
+   }
+
+   if (!test_NetrEnumerateComputerNames_level(tctx, p,
+  NetPrimaryComputerName,
+  names, num_names))
+   {
+   return false;
+   }
+
+   if (num_names != 1) {
+   return false;
+   }
+
+   if (strequal(names[0], names_o[0])) {
+   test_NetrRenameMachineInDomain2_name(tctx, p, names_o[0]);
+   return false;
+   }
+
+   if (!strequal(names[0], SMBTORTURE_MACHINE_NAME)) {
+   test_NetrRenameMachineInDomain2_name(tctx, p, names_o[0]);
+   return false;
+   }
+
+   if (!test_NetrRenameMachineInDomain2_name(tctx, p, names_o[0]))
+   {
+   return false;
+   }
+
+   if (!test_NetrEnumerateComputerNames_level(tctx, p,
+  NetPrimaryComputerName,
+  names, num_names))
+   {
+   return false;
+   }
+
+   if (num_names != 1) {
+   return false;
+   }
+
+   if (!strequal(names[0], names_o[0])) {
+   return false;
+   }
+
+   return true;
+}
+
 static bool test_NetrWorkstationStatisticsGet(struct torture_context *tctx,
  struct dcerpc_pipe *p

svn commit: samba r26162 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 12:04:48 + (Tue, 27 Nov 2007)
New Revision: 26162

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26162

Log:
Remove accidental commit.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 12:04:03 UTC 
(rev 26161)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 12:04:48 UTC 
(rev 26162)
@@ -864,8 +864,6 @@
 
torture_comment(tctx, testing NetrRenameMachineInDomain2\n);
 
-   return test_NetrRenameMachineInDomain2_name(tctx, p, 
w2k3dc-rhber.ber.redhat.com);
-
if (!test_NetrEnumerateComputerNames_level(tctx, p,
   NetPrimaryComputerName,
   names_o, num_names_o))



svn commit: samba r26163 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/wkssvc torture/rpc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 12:08:01 + (Tue, 27 Nov 2007)
New Revision: 26163

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26163

Log:
Add IDL and torture test for wkssvc_NetrGetJoinInformation().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:04:48 UTC 
(rev 26162)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:08:01 UTC 
(rev 26163)
@@ -489,8 +489,19 @@
 
/*/
/* Function0x14  */
-   WERROR WKSSVC_NETRGETJOININFORMATION ();
+   typedef enum {
+   NetSetupUnknownStatus = 0,
+   NetSetupUnjoined = 1,
+   NetSetupWorkgroupName = 2,
+   NetSetupDomainName = 3
+   } wkssvc_NetJoinStatus;
 
+   WERROR wkssvc_NetrGetJoinInformation(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in,out,ref] [string,charset(UTF16)] uint16 **name_buffer,
+   [out,ref] wkssvc_NetJoinStatus *name_type
+   );
+
/*/
/* Function0x15  */
WERROR WKSSVC_NETRGETJOINABLEOUS ();

Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
12:04:48 UTC (rev 26162)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
12:08:01 UTC (rev 26163)
@@ -303,10 +303,10 @@
 
 
 /*
-  WKSSVC_NETRGETJOININFORMATION
+  wkssvc_NetrGetJoinInformation
 */
-static WERROR dcesrv_WKSSVC_NETRGETJOININFORMATION(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRGETJOININFORMATION *r)
+static WERROR dcesrv_wkssvc_NetrGetJoinInformation(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrGetJoinInformation *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 12:04:48 UTC 
(rev 26162)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 12:08:01 UTC 
(rev 26163)
@@ -978,6 +978,28 @@
return true;
 }
 
+static bool test_NetrGetJoinInformation(struct torture_context *tctx,
+   struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrGetJoinInformation r;
+   enum wkssvc_NetJoinStatus join_status;
+   const char *name_buffer = ;
+
+   r.in.server_name = dcerpc_server_name(p);
+   r.in.name_buffer = r.out.name_buffer = name_buffer;
+   r.out.name_type = join_status;
+
+   torture_comment(tctx, testing NetrGetJoinInformation\n);
+
+   status = dcerpc_wkssvc_NetrGetJoinInformation(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status,
+  NetrGetJoinInformation failed);
+   torture_assert_werr_ok(tctx, r.out.result,
+  NetrGetJoinInformation failed);
+   return true;
+}
+
 struct torture_suite *torture_rpc_wkssvc(TALLOC_CTX *mem_ctx)
 {
struct torture_suite *suite;
@@ -1036,6 +1058,9 @@
torture_rpc_tcase_add_test(tcase, NetrEnumerateComputerNames,
   test_NetrEnumerateComputerNames);
 
+   torture_rpc_tcase_add_test(tcase, NetrGetJoinInformation,
+  test_NetrGetJoinInformation);
+
torture_rpc_tcase_add_test(tcase, NetrWorkstationStatisticsGet,
   test_NetrWorkstationStatisticsGet);
torture_rpc_tcase_add_test(tcase, NetrMessageBufferSend,



svn commit: samba r26164 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/wkssvc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 12:11:49 + (Tue, 27 Nov 2007)
New Revision: 26164

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26164

Log:
Add IDL for wkssvc_NetrJoinDomain() and wkssvc_NetrUnjoinDomain().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:08:01 UTC 
(rev 26163)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:11:49 UTC 
(rev 26164)
@@ -447,11 +447,23 @@
 
/*/
/* Function0x10  */
-   WERROR WKSSVC_NETRJOINDOMAIN ();
+   WERROR wkssvc_NetrJoinDomain(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in,ref] [string,charset(UTF16)] uint16 *domain_name,
+   [in] [string,charset(UTF16)] uint16 *account_ou,
+   [in] [string,charset(UTF16)] uint16 *Account,
+   [in] [string,charset(UTF16)] uint16 *unknown,
+   [in] wkssvc_joinflags join_flags
+   );
 
/*/
/* Function0x11  */
-   WERROR WKSSVC_NETRUNJOINDOMAIN ();
+   WERROR wkssvc_NetrUnjoinDomain(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in] [string,charset(UTF16)] uint16 *Account,
+   [in] [string,charset(UTF16)] uint16 *password,
+   [in] wkssvc_joinflags unjoin_flags
+   );
 
/*/
/* Function0x12  */

Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
12:08:01 UTC (rev 26163)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
12:11:49 UTC (rev 26164)
@@ -263,20 +263,20 @@
 
 
 /*
-  WKSSVC_NETRJOINDOMAIN
+  wkssvc_NetrJoinDomain
 */
-static WERROR dcesrv_WKSSVC_NETRJOINDOMAIN(struct dcesrv_call_state *dce_call, 
TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRJOINDOMAIN *r)
+static WERROR dcesrv_wkssvc_NetrJoinDomain(struct dcesrv_call_state *dce_call, 
TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrJoinDomain *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }
 
 
 /*
-  WKSSVC_NETRUNJOINDOMAIN
+  wkssvc_NetrUnjoinDomain
 */
-static WERROR dcesrv_WKSSVC_NETRUNJOINDOMAIN(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRUNJOINDOMAIN *r)
+static WERROR dcesrv_wkssvc_NetrUnjoinDomain(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrUnjoinDomain *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }



svn commit: samba r26165 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/wkssvc torture/rpc

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 12:18:23 + (Tue, 27 Nov 2007)
New Revision: 26165

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26165

Log:
Add IDL and torture test for wkssvc_NetrGetJoinableOus() and
wkssvc_NetrGetJoinableOus2() (both unavailable remotely).

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:11:49 UTC 
(rev 26164)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:18:23 UTC 
(rev 26165)
@@ -516,7 +516,14 @@
 
/*/
/* Function0x15  */
-   WERROR WKSSVC_NETRGETJOINABLEOUS ();
+   WERROR wkssvc_NetrGetJoinableOus(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in,ref] [string,charset(UTF16)] uint16 *domain_name,
+   [in] [string,charset(UTF16)] uint16 *Account,
+   [in] [string,charset(UTF16)] uint16 *unknown,
+   [in,out,ref] uint32 *num_ous,
+   [out,ref] [size_is(*num_ous)] [string,charset(UTF16)] uint16 
***ous
+   );
 
typedef struct {
uint8 data[524];
@@ -591,7 +598,14 @@
 
/*/
/* Function0x1a  */
-   WERROR WKSSVC_NETRGETJOINABLEOUS2 ();
+   WERROR wkssvc_NetrGetJoinableOus2(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in,ref] [string,charset(UTF16)] uint16 *domain_name,
+   [in] [string,charset(UTF16)] uint16 *Account,
+   [in] wkssvc_PasswordBuffer *EncryptedPassword,
+   [in,out,ref] uint32 *num_ous,
+   [out,ref] [size_is(*num_ous)] [string,charset(UTF16)] uint16 
***ous
+   );
 
/*/
/* Function0x1b  */

Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
12:11:49 UTC (rev 26164)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
12:18:23 UTC (rev 26165)
@@ -313,10 +313,10 @@
 
 
 /*
-  WKSSVC_NETRGETJOINABLEOUS
+  wkssvc_NetrGetJoinableOus
 */
-static WERROR dcesrv_WKSSVC_NETRGETJOINABLEOUS(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRGETJOINABLEOUS *r)
+static WERROR dcesrv_wkssvc_NetrGetJoinableOus(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrGetJoinableOus *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }
@@ -363,10 +363,10 @@
 
 
 /*
-  WKSSVC_NETRGETJOINABLEOUS2
+  wkssvc_NetrGetJoinableOus2
 */
-static WERROR dcesrv_WKSSVC_NETRGETJOINABLEOUS2(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct WKSSVC_NETRGETJOINABLEOUS2 *r)
+static WERROR dcesrv_wkssvc_NetrGetJoinableOus2(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct wkssvc_NetrGetJoinableOus2 *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 12:11:49 UTC 
(rev 26164)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 12:18:23 UTC 
(rev 26165)
@@ -1000,6 +1000,57 @@
return true;
 }
 
+static bool test_NetrGetJoinableOus(struct torture_context *tctx,
+   struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrGetJoinableOus r;
+   uint32_t num_ous = 0;
+   const char **ous = NULL;
+
+   r.in.server_name = dcerpc_server_name(p);
+   r.in.domain_name = lp_workgroup(global_loadparm);
+   r.in.Account = NULL;
+   r.in.unknown = NULL;
+   r.in.num_ous = r.out.num_ous = num_ous;
+   r.out.ous = ous;
+
+   torture_comment(tctx, testing NetrGetJoinableOus\n);
+
+   status = dcerpc_wkssvc_NetrGetJoinableOus(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status, NetrGetJoinableOus failed);
+   torture_assert_werr_equal(tctx, r.out.result,
+ WERR_NOT_SUPPORTED,
+ NetrGetJoinableOus failed);
+
+   return true;
+}
+
+static bool test_NetrGetJoinableOus2(struct torture_context *tctx,
+struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct wkssvc_NetrGetJoinableOus2 r;
+   uint32_t num_ous = 0;
+   const char **ous = NULL

svn commit: samba r26167 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 12:26:20 + (Tue, 27 Nov 2007)
New Revision: 26167

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26167

Log:
Just for completeness, add some more documented wkssvc_NetWkstaInfo info level
uint32s.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:23:34 UTC 
(rev 26166)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:26:20 UTC 
(rev 26167)
@@ -46,6 +46,8 @@
uint32 logged_on_users;
} wkssvc_NetWkstaInfo102;
 
+   /* FIXME: 302, 402 */
+
typedef struct {
uint32 char_wait;
uint32 collection_time;
@@ -112,10 +114,108 @@
uint32 errorlog_sz;
} wkssvc_NetWkstaInfo1027;
 
+   /* downlevel */
typedef struct {
+   uint32 print_buf_time;
+   } wkssvc_NetWkstaInfo1028;
+
+   /* downlevel */
+   typedef struct {
+   uint32 wrk_heuristics;
+   } wkssvc_NetWkstaInfo1032;
+
+   typedef struct {
uint32 max_threads;
} wkssvc_NetWkstaInfo1033;
 
+   typedef struct {
+   uint32 lock_quota;
+   } wkssvc_NetWkstaInfo1041;
+
+   typedef struct {
+   uint32 lock_increment;
+   } wkssvc_NetWkstaInfo1042;
+
+   typedef struct {
+   uint32 lock_maximum;
+   } wkssvc_NetWkstaInfo1043;
+
+   typedef struct {
+   uint32 pipe_increment;
+   } wkssvc_NetWkstaInfo1044;
+
+   typedef struct {
+   uint32 pipe_maximum;
+   } wkssvc_NetWkstaInfo1045;
+
+   typedef struct {
+   uint32 dormant_file_limit;
+   } wkssvc_NetWkstaInfo1046;
+
+   typedef struct {
+   uint32 cache_file_timeout;
+   } wkssvc_NetWkstaInfo1047;
+
+   typedef struct {
+   uint32 use_opportunistic_locking;
+   } wkssvc_NetWkstaInfo1048;
+
+   typedef struct {
+   uint32 use_unlock_behind;
+   } wkssvc_NetWkstaInfo1049;
+
+   typedef struct {
+   uint32 use_close_behind;
+   } wkssvc_NetWkstaInfo1050;
+
+   typedef struct {
+   uint32 buf_named_pipes;
+   } wkssvc_NetWkstaInfo1051;
+
+   typedef struct {
+   uint32 use_lock_read_unlock;
+   } wkssvc_NetWkstaInfo1052;
+
+   typedef struct {
+   uint32 utilize_nt_caching;
+   } wkssvc_NetWkstaInfo1053;
+
+   typedef struct {
+   uint32 use_raw_read;
+   } wkssvc_NetWkstaInfo1054;
+
+   typedef struct {
+   uint32 use_raw_write;
+   } wkssvc_NetWkstaInfo1055;
+
+   typedef struct {
+   uint32 use_write_raw_data;
+   } wkssvc_NetWkstaInfo1056;
+
+   typedef struct {
+   uint32 use_encryption;
+   } wkssvc_NetWkstaInfo1057;
+
+   typedef struct {
+   uint32 buf_files_deny_write;
+   } wkssvc_NetWkstaInfo1058;
+
+   typedef struct {
+   uint32 buf_read_only_files;
+   } wkssvc_NetWkstaInfo1059;
+
+   typedef struct {
+   uint32 force_core_create_mode;
+   } wkssvc_NetWkstaInfo1060;
+
+   typedef struct {
+   uint32 use_512_byte_max_transfer;
+   } wkssvc_NetWkstaInfo1061;
+
+   typedef struct {
+   uint32 read_ahead_throughput;
+   } wkssvc_NetWkstaInfo1062;
+
typedef union {
[case(100)] wkssvc_NetWkstaInfo100 *info100;
[case(101)] wkssvc_NetWkstaInfo101 *info101;
@@ -128,7 +228,31 @@
[case(1018)] wkssvc_NetWkstaInfo1018 *info1018;
[case(1023)] wkssvc_NetWkstaInfo1023 *info1023;
[case(1027)] wkssvc_NetWkstaInfo1027 *info1027;
+   [case(1028)] wkssvc_NetWkstaInfo1028 *info1028;
+   [case(1032)] wkssvc_NetWkstaInfo1032 *info1032;
[case(1033)] wkssvc_NetWkstaInfo1033 *info1033;
+   [case(1041)] wkssvc_NetWkstaInfo1041 *info1041;
+   [case(1042)] wkssvc_NetWkstaInfo1042 *info1042;
+   [case(1043)] wkssvc_NetWkstaInfo1043 *info1043;
+   [case(1044)] wkssvc_NetWkstaInfo1044 *info1044;
+   [case(1045)] wkssvc_NetWkstaInfo1045 *info1045;
+   [case(1046)] wkssvc_NetWkstaInfo1046 *info1046;
+   [case(1047)] wkssvc_NetWkstaInfo1047 *info1047;
+   [case(1048)] wkssvc_NetWkstaInfo1048 *info1048;
+   [case(1049)] wkssvc_NetWkstaInfo1049 *info1049;
+   [case(1050)] wkssvc_NetWkstaInfo1050 *info1050;
+   [case(1051)] wkssvc_NetWkstaInfo1051 *info1051;
+   [case(1052)] wkssvc_NetWkstaInfo1052 *info1052;
+   [case(1053)] wkssvc_NetWkstaInfo1053 *info1053

svn commit: samba r26168 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 12:27:27 + (Tue, 27 Nov 2007)
New Revision: 26168

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26168

Log:
Add two more documented WKSSVC_JOIN_FLAGS.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:26:20 UTC 
(rev 26167)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:27:27 UTC 
(rev 26168)
@@ -654,6 +654,8 @@
} wkssvc_PasswordBuffer;
 
typedef [bitmap32bit] bitmap {
+   WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME= 0x0400,
+   WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT   = 0x0200,
/* TRUE: defer setting the SPN and dNSHostName until a rename 
operation */
WKSSVC_JOIN_FLAGS_DEFER_SPN = 0x0100,
 



svn commit: samba r26169 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 12:28:38 + (Tue, 27 Nov 2007)
New Revision: 26169

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26169

Log:
Use the NDR_PAHEX flag to print the encrypted wkssvc password buffer.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:27:27 UTC 
(rev 26168)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 12:28:38 UTC 
(rev 26169)
@@ -1,3 +1,5 @@
+#include idl_types.h
+
 /*
   wkssvc interface definitions
 */
@@ -649,7 +651,7 @@
[out,ref] [size_is(*num_ous)] [string,charset(UTF16)] uint16 
***ous
);
 
-   typedef struct {
+   typedef [flag(NDR_PAHEX)] struct {
uint8 data[524];
} wkssvc_PasswordBuffer;
 
@@ -667,7 +669,7 @@
 
/* TRUE: allow the join to complete even if the account already 
exists */
WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED = 0x0020,
-   
+
/* TRUE: this join is part of a w9x upgrade */
WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE = 0x0010,
 
@@ -679,7 +681,7 @@
 
/* TRUE: join domainFALSE: join workgroup */
WKSSVC_JOIN_FLAGS_JOIN_TYPE = 0x0001
-   
+
} wkssvc_joinflags;
 
/*/



svn commit: samba r26170 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 12:56:10 + (Tue, 27 Nov 2007)
New Revision: 26170

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26170

Log:
Put test_NetrUseGetInfo() in the correct order of tests.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 12:28:38 UTC 
(rev 26169)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c  2007-11-27 12:56:10 UTC 
(rev 26170)
@@ -45,12 +45,15 @@
 
for (i=0;iARRAY_SIZE(levels);i++) {
r.in.level = levels[i];
-   torture_comment(tctx, testing NetWkstaGetInfo level %u\n, 
r.in.level);
+   torture_comment(tctx, testing NetWkstaGetInfo level %u\n,
+   r.in.level);
status = dcerpc_wkssvc_NetWkstaGetInfo(p, tctx, r);
torture_assert_ntstatus_ok(tctx, status,
-   talloc_asprintf(tctx, NetWkstaGetInfo level %u 
failed, r.in.level));
+   talloc_asprintf(tctx, NetWkstaGetInfo level %u failed,
+   r.in.level));
torture_assert_werr_ok(tctx, r.out.result,
-   talloc_asprintf(tctx, NetWkstaGetInfo level %u 
failed, r.in.level));
+   talloc_asprintf(tctx, NetWkstaGetInfo level %u failed,
+   r.in.level));
}
 
return true;
@@ -1068,8 +1071,6 @@
   test_NetWkstaTransportEnum);
torture_rpc_tcase_add_test(tcase, NetrWkstaTransportDel,
   test_NetrWkstaTransportDel);
-   torture_rpc_tcase_add_test(tcase, NetrUseGetInfo,
-  test_NetrUseGetInfo);
torture_rpc_tcase_add_test(tcase, NetrWkstaTransportAdd,
   test_NetrWkstaTransportAdd);
 
@@ -1080,6 +1081,8 @@
 
torture_rpc_tcase_add_test(tcase, NetrUseDel,
   test_NetrUseDel);
+   torture_rpc_tcase_add_test(tcase, NetrUseGetInfo,
+  test_NetrUseGetInfo);
torture_rpc_tcase_add_test(tcase, NetrUseEnum,
   test_NetrUseEnum);
torture_rpc_tcase_add_test(tcase, NetrUseAdd,



svn commit: samba r26172 - in branches/SAMBA_4_0/source: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 13:23:01 + (Tue, 27 Nov 2007)
New Revision: 26172

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26172

Log:
Skip testing wkssvc against us, we only have dummy support anyway.

Guenther

Modified:
   branches/SAMBA_4_0/source/samba4-knownfail


Changeset:
Modified: branches/SAMBA_4_0/source/samba4-knownfail
===
--- branches/SAMBA_4_0/source/samba4-knownfail  2007-11-27 12:59:35 UTC (rev 
26171)
+++ branches/SAMBA_4_0/source/samba4-knownfail  2007-11-27 13:23:01 UTC (rev 
26172)
@@ -6,6 +6,7 @@
 RAW-OPLOCK.*/OPLOCK
 RPC-WINREG
 LOCAL-REGISTRY.*/security # Not implemented yet
+RPC-WKSSVC
 RPC-HANDLES.*/lsarpc-shared
 RPC-HANDLES.*/mixed-shared
 RPC-EPMAPPER.*/Insert



svn commit: samba r26176 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-11-27 Thread gd
Author: gd
Date: 2007-11-27 18:13:24 + (Tue, 27 Nov 2007)
New Revision: 26176

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26176

Log:
Fix in,out mismatch in wkssvc_NetrWkstaUserSetInfo().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 17:19:29 UTC 
(rev 26175)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl 2007-11-27 18:13:24 UTC 
(rev 26176)
@@ -339,7 +339,7 @@
WERROR wkssvc_NetrWkstaUserSetInfo(
[in] [string,charset(UTF16)] uint16 *unknown,
[in] uint32 level,
-   [out,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info,
+   [in,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info,
[in,out] uint32 *parm_err
);
 



svn commit: samba r26133 - in branches/SAMBA_4_0/source/libcli/util: .

2007-11-26 Thread gd
Author: gd
Date: 2007-11-26 23:58:39 + (Mon, 26 Nov 2007)
New Revision: 26133

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26133

Log:
Add some more error codes from wkssvc testing.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/util/doserr.c
   branches/SAMBA_4_0/source/libcli/util/werror.h


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/util/doserr.c
===
--- branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-11-26 21:12:01 UTC 
(rev 26132)
+++ branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-11-26 23:58:39 UTC 
(rev 26133)
@@ -41,6 +41,7 @@
{ WERR_FILE_EXISTS, WERR_FILE_EXISTS },
{ WERR_INVALID_PARAM, WERR_INVALID_PARAM },
{ WERR_NOT_SUPPORTED, WERR_NOT_SUPPORTED },
+   { WERR_DUP_NAME, WERR_DUP_NAME },
{ WERR_BAD_PASSWORD, WERR_BAD_PASSWORD },
{ WERR_NOMEM, WERR_NOMEM },
{ WERR_INVALID_NAME, WERR_INVALID_NAME },
@@ -62,6 +63,7 @@
{ WERR_DEST_NOT_FOUND, WERR_DEST_NOT_FOUND },
{ WERR_NOT_LOCAL_DOMAIN, WERR_NOT_LOCAL_DOMAIN },
{ WERR_DOMAIN_CONTROLLER_NOT_FOUND, WERR_DOMAIN_CONTROLLER_NOT_FOUND 
},
+   { WERR_TIME_DIFF_AT_DC, WERR_TIME_DIFF_AT_DC },
{ WERR_SETUP_NOT_JOINED, WERR_SETUP_NOT_JOINED },
{ WERR_SETUP_ALREADY_JOINED, WERR_SETUP_ALREADY_JOINED },
{ WERR_SETUP_DOMAIN_CONTROLLER, WERR_SETUP_DOMAIN_CONTROLLER },
@@ -84,6 +86,7 @@
{ WERR_INVALID_COMPUTERNAME, WERR_INVALID_COMPUTERNAME },
{ WERR_INVALID_DOMAINNAME, WERR_INVALID_DOMAINNAME },
{ WERR_NO_LOGON_SERVERS, WERR_NO_LOGON_SERVERS },
+   { WERR_NO_SUCH_LOGON_SESSION, WERR_NO_SUCH_LOGON_SESSION },
{ WERR_NO_SUCH_PRIVILEGE, WERR_NO_SUCH_PRIVILEGE },
{ WERR_PRIVILEGE_NOT_HELD, WERR_PRIVILEGE_NOT_HELD },
{ WERR_NO_SUCH_USER, WERR_NO_SUCH_USER },
@@ -128,6 +131,8 @@
{ WERR_FRS_INVALID_SERVICE_PARAMETER, 
WERR_FRS_INVALID_SERVICE_PARAMETER },
{ WERR_FRS_SYSVOL_IS_BUSY, WERR_FRS_SYSVOL_IS_BUSY },
{ WERR_FRS_INSUFFICIENT_PRIV, WERR_FRS_INSUFFICIENT_PRIV },
+   { WERR_RPC_E_REMOTE_DISABLED, WERR_RPC_E_REMOTE_DISABLED },
+   { WERR_NOT_CONNECTED, WERR_NOT_CONNECTED },
{ NULL, W_ERROR(0) }
 };
 

Modified: branches/SAMBA_4_0/source/libcli/util/werror.h
===
--- branches/SAMBA_4_0/source/libcli/util/werror.h  2007-11-26 21:12:01 UTC 
(rev 26132)
+++ branches/SAMBA_4_0/source/libcli/util/werror.h  2007-11-26 23:58:39 UTC 
(rev 26133)
@@ -70,6 +70,7 @@
 #define WERR_NOMEM W_ERROR(8)
 #define WERR_GENERAL_FAILURE W_ERROR(31)
 #define WERR_NOT_SUPPORTED W_ERROR(50)
+#define WERR_DUP_NAME W_ERROR(52)
 #define WERR_BAD_NETPATH W_ERROR(53)
 #define WERR_BAD_NET_RESP W_ERROR(58)
 #define WERR_UNEXP_NET_ERR W_ERROR(59)
@@ -97,6 +98,7 @@
 #define WERR_REVISION_MISMATCH W_ERROR(1306)
 #define WERR_INVALID_OWNER W_ERROR(1307)
 #define WERR_NO_LOGON_SERVERS W_ERROR(1311)
+#define WERR_NO_SUCH_LOGON_SESSION W_ERROR(1312)
 #define WERR_NO_SUCH_PRIVILEGE W_ERROR(1313)
 #define WERR_PRIVILEGE_NOT_HELD W_ERROR(1314)
 #define WERR_NO_SUCH_USER W_ERROR(1317)
@@ -112,10 +114,12 @@
 #define WERR_BUF_TOO_SMALL W_ERROR(2123)
 #define WERR_JOB_NOT_FOUND W_ERROR(2151)
 #define WERR_DEST_NOT_FOUND W_ERROR(2152)
+#define WERR_NOT_CONNECTED W_ERROR(2250)
 #define WERR_SESSION_NOT_FOUND W_ERROR(2312)
 #define WERR_FID_NOT_FOUND W_ERROR(2314)
 #define WERR_NOT_LOCAL_DOMAIN W_ERROR(2320)
 #define WERR_DOMAIN_CONTROLLER_NOT_FOUND W_ERROR(2453)
+#define WERR_TIME_DIFF_AT_DC W_ERROR(2457)
 
 #define WERR_SETUP_ALREADY_JOINED W_ERROR(2691)
 #define WERR_SETUP_NOT_JOINED W_ERROR(2692)
@@ -189,6 +193,10 @@
 #define WERR_FRS_SYSVOL_IS_BUSY W_ERROR(FRS_ERR_BASE+15)
 #define WERR_FRS_INVALID_SERVICE_PARAMETER W_ERROR(FRS_ERR_BASE+17)
 
+/* RPC errors */
+#define WERR_RPC_E_INVALID_HEADER  W_ERROR(0x80010111)
+#define WERR_RPC_E_REMOTE_DISABLED W_ERROR(0x8001011c)
+
 /* SEC errors */
 #define WERR_SEC_E_ENCRYPT_FAILURE W_ERROR(0x80090329)
 #define WERR_SEC_E_DECRYPT_FAILURE W_ERROR(0x80090330)



svn commit: samba r26060 - in branches/SAMBA_4_0/source/libcli/util: .

2007-11-20 Thread gd
Author: gd
Date: 2007-11-20 12:43:11 + (Tue, 20 Nov 2007)
New Revision: 26060

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=26060

Log:
Add some error codes from remote join api.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/util/doserr.c
   branches/SAMBA_4_0/source/libcli/util/werror.h


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/util/doserr.c
===
--- branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-11-20 11:40:41 UTC 
(rev 26059)
+++ branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-11-20 12:43:11 UTC 
(rev 26060)
@@ -62,6 +62,9 @@
{ WERR_DEST_NOT_FOUND, WERR_DEST_NOT_FOUND },
{ WERR_NOT_LOCAL_DOMAIN, WERR_NOT_LOCAL_DOMAIN },
{ WERR_DOMAIN_CONTROLLER_NOT_FOUND, WERR_DOMAIN_CONTROLLER_NOT_FOUND 
},
+   { WERR_SETUP_NOT_JOINED, WERR_SETUP_NOT_JOINED },
+   { WERR_SETUP_ALREADY_JOINED, WERR_SETUP_ALREADY_JOINED },
+   { WERR_SETUP_DOMAIN_CONTROLLER, WERR_SETUP_DOMAIN_CONTROLLER },
{ WERR_DEVICE_NOT_AVAILABLE, WERR_DEVICE_NOT_AVAILABLE },
{ WERR_PRINTER_DRIVER_IN_USE, WERR_PRINTER_DRIVER_IN_USE },
{ WERR_STATUS_MORE_ENTRIES, WERR_STATUS_MORE_ENTRIES },

Modified: branches/SAMBA_4_0/source/libcli/util/werror.h
===
--- branches/SAMBA_4_0/source/libcli/util/werror.h  2007-11-20 11:40:41 UTC 
(rev 26059)
+++ branches/SAMBA_4_0/source/libcli/util/werror.h  2007-11-20 12:43:11 UTC 
(rev 26060)
@@ -116,6 +116,11 @@
 #define WERR_FID_NOT_FOUND W_ERROR(2314)
 #define WERR_NOT_LOCAL_DOMAIN W_ERROR(2320)
 #define WERR_DOMAIN_CONTROLLER_NOT_FOUND W_ERROR(2453)
+
+#define WERR_SETUP_ALREADY_JOINED W_ERROR(2691)
+#define WERR_SETUP_NOT_JOINED W_ERROR(2692)
+#define WERR_SETUP_DOMAIN_CONTROLLER W_ERROR(2693)
+
 #define WERR_DEVICE_NOT_AVAILABLE W_ERROR(4319)
 #define WERR_STATUS_MORE_ENTRIES   W_ERROR(0x0105)
 



svn commit: samba r25951 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-11-14 Thread gd
Author: gd
Date: 2007-11-14 09:48:12 + (Wed, 14 Nov 2007)
New Revision: 25951

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25951

Log:
Add missing DS_SERVER_NDNC bit to netr_DsR_DcFlags.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/netlogon.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/netlogon.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/netlogon.idl   2007-11-14 03:55:05 UTC 
(rev 25950)
+++ branches/SAMBA_4_0/source/librpc/idl/netlogon.idl   2007-11-14 09:48:12 UTC 
(rev 25951)
@@ -946,6 +946,7 @@
DS_SERVER_CLOSEST= NBT_SERVER_CLOSEST,
DS_SERVER_WRITABLE   = NBT_SERVER_WRITABLE,
DS_SERVER_GOOD_TIMESERV  = NBT_SERVER_GOOD_TIMESERV,
+   DS_SERVER_NDNC   = 0x0400,
DS_DNS_CONTROLLER= 0x2000,
DS_DNS_DOMAIN= 0x4000,
DS_DNS_FOREST= 0x8000



svn commit: samba r25896 - in branches/SAMBA_4_0/source/rpc_server/netlogon: .

2007-11-07 Thread gd
Author: gd
Date: 2007-11-07 18:42:00 + (Wed, 07 Nov 2007)
New Revision: 25896

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25896

Log:
Rename netlogon server stubs.

Guenther

Modified:
   branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c


Changeset:
Modified: branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c
===
--- branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c 
2007-11-07 18:22:56 UTC (rev 25895)
+++ branches/SAMBA_4_0/source/rpc_server/netlogon/dcerpc_netlogon.c 
2007-11-07 18:42:00 UTC (rev 25896)
@@ -965,10 +965,10 @@
 
 
 /* 
-  netr_DSRADDRESSTOSITENAMESW 
+  netr_DsRAddressToSitenamesW 
 */
-static WERROR dcesrv_netr_DSRADDRESSTOSITENAMESW(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct netr_DSRADDRESSTOSITENAMESW *r)
+static WERROR dcesrv_netr_DsRAddressToSitenamesW(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct netr_DsRAddressToSitenamesW *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }
@@ -1110,10 +1110,10 @@
 
 
 /* 
-  netr_DSRADDRESSTOSITENAMESEXW 
+  netr_DsRAddressToSitenamesExW 
 */
-static WERROR dcesrv_netr_DSRADDRESSTOSITENAMESEXW(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
-  struct netr_DSRADDRESSTOSITENAMESEXW *r)
+static WERROR dcesrv_netr_DsRAddressToSitenamesExW(struct dcesrv_call_state 
*dce_call, TALLOC_CTX *mem_ctx,
+  struct netr_DsRAddressToSitenamesExW *r)
 {
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }



svn commit: samba r25894 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-11-07 Thread gd
Author: gd
Date: 2007-11-07 18:21:12 + (Wed, 07 Nov 2007)
New Revision: 25894

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25894

Log:
Add IDL for netr_DsRAddressToSitenamesW and netr_DsRAddressToSitenamesExW.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/netlogon.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/netlogon.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/netlogon.idl   2007-11-07 07:13:44 UTC 
(rev 25893)
+++ branches/SAMBA_4_0/source/librpc/idl/netlogon.idl   2007-11-07 18:21:12 UTC 
(rev 25894)
@@ -1116,8 +1116,23 @@
 
//
/* Function 0x21 */
-   WERROR netr_DSRADDRESSTOSITENAMESW();
+   typedef struct {
+   uint32 count;
+   [size_is(count)] lsa_String *sitename;
+   } netr_DsRAddressToSitenamesWCtr;
 
+   typedef struct {
+   [size_is(size)] uint8 *buffer;
+   uint32 size;
+   } netr_DsRAddress;
+
+   WERROR netr_DsRAddressToSitenamesW(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in] [range(0,32000)] uint32 count,
+   [in] [size_is(count)] [ref] netr_DsRAddress *addresses,
+   [out] [ref] netr_DsRAddressToSitenamesWCtr **ctr
+   );
+
//
/* Function 0x22 */
WERROR netr_DsRGetDCNameEx2(
@@ -1141,8 +1156,19 @@
 
//
/* Function 0x25 */
-   WERROR netr_DSRADDRESSTOSITENAMESEXW();
+   typedef struct {
+   uint32 count;
+   [size_is(count)] lsa_String *sitename;
+   [size_is(count)] lsa_String *subnetname;
+   } netr_DsRAddressToSitenamesExWCtr;
 
+   WERROR netr_DsRAddressToSitenamesExW(
+   [in] [string,charset(UTF16)] uint16 *server_name,
+   [in] [range(0,32000)] uint32 count,
+   [in] [size_is(count)] [ref] netr_DsRAddress *addresses,
+   [out] [ref] netr_DsRAddressToSitenamesExWCtr **ctr
+   );
+
//
/* Function 0x26 */
 



svn commit: samba r25895 - in branches/SAMBA_4_0/source: . torture/rpc

2007-11-07 Thread gd
Author: gd
Date: 2007-11-07 18:22:56 + (Wed, 07 Nov 2007)
New Revision: 25895

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25895

Log:
Add torture test for netr_DsRAddressToSitenamesW and
netr_DsRAddressToSitenamesExW.

Guenther

Modified:
   branches/SAMBA_4_0/source/samba4-knownfail
   branches/SAMBA_4_0/source/torture/rpc/netlogon.c


Changeset:
Modified: branches/SAMBA_4_0/source/samba4-knownfail
===
--- branches/SAMBA_4_0/source/samba4-knownfail  2007-11-07 18:21:12 UTC (rev 
25894)
+++ branches/SAMBA_4_0/source/samba4-knownfail  2007-11-07 18:22:56 UTC (rev 
25895)
@@ -26,5 +26,7 @@
 RPC-NETLOGON.*/GetAnyDCName
 RPC-NETLOGON.*/DsrEnumerateDomainTrusts
 RPC-NETLOGON.*/DsrGetDcSiteCoverageW
+RPC-NETLOGON.*/DsRAddressToSitenamesW
+RPC-NETLOGON.*/DsRAddressToSitenamesExW
 BASE-CHARSET.*/Testing partial surrogate
 .*NET-API-DELSHARE.*   # DelShare isn't implemented yet

Modified: branches/SAMBA_4_0/source/torture/rpc/netlogon.c
===
--- branches/SAMBA_4_0/source/torture/rpc/netlogon.c2007-11-07 18:21:12 UTC 
(rev 25894)
+++ branches/SAMBA_4_0/source/torture/rpc/netlogon.c2007-11-07 18:22:56 UTC 
(rev 25895)
@@ -1176,7 +1176,70 @@
return true;
 }
 
+static bool test_netr_DsRAddressToSitenamesW(struct torture_context *tctx,
+struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct netr_DsRAddressToSitenamesW r;
+   struct netr_DsRAddress addr;
+   struct netr_DsRAddressToSitenamesWCtr *ctr;
 
+   ctr = talloc(tctx, struct netr_DsRAddressToSitenamesWCtr);
+
+   addr.size = 16;
+   addr.buffer = talloc_zero_array(tctx, uint8_t, addr.size);
+
+   addr.buffer[0] = 2; /* AF_INET */
+   addr.buffer[4] = 127;
+   addr.buffer[5] = 0;
+   addr.buffer[6] = 0;
+   addr.buffer[7] = 1;
+
+   r.in.server_name = talloc_asprintf(tctx, %s, 
dcerpc_server_name(p));
+   r.in.count = 1;
+   r.in.addresses = talloc_zero_array(tctx, struct netr_DsRAddress, 
r.in.count);
+   r.in.addresses[0] = addr;
+   r.out.ctr = ctr;
+
+   status = dcerpc_netr_DsRAddressToSitenamesW(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status, failed);
+   torture_assert_werr_ok(tctx, r.out.result, failed);
+
+   return true;
+}
+
+static bool test_netr_DsRAddressToSitenamesExW(struct torture_context *tctx,
+  struct dcerpc_pipe *p)
+{
+   NTSTATUS status;
+   struct netr_DsRAddressToSitenamesExW r;
+   struct netr_DsRAddress addr;
+   struct netr_DsRAddressToSitenamesExWCtr *ctr;
+
+   ctr = talloc(tctx, struct netr_DsRAddressToSitenamesExWCtr);
+
+   addr.size = 16;
+   addr.buffer = talloc_zero_array(tctx, uint8_t, addr.size);
+
+   addr.buffer[0] = 2; /* AF_INET */
+   addr.buffer[4] = 127;
+   addr.buffer[5] = 0;
+   addr.buffer[6] = 0;
+   addr.buffer[7] = 1;
+
+   r.in.server_name = talloc_asprintf(tctx, %s, 
dcerpc_server_name(p));
+   r.in.count = 1;
+   r.in.addresses = talloc_zero_array(tctx, struct netr_DsRAddress, 
r.in.count);
+   r.in.addresses[0] = addr;
+   r.out.ctr = ctr;
+
+   status = dcerpc_netr_DsRAddressToSitenamesExW(p, tctx, r);
+   torture_assert_ntstatus_ok(tctx, status, failed);
+   torture_assert_werr_ok(tctx, r.out.result, failed);
+
+   return true;
+}
+
 static bool test_GetDomainInfo(struct torture_context *tctx, 
   struct dcerpc_pipe *p,
   struct cli_credentials *machine_credentials)
@@ -1398,7 +1461,6 @@
 
tcase = torture_suite_add_machine_rpc_iface_tcase(suite, netlogon, 
  ndr_table_netlogon, 
TEST_MACHINE_NAME);
-
torture_rpc_tcase_add_test(tcase, LogonUasLogon, test_LogonUasLogon);
torture_rpc_tcase_add_test(tcase, LogonUasLogoff, 
test_LogonUasLogoff);
torture_rpc_tcase_add_test_creds(tcase, SamLogon, test_SamLogon);
@@ -1423,6 +1485,8 @@
torture_rpc_tcase_add_test(tcase, DsRGetDCNameEx, 
test_netr_DsRGetDCNameEx);
torture_rpc_tcase_add_test(tcase, DsRGetDCNameEx2, 
test_netr_DsRGetDCNameEx2);
torture_rpc_tcase_add_test(tcase, DsrGetDcSiteCoverageW, 
test_netr_DsrGetDcSiteCoverageW);
+   torture_rpc_tcase_add_test(tcase, DsRAddressToSitenamesW, 
test_netr_DsRAddressToSitenamesW);
+   torture_rpc_tcase_add_test(tcase, DsRAddressToSitenamesExW, 
test_netr_DsRAddressToSitenamesExW);
 
return suite;
 }



svn commit: samba r25897 - in branches/SAMBA_4_0/source/libcli/util: .

2007-11-07 Thread gd
Author: gd
Date: 2007-11-07 20:45:04 + (Wed, 07 Nov 2007)
New Revision: 25897

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25897

Log:
Add WERR_INVALID_FLAGS.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/util/doserr.c
   branches/SAMBA_4_0/source/libcli/util/werror.h


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/util/doserr.c
===
--- branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-11-07 18:42:00 UTC 
(rev 25896)
+++ branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-11-07 20:45:04 UTC 
(rev 25897)
@@ -111,6 +111,7 @@
{ WERR_PRINTQ_FULL, WERR_PRINTQ_FULL },
{ WERR_NO_SPOOL_SPACE, WERR_NO_SPOOL_SPACE },
{ WERR_CAN_NOT_COMPLETE, WERR_CAN_NOT_COMPLETE },
+   { WERR_INVALID_FLAGS, WERR_INVALID_FLAGS },
{ WERR_NOT_FOUND, WERR_NOT_FOUND },
{ WERR_SERVER_UNAVAILABLE, WERR_SERVER_UNAVAILABLE },
{ WERR_CLASS_NOT_REGISTERED, WERR_CLASS_NOT_REGISTERED },

Modified: branches/SAMBA_4_0/source/libcli/util/werror.h
===
--- branches/SAMBA_4_0/source/libcli/util/werror.h  2007-11-07 18:42:00 UTC 
(rev 25896)
+++ branches/SAMBA_4_0/source/libcli/util/werror.h  2007-11-07 20:45:04 UTC 
(rev 25897)
@@ -88,6 +88,7 @@
 #define WERR_NO_MORE_ITEMS W_ERROR(259)
 #define WERR_MORE_DATA W_ERROR(234)
 #define WERR_CAN_NOT_COMPLETE W_ERROR(1003)
+#define WERR_INVALID_FLAGS W_ERROR(1004)
 #define WERR_NOT_FOUND W_ERROR(1168)
 #define WERR_INVALID_COMPUTERNAME W_ERROR(1210)
 #define WERR_INVALID_DOMAINNAME W_ERROR(1212)



svn commit: samba r25845 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-05 Thread gd
Author: gd
Date: 2007-11-06 00:49:54 + (Tue, 06 Nov 2007)
New Revision: 25845

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25845

Log:
Reformat the dfs test.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/dfs.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/dfs.c
===
--- branches/SAMBA_4_0/source/torture/rpc/dfs.c 2007-11-05 21:57:44 UTC (rev 
25844)
+++ branches/SAMBA_4_0/source/torture/rpc/dfs.c 2007-11-06 00:49:54 UTC (rev 
25845)
@@ -1,19 +1,19 @@
-/* 
+/*
Unix SMB/CIFS implementation.
test suite for rpc dfs operations
 
Copyright (C) Andrew Tridgell 2003
-   
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-   
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
-   
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
@@ -43,7 +43,10 @@
return true;\
}\
 
-static bool test_NetShareAdd(TALLOC_CTX *mem_ctx, const char *host, const char 
*sharename, const char *dir)
+static bool test_NetShareAdd(TALLOC_CTX *mem_ctx,
+const char *host,
+const char *sharename,
+const char *dir)
 {
NTSTATUS status;
struct srvsvc_NetShareInfo2 i;
@@ -73,7 +76,7 @@
 
status = libnet_AddShare(libnetctx, mem_ctx, r);
if (!NT_STATUS_IS_OK(status)) {
-   d_printf(Failed to add new share: %s (%s)\n, 
+   d_printf(Failed to add new share: %s (%s)\n,
nt_errstr(status), r.out.error_string);
return false;
}
@@ -81,7 +84,9 @@
return true;
 }
 
-static bool test_NetShareDel(TALLOC_CTX *mem_ctx, const char *host, const char 
*sharename)
+static bool test_NetShareDel(TALLOC_CTX *mem_ctx,
+const char *host,
+const char *sharename)
 {
NTSTATUS status;
struct libnet_context* libnetctx;
@@ -100,7 +105,7 @@
 
status = libnet_DelShare(libnetctx, mem_ctx, r);
if (!NT_STATUS_IS_OK(status)) {
-   d_printf(Failed to delete share: %s (%s)\n, 
+   d_printf(Failed to delete share: %s (%s)\n,
nt_errstr(status), r.out.error_string);
return false;
}
@@ -108,10 +113,10 @@
return true;
 }
 
-static bool test_CreateDir(TALLOC_CTX *mem_ctx, 
-  struct smbcli_state **cli, 
-  const char *host, 
-  const char *share, 
+static bool test_CreateDir(TALLOC_CTX *mem_ctx,
+  struct smbcli_state **cli,
+  const char *host,
+  const char *share,
   const char *dir)
 {
printf(Creating directory %s\n, dir);
@@ -127,19 +132,23 @@
return true;
 }
 
-static bool test_DeleteDir(struct smbcli_state *cli, const char *dir)
+static bool test_DeleteDir(struct smbcli_state *cli,
+  const char *dir)
 {
printf(Deleting directory %s\n, dir);
 
if (smbcli_deltree(cli-tree, dir) == -1) {
-   printf(Unable to delete dir %s - %s\n, dir, 
smbcli_errstr(cli-tree));
+   printf(Unable to delete dir %s - %s\n, dir,
+   smbcli_errstr(cli-tree));
return false;
}
 
return true;
 }
 
-static bool test_GetManagerVersion(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
enum dfs_ManagerVersion *version)
+static bool test_GetManagerVersion(struct dcerpc_pipe *p,
+  TALLOC_CTX *mem_ctx,
+  enum dfs_ManagerVersion *version)
 {
NTSTATUS status;
struct dfs_GetManagerVersion r;
@@ -155,7 +164,9 @@
return true;
 }
 
-static bool test_ManagerInitialize(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
const char *host)
+static bool test_ManagerInitialize(struct dcerpc_pipe *p,
+  TALLOC_CTX *mem_ctx,
+  const char *host)
 {
NTSTATUS status;
enum dfs_ManagerVersion version;
@@ -175,7 +186,8 @@
printf(ManagerInitialize failed - %s\n, nt_errstr(status));
return false;
} else if (!W_ERROR_IS_OK(r.out.result)) {
-   printf(dfs_ManagerInitialize

svn commit: samba r25848 - in branches/SAMBA_4_0/source: librpc/idl torture/rpc

2007-11-05 Thread gd
Author: gd
Date: 2007-11-06 01:24:07 + (Tue, 06 Nov 2007)
New Revision: 25848

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25848

Log:
Add IDL and torture test for dfs_SetDcAddress and dfs_GetDcAddress.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/dfs.idl
   branches/SAMBA_4_0/source/torture/rpc/dfs.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/dfs.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/dfs.idl2007-11-06 01:05:26 UTC 
(rev 25847)
+++ branches/SAMBA_4_0/source/librpc/idl/dfs.idl2007-11-06 01:24:07 UTC 
(rev 25848)
@@ -377,10 +377,20 @@
);
 
/* Function 0x10 */
-   WERROR dfs_GetDcAddress();
+   WERROR dfs_GetDcAddress(
+   [in][string,charset(UTF16)] uint16 servername[],
+   [in,out,ref][string,charset(UTF16)] uint16 
**server_fullname,
+   [in,out,ref]boolean8 *is_root,
+   [in,out,ref]uint32 *ttl
+   );
 
/* Function 0x11 */
-   WERROR dfs_SetDcAddress();
+   WERROR dfs_SetDcAddress(
+   [in][string,charset(UTF16)] uint16 servername[],
+   [in][string,charset(UTF16)] uint16 
server_fullname[],
+   [in]uint32  flags,
+   [in]uint32  ttl
+   );
 
/* Function 0x12 */
WERROR dfs_FlushFtTable(

Modified: branches/SAMBA_4_0/source/torture/rpc/dfs.c
===
--- branches/SAMBA_4_0/source/torture/rpc/dfs.c 2007-11-06 01:05:26 UTC (rev 
25847)
+++ branches/SAMBA_4_0/source/torture/rpc/dfs.c 2007-11-06 01:24:07 UTC (rev 
25848)
@@ -522,6 +522,80 @@
return ret;
 }
 
+static bool test_GetDcAddress(struct dcerpc_pipe *p,
+ TALLOC_CTX *mem_ctx,
+ const char *host)
+{
+   NTSTATUS status;
+   struct dfs_GetDcAddress r;
+   uint8_t is_root = 0;
+   uint32_t ttl = 0;
+   const char *ptr;
+
+   printf(Testing GetDcAddress\n);
+
+   ptr = host;
+
+   r.in.servername = host;
+   r.in.server_fullname = r.out.server_fullname = ptr;
+   r.in.is_root = r.out.is_root = is_root;
+   r.in.ttl = r.out.ttl = ttl;
+
+   status = dcerpc_dfs_GetDcAddress(p, mem_ctx, r);
+   if (!NT_STATUS_IS_OK(status)) {
+   printf(GetDcAddress failed - %s\n, nt_errstr(status));
+   return false;
+   } else if (!W_ERROR_IS_OK(r.out.result)) {
+   printf(dfs_GetDcAddress failed - %s\n,
+   win_errstr(r.out.result));
+   return false;
+   }
+
+   return true;
+}
+
+static bool test_SetDcAddress(struct dcerpc_pipe *p,
+ TALLOC_CTX *mem_ctx,
+ const char *host)
+{
+   NTSTATUS status;
+   struct dfs_SetDcAddress r;
+
+   printf(Testing SetDcAddress\n);
+
+   r.in.servername = host;
+   r.in.server_fullname = host;
+   r.in.flags = 0;
+   r.in.ttl = 1000;
+
+   status = dcerpc_dfs_SetDcAddress(p, mem_ctx, r);
+   if (!NT_STATUS_IS_OK(status)) {
+   printf(SetDcAddress failed - %s\n, nt_errstr(status));
+   return false;
+   } else if (!W_ERROR_IS_OK(r.out.result)) {
+   printf(dfs_SetDcAddress failed - %s\n,
+   win_errstr(r.out.result));
+   return false;
+   }
+
+   return true;
+}
+
+static bool test_DcAddress(struct dcerpc_pipe *p,
+  TALLOC_CTX *mem_ctx,
+  const char *host)
+{
+   if (!test_GetDcAddress(p, mem_ctx, host)) {
+   return false;
+   }
+
+   if (!test_SetDcAddress(p, mem_ctx, host)) {
+   return false;
+   }
+
+   return true;
+}
+
 bool torture_rpc_dfs(struct torture_context *torture)
 {
NTSTATUS status;
@@ -538,6 +612,7 @@
ret = test_Enum(p, torture);
ret = test_EnumEx(p, torture, host);
ret = test_StdRoot(p, torture, host);
+   ret = test_DcAddress(p, torture, host);
 
return ret;
 }



svn commit: samba r25849 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-05 Thread gd
Author: gd
Date: 2007-11-06 01:39:47 + (Tue, 06 Nov 2007)
New Revision: 25849

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25849

Log:
Add test for dfs FlushFtTable.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/dfs.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/dfs.c
===
--- branches/SAMBA_4_0/source/torture/rpc/dfs.c 2007-11-06 01:24:07 UTC (rev 
25848)
+++ branches/SAMBA_4_0/source/torture/rpc/dfs.c 2007-11-06 01:39:47 UTC (rev 
25849)
@@ -596,6 +596,47 @@
return true;
 }
 
+static bool test_FlushFtTable(struct dcerpc_pipe *p,
+ TALLOC_CTX *mem_ctx,
+ const char *host,
+ const char *sharename)
+{
+   NTSTATUS status;
+   struct dfs_FlushFtTable r;
+   enum dfs_ManagerVersion version;
+
+   printf(Testing FlushFtTable\n);
+
+   if (!test_GetManagerVersion(p, mem_ctx, version)) {
+   return false;
+   }
+
+   r.in.servername = host;
+   r.in.rootshare = sharename;
+
+   status = dcerpc_dfs_FlushFtTable(p, mem_ctx, r);
+   if (!NT_STATUS_IS_OK(status)) {
+   printf(FlushFtTable failed - %s\n, nt_errstr(status));
+   return false;
+   } else if (!W_ERROR_IS_OK(r.out.result)) {
+   printf(dfs_FlushFtTable failed - %s\n,
+   win_errstr(r.out.result));
+   IS_DFS_VERSION_UNSUPPORTED_CALL_W2K3(version, r.out.result);
+   return false;
+   }
+
+   return true;
+}
+
+static bool test_FtRoot(struct dcerpc_pipe *p,
+   TALLOC_CTX *mem_ctx,
+   const char *host)
+{
+   const char *sharename = SMBTORTURE_DFS_SHARENAME;
+
+   return test_FlushFtTable(p, mem_ctx, host, sharename);
+}
+
 bool torture_rpc_dfs(struct torture_context *torture)
 {
NTSTATUS status;
@@ -612,6 +653,7 @@
ret = test_Enum(p, torture);
ret = test_EnumEx(p, torture, host);
ret = test_StdRoot(p, torture, host);
+   ret = test_FtRoot(p, torture, host);
ret = test_DcAddress(p, torture, host);
 
return ret;



svn commit: samba r25801 - in branches/SAMBA_4_0/source/libcli/security: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 11:51:26 + (Fri, 02 Nov 2007)
New Revision: 25801

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25801

Log:
Add security_ace_create() function.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/security/security_descriptor.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/security/security_descriptor.c
===
--- branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-11-02 11:36:06 UTC (rev 25800)
+++ branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-11-02 11:51:26 UTC (rev 25801)
@@ -422,3 +422,32 @@
 
return sd;
 }
+
+struct security_ace *security_ace_create(TALLOC_CTX *mem_ctx,
+const char *sid_str,
+enum security_ace_type type,
+uint32_t access_mask,
+uint8_t flags)
+
+{
+   struct dom_sid *sid;
+   struct security_ace *ace;
+
+   ace = talloc_zero(mem_ctx, struct security_ace);
+   if (ace == NULL) {
+   return NULL;
+   }
+
+   sid = dom_sid_parse_talloc(ace, sid_str);
+   if (sid == NULL) {
+   talloc_free(ace);
+   return NULL;
+   }
+
+   ace-trustee = *sid;
+   ace-type = type;
+   ace-access_mask = access_mask;
+   ace-flags = flags;
+
+   return ace;
+}



svn commit: samba r25799 - in branches/SAMBA_4_0/source/lib/util: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 11:33:53 + (Fri, 02 Nov 2007)
New Revision: 25799

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25799

Log:
Add dump_data_skip_zeros() which omits 16 zero bytes in a row (if not at the
beginning or the end of a blob). Usefull when inspecting protocols that
exchange huge mostly empty blobs.

Guenther

Modified:
   branches/SAMBA_4_0/source/lib/util/util.c
   branches/SAMBA_4_0/source/lib/util/util.h


Changeset:
Modified: branches/SAMBA_4_0/source/lib/util/util.c
===
--- branches/SAMBA_4_0/source/lib/util/util.c   2007-11-02 11:01:18 UTC (rev 
25798)
+++ branches/SAMBA_4_0/source/lib/util/util.c   2007-11-02 11:33:53 UTC (rev 
25799)
@@ -393,24 +393,55 @@
  *
  * The data is only written if the log level is at least level.
  */
-_PUBLIC_ void dump_data(int level, const uint8_t *buf,int len)
+static void _dump_data(int level, const uint8_t *buf, int len,
+  bool omit_zero_bytes)
 {
int i=0;
+   const uint8_t empty[16];
+   bool skipped = false;
+
if (len=0) return;
 
if (!DEBUGLVL(level)) return;
-   
-   DEBUGADD(level,([%03X] ,i));
+
+   memset(empty, '\0', 16);
+
for (i=0;ilen;) {
+
+   if (i%16 == 0) {
+   if ((omit_zero_bytes == true) 
+   (i  0) 
+   (len  i+16) 
+   (memcmp(buf[i], empty, 16) == 0))
+   {
+   i +=16;
+   continue;
+   }
+
+   if (ilen)  {
+   DEBUGADD(level,([%04X] ,i));
+   }
+   }
+
DEBUGADD(level,(%02X ,(int)buf[i]));
i++;
-   if (i%8 == 0) DEBUGADD(level,( ));
-   if (i%16 == 0) {  
+   if (i%8 == 0) DEBUGADD(level,(  ));
+   if (i%16 == 0) {
+
print_asc(level,buf[i-16],8); DEBUGADD(level,( ));
print_asc(level,buf[i-8],8); DEBUGADD(level,(\n));
-   if (ilen) DEBUGADD(level,([%03X] ,i));
+
+   if ((omit_zero_bytes == true) 
+   (len  i+16) 
+   (memcmp(buf[i], empty, 16) == 0)) {
+   if (!skipped) {
+   DEBUGADD(level,(skipping zero buffer 
bytes\n));
+   skipped = true;
+   }
+   }
}
}
+
if (i%16) {
int n;
n = 16 - (i%16);
@@ -420,12 +451,35 @@
n = MIN(8,i%16);
print_asc(level,buf[i-(i%16)],n); DEBUGADD(level,(   ));
n = (i%16) - n;
-   if (n0) print_asc(level,buf[i-n],n); 
-   DEBUGADD(level,(\n));
-   }   
+   if (n0) print_asc(level,buf[i-n],n);
+   DEBUGADD(level,(\n));
+   }
+
 }
 
 /**
+ * Write dump of binary data to the log file.
+ *
+ * The data is only written if the log level is at least level.
+ */
+_PUBLIC_ void dump_data(int level, const uint8_t *buf, int len)
+{
+   return _dump_data(level, buf, len, false);
+}
+
+/**
+ * Write dump of binary data to the log file.
+ *
+ * The data is only written if the log level is at least level.
+ * 16 zero bytes in a row are ommited
+ */
+_PUBLIC_ void dump_data_skip_zeros(int level, const uint8_t *buf, int len)
+{
+   return _dump_data(level, buf, len, true);
+}
+
+
+/**
  malloc that aborts with smb_panic on fail or zero size.
 **/
 

Modified: branches/SAMBA_4_0/source/lib/util/util.h
===
--- branches/SAMBA_4_0/source/lib/util/util.h   2007-11-02 11:01:18 UTC (rev 
25798)
+++ branches/SAMBA_4_0/source/lib/util/util.h   2007-11-02 11:33:53 UTC (rev 
25799)
@@ -656,6 +656,14 @@
 _PUBLIC_ void dump_data(int level, const uint8_t *buf,int len);
 
 /**
+ * Write dump of binary data to the log file.
+ *
+ * The data is only written if the log level is at least level.
+ * 16 zero bytes in a row are ommited
+ */
+_PUBLIC_ void dump_data_skip_zeros(int level, const uint8_t *buf, int len);
+
+/**
  malloc that aborts with smb_panic on fail or zero size.
 **/
 _PUBLIC_ void *smb_xmalloc(size_t size);



svn commit: samba r25807 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 14:18:07 + (Fri, 02 Nov 2007)
New Revision: 25807

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25807

Log:
Close handle during winreg test.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 13:48:11 UTC 
(rev 25806)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:18:07 UTC 
(rev 25807)
@@ -713,6 +713,10 @@
torture_fail(tctx,
 CreateKey failed (OpenKey after Create didn't 
work)\n);
 
+   if (created  !test_CloseKey(p, tctx, newhandle))
+   torture_fail(tctx,
+CreateKey failed (CloseKey after Open didn't 
work)\n);
+
if (created  !test_DeleteKey(p, tctx, handle, TEST_KEY1)) {
torture_comment(tctx, DeleteKey failed\n);
ret = false;



svn commit: samba r25817 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 15:43:09 + (Fri, 02 Nov 2007)
New Revision: 25817

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25817

Log:
Add very basic FRSAPI InfoW test. Again, this is surely not correct but at least
displays a lot of very useful information.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/frsapi.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/frsapi.c
===
--- branches/SAMBA_4_0/source/torture/rpc/frsapi.c  2007-11-02 15:41:55 UTC 
(rev 25816)
+++ branches/SAMBA_4_0/source/torture/rpc/frsapi.c  2007-11-02 15:43:09 UTC 
(rev 25817)
@@ -207,6 +207,50 @@
return true;
 }
 
+static bool test_InfoW(struct torture_context *tctx,
+  struct dcerpc_pipe *p)
+{
+   int i;
+
+   for (i=0; i10; i++) {
+
+   struct frsapi_InfoW r;
+   struct frsapi_Info *info;
+   int d;
+   DATA_BLOB blob;
+
+   ZERO_STRUCT(r);
+
+   info = talloc_zero(tctx, struct frsapi_Info);
+
+   r.in.length = 0x1000;
+   r.in.info = r.out.info = info;
+
+   info-length = r.in.length;
+   info-length2 = r.in.length;
+   info-level = i;
+   info-offset = 0x2c;
+   info-blob_len = 0x2c;
+
+   torture_assert_ntstatus_ok(tctx,
+   dcerpc_frsapi_InfoW(p, tctx, r),
+   InfoW failed);
+
+   torture_assert_werr_ok(tctx, r.out.result, InfoW failed);
+
+   /* display the formatted blob text */
+   blob = r.out.info-blob;
+   for (d = 0; d  blob.length; d++) {
+   if (blob.data[d]) {
+   printf(%c, blob.data[d]);
+   }
+   }
+   printf(\n);
+   }
+
+   return true;
+}
+
 struct torture_suite *torture_rpc_frsapi(TALLOC_CTX *mem_ctx)
 {
struct torture_rpc_tcase *tcase;
@@ -225,6 +269,7 @@
test = torture_rpc_tcase_add_test(tcase, ForceReplication,
  test_ForceReplication);
 
-
+   test = torture_rpc_tcase_add_test(tcase, InfoW,
+ test_InfoW);
return suite;
 }



svn commit: samba r25815 - in branches/SAMBA_4_0/source: librpc/idl torture/rpc

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 15:11:54 + (Fri, 02 Nov 2007)
New Revision: 25815

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25815

Log:
Small DFS idl fixes.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/dfs.idl
   branches/SAMBA_4_0/source/torture/rpc/dfs.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/dfs.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/dfs.idl2007-11-02 15:09:58 UTC 
(rev 25814)
+++ branches/SAMBA_4_0/source/librpc/idl/dfs.idl2007-11-02 15:11:54 UTC 
(rev 25815)
@@ -52,12 +52,11 @@
[string,charset(UTF16)] uint16 *path;
} dfs_Info1;
 
-   /* first 4 bits unverified yet */
typedef [public,bitmap32bit] bitmap {
DFS_VOLUME_STATE_OK = 0x1,
DFS_VOLUME_STATE_INCONSISTENT   = 0x2,
-   DFS_VOLUME_STATE_OFFLINE= 0x4,
-   DFS_VOLUME_STATE_ONLINE = 0x8,
+   DFS_VOLUME_STATE_OFFLINE= 0x3,
+   DFS_VOLUME_STATE_ONLINE = 0x4,
DFS_VOLUME_STATE_STANDALONE = DFS_VOLUME_FLAVOR_STANDALONE,
DFS_VOLUME_STATE_AD_BLOB= DFS_VOLUME_FLAVOR_AD_BLOB
} dfs_VolumeState;
@@ -266,6 +265,16 @@
 
typedef struct {
uint32 count;
+   [size_is(count)] dfs_Info5 *s;
+   } dfs_EnumArray5;
+
+   typedef struct {
+   uint32 count;
+   [size_is(count)] dfs_Info6 *s;
+   } dfs_EnumArray6;
+
+   typedef struct {
+   uint32 count;
[size_is(count)] dfs_Info200 *s;
} dfs_EnumArray200;
 
@@ -280,6 +289,8 @@
[case(2)] dfs_EnumArray2 *info2;
[case(3)] dfs_EnumArray3 *info3;
[case(4)] dfs_EnumArray4 *info4;
+   [case(5)] dfs_EnumArray5 *info5;
+   [case(6)] dfs_EnumArray6 *info6;
[case(200)] dfs_EnumArray200 *info200;
[case(300)] dfs_EnumArray300 *info300;
} dfs_EnumInfo;

Modified: branches/SAMBA_4_0/source/torture/rpc/dfs.c
===
--- branches/SAMBA_4_0/source/torture/rpc/dfs.c 2007-11-02 15:09:58 UTC (rev 
25814)
+++ branches/SAMBA_4_0/source/torture/rpc/dfs.c 2007-11-02 15:11:54 UTC (rev 
25815)
@@ -335,7 +335,7 @@
 static bool test_Enum(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 {
bool ret = true;
-   uint16_t levels[] = {1, 2, 3, 4, 200, 300};
+   uint16_t levels[] = {1, 2, 3, 4, 5, 6, 200, 300};
int i;
 
for (i=0;iARRAY_SIZE(levels);i++) {
@@ -350,7 +350,7 @@
 static bool test_EnumEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char 
*host)
 {
bool ret = true;
-   uint16_t levels[] = {1, 2, 3, 4, 200, 300};
+   uint16_t levels[] = {1, 2, 3, 4, 5, 6, 200, 300};
int i;
 
for (i=0;iARRAY_SIZE(levels);i++) {



svn commit: samba r25814 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 15:09:58 + (Fri, 02 Nov 2007)
New Revision: 25814

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25814

Log:
Add my (C).

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 15:06:58 UTC 
(rev 25813)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 15:09:58 UTC 
(rev 25814)
@@ -4,6 +4,7 @@
 
Copyright (C) Tim Potter 2003
Copyright (C) Jelmer Vernooij 2004-2007
+   Copyright (C) Günther Deschner 2007
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by



svn commit: samba r25813 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 15:06:58 + (Fri, 02 Nov 2007)
New Revision: 25813

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25813

Log:
Add unfinished SecurityDescriptorsMasks test for winreg.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:51:49 UTC 
(rev 25812)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 15:06:58 UTC 
(rev 25813)
@@ -439,6 +439,40 @@
return ret;
 }
 
+static bool _test_SecurityDescriptor(struct dcerpc_pipe *p,
+struct torture_context *tctx,
+struct policy_handle *handle,
+uint32_t access_mask,
+const char *key,
+WERROR open_werr,
+WERROR get_werr,
+WERROR set_werr)
+{
+   struct policy_handle new_handle;
+   bool ret = true;
+   bool got_key = false;
+
+   if (!_test_OpenKey(p, tctx, handle, key, access_mask, new_handle,
+  open_werr, got_key)) {
+   return false;
+   }
+
+   if (!got_key) {
+   return true;
+   }
+
+   if (!_test_GetSetSecurityDescriptor(p, tctx, new_handle,
+   get_werr, set_werr)) {
+   ret = false;
+   }
+
+   if (!test_CloseKey(p, tctx, new_handle)) {
+   return false;
+   }
+
+   return ret;
+}
+
 static bool test_dacl_trustee_present(struct dcerpc_pipe *p,
  struct torture_context *tctx,
  struct policy_handle *handle,
@@ -946,6 +980,60 @@
return ret;
 }
 
+static bool test_SecurityDescriptorsMasks(struct dcerpc_pipe *p,
+ struct torture_context *tctx,
+ struct policy_handle *handle,
+ const char *key)
+{
+   bool ret = true;
+   int i;
+
+   struct winreg_mask_result_table {
+   uint32_t access_mask;
+   WERROR open_werr;
+   WERROR get_werr;
+   WERROR set_werr;
+   } sd_mask_tests[] = {
+   { 0,
+   WERR_ACCESS_DENIED, WERR_BADFILE, WERR_FOOBAR },
+   { SEC_FLAG_MAXIMUM_ALLOWED,
+   WERR_OK, WERR_OK, WERR_OK },
+   { SEC_STD_WRITE_DAC,
+   WERR_OK, WERR_ACCESS_DENIED, WERR_FOOBAR },
+   { SEC_FLAG_SYSTEM_SECURITY,
+   WERR_OK, WERR_ACCESS_DENIED, WERR_FOOBAR }
+   };
+
+   /* FIXME: before this test can ever run successfully we need a way to
+* correctly read a NULL security_descritpor in ndr, get the required
+* length, requery, etc.
+*/
+
+   return true;
+
+   for (i=0; i  ARRAY_SIZE(sd_mask_tests); i++) {
+
+   torture_comment(tctx,
+   SecurityDescriptor get  set with access_mask: 
0x%08x\n,
+   sd_mask_tests[i].access_mask);
+   torture_comment(tctx,
+   expecting: open %s, get: %s, set: %s\n,
+   win_errstr(sd_mask_tests[i].open_werr),
+   win_errstr(sd_mask_tests[i].get_werr),
+   win_errstr(sd_mask_tests[i].set_werr));
+
+   if (_test_SecurityDescriptor(p, tctx, handle,
+sd_mask_tests[i].access_mask, key,
+sd_mask_tests[i].open_werr,
+sd_mask_tests[i].get_werr,
+sd_mask_tests[i].set_werr)) {
+   ret = false;
+   }
+   }
+
+   return ret;
+}
+
 typedef bool (*secinfo_verify_fn)(struct dcerpc_pipe *,
  struct torture_context *,
  struct policy_handle *,
@@ -1255,7 +1343,6 @@
 {
bool ret = true;
 
-
if (!test_SecurityDescriptor(p, tctx, handle, key)) {
printf(test_SecurityDescriptor failed\n);
ret = false;
@@ -1276,6 +1363,11 @@
ret = false;
}
 
+   if (!test_SecurityDescriptorsMasks(p, tctx, handle, key)) {
+   printf(test_SecurityDescriptorsMasks failed\n);
+   ret = false;
+   }
+
return ret;
 }
 



svn commit: samba r25810 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 14:43:11 + (Fri, 02 Nov 2007)
New Revision: 25810

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25810

Log:
Add test for blocking security descriptor inheritance in winreg.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:37:07 UTC 
(rev 25809)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:43:11 UTC 
(rev 25810)
@@ -422,6 +422,58 @@
return ret;
 }
 
+static bool test_dacl_trustee_present(struct dcerpc_pipe *p,
+ struct torture_context *tctx,
+ struct policy_handle *handle,
+ const struct dom_sid *sid)
+{
+   struct security_descriptor *sd = NULL;
+   int i;
+
+   if (!test_GetKeySecurity(p, tctx, handle, sd)) {
+   return false;
+   }
+
+   if (!sd || !sd-dacl) {
+   return false;
+   }
+
+   for (i = 0; i  sd-dacl-num_aces; i++) {
+   if (dom_sid_equal(sd-dacl-aces[i].trustee, sid)) {
+   return true;
+   }
+   }
+
+   return false;
+}
+
+static bool test_dacl_trustee_flags_present(struct dcerpc_pipe *p,
+   struct torture_context *tctx,
+   struct policy_handle *handle,
+   const struct dom_sid *sid,
+   uint8_t flags)
+{
+   struct security_descriptor *sd = NULL;
+   int i;
+
+   if (!test_GetKeySecurity(p, tctx, handle, sd)) {
+   return false;
+   }
+
+   if (!sd || !sd-dacl) {
+   return false;
+   }
+
+   for (i = 0; i  sd-dacl-num_aces; i++) {
+   if ((dom_sid_equal(sd-dacl-aces[i].trustee, sid)) 
+   (sd-dacl-aces[i].flags == flags)) {
+   return true;
+   }
+   }
+
+   return false;
+}
+
 static bool test_dacl_ace_present(struct dcerpc_pipe *p,
  struct torture_context *tctx,
  struct policy_handle *handle,
@@ -585,6 +637,129 @@
return true;
 }
 
+static bool test_SecurityDescriptorBlockInheritance(struct dcerpc_pipe *p,
+   struct torture_context 
*tctx,
+   struct policy_handle 
*handle,
+   const char *key)
+{
+   /* get sd
+  add ace SEC_ACE_FLAG_NO_PROPAGATE_INHERIT
+  set sd
+  add subkey/subkey
+  get sd
+  check ace
+  get sd from subkey
+  check ace
+  del subkey/subkey
+  del subkey
+  reset sd
+   */
+
+   struct security_descriptor *sd = NULL;
+   struct security_descriptor *sd_orig = NULL;
+   struct security_ace *ace = NULL;
+   struct policy_handle new_handle;
+   struct dom_sid *sid = NULL;
+   NTSTATUS status;
+   bool ret = true;
+   uint8_t ace_flags = 0x0;
+
+   torture_comment(tctx, SecurityDescriptor inheritance block\n);
+
+   if (!test_OpenKey(p, tctx, handle, key, new_handle)) {
+   return false;
+   }
+
+   if (!_test_GetKeySecurity(p, tctx, new_handle, NULL, WERR_OK, sd)) {
+   return false;
+   }
+
+   sd_orig = security_descriptor_copy(tctx, sd);
+   if (sd_orig == NULL) {
+   return false;
+   }
+
+   ace = security_ace_create(tctx,
+ TEST_SID,
+ SEC_ACE_TYPE_ACCESS_ALLOWED,
+ SEC_STD_REQUIRED,
+ SEC_ACE_FLAG_CONTAINER_INHERIT |
+ SEC_ACE_FLAG_NO_PROPAGATE_INHERIT);
+
+   status = security_descriptor_dacl_add(sd, ace);
+   if (!NT_STATUS_IS_OK(status)) {
+   printf(failed to add ace: %s\n, nt_errstr(status));
+   return false;
+   }
+
+   if (!_test_SetKeySecurity(p, tctx, new_handle, NULL, sd, WERR_OK)) {
+   return false;
+   }
+
+   if (!test_dacl_ace_present(p, tctx, new_handle, ace)) {
+   printf(new ACE not present!\n);
+   return false;
+   }
+
+   if (!test_CloseKey(p, tctx, new_handle)) {
+   return false;
+   }
+
+   if (!test_CreateKey(p, tctx, handle, TEST_SUBSUBKEY_SD, NULL)) {
+   return false;
+   }
+
+   if (!test_OpenKey(p, tctx, handle, TEST_SUBSUBKEY_SD, new_handle)) {
+   ret = false;
+   goto out

svn commit: samba r25812 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 14:51:49 + (Fri, 02 Nov 2007)
New Revision: 25812

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25812

Log:
Add test for valid and invalid security descriptor and security information flag
combinations.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:50:27 UTC 
(rev 25811)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:51:49 UTC 
(rev 25812)
@@ -946,6 +946,308 @@
return ret;
 }
 
+typedef bool (*secinfo_verify_fn)(struct dcerpc_pipe *,
+ struct torture_context *,
+ struct policy_handle *,
+ const char *,
+ const struct dom_sid *);
+
+static bool test_SetSecurityDescriptor_SecInfo(struct dcerpc_pipe *p,
+  struct torture_context *tctx,
+  struct policy_handle *handle,
+  const char *key,
+  const char *test,
+  uint32_t access_mask,
+  uint32_t sec_info,
+  struct security_descriptor *sd,
+  WERROR set_werr,
+  bool expect_present,
+  bool (*fn) (struct dcerpc_pipe *,
+  struct 
torture_context *,
+  struct policy_handle 
*,
+  const char *,
+  const struct dom_sid 
*),
+  const struct dom_sid *sid)
+{
+   struct policy_handle new_handle;
+   bool open_success = false;
+
+   torture_comment(tctx, SecurityDescriptor (%s) sets for secinfo: 
+   0x%08x, access_mask: 0x%08x\n,
+   test, sec_info, access_mask);
+
+   if (!_test_OpenKey(p, tctx, handle, key,
+  access_mask,
+  new_handle,
+  WERR_OK,
+  open_success)) {
+   return false;
+   }
+
+   if (!open_success) {
+   printf(key did not open\n);
+   test_CloseKey(p, tctx, new_handle);
+   return false;
+   }
+
+   if (!_test_SetKeySecurity(p, tctx, new_handle, sec_info,
+ sd,
+ set_werr)) {
+   torture_warning(tctx,
+   SetKeySecurity with secinfo: 0x%08x has 
failed\n,
+   sec_info);
+   smb_panic();
+   test_CloseKey(p, tctx, new_handle);
+   return false;
+   }
+
+   test_CloseKey(p, tctx, new_handle);
+
+   if (W_ERROR_IS_OK(set_werr)) {
+   bool present;
+   present = fn(p, tctx, handle, key, sid);
+   if ((expect_present)  (!present)) {
+   torture_warning(tctx,
+   %s sid is not present!\n,
+   test);
+   return false;
+   }
+   if ((!expect_present)  (present)) {
+   torture_warning(tctx,
+   %s sid is present but not expected!\n,
+   test);
+   return false;
+   }
+   }
+
+   return true;
+}
+
+static bool test_SecurityDescriptorsSecInfo(struct dcerpc_pipe *p,
+   struct torture_context *tctx,
+   struct policy_handle *handle,
+   const char *key)
+{
+   struct security_descriptor *sd_orig = NULL;
+   struct dom_sid *sid = NULL;
+   bool ret = true;
+   int i, a;
+
+   struct security_descriptor *sd_owner =
+   security_descriptor_dacl_create(tctx,
+   0,
+   TEST_SID, NULL, NULL);
+
+   struct security_descriptor *sd_group =
+   security_descriptor_dacl_create(tctx,
+   0,
+   NULL, TEST_SID, NULL);
+
+   struct security_descriptor *sd_dacl

svn commit: samba r25811 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 14:50:27 + (Fri, 02 Nov 2007)
New Revision: 25811

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25811

Log:
Add some security descriptor helper functions.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:43:11 UTC 
(rev 25810)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:50:27 UTC 
(rev 25811)
@@ -344,26 +344,43 @@
return true;
 }
 
-static bool test_OpenKey(struct dcerpc_pipe *p, struct torture_context *tctx,
-struct policy_handle *hive_handle,
-const char *keyname, struct policy_handle *key_handle)
+static bool _test_OpenKey(struct dcerpc_pipe *p, struct torture_context *tctx,
+ struct policy_handle *hive_handle,
+ const char *keyname, uint32_t access_mask,
+ struct policy_handle *key_handle,
+ WERROR open_werr,
+ bool *success)
 {
struct winreg_OpenKey r;
 
r.in.parent_handle = hive_handle;
init_winreg_String(r.in.keyname, keyname);
r.in.unknown = 0x;
-   r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+   r.in.access_mask = access_mask;
r.out.handle = key_handle;
 
torture_assert_ntstatus_ok(tctx, dcerpc_winreg_OpenKey(p, tctx, r),
   OpenKey failed);
 
-   torture_assert_werr_ok(tctx, r.out.result, OpenKey failed);
+   torture_assert_werr_equal(tctx, r.out.result, open_werr,
+ OpenKey failed);
 
+   if (success  W_ERROR_EQUAL(r.out.result, WERR_OK)) {
+   *success = true;
+   }
+
return true;
 }
 
+static bool test_OpenKey(struct dcerpc_pipe *p, struct torture_context *tctx,
+struct policy_handle *hive_handle,
+const char *keyname, struct policy_handle *key_handle)
+{
+   return _test_OpenKey(p, tctx, hive_handle, keyname,
+SEC_FLAG_MAXIMUM_ALLOWED, key_handle,
+WERR_OK, NULL);
+}
+
 static bool test_Cleanup(struct dcerpc_pipe *p, struct torture_context *tctx,
 struct policy_handle *handle, const char *key)
 {
@@ -447,6 +464,151 @@
return false;
 }
 
+static bool _test_dacl_trustee_present(struct dcerpc_pipe *p,
+  struct torture_context *tctx,
+  struct policy_handle *handle,
+  const char *key,
+  const struct dom_sid *sid)
+{
+   struct policy_handle new_handle;
+   bool ret = true;
+
+   if (!test_OpenKey(p, tctx, handle, key, new_handle)) {
+   return false;
+   }
+
+   ret = test_dacl_trustee_present(p, tctx, new_handle, sid);
+
+   test_CloseKey(p, tctx, new_handle);
+
+   return ret;
+}
+
+static bool test_sacl_trustee_present(struct dcerpc_pipe *p,
+ struct torture_context *tctx,
+ struct policy_handle *handle,
+ const struct dom_sid *sid)
+{
+   struct security_descriptor *sd = NULL;
+   int i;
+   uint32_t sec_info = SECINFO_SACL;
+
+   if (!_test_GetKeySecurity(p, tctx, handle, sec_info, WERR_OK, sd)) {
+   return false;
+   }
+
+   if (!sd || !sd-sacl) {
+   return false;
+   }
+
+   for (i = 0; i  sd-sacl-num_aces; i++) {
+   if (dom_sid_equal(sd-sacl-aces[i].trustee, sid)) {
+   return true;
+   }
+   }
+
+   return false;
+}
+
+static bool _test_sacl_trustee_present(struct dcerpc_pipe *p,
+  struct torture_context *tctx,
+  struct policy_handle *handle,
+  const char *key,
+  const struct dom_sid *sid)
+{
+   struct policy_handle new_handle;
+   bool ret = true;
+
+   if (!_test_OpenKey(p, tctx, handle, key, SEC_FLAG_SYSTEM_SECURITY,
+  new_handle, WERR_OK, NULL)) {
+   return false;
+   }
+
+   ret = test_sacl_trustee_present(p, tctx, new_handle, sid);
+
+   test_CloseKey(p, tctx, new_handle);
+
+   return ret;
+}
+
+static bool test_owner_present(struct dcerpc_pipe *p,
+  struct torture_context *tctx,
+  struct policy_handle *handle,
+  const struct dom_sid *sid)
+{
+   struct security_descriptor *sd = NULL

svn commit: samba r25809 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 14:37:07 + (Fri, 02 Nov 2007)
New Revision: 25809

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25809

Log:
Add basic security descriptor inheritance test for winreg.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:27:58 UTC 
(rev 25808)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:37:07 UTC 
(rev 25809)
@@ -32,7 +32,11 @@
 #define TEST_KEY3 TEST_KEY_BASE \\with a subkey
 #define TEST_KEY4 TEST_KEY_BASE \\sd_tests
 #define TEST_SUBKEY TEST_KEY3 \\subkey
+#define TEST_SUBKEY_SD  TEST_KEY4 \\subkey_sd
+#define TEST_SUBSUBKEY_SD TEST_KEY4 \\subkey_sd\\subsubkey_sd
 
+#define TEST_SID S-1-5-21-1234567890-1234567890-1234567890-500
+
 static void init_initshutdown_String(TALLOC_CTX *mem_ctx,
 struct initshutdown_String *name,
 const char *s)
@@ -302,6 +306,14 @@
return true;
 }
 
+static bool test_SetKeySecurity(struct dcerpc_pipe *p,
+   struct torture_context *tctx,
+   struct policy_handle *handle,
+   struct security_descriptor *sd)
+{
+   return _test_SetKeySecurity(p, tctx, handle, NULL, sd, WERR_OK);
+}
+
 static bool test_CloseKey(struct dcerpc_pipe *p, struct torture_context *tctx,
  struct policy_handle *handle)
 {
@@ -410,20 +422,166 @@
return ret;
 }
 
-static bool test_DeleteKey(struct dcerpc_pipe *p, struct torture_context *tctx,
-  struct policy_handle *handle, const char *key)
+static bool test_dacl_ace_present(struct dcerpc_pipe *p,
+ struct torture_context *tctx,
+ struct policy_handle *handle,
+ const struct security_ace *ace)
 {
+   struct security_descriptor *sd = NULL;
+   int i;
+
+   if (!test_GetKeySecurity(p, tctx, handle, sd)) {
+   return false;
+   }
+
+   if (!sd || !sd-dacl) {
+   return false;
+   }
+
+   for (i = 0; i  sd-dacl-num_aces; i++) {
+   if (security_ace_equal(sd-dacl-aces[i], ace)) {
+   return true;
+   }
+   }
+
+   return false;
+}
+
+static bool test_RestoreSecurity(struct dcerpc_pipe *p,
+struct torture_context *tctx,
+struct policy_handle *handle,
+const char *key,
+struct security_descriptor *sd)
+{
+   struct policy_handle new_handle;
+   bool ret = true;
+
+   if (!test_OpenKey(p, tctx, handle, key, new_handle)) {
+   return false;
+   }
+
+   if (!test_SetKeySecurity(p, tctx, new_handle, sd)) {
+   ret = false;
+   }
+
+   if (!test_CloseKey(p, tctx, new_handle)) {
+   ret = false;
+   }
+
+   return ret;
+}
+
+static bool test_SecurityDescriptorInheritance(struct dcerpc_pipe *p,
+  struct torture_context *tctx,
+  struct policy_handle *handle,
+  const char *key)
+{
+   /* get sd
+  add ace SEC_ACE_FLAG_CONTAINER_INHERIT
+  set sd
+  get sd
+  check ace
+  add subkey
+  get sd
+  check ace
+  add subsubkey
+  get sd
+  check ace
+  del subsubkey
+  del subkey
+  reset sd
+   */
+
+   struct security_descriptor *sd = NULL;
+   struct security_descriptor *sd_orig = NULL;
+   struct security_ace *ace = NULL;
+   struct policy_handle new_handle;
NTSTATUS status;
-   struct winreg_DeleteKey r;
+   bool ret = true;
 
-   r.in.handle = handle;
-   init_winreg_String(r.in.key, key);
+   torture_comment(tctx, SecurityDescriptor inheritance\n);
 
-   status = dcerpc_winreg_DeleteKey(p, tctx, r);
+   if (!test_OpenKey(p, tctx, handle, key, new_handle)) {
+   return false;
+   }
 
-   torture_assert_ntstatus_ok(tctx, status, DeleteKey failed);
-   torture_assert_werr_ok(tctx, r.out.result, DeleteKey failed);
+   if (!_test_GetKeySecurity(p, tctx, new_handle, NULL, WERR_OK, sd)) {
+   return false;
+   }
 
+   sd_orig = security_descriptor_copy(tctx, sd);
+   if (sd_orig == NULL) {
+   return false;
+   }
+
+   ace = security_ace_create(tctx,
+ TEST_SID,
+ SEC_ACE_TYPE_ACCESS_ALLOWED

svn commit: samba r25808 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 14:27:58 + (Fri, 02 Nov 2007)
New Revision: 25808

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25808

Log:
Move basic security descriptor test to a test_SecurityDescriptors() call.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:18:07 UTC 
(rev 25807)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-11-02 14:27:58 UTC 
(rev 25808)
@@ -30,6 +30,7 @@
 #define TEST_KEY1 TEST_KEY_BASE \\spottyfoot
 #define TEST_KEY2 TEST_KEY_BASE \\with a SD (#1)
 #define TEST_KEY3 TEST_KEY_BASE \\with a subkey
+#define TEST_KEY4 TEST_KEY_BASE \\sd_tests
 #define TEST_SUBKEY TEST_KEY3 \\subkey
 
 static void init_initshutdown_String(TALLOC_CTX *mem_ctx,
@@ -145,7 +146,8 @@
SID_NT_AUTHENTICATED_USERS,
SEC_ACE_TYPE_ACCESS_ALLOWED,
SEC_GENERIC_ALL,
-   SEC_ACE_FLAG_OBJECT_INHERIT,
+   SEC_ACE_FLAG_OBJECT_INHERIT |
+   SEC_ACE_FLAG_CONTAINER_INHERIT,
NULL);
 
torture_assert_ntstatus_ok(tctx,
@@ -176,27 +178,37 @@
return true;
 }
 
-static bool test_GetKeySecurity(struct dcerpc_pipe *p,
-   struct torture_context *tctx,
-   struct policy_handle *handle,
-   struct security_descriptor **sd_out)
+static bool _test_GetKeySecurity(struct dcerpc_pipe *p,
+struct torture_context *tctx,
+struct policy_handle *handle,
+uint32_t *sec_info_ptr,
+WERROR get_werr,
+struct security_descriptor **sd_out)
 {
struct winreg_GetKeySecurity r;
struct security_descriptor *sd = NULL;
+   uint32_t sec_info;
DATA_BLOB sdblob;
 
+   if (sec_info_ptr) {
+   sec_info = *sec_info_ptr;
+   } else {
+   sec_info = SECINFO_OWNER | SECINFO_GROUP | SECINFO_DACL;
+   }
+
ZERO_STRUCT(r);
 
r.in.handle = handle;
+   r.in.sec_info = sec_info;
r.in.sd = r.out.sd = talloc_zero(tctx, struct KeySecurityData);
r.in.sd-size = 0x1000;
-   r.in.sec_info = SECINFO_OWNER | SECINFO_GROUP | SECINFO_DACL;
 
torture_assert_ntstatus_ok(tctx,
   dcerpc_winreg_GetKeySecurity(p, tctx, r),
   GetKeySecurity failed);
 
-   torture_assert_werr_ok(tctx, r.out.result, GetKeySecurity failed);
+   torture_assert_werr_equal(tctx, r.out.result, get_werr,
+ GetKeySecurity failed);
 
sdblob.data = r.out.sd-data;
sdblob.length = r.out.sd-len;
@@ -221,11 +233,21 @@
return true;
 }
 
-static bool test_SetKeySecurity(struct dcerpc_pipe *p,
+static bool test_GetKeySecurity(struct dcerpc_pipe *p,
struct torture_context *tctx,
struct policy_handle *handle,
-   struct security_descriptor *sd)
+   struct security_descriptor **sd_out)
 {
+   return _test_GetKeySecurity(p, tctx, handle, NULL, WERR_OK, sd_out);
+}
+
+static bool _test_SetKeySecurity(struct dcerpc_pipe *p,
+struct torture_context *tctx,
+struct policy_handle *handle,
+uint32_t *sec_info_ptr,
+struct security_descriptor *sd,
+WERROR werr)
+{
struct winreg_SetKeySecurity r;
struct KeySecurityData *sdata = NULL;
DATA_BLOB sdblob;
@@ -233,7 +255,7 @@
 
ZERO_STRUCT(r);
 
-   if (p-conn-flags  DCERPC_DEBUG_PRINT_OUT) {
+   if (sd  (p-conn-flags  DCERPC_DEBUG_PRINT_OUT)) {
NDR_PRINT_DEBUG(security_descriptor, sd);
}
 
@@ -247,20 +269,24 @@
sdata-size = sdblob.length;
sdata-len = sdblob.length;
 
-   sec_info = SECINFO_UNPROTECTED_SACL | SECINFO_UNPROTECTED_DACL;
-
-   if (sd-owner_sid) {
-   sec_info |= SECINFO_OWNER;
+   if (sec_info_ptr) {
+   sec_info = *sec_info_ptr;
+   } else {
+   sec_info = SECINFO_UNPROTECTED_SACL |
+  SECINFO_UNPROTECTED_DACL;
+   if (sd-owner_sid) {
+   sec_info |= SECINFO_OWNER;
+   }
+   if (sd-group_sid) {
+   sec_info |= SECINFO_GROUP

svn commit: samba r25816 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 15:41:55 + (Fri, 02 Nov 2007)
New Revision: 25816

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25816

Log:
Add idl for frsapi_InfoW. Surely not correct, but a start.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-11-02 15:11:54 UTC 
(rev 25815)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-11-02 15:41:55 UTC 
(rev 25816)
@@ -53,8 +53,7 @@
 
//
/* Function 0x07 */
-
-   typedef enum {
+   typedef [v1_enum] enum {
FRSAPI_INFO_VERSION = 0,
FRSAPI_INFO_SETS= 1,
FRSAPI_INFO_DS  = 2,
@@ -67,8 +66,27 @@
FRSAPI_INFO_CONFIGTABLE = 9
} frsapi_InfoEnum;
 
-   void FRSAPI_INFO_W();
+   typedef struct {
+   uint32 length;
+   GUID guid;
+   uint32 length2;
+   uint32 unknown1;
+   frsapi_InfoEnum level;
+   uint32 query_counter;
+   uint32 unknown2;
+   uint32 offset;
+   uint32 blob_len;
+   /* [size_is(length-offset)] uint8 *data; */
+   
[subcontext_size(length-offset),subcontext(0),flag(NDR_REMAINING)] DATA_BLOB 
blob;
+   } frsapi_Info;
 
+   WERROR frsapi_InfoW(
+   [in] [range(0,0x1)] uint32 length,
+   /* [in,out] [size_is(length)] [unique] uint8 *data */
+   [in,out,unique] frsapi_Info *info
+
+   );
+
//
/* Function 0x08 */
typedef [v1_enum] enum {



svn commit: samba r25803 - in branches/SAMBA_4_0/source: lib/registry/tests libcli/security libnet torture/raw torture/rpc

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 12:54:19 + (Fri, 02 Nov 2007)
New Revision: 25803

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25803

Log:
Make our security descriptor acl manipulation methods more generic so that we
can add and delete ACEs for SACLs as well as for DACLs.

Guenther

Modified:
   branches/SAMBA_4_0/source/lib/registry/tests/registry.c
   branches/SAMBA_4_0/source/libcli/security/security_descriptor.c
   branches/SAMBA_4_0/source/libnet/libnet_become_dc.c
   branches/SAMBA_4_0/source/torture/raw/acls.c
   branches/SAMBA_4_0/source/torture/rpc/samba3rpc.c
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Sorry, the patch is too large (608 lines) to include; please use WebSVN to see 
it!
WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25803


svn commit: samba r25800 - in branches/SAMBA_4_0/source/librpc/tools: .

2007-11-02 Thread gd
Author: gd
Date: 2007-11-02 11:36:06 + (Fri, 02 Nov 2007)
New Revision: 25800

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25800

Log:
Use dump_data_skip_zeros() in ndrdump.

Still obey the --dump-data parameter which enforces the full dump display
(thanks metze).

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/tools/ndrdump.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/tools/ndrdump.c
===
--- branches/SAMBA_4_0/source/librpc/tools/ndrdump.c2007-11-02 11:33:53 UTC 
(rev 25799)
+++ branches/SAMBA_4_0/source/librpc/tools/ndrdump.c2007-11-02 11:36:06 UTC 
(rev 25800)
@@ -130,6 +130,15 @@
return p;
 }
 
+static void ndrdump_data(uint8_t *d, uint32_t l, bool force)
+{
+   if (force) {
+   dump_data(0, d, l);
+   } else {
+   dump_data_skip_zeros(0, d, l);
+   }
+}
+
  int main(int argc, const char *argv[])
 {
const struct ndr_interface_table *p = NULL;
@@ -338,12 +347,14 @@
 
if (ndr_pull-offset != ndr_pull-data_size) {
printf(WARNING! %d unread bytes\n, ndr_pull-data_size - 
ndr_pull-offset);
-   dump_data(0, ndr_pull-data+ndr_pull-offset, 
ndr_pull-data_size - ndr_pull-offset);
+   ndrdump_data(ndr_pull-data+ndr_pull-offset,
+ndr_pull-data_size - ndr_pull-offset,
+dumpdata);
}
 
if (dumpdata) {
printf(%d bytes consumed\n, ndr_pull-offset);
-   dump_data(0, blob.data, blob.length);
+   ndrdump_data(blob.data, blob.length, dumpdata);
}
 
ndr_print = talloc_zero(mem_ctx, struct ndr_print);
@@ -377,7 +388,7 @@
 
if (dumpdata) {
printf(%ld bytes generated (validate)\n, 
(long)v_blob.length);
-   dump_data(0, v_blob.data, v_blob.length);
+   ndrdump_data(v_blob.data, v_blob.length, dumpdata);
}
 
ndr_v_pull = ndr_pull_init_blob(v_blob, mem_ctx);
@@ -393,7 +404,9 @@
 
if (ndr_v_pull-offset != ndr_v_pull-data_size) {
printf(WARNING! %d unread bytes in validation\n, 
ndr_v_pull-data_size - ndr_v_pull-offset);
-   dump_data(0, ndr_v_pull-data+ndr_v_pull-offset, 
ndr_v_pull-data_size - ndr_v_pull-offset);
+   ndrdump_data(ndr_v_pull-data+ndr_v_pull-offset,
+ndr_v_pull-data_size - ndr_v_pull-offset,
+dumpdata);
}
 
ndr_v_print = talloc_zero(mem_ctx, struct ndr_print);



svn commit: samba r25739 - in branches/SAMBA_4_0/source/libcli/security: .

2007-10-26 Thread gd
Author: gd
Date: 2007-10-26 12:56:02 + (Fri, 26 Oct 2007)
New Revision: 25739

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25739

Log:
We forgot to copy revision and type flags in security_descriptor_copy().

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/security/security_descriptor.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/security/security_descriptor.c
===
--- branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-10-26 06:32:24 UTC (rev 25738)
+++ branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-10-26 12:56:02 UTC (rev 25739)
@@ -130,6 +130,9 @@
}
}
 
+   nsd-revision = osd-revision;
+   nsd-type = osd-type;
+
return nsd;
 
  failed:



svn commit: samba r25730 - in branches/SAMBA_4_0/source: librpc/idl torture/rpc

2007-10-25 Thread gd
Author: gd
Date: 2007-10-25 11:12:02 + (Thu, 25 Oct 2007)
New Revision: 25730

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25730

Log:
Fix IDL for incorrect winreg_SetKeySecurity.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/winreg.idl
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/winreg.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/winreg.idl 2007-10-25 11:07:30 UTC 
(rev 25729)
+++ branches/SAMBA_4_0/source/librpc/idl/winreg.idl 2007-10-25 11:12:02 UTC 
(rev 25730)
@@ -273,7 +273,7 @@
/* Function: 0x15 */
WERROR winreg_SetKeySecurity(
[in,ref] policy_handle *handle,
-   [in] winreg_AccessMask access_mask,
+   [in] security_secinfo sec_info,
[in,ref] KeySecurityData *sd
);
 

Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-10-25 11:07:30 UTC 
(rev 25729)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-10-25 11:12:02 UTC 
(rev 25730)
@@ -228,6 +228,7 @@
struct winreg_SetKeySecurity r;
struct KeySecurityData *sdata = NULL;
DATA_BLOB sdblob;
+   uint32_t sec_info;
 
ZERO_STRUCT(r);
 
@@ -245,8 +246,23 @@
sdata-size = sdblob.length;
sdata-len = sdblob.length;
 
+   sec_info = SECINFO_UNPROTECTED_SACL | SECINFO_UNPROTECTED_DACL;
+
+   if (sd-owner_sid) {
+   sec_info |= SECINFO_OWNER;
+   }
+   if (sd-group_sid) {
+   sec_info |= SECINFO_GROUP;
+   }
+   if (sd-sacl) {
+   sec_info |= SECINFO_SACL;
+   }
+   if (sd-dacl) {
+   sec_info |= SECINFO_DACL;
+   }
+
r.in.handle = handle;
-   r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+   r.in.sec_info = sec_info;
r.in.sd = sdata;
 
torture_assert_ntstatus_ok(tctx,



svn commit: samba r25731 - in branches/SAMBA_4_0/source: librpc/idl torture/rpc

2007-10-25 Thread gd
Author: gd
Date: 2007-10-25 11:26:02 + (Thu, 25 Oct 2007)
New Revision: 25731

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25731

Log:
Document winreg_NotifyChangeKeyValue's notify flags.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/winreg.idl
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/winreg.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/winreg.idl 2007-10-25 11:12:02 UTC 
(rev 25730)
+++ branches/SAMBA_4_0/source/librpc/idl/winreg.idl 2007-10-25 11:26:02 UTC 
(rev 25731)
@@ -19,8 +19,8 @@
KEY_QUERY_VALUE = 0x1,
KEY_SET_VALUE   = 0x2,
KEY_CREATE_SUB_KEY  = 0x4,
-   KEY_ENUMERATE_SUB_KEYS  = 0x8,
-   KEY_NOTIFY  = 0x00010,
+   KEY_ENUMERATE_SUB_KEYS  = 0x8,
+   KEY_NOTIFY  = 0x00010,
KEY_CREATE_LINK = 0x00020,
KEY_WOW64_64KEY = 0x00100,
KEY_WOW64_32KEY = 0x00200
@@ -195,13 +195,20 @@
 
/**/
/* Function: 0x0e */
+   typedef [public,bitmap32bit] bitmap {
+   REG_NOTIFY_CHANGE_NAME  = 0x0001,
+   REG_NOTIFY_CHANGE_ATTRIBUTES= 0x0002,
+   REG_NOTIFY_CHANGE_LAST_SET  = 0x0004,
+   REG_NOTIFY_CHANGE_SECURITY  = 0x0008
+   } winreg_NotifyChangeType;
+
[public] WERROR winreg_NotifyChangeKeyValue(
[in,ref] policy_handle *handle,
-   [in] uint8 watch_subtree,
-   [in] uint32 notify_filter,
+   [in] boolean8 watch_subtree,
+   [in] winreg_NotifyChangeType notify_filter,
[in] uint32 unknown,
[in] winreg_String string1,
-   [in] winreg_String string2, 
+   [in] winreg_String string2,
[in] uint32 unknown2
);
 

Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-10-25 11:12:02 UTC 
(rev 25730)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-10-25 11:26:02 UTC 
(rev 25731)
@@ -78,7 +78,7 @@
struct winreg_NotifyChangeKeyValue r;
 
r.in.handle = handle;
-   r.in.watch_subtree = 1;
+   r.in.watch_subtree = true;
r.in.notify_filter = 0;
r.in.unknown = r.in.unknown2 = 0;
init_winreg_String(r.in.string1, NULL);
@@ -90,7 +90,8 @@
 
if (!W_ERROR_IS_OK(r.out.result)) {
torture_comment(tctx,
-   NotifyChangeKeyValue failed - %s - not 
considering\n, win_errstr(r.out.result));
+   NotifyChangeKeyValue failed - %s - not 
considering\n,
+   win_errstr(r.out.result));
return true;
}
 



svn commit: samba r25706 - in branches/SAMBA_4_0/source/nsswitch: .

2007-10-19 Thread gd
Author: gd
Date: 2007-10-19 14:28:26 + (Fri, 19 Oct 2007)
New Revision: 25706

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25706

Log:
Merge padding fix from Samba3.

Guenther

Modified:
   branches/SAMBA_4_0/source/nsswitch/winbind_struct_protocol.h


Changeset:
Modified: branches/SAMBA_4_0/source/nsswitch/winbind_struct_protocol.h
===
--- branches/SAMBA_4_0/source/nsswitch/winbind_struct_protocol.h
2007-10-19 06:57:19 UTC (rev 25705)
+++ branches/SAMBA_4_0/source/nsswitch/winbind_struct_protocol.h
2007-10-19 14:28:26 UTC (rev 25706)
@@ -326,7 +326,7 @@
   The size is the sizeof the union without the padding aligned 
on 
   an 8 byte boundary.   --jerry */
 
-   char padding[1560];
+   char padding[1800];
} data;
union {
SMB_TIME_T padding;



svn commit: samba r25696 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-10-18 Thread gd
Author: gd
Date: 2007-10-18 09:44:25 + (Thu, 18 Oct 2007)
New Revision: 25696

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25696

Log:
Fix pipe name for dfs.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/dfs.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/dfs.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/dfs.idl2007-10-18 08:34:19 UTC 
(rev 25695)
+++ branches/SAMBA_4_0/source/librpc/idl/dfs.idl2007-10-18 09:44:25 UTC 
(rev 25696)
@@ -8,7 +8,7 @@
   version(3.0),
   pointer_default(unique),
   helpstring(Settings for Microsoft Distributed File System),
-  endpoint(ncacn_np:[\\pipe\\dfs], ncacn_ip_tcp:, ncalrpc:)
+  endpoint(ncacn_np:[\\pipe\\netdfs], ncacn_ip_tcp:, ncalrpc:)
 ] interface netdfs
 {
/**/



svn commit: samba r25699 - in branches/SAMBA_4_0/source: librpc/idl torture/rpc

2007-10-18 Thread gd
Author: gd
Date: 2007-10-18 21:23:25 + (Thu, 18 Oct 2007)
New Revision: 25699

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25699

Log:
Add ForceReplication test.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
   branches/SAMBA_4_0/source/torture/rpc/frsapi.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-18 19:25:58 UTC 
(rev 25698)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-18 21:23:25 UTC 
(rev 25699)
@@ -94,8 +94,8 @@
/* Function 0x0a */
/* not supported before w2k3 sp2 */
WERROR frsapi_ForceReplication(
-   [in] uint32 unknown1,
-   [in] uint32 unknown2,
+   [in,unique] GUID *guid1,
+   [in,unique] GUID *guid2,
[in,unique] [charset(UTF16),string] uint16 *replica_set,
[in,unique] [charset(UTF16),string] uint16 *partner_name
);

Modified: branches/SAMBA_4_0/source/torture/rpc/frsapi.c
===
--- branches/SAMBA_4_0/source/torture/rpc/frsapi.c  2007-10-18 19:25:58 UTC 
(rev 25698)
+++ branches/SAMBA_4_0/source/torture/rpc/frsapi.c  2007-10-18 21:23:25 UTC 
(rev 25699)
@@ -24,6 +24,7 @@
 #include torture/rpc/rpc.h
 #include librpc/gen_ndr/ndr_frsapi_c.h
 #include torture/util.h
+#include param/param.h
 
 static bool test_GetDsPollingIntervalW(struct torture_context *tctx,
   struct dcerpc_pipe *p,
@@ -150,16 +151,17 @@
FRSAPI_REPLICA_SET_TYPE_DOMAIN,
FRSAPI_REPLICA_SET_TYPE_DFS };
int i;
+   bool ret = true;
 
if (!test_IsPathReplicated_err(tctx, p, NULL, 0,
   WERR_FRS_INVALID_SERVICE_PARAMETER)) {
-   return false;
+   ret = false;
}
 
for (i=0; iARRAY_SIZE(lvls); i++) {
if (!_test_IsPathReplicated(tctx, p, dcerpc_server_name(p),
lvls[i])) {
-   return false;
+   ret = false;
}
}
 
@@ -167,7 +169,7 @@
const char *path = talloc_asprintf(tctx, %s\\SYSVOL,
   dcerpc_server_name(p));
if (!_test_IsPathReplicated(tctx, p, path, lvls[i])) {
-   return false;
+   ret = false;
}
}
 
@@ -175,10 +177,33 @@
if (!_test_IsPathReplicated(tctx, p,
C:\\windows\\sysvol\\domain,
lvls[i])) {
-   return false;
+   ret = false;
}
}
 
+   return ret;
+}
+
+static bool test_ForceReplication(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+   struct frsapi_ForceReplication r;
+
+   ZERO_STRUCT(r);
+
+   r.in.guid1 = NULL;
+   r.in.guid2 = NULL;
+   r.in.replica_set = talloc_asprintf(tctx, %s,
+  lp_realm(global_loadparm));
+   r.in.partner_name = dcerpc_server_name(p);
+
+   torture_assert_ntstatus_ok(tctx,
+   dcerpc_frsapi_ForceReplication(p, tctx, r),
+   ForceReplication failed);
+
+   torture_assert_werr_ok(tctx, r.out.result,
+  ForceReplication failed);
+
return true;
 }
 
@@ -197,5 +222,9 @@
test = torture_rpc_tcase_add_test(tcase, IsPathReplicated,
  test_IsPathReplicated);
 
+   test = torture_rpc_tcase_add_test(tcase, ForceReplication,
+ test_ForceReplication);
+
+
return suite;
 }



svn commit: samba r25675 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-10-17 Thread gd
Author: gd
Date: 2007-10-17 09:50:39 + (Wed, 17 Oct 2007)
New Revision: 25675

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25675

Log:
More frsapi IDL.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-17 08:26:55 UTC 
(rev 25674)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-17 09:50:39 UTC 
(rev 25675)
@@ -92,6 +92,12 @@
 
//
/* Function 0x0a */
-   void FRSAPI_FORCE_REPLICATION();
+   /* not supported before w2k3 sp2 */
+   WERROR frsapi_ForceReplication(
+   [in] uint32 unknown1,
+   [in] uint32 unknown2,
+   [in,unique] [charset(UTF16),string] uint16 *replica_set,
+   [in,unique] [charset(UTF16),string] uint16 *partner_name
+   );
 
 }



svn commit: samba r25662 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 11:12:41 + (Tue, 16 Oct 2007)
New Revision: 25662

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25662

Log:
While watching traces, learned the frsapi_InfoEnum enum types.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 05:26:15 UTC 
(rev 25661)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 11:12:41 UTC 
(rev 25662)
@@ -37,6 +37,20 @@
 
//
/* Function 0x07 */
+
+   typedef enum {
+   FRSAPI_INFO_VERSION = 0,
+   FRSAPI_INFO_SETS= 1,
+   FRSAPI_INFO_DS  = 2,
+   FRSAPI_INFO_MEMORY  = 3,
+   FRSAPI_INFO_IDTABLE = 4,
+   FRSAPI_INFO_OUTLOG  = 5,
+   FRSAPI_INFO_INLOG   = 6,
+   FRSAPI_INFO_THREADS = 7,
+   FRSAPI_INFO_STAGE   = 8,
+   FRSAPI_INFO_CONFIGTABLE = 9
+   } frsapi_InfoEnum;
+
void FRSAPI_INFO_W();
 
//



svn commit: samba r25663 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 11:16:35 + (Tue, 16 Oct 2007)
New Revision: 25663

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25663

Log:
Add frsapi_SetDsPollingIntervalW and frsapi_GetDsPollingIntervalW idl.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 11:12:41 UTC 
(rev 25662)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 11:16:35 UTC 
(rev 25663)
@@ -25,11 +25,19 @@
 
//
/* Function 0x04 */
-   void FRSAPI_SET_DS_POLLING_INTERVAL_W();
+   WERROR frsapi_SetDsPollingIntervalW(
+   [in] uint32 CurrentInterval,
+   [in] uint32 DsPollingLongInterval,
+   [in] uint32 DsPollingShortInterval
+   );
 
-   //
-   /* Function 0x05 */
-   void FRSAPI_GET_DS_POLLING_INTERVAL_W();
+//
+/* Function 0x05 */
+   WERROR frsapi_GetDsPollingIntervalW(
+   [out] uint32 CurrentInterval,
+   [out] uint32 DsPollingLongInterval,
+   [out] uint32 DsPollingShortInterval
+   );
 
//
/* Function 0x06 */



svn commit: samba r25664 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 11:30:58 + (Tue, 16 Oct 2007)
New Revision: 25664

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25664

Log:
Use [out] pointers in frsapi idl.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 11:16:35 UTC 
(rev 25663)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 11:30:58 UTC 
(rev 25664)
@@ -34,9 +34,9 @@
 //
 /* Function 0x05 */
WERROR frsapi_GetDsPollingIntervalW(
-   [out] uint32 CurrentInterval,
-   [out] uint32 DsPollingLongInterval,
-   [out] uint32 DsPollingShortInterval
+   [out] uint32 *CurrentInterval,
+   [out] uint32 *DsPollingLongInterval,
+   [out] uint32 *DsPollingShortInterval
);
 
//



svn commit: samba r25665 - in branches/SAMBA_4_0/source/libcli/util: .

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 11:39:40 + (Tue, 16 Oct 2007)
New Revision: 25665

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25665

Log:
Add some more WERR codes.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/util/doserr.c
   branches/SAMBA_4_0/source/libcli/util/werror.h


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/util/doserr.c
===
--- branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-10-16 11:30:58 UTC 
(rev 25664)
+++ branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-10-16 11:39:40 UTC 
(rev 25665)
@@ -119,6 +119,9 @@
{ WERR_SEC_E_ENCRYPT_FAILURE, WERR_SEC_E_ENCRYPT_FAILURE },
{ WERR_SEC_E_DECRYPT_FAILURE, WERR_SEC_E_DECRYPT_FAILURE },
{ WERR_SEC_E_ALGORITHM_MISMATCH, WERR_SEC_E_ALGORITHM_MISMATCH },
+   { WERR_NOT_AUTHENTICATED, WERR_NOT_AUTHENTICATED },
+   { WERR_CALL_NOT_IMPLEMENTED, WERR_CALL_NOT_IMPLEMENTED },
+   { WERR_FRS_INVALID_SERVICE_PARAMETER, 
WERR_FRS_INVALID_SERVICE_PARAMETER },
{ NULL, W_ERROR(0) }
 };
 

Modified: branches/SAMBA_4_0/source/libcli/util/werror.h
===
--- branches/SAMBA_4_0/source/libcli/util/werror.h  2007-10-16 11:30:58 UTC 
(rev 25664)
+++ branches/SAMBA_4_0/source/libcli/util/werror.h  2007-10-16 11:39:40 UTC 
(rev 25665)
@@ -79,6 +79,7 @@
 #define WERR_FILE_EXISTS W_ERROR(80)
 #define WERR_BAD_PASSWORD W_ERROR(86)
 #define WERR_INVALID_PARAM W_ERROR(87)
+#define WERR_CALL_NOT_IMPLEMENTED W_ERROR(120)
 #define WERR_INSUFFICIENT_BUFFER W_ERROR(122)
 #define WERR_INVALID_NAME W_ERROR(123)
 #define WERR_UNKNOWN_LEVEL W_ERROR(124)
@@ -90,6 +91,7 @@
 #define WERR_NOT_FOUND W_ERROR(1168)
 #define WERR_INVALID_COMPUTERNAME W_ERROR(1210)
 #define WERR_INVALID_DOMAINNAME W_ERROR(1212)
+#define WERR_NOT_AUTHENTICATED W_ERROR(1244)
 #define WERR_UNKNOWN_REVISION W_ERROR(1305)
 #define WERR_REVISION_MISMATCH W_ERROR(1306)
 #define WERR_INVALID_OWNER W_ERROR(1307)
@@ -176,6 +178,12 @@
 #define WERR_DS_NO_MSDS_INTID W_ERROR(0x2194)
 #define WERR_DS_DUP_MSDS_INTID W_ERROR(0x2195)
 
+/* FRS errors */
+#ifndef FRS_ERR_BASE
+#define FRS_ERR_BASE (8000)
+#endif
+#define WERR_FRS_INVALID_SERVICE_PARAMETER W_ERROR(FRS_ERROR_BASE+17)
+
 /* SEC errors */
 #define WERR_SEC_E_ENCRYPT_FAILURE W_ERROR(0x80090329)
 #define WERR_SEC_E_DECRYPT_FAILURE W_ERROR(0x80090330)



svn commit: samba r25666 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 12:55:05 + (Tue, 16 Oct 2007)
New Revision: 25666

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25666

Log:
Add frsapi_IsPathReplicated IDL.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 11:39:40 UTC 
(rev 25665)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 12:55:05 UTC 
(rev 25666)
@@ -1,10 +1,14 @@
-[ 
+#include idl_types.h
+
+import misc.idl;
+
+[
   uuid(d049b186-814f-11d1-9a3c-00c04fc9b232),
   version(1.1),
   endpoint(ncacn_ip_tcp:, ncalrpc:),
   helpstring(File Replication API),
   pointer_default(unique)
-] 
+]
 interface frsapi
 {
//
@@ -63,7 +67,14 @@
 
//
/* Function 0x08 */
-   void FRSAPI_IS_PATH_REPLICATED();
+   WERROR frsapi_IsPathReplicated(
+   [in,unique] [string,charset(UTF16)] uint16 *path,
+   [in] uint32 unknown,
+   [out] uint32 *unknown1,
+   [out] uint32 *unknown2,
+   [out] uint32 *unknown3,
+   [out] GUID *guid
+   );
 
//
/* Function 0x09 */



svn commit: samba r25667 - in branches/SAMBA_4_0/source: librpc librpc/idl torture torture/rpc

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 13:44:43 + (Tue, 16 Oct 2007)
New Revision: 25667

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25667

Log:
Start on frsapi testsuite.

Guenther

Added:
   branches/SAMBA_4_0/source/torture/rpc/frsapi.c
Modified:
   branches/SAMBA_4_0/source/librpc/config.mk
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
   branches/SAMBA_4_0/source/torture/config.mk
   branches/SAMBA_4_0/source/torture/rpc/rpc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/config.mk
===
--- branches/SAMBA_4_0/source/librpc/config.mk  2007-10-16 12:55:05 UTC (rev 
25666)
+++ branches/SAMBA_4_0/source/librpc/config.mk  2007-10-16 13:44:43 UTC (rev 
25667)
@@ -329,6 +329,10 @@
 OBJ_FILES = gen_ndr/ndr_dfs_c.o
 PUBLIC_DEPENDENCIES = dcerpc NDR_DFS
 
+[SUBSYSTEM::RPC_NDR_FRSAPI]
+OBJ_FILES = gen_ndr/ndr_frsapi_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_FRSAPI
+
 [SUBSYSTEM::RPC_NDR_DRSUAPI]
 OBJ_FILES = gen_ndr/ndr_drsuapi_c.o
 PUBLIC_DEPENDENCIES = dcerpc NDR_DRSUAPI

Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 12:55:05 UTC 
(rev 25666)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 13:44:43 UTC 
(rev 25667)
@@ -29,14 +29,18 @@
 
//
/* Function 0x04 */
+
+   /* The DsPollingLongInterval and DsPollingShortInterval attributes
+  represent registry attributes below HKLM\System\CCS\Services\NtFrs */
+
WERROR frsapi_SetDsPollingIntervalW(
[in] uint32 CurrentInterval,
[in] uint32 DsPollingLongInterval,
[in] uint32 DsPollingShortInterval
);
 
-//
-/* Function 0x05 */
+   //
+   /* Function 0x05 */
WERROR frsapi_GetDsPollingIntervalW(
[out] uint32 *CurrentInterval,
[out] uint32 *DsPollingLongInterval,

Modified: branches/SAMBA_4_0/source/torture/config.mk
===
--- branches/SAMBA_4_0/source/torture/config.mk 2007-10-16 12:55:05 UTC (rev 
25666)
+++ branches/SAMBA_4_0/source/torture/config.mk 2007-10-16 13:44:43 UTC (rev 
25667)
@@ -159,12 +159,13 @@
rpc/samba3rpc.o \
rpc/rpc.o \
rpc/async_bind.o \
-   rpc/handles.o
+   rpc/handles.o \
+   rpc/frsapi.o
 PRIVATE_DEPENDENCIES = \
NDR_TABLE RPC_NDR_UNIXINFO dcerpc_samr RPC_NDR_WINREG 
RPC_NDR_INITSHUTDOWN \
RPC_NDR_OXIDRESOLVER RPC_NDR_EVENTLOG RPC_NDR_ECHO 
RPC_NDR_SVCCTL \
RPC_NDR_NETLOGON dcerpc_atsvc dcerpc_mgmt RPC_NDR_DRSUAPI \
-   RPC_NDR_LSA RPC_NDR_EPMAPPER RPC_NDR_DFS RPC_NDR_SPOOLSS \
+   RPC_NDR_LSA RPC_NDR_EPMAPPER RPC_NDR_DFS RPC_NDR_FRSAPI 
RPC_NDR_SPOOLSS \
RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT RPC_NDR_DSSETUP \
RPC_NDR_REMACT RPC_NDR_OXIDRESOLVER WB_HELPER LIBSAMBA-NET \
LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL 
TORTURE_RAP \

Added: branches/SAMBA_4_0/source/torture/rpc/frsapi.c
===
--- branches/SAMBA_4_0/source/torture/rpc/frsapi.c  2007-10-16 12:55:05 UTC 
(rev 25666)
+++ branches/SAMBA_4_0/source/torture/rpc/frsapi.c  2007-10-16 13:44:43 UTC 
(rev 25667)
@@ -0,0 +1,121 @@
+/*
+   Unix SMB/CIFS implementation.
+   test suite for rpc frsapi operations
+
+   Copyright (C) Guenther Deschner 2007
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include includes.h
+#include torture/torture.h
+#include torture/rpc/rpc.h
+#include librpc/gen_ndr/ndr_frsapi_c.h
+#include torture/util.h
+
+static bool test_GetDsPollingIntervalW(struct torture_context *tctx,
+  struct dcerpc_pipe *p,
+  uint32_t *CurrentInterval,
+  uint32_t *DsPollingLongInterval,
+  uint32_t *DsPollingShortInterval)
+{
+   struct frsapi_GetDsPollingIntervalW r

svn commit: samba r25668 - in branches/SAMBA_4_0/source/libcli/util: .

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 13:50:40 + (Tue, 16 Oct 2007)
New Revision: 25668

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25668

Log:
Hopefully fix the build, sorry...

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/util/doserr.h
   branches/SAMBA_4_0/source/libcli/util/werror.h


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/util/doserr.h
===
--- branches/SAMBA_4_0/source/libcli/util/doserr.h  2007-10-16 13:44:43 UTC 
(rev 25667)
+++ branches/SAMBA_4_0/source/libcli/util/doserr.h  2007-10-16 13:50:40 UTC 
(rev 25668)
@@ -165,4 +165,8 @@
 #define NERR_BASE (2100)
 #endif
 
+#ifndef FRS_ERR_BASE
+#define FRS_ERR_BASE (8000)
+#endif
+
 #endif /* _DOSERR_H */

Modified: branches/SAMBA_4_0/source/libcli/util/werror.h
===
--- branches/SAMBA_4_0/source/libcli/util/werror.h  2007-10-16 13:44:43 UTC 
(rev 25667)
+++ branches/SAMBA_4_0/source/libcli/util/werror.h  2007-10-16 13:50:40 UTC 
(rev 25668)
@@ -179,9 +179,6 @@
 #define WERR_DS_DUP_MSDS_INTID W_ERROR(0x2195)
 
 /* FRS errors */
-#ifndef FRS_ERR_BASE
-#define FRS_ERR_BASE (8000)
-#endif
 #define WERR_FRS_INVALID_SERVICE_PARAMETER W_ERROR(FRS_ERROR_BASE+17)
 
 /* SEC errors */



svn commit: samba r25669 - in branches/SAMBA_4_0/source/libcli/util: .

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 14:09:49 + (Tue, 16 Oct 2007)
New Revision: 25669

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25669

Log:
Real build fix.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/util/werror.h


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/util/werror.h
===
--- branches/SAMBA_4_0/source/libcli/util/werror.h  2007-10-16 13:50:40 UTC 
(rev 25668)
+++ branches/SAMBA_4_0/source/libcli/util/werror.h  2007-10-16 14:09:49 UTC 
(rev 25669)
@@ -179,7 +179,7 @@
 #define WERR_DS_DUP_MSDS_INTID W_ERROR(0x2195)
 
 /* FRS errors */
-#define WERR_FRS_INVALID_SERVICE_PARAMETER W_ERROR(FRS_ERROR_BASE+17)
+#define WERR_FRS_INVALID_SERVICE_PARAMETER W_ERROR(FRS_ERR_BASE+17)
 
 /* SEC errors */
 #define WERR_SEC_E_ENCRYPT_FAILURE W_ERROR(0x80090329)



svn commit: samba r25670 - in branches/SAMBA_4_0/source: librpc/idl torture/rpc

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 14:33:34 + (Tue, 16 Oct 2007)
New Revision: 25670

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25670

Log:
Add torture test for frsapi_IsPathReplicated().

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
   branches/SAMBA_4_0/source/torture/rpc/frsapi.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 14:09:49 UTC 
(rev 25669)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 14:33:34 UTC 
(rev 25670)
@@ -71,13 +71,19 @@
 
//
/* Function 0x08 */
+   typedef [v1_enum] enum {
+   FRSAPI_REPLICA_SET_TYPE_0   = 0x,
+   FRSAPI_REPLICA_SET_TYPE_DOMAIN  = 0x0002,
+   FRSAPI_REPLICA_SET_TYPE_DFS = 0x0003
+   } frsapi_ReplicaSetType;
+
WERROR frsapi_IsPathReplicated(
[in,unique] [string,charset(UTF16)] uint16 *path,
-   [in] uint32 unknown,
+   [in] frsapi_ReplicaSetType replica_set_type,
[out] uint32 *unknown1,
[out] uint32 *unknown2,
[out] uint32 *unknown3,
-   [out] GUID *guid
+   [out] GUID *replica_set_guid
);
 
//

Modified: branches/SAMBA_4_0/source/torture/rpc/frsapi.c
===
--- branches/SAMBA_4_0/source/torture/rpc/frsapi.c  2007-10-16 14:09:49 UTC 
(rev 25669)
+++ branches/SAMBA_4_0/source/torture/rpc/frsapi.c  2007-10-16 14:33:34 UTC 
(rev 25670)
@@ -105,6 +105,83 @@
return true;
 }
 
+static bool test_IsPathReplicated_err(struct torture_context *tctx,
+ struct dcerpc_pipe *p,
+ const char *path,
+ uint32_t type,
+ WERROR werr)
+{
+   struct frsapi_IsPathReplicated r;
+   struct GUID guid;
+   uint32_t unknown1, unknown2, unknown3 = 0;
+
+   ZERO_STRUCT(r);
+
+   r.in.path = path;
+   r.in.replica_set_type = type;
+   r.out.unknown1 = unknown1;
+   r.out.unknown2 = unknown2;
+   r.out.unknown3 = unknown3;
+   r.out.replica_set_guid = guid;
+
+   torture_assert_ntstatus_ok(tctx,
+   dcerpc_frsapi_IsPathReplicated(p, tctx, r),
+   IsPathReplicated failed);
+
+   torture_assert_werr_equal(tctx, r.out.result, werr,
+ GetDsPollingIntervalW failed);
+
+   return true;
+}
+
+static bool _test_IsPathReplicated(struct torture_context *tctx,
+ struct dcerpc_pipe *p,
+ const char *path,
+ uint32_t type)
+{
+   return test_IsPathReplicated_err(tctx, p, path, type, WERR_OK);
+}
+
+static bool test_IsPathReplicated(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+   const uint32_t lvls[] = {
+   FRSAPI_REPLICA_SET_TYPE_0,
+   FRSAPI_REPLICA_SET_TYPE_DOMAIN,
+   FRSAPI_REPLICA_SET_TYPE_DFS };
+   int i;
+
+   if (!test_IsPathReplicated_err(tctx, p, NULL, 0,
+  WERR_FRS_INVALID_SERVICE_PARAMETER)) {
+   return false;
+   }
+
+   for (i=0; iARRAY_SIZE(lvls); i++) {
+   if (!_test_IsPathReplicated(tctx, p, dcerpc_server_name(p),
+   lvls[i])) {
+   return false;
+   }
+   }
+
+   for (i=0; iARRAY_SIZE(lvls); i++) {
+   const char *path = talloc_asprintf(tctx, %s\\SYSVOL,
+  dcerpc_server_name(p));
+   if (!_test_IsPathReplicated(tctx, p, path, lvls[i])) {
+   return false;
+   }
+   }
+
+   for (i=0; iARRAY_SIZE(lvls); i++) {
+   if (!_test_IsPathReplicated(tctx, p,
+   C:\\windows\\sysvol\\domain,
+   lvls[i])) {
+   return false;
+   }
+   }
+
+   return true;
+}
+
 struct torture_suite *torture_rpc_frsapi(TALLOC_CTX *mem_ctx)
 {
struct torture_rpc_tcase *tcase;
@@ -117,5 +194,8 @@
test = torture_rpc_tcase_add_test(tcase, DsPollingIntervalW,
  test_DsPollingIntervalW);
 
+   test = torture_rpc_tcase_add_test(tcase, IsPathReplicated,
+ test_IsPathReplicated);
+
return suite;
 }



svn commit: samba r25671 - in branches/SAMBA_4_0/source/librpc/idl: .

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 17:12:04 + (Tue, 16 Oct 2007)
New Revision: 25671

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25671

Log:
Add stub FRSAPI_FORCE_REPLICATION.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 14:33:34 UTC 
(rev 25670)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl 2007-10-16 17:12:04 UTC 
(rev 25671)
@@ -89,4 +89,9 @@
//
/* Function 0x09 */
void FRSAPI_WRITER_COMMAND();
+
+   //
+   /* Function 0x0a */
+   void FRSAPI_FORCE_REPLICATION();
+
 }



svn commit: samba r25672 - in branches/SAMBA_4_0/source/libcli/util: .

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 17:22:03 + (Tue, 16 Oct 2007)
New Revision: 25672

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25672

Log:
Some more FRS werrors.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/util/doserr.c
   branches/SAMBA_4_0/source/libcli/util/werror.h


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/util/doserr.c
===
--- branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-10-16 17:12:04 UTC 
(rev 25671)
+++ branches/SAMBA_4_0/source/libcli/util/doserr.c  2007-10-16 17:22:03 UTC 
(rev 25672)
@@ -122,6 +122,8 @@
{ WERR_NOT_AUTHENTICATED, WERR_NOT_AUTHENTICATED },
{ WERR_CALL_NOT_IMPLEMENTED, WERR_CALL_NOT_IMPLEMENTED },
{ WERR_FRS_INVALID_SERVICE_PARAMETER, 
WERR_FRS_INVALID_SERVICE_PARAMETER },
+   { WERR_FRS_SYSVOL_IS_BUSY, WERR_FRS_SYSVOL_IS_BUSY },
+   { WERR_FRS_INSUFFICIENT_PRIV, WERR_FRS_INSUFFICIENT_PRIV },
{ NULL, W_ERROR(0) }
 };
 

Modified: branches/SAMBA_4_0/source/libcli/util/werror.h
===
--- branches/SAMBA_4_0/source/libcli/util/werror.h  2007-10-16 17:12:04 UTC 
(rev 25671)
+++ branches/SAMBA_4_0/source/libcli/util/werror.h  2007-10-16 17:22:03 UTC 
(rev 25672)
@@ -179,6 +179,8 @@
 #define WERR_DS_DUP_MSDS_INTID W_ERROR(0x2195)
 
 /* FRS errors */
+#define WERR_FRS_INSUFFICIENT_PRIV W_ERROR(FRS_ERR_BASE+7)
+#define WERR_FRS_SYSVOL_IS_BUSY W_ERROR(FRS_ERR_BASE+15)
 #define WERR_FRS_INVALID_SERVICE_PARAMETER W_ERROR(FRS_ERR_BASE+17)
 
 /* SEC errors */



svn commit: samba r25673 - in branches/SAMBA_4_0/source: .

2007-10-16 Thread gd
Author: gd
Date: 2007-10-16 17:23:34 + (Tue, 16 Oct 2007)
New Revision: 25673

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25673

Log:
Ignore RPC-FRSAPI for samba4.

Guenther

Modified:
   branches/SAMBA_4_0/source/samba4-skip


Changeset:
Modified: branches/SAMBA_4_0/source/samba4-skip
===
--- branches/SAMBA_4_0/source/samba4-skip   2007-10-16 17:22:03 UTC (rev 
25672)
+++ branches/SAMBA_4_0/source/samba4-skip   2007-10-16 17:23:34 UTC (rev 
25673)
@@ -43,6 +43,7 @@
 RPC-INITSHUTDOWN   # Not provided by Samba 
4
 RPC-SVCCTL # Not provided 
by Samba 4
 RPC-ATSVC  # Not provided 
by Samba 4
+RPC-FRSAPI # Not provided 
by Samba 4
 .*SAMBA3.* # 
Samba3-specific test
 ^NET-DOMOPEN$  # Hangs for some reason
 ^NET-API-BECOME-DC$# Fails



svn commit: samba r25604 - in branches/SAMBA_4_0/source/libcli/security: .

2007-10-10 Thread gd
Author: gd
Date: 2007-10-10 12:42:55 + (Wed, 10 Oct 2007)
New Revision: 25604

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25604

Log:
Add security_descriptor_append() helper function.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/security/security_descriptor.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/security/security_descriptor.c
===
--- branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-10-10 12:27:24 UTC (rev 25603)
+++ branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-10-10 12:42:55 UTC (rev 25604)
@@ -336,6 +336,48 @@
NULL);
   that would create a sd with one DACL ACE
 */
+
+struct security_descriptor *security_descriptor_append(struct 
security_descriptor *sd,
+  ...)
+{
+   va_list ap;
+   const char *sidstr;
+
+   va_start(ap, sd);
+   while ((sidstr = va_arg(ap, const char *))) {
+   struct dom_sid *sid;
+   struct security_ace *ace = talloc(sd, struct security_ace);
+   NTSTATUS status;
+
+   if (ace == NULL) {
+   talloc_free(sd);
+   va_end(ap);
+   return NULL;
+   }
+   ace-type = va_arg(ap, unsigned int);
+   ace-access_mask = va_arg(ap, unsigned int);
+   ace-flags = va_arg(ap, unsigned int);
+   sid = dom_sid_parse_talloc(ace, sidstr);
+   if (sid == NULL) {
+   va_end(ap);
+   talloc_free(sd);
+   return NULL;
+   }
+   ace-trustee = *sid;
+   status = security_descriptor_dacl_add(sd, ace);
+   /* TODO: check: would talloc_free(ace) here be correct? */
+   if (!NT_STATUS_IS_OK(status)) {
+   va_end(ap);
+   talloc_free(sd);
+   return NULL;
+   }
+   }
+   va_end(ap);
+
+   return sd;
+
+}
+
 struct security_descriptor *security_descriptor_create(TALLOC_CTX *mem_ctx,
   const char *owner_sid,
   const char *group_sid,



svn commit: samba r25605 - in branches/SAMBA_4_0/source/lib/registry/tests: .

2007-10-10 Thread gd
Author: gd
Date: 2007-10-10 12:44:48 + (Wed, 10 Oct 2007)
New Revision: 25605

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25605

Log:
Last round of registry reformats (before this gets an obsession...).

Guenther

Modified:
   branches/SAMBA_4_0/source/lib/registry/tests/diff.c
   branches/SAMBA_4_0/source/lib/registry/tests/generic.c
   branches/SAMBA_4_0/source/lib/registry/tests/hive.c
   branches/SAMBA_4_0/source/lib/registry/tests/registry.c


Changeset:
Sorry, the patch is too large (1231 lines) to include; please use WebSVN to see 
it!
WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25605


svn commit: samba r25603 - in branches/SAMBA_4_0/source/lib/registry/tools: .

2007-10-10 Thread gd
Author: gd
Date: 2007-10-10 12:27:24 + (Wed, 10 Oct 2007)
New Revision: 25603

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25603

Log:
More reformat.

Guenther

Modified:
   branches/SAMBA_4_0/source/lib/registry/tools/common.c
   branches/SAMBA_4_0/source/lib/registry/tools/regdiff.c
   branches/SAMBA_4_0/source/lib/registry/tools/regpatch.c
   branches/SAMBA_4_0/source/lib/registry/tools/regshell.c
   branches/SAMBA_4_0/source/lib/registry/tools/regtree.c


Changeset:
Sorry, the patch is too large (742 lines) to include; please use WebSVN to see 
it!
WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25603


svn commit: samba r25607 - in branches/SAMBA_4_0/source: lib/registry/tests libcli/security libnet torture/raw torture/rpc

2007-10-10 Thread gd
Author: gd
Date: 2007-10-10 13:12:53 + (Wed, 10 Oct 2007)
New Revision: 25607

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25607

Log:
Allow to set security descriptor type flags at creation time with
security_descriptor_create().

Guenther

Modified:
   branches/SAMBA_4_0/source/lib/registry/tests/registry.c
   branches/SAMBA_4_0/source/libcli/security/security_descriptor.c
   branches/SAMBA_4_0/source/libnet/libnet_become_dc.c
   branches/SAMBA_4_0/source/torture/raw/acls.c
   branches/SAMBA_4_0/source/torture/rpc/samba3rpc.c
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/registry/tests/registry.c
===
--- branches/SAMBA_4_0/source/lib/registry/tests/registry.c 2007-10-10 
12:55:07 UTC (rev 25606)
+++ branches/SAMBA_4_0/source/lib/registry/tests/registry.c 2007-10-10 
13:12:53 UTC (rev 25607)
@@ -400,6 +400,7 @@
return false;
 
osd = security_descriptor_create(tctx,
+0,
 NULL, NULL,
 SID_NT_AUTHENTICATED_USERS,
 SEC_ACE_TYPE_ACCESS_ALLOWED,

Modified: branches/SAMBA_4_0/source/libcli/security/security_descriptor.c
===
--- branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-10-10 12:55:07 UTC (rev 25606)
+++ branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-10-10 13:12:53 UTC (rev 25607)
@@ -327,6 +327,7 @@
   a typical call would be:
 
 sd = security_descriptor_create(mem_ctx,
+sd_type_flags,
 mysid,
mygroup,
SID_NT_AUTHENTICATED_USERS, 
@@ -379,6 +380,7 @@
 }
 
 struct security_descriptor *security_descriptor_create(TALLOC_CTX *mem_ctx,
+  uint16_t sd_type,
   const char *owner_sid,
   const char *group_sid,
   ...)
@@ -390,6 +392,8 @@
sd = security_descriptor_initialise(mem_ctx);
if (sd == NULL) return NULL;
 
+   sd-type |= sd_type;
+
if (owner_sid) {
sd-owner_sid = dom_sid_parse_talloc(sd, owner_sid);
if (sd-owner_sid == NULL) {

Modified: branches/SAMBA_4_0/source/libnet/libnet_become_dc.c
===
--- branches/SAMBA_4_0/source/libnet/libnet_become_dc.c 2007-10-10 12:55:07 UTC 
(rev 25606)
+++ branches/SAMBA_4_0/source/libnet/libnet_become_dc.c 2007-10-10 13:12:53 UTC 
(rev 25607)
@@ -1737,6 +1737,7 @@
if (composite_nomem(domain_admins_sid_str, c)) return;
 
v = security_descriptor_create(vd,
+  0,
   /* owner: domain admins */
   domain_admins_sid_str,
   /* owner group: domain admins */

Modified: branches/SAMBA_4_0/source/torture/raw/acls.c
===
--- branches/SAMBA_4_0/source/torture/raw/acls.c2007-10-10 12:55:07 UTC 
(rev 25606)
+++ branches/SAMBA_4_0/source/torture/raw/acls.c2007-10-10 13:12:53 UTC 
(rev 25607)
@@ -298,7 +298,7 @@
 
printf(set a sec desc allowing no write by CREATOR_OWNER\n);
sd = security_descriptor_create(tctx,
-   NULL, NULL,
+   0, NULL, NULL,
SID_CREATOR_OWNER,
SEC_ACE_TYPE_ACCESS_ALLOWED,
SEC_RIGHTS_FILE_READ | SEC_STD_ALL,
@@ -335,7 +335,7 @@
 
printf(set a sec desc allowing no write by owner\n);
sd = security_descriptor_create(tctx,
-   owner_sid, NULL,
+   0, owner_sid, NULL,
owner_sid,
SEC_ACE_TYPE_ACCESS_ALLOWED,
SEC_RIGHTS_FILE_READ | SEC_STD_ALL,
@@ -390,7 +390,7 @@
 
printf(set a sec desc allowing generic read by owner\n);
sd = security_descriptor_create(tctx,
-   NULL, NULL,
+   0, NULL, NULL,
owner_sid,
SEC_ACE_TYPE_ACCESS_ALLOWED,
SEC_GENERIC_READ

svn commit: samba r25608 - in branches/SAMBA_4_0/source/libcli/security: .

2007-10-10 Thread gd
Author: gd
Date: 2007-10-10 13:17:28 + (Wed, 10 Oct 2007)
New Revision: 25608

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25608

Log:
Call security_descriptor_append from within security_descriptor_create.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/security/security_descriptor.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/security/security_descriptor.c
===
--- branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-10-10 13:12:53 UTC (rev 25607)
+++ branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-10-10 13:17:28 UTC (rev 25608)
@@ -387,7 +387,6 @@
 {
va_list ap;
struct security_descriptor *sd;
-   const char *sidstr;
 
sd = security_descriptor_initialise(mem_ctx);
if (sd == NULL) return NULL;
@@ -410,34 +409,7 @@
}
 
va_start(ap, group_sid);
-   while ((sidstr = va_arg(ap, const char *))) {
-   struct dom_sid *sid;
-   struct security_ace *ace = talloc(sd, struct security_ace);
-   NTSTATUS status;
-
-   if (ace == NULL) {
-   talloc_free(sd);
-   va_end(ap);
-   return NULL;
-   }
-   ace-type = va_arg(ap, unsigned int);
-   ace-access_mask = va_arg(ap, unsigned int);
-   ace-flags = va_arg(ap, unsigned int);
-   sid = dom_sid_parse_talloc(ace, sidstr);
-   if (sid == NULL) {
-   va_end(ap);
-   talloc_free(sd);
-   return NULL;
-   }
-   ace-trustee = *sid;
-   status = security_descriptor_dacl_add(sd, ace);
-   /* TODO: check: would talloc_free(ace) here be correct? */
-   if (!NT_STATUS_IS_OK(status)) {
-   va_end(ap);
-   talloc_free(sd);
-   return NULL;
-   }
-   }
+   sd = security_descriptor_append(sd, ap);
va_end(ap);
 
return sd;



svn commit: samba r25606 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-10-10 Thread gd
Author: gd
Date: 2007-10-10 12:55:07 + (Wed, 10 Oct 2007)
New Revision: 25606

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25606

Log:
Allow test_GetKeySecurity() to return a security descriptor.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-10-10 12:44:48 UTC 
(rev 25605)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-10-10 12:55:07 UTC 
(rev 25606)
@@ -175,10 +175,11 @@
 
 static bool test_GetKeySecurity(struct dcerpc_pipe *p,
struct torture_context *tctx,
-   struct policy_handle *handle)
+   struct policy_handle *handle,
+   struct security_descriptor **sd_out)
 {
struct winreg_GetKeySecurity r;
-   struct security_descriptor sd;
+   struct security_descriptor *sd;
DATA_BLOB sdblob;
 
ZERO_STRUCT(r);
@@ -188,7 +189,8 @@
r.in.sd-size = 0x1000;
r.in.sec_info = SECINFO_OWNER | SECINFO_GROUP | SECINFO_DACL;
 
-   torture_assert_ntstatus_ok(tctx, dcerpc_winreg_GetKeySecurity(p, tctx, 
r),
+   torture_assert_ntstatus_ok(tctx,
+  dcerpc_winreg_GetKeySecurity(p, tctx, r),
   GetKeySecurity failed);
 
torture_assert_werr_ok(tctx, r.out.result, GetKeySecurity failed);
@@ -197,14 +199,18 @@
sdblob.length = r.out.sd-len;
 
torture_assert_ntstatus_ok(tctx,
-   ndr_pull_struct_blob(sdblob, tctx, sd,
+   ndr_pull_struct_blob(sdblob, tctx, sd,
 
(ndr_pull_flags_fn_t)ndr_pull_security_descriptor),
 pull_security_descriptor failed);
 
if (p-conn-flags  DCERPC_DEBUG_PRINT_OUT) {
-   NDR_PRINT_DEBUG(security_descriptor, sd);
+   NDR_PRINT_DEBUG(security_descriptor, sd);
}
 
+   if (sd_out) {
+   *sd_out = sd;
+   }
+
return true;
 }
 
@@ -584,7 +590,7 @@
if (!test_NotifyChangeKeyValue(p, tctx, handle)) {
}
 
-   if (!test_GetKeySecurity(p, tctx, handle)) {
+   if (!test_GetKeySecurity(p, tctx, handle, NULL)) {
}
 
if (!test_EnumKey(p, tctx, handle, depth)) {
@@ -667,7 +673,7 @@
created2 = true;
}
 
-   if (created2  !test_GetKeySecurity(p, tctx, newhandle)) {
+   if (created2  !test_GetKeySecurity(p, tctx, newhandle, NULL)) {
printf(GetKeySecurity failed\n);
ret = false;
}



svn commit: samba r25609 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-10-10 Thread gd
Author: gd
Date: 2007-10-10 13:23:06 + (Wed, 10 Oct 2007)
New Revision: 25609

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25609

Log:
Reformat RPC-WINREG test.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-10-10 13:17:28 UTC 
(rev 25608)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-10-10 13:23:06 UTC 
(rev 25609)
@@ -129,7 +129,8 @@
 static bool test_CreateKey_sd(struct dcerpc_pipe *p,
  struct torture_context *tctx,
  struct policy_handle *handle, const char *name,
- const char *class, struct policy_handle 
*newhandle)
+ const char *class,
+ struct policy_handle *newhandle)
 {
struct winreg_CreateKey r;
enum winreg_CreateAction action_taken = 0;
@@ -300,7 +301,8 @@
  * return WERR_ACCESS_DENIED. */
 static bool test_DeleteKeyWithSubkey(struct dcerpc_pipe *p,
 struct torture_context *tctx,
-struct policy_handle *handle, const char 
*key)
+struct policy_handle *handle,
+const char *key)
 {
struct winreg_DeleteKey r;
 
@@ -381,7 +383,8 @@
if (NT_STATUS_IS_OK(status)  W_ERROR_IS_OK(r.out.result)) {
struct policy_handle key_handle;
 
-   torture_comment(tctx, EnumKey: %d: %s\n, 
r.in.enum_index, 
+   torture_comment(tctx, EnumKey: %d: %s\n,
+   r.in.enum_index,
r.out.name-name);
 
if (!test_OpenKey(p, tctx, handle, r.out.name-name,
@@ -496,13 +499,15 @@
r.in.size = size;
 
do {
-   torture_assert_ntstatus_ok(tctx, 
+   torture_assert_ntstatus_ok(tctx,
   dcerpc_winreg_EnumValue(p, tctx, r),
   EnumValue failed);
 
if (W_ERROR_IS_OK(r.out.result)) {
-   ret = test_QueryValue(p, tctx, handle, 
r.out.name-name);
-   ret = test_QueryMultipleValues(p, tctx, handle, 
r.out.name-name);
+   ret = test_QueryValue(p, tctx, handle,
+  r.out.name-name);
+   ret = test_QueryMultipleValues(p, tctx, handle,
+   r.out.name-name);
}
 
r.in.enum_index++;
@@ -526,7 +531,8 @@
   dcerpc_winreg_AbortSystemShutdown(p, tctx, 
r),
   AbortSystemShutdown failed);
 
-   torture_assert_werr_ok(tctx, r.out.result, AbortSystemShutdown 
failed);
+   torture_assert_werr_ok(tctx, r.out.result,
+  AbortSystemShutdown failed);
 
return true;
 }
@@ -548,7 +554,8 @@
   dcerpc_winreg_InitiateSystemShutdown(p, 
tctx, r),
   InitiateSystemShutdown failed);
 
-   torture_assert_werr_ok(tctx, r.out.result, InitiateSystemShutdown 
failed);
+   torture_assert_werr_ok(tctx, r.out.result,
+  InitiateSystemShutdown failed);
 
return test_AbortSystemShutdown(p, tctx);
 }
@@ -631,7 +638,8 @@
test_Cleanup(p, tctx, handle, TEST_KEY_BASE);
 
if (!test_CreateKey(p, tctx, handle, TEST_KEY1, NULL)) {
-   torture_comment(tctx, CreateKey failed - not considering a 
failure\n);
+   torture_comment(tctx,
+   CreateKey failed - not considering a 
failure\n);
} else {
created = true;
}
@@ -694,29 +702,25 @@
}
 
if (created3 
-   test_CreateKey(p, tctx, handle, TEST_SUBKEY, NULL))
-   {
+   test_CreateKey(p, tctx, handle, TEST_SUBKEY, NULL)) {
created_subkey = true;
}
 
if (created_subkey 
-   !test_DeleteKeyWithSubkey(p, tctx, handle, TEST_KEY3))
-   {
+   !test_DeleteKeyWithSubkey(p, tctx, handle, TEST_KEY3)) {
printf(DeleteKeyWithSubkey failed 
   (DeleteKey didn't return ACCESS_DENIED)\n);
ret = false;
}
 
if (created_subkey 
-   !test_DeleteKey(p, tctx, handle, TEST_SUBKEY))
-   {
+   !test_DeleteKey(p, tctx, handle, TEST_SUBKEY)) {
printf(DeleteKey failed\n);
ret = false;
}
 
if (created3 
-   !test_DeleteKey(p, tctx, handle, TEST_KEY3

svn commit: samba r25610 - in branches/SAMBA_4_0/source/libcli/security: .

2007-10-10 Thread gd
Author: gd
Date: 2007-10-10 13:49:15 + (Wed, 10 Oct 2007)
New Revision: 25610

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25610

Log:
Add security_descriptor_appendv() which takes va_list directly.

Guenther

Modified:
   branches/SAMBA_4_0/source/libcli/security/security_descriptor.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/security/security_descriptor.c
===
--- branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-10-10 13:23:06 UTC (rev 25609)
+++ branches/SAMBA_4_0/source/libcli/security/security_descriptor.c 
2007-10-10 13:49:15 UTC (rev 25610)
@@ -338,13 +338,11 @@
   that would create a sd with one DACL ACE
 */
 
-struct security_descriptor *security_descriptor_append(struct 
security_descriptor *sd,
-  ...)
+struct security_descriptor *security_descriptor_appendv(struct 
security_descriptor *sd,
+   va_list ap)
 {
-   va_list ap;
const char *sidstr;
 
-   va_start(ap, sd);
while ((sidstr = va_arg(ap, const char *))) {
struct dom_sid *sid;
struct security_ace *ace = talloc(sd, struct security_ace);
@@ -352,7 +350,6 @@
 
if (ace == NULL) {
talloc_free(sd);
-   va_end(ap);
return NULL;
}
ace-type = va_arg(ap, unsigned int);
@@ -360,7 +357,6 @@
ace-flags = va_arg(ap, unsigned int);
sid = dom_sid_parse_talloc(ace, sidstr);
if (sid == NULL) {
-   va_end(ap);
talloc_free(sd);
return NULL;
}
@@ -368,15 +364,24 @@
status = security_descriptor_dacl_add(sd, ace);
/* TODO: check: would talloc_free(ace) here be correct? */
if (!NT_STATUS_IS_OK(status)) {
-   va_end(ap);
talloc_free(sd);
return NULL;
}
}
+
+   return sd;
+}
+
+struct security_descriptor *security_descriptor_append(struct 
security_descriptor *sd,
+  ...)
+{
+   va_list ap;
+
+   va_start(ap, sd);
+   sd = security_descriptor_appendv(sd, ap);
va_end(ap);
 
return sd;
-
 }
 
 struct security_descriptor *security_descriptor_create(TALLOC_CTX *mem_ctx,
@@ -409,7 +414,7 @@
}
 
va_start(ap, group_sid);
-   sd = security_descriptor_append(sd, ap);
+   sd = security_descriptor_appendv(sd, ap);
va_end(ap);
 
return sd;



svn commit: samba r25611 - in branches/SAMBA_4_0/source/torture/rpc: .

2007-10-10 Thread gd
Author: gd
Date: 2007-10-10 13:50:21 + (Wed, 10 Oct 2007)
New Revision: 25611

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=25611

Log:
Smaller fix for winreg test.

Guenther

Modified:
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-10-10 13:49:15 UTC 
(rev 25610)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c  2007-10-10 13:50:21 UTC 
(rev 25611)
@@ -181,7 +181,7 @@
struct security_descriptor **sd_out)
 {
struct winreg_GetKeySecurity r;
-   struct security_descriptor *sd;
+   struct security_descriptor *sd = NULL;
DATA_BLOB sdblob;
 
ZERO_STRUCT(r);
@@ -200,6 +200,8 @@
sdblob.data = r.out.sd-data;
sdblob.length = r.out.sd-len;
 
+   sd = talloc_zero(tctx, struct security_descriptor);
+
torture_assert_ntstatus_ok(tctx,
ndr_pull_struct_blob(sdblob, tctx, sd,
 
(ndr_pull_flags_fn_t)ndr_pull_security_descriptor),
@@ -211,6 +213,8 @@
 
if (sd_out) {
*sd_out = sd;
+   } else {
+   talloc_free(sd);
}
 
return true;



  1   2   3   4   5   6   7   8   9   10   >