svn commit: samba r6414 - in branches/SAMBA_4_0/source: include libnet

2005-04-21 Thread mimir
Author: mimir
Date: 2005-04-21 07:24:16 + (Thu, 21 Apr 2005)
New Revision: 6414

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

Log:
Added composite user del function. Slightly broken still, but I don't
want it to hang around not commited.


rafal


Modified:
   branches/SAMBA_4_0/source/include/structs.h
   branches/SAMBA_4_0/source/libnet/composite.h
   branches/SAMBA_4_0/source/libnet/userman.c


Changeset:
Modified: branches/SAMBA_4_0/source/include/structs.h
===
--- branches/SAMBA_4_0/source/include/structs.h 2005-04-21 05:47:02 UTC (rev 
6413)
+++ branches/SAMBA_4_0/source/include/structs.h 2005-04-21 07:24:16 UTC (rev 
6414)
@@ -162,6 +162,7 @@
 struct smb_composite_fsinfo;
 struct rpc_composite_userinfo;
 struct rpc_composite_useradd;
+struct rpc_composite_userdel;
 
 struct nbt_name;
 struct nbt_name_packet;

Modified: branches/SAMBA_4_0/source/libnet/composite.h
===
--- branches/SAMBA_4_0/source/libnet/composite.h2005-04-21 05:47:02 UTC 
(rev 6413)
+++ branches/SAMBA_4_0/source/libnet/composite.h2005-04-21 07:24:16 UTC 
(rev 6414)
@@ -43,3 +43,14 @@
struct policy_handle user_handle;
} out;
 };
+
+
+struct rpc_composite_userdel {
+   struct {
+   struct policy_handle domain_handle;
+   const char *username;
+   } in;
+   struct {
+   struct policy_handle user_handle;
+   } out;
+};

Modified: branches/SAMBA_4_0/source/libnet/userman.c
===
--- branches/SAMBA_4_0/source/libnet/userman.c  2005-04-21 05:47:02 UTC (rev 
6413)
+++ branches/SAMBA_4_0/source/libnet/userman.c  2005-04-21 07:24:16 UTC (rev 
6414)
@@ -28,8 +28,12 @@
 #include librpc/gen_ndr/ndr_samr.h
 #include libnet/composite.h
 
-static void useradd_handler(struct rpc_request *req);
+/*
+ * Composite user add function
+ */
 
+static void useradd_handler(struct rpc_request*);
+
 enum useradd_stage { USERADD_CREATE };
 
 struct useradd_state {
@@ -178,3 +182,184 @@
struct composite_context *c = rpc_composite_useradd_send(pipe, io);
return rpc_composite_useradd_recv(c, mem_ctx, io);
 }
+
+
+/*
+ * Composite user del function
+ */
+
+static void userdel_handler(struct rpc_request*);
+
+enum userdel_stage { USERDEL_LOOKUP, USERDEL_OPEN, USERDEL_DELETE };
+
+struct userdel_state {
+   enum userdel_stagestage;
+   struct dcerpc_pipe*pipe;
+   struct rpc_request*req;
+   struct policy_handle  domain_handle;
+   struct policy_handle  user_handle;
+   struct samr_LookupNames   lookupname;
+   struct samr_OpenUser  openuser;
+   struct samr_DeleteUserdeleteuser;
+};
+
+
+static NTSTATUS userdel_lookup(struct composite_context *c,
+  struct userdel_state *s)
+{
+   NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
+
+   c-status = dcerpc_ndr_request_recv(s-req);
+   NT_STATUS_NOT_OK_RETURN(c-status);
+   
+   if (!s-lookupname.out.rids.count) {
+   /* TODO: no such user */
+   status = NT_STATUS_NO_SUCH_USER;
+
+   } else if (!s-lookupname.out.rids.count  1) {
+   /* TODO: ambiguous username */
+   status = NT_STATUS_INVALID_ACCOUNT_NAME;
+   }
+   
+   s-openuser.in.domain_handle = s-domain_handle;
+   s-openuser.in.rid   = s-lookupname.out.rids.ids[0];
+   s-openuser.in.access_mask   = SEC_FLAG_MAXIMUM_ALLOWED;
+   s-openuser.out.user_handle  = s-user_handle;
+
+   s-req = dcerpc_samr_OpenUser_send(s-pipe, c, s-openuser);
+   
+   s-req-async.callback = userdel_handler;
+   s-req-async.private  = c;
+   s-stage = USERDEL_OPEN;
+   
+   return NT_STATUS_OK;
+failure:
+   talloc_free(c);
+   return status;
+}
+
+
+static NTSTATUS userdel_open(struct composite_context *c,
+struct userdel_state *s)
+{
+   NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
+   
+   c-status = dcerpc_ndr_request_recv(s-req);
+   NT_STATUS_NOT_OK_RETURN(c-status);
+   
+   s-deleteuser.in.user_handle   = s-user_handle;
+   s-deleteuser.out.user_handle  = s-user_handle;
+   
+   s-req = dcerpc_samr_DeleteUser_send(s-pipe, c, s-deleteuser);
+   
+   s-req-async.callback = userdel_handler;
+   s-req-async.private  = c;
+   s-stage = USERDEL_DELETE;
+   
+   return NT_STATUS_OK;
+}
+
+
+static NTSTATUS userdel_delete(struct composite_context *c,
+  struct userdel_state *s)
+{
+   NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
+   
+   c-status = dcerpc_ndr_request_recv(s-req);
+   NT_STATUS_NOT_OK_RETURN(c-status);
+   
+   c-state = SMBCLI_REQUEST_DONE;
+
+   return NT_STATUS_OK;
+}
+
+

svn commit: samba r6415 - in branches/SAMBA_4_0/source/torture: . libnet

2005-04-21 Thread mimir
Author: mimir
Date: 2005-04-21 07:25:16 + (Thu, 21 Apr 2005)
New Revision: 6415

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

Log:
Added NET-USERDEL torture test which proves something's wrong
with user del function.


rafal


Modified:
   branches/SAMBA_4_0/source/torture/libnet/userman.c
   branches/SAMBA_4_0/source/torture/torture.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/libnet/userman.c
===
--- branches/SAMBA_4_0/source/torture/libnet/userman.c  2005-04-21 07:24:16 UTC 
(rev 6414)
+++ branches/SAMBA_4_0/source/torture/libnet/userman.c  2005-04-21 07:25:16 UTC 
(rev 6415)
@@ -153,6 +153,55 @@
 }
 
 
+static BOOL test_createuser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+   struct policy_handle *handle, const char* user)
+{
+   NTSTATUS status;
+   struct policy_handle h, domain_handle, user_handle;
+   struct samr_String username;
+   struct samr_CreateUser r4;
+   uint32_t user_rid;
+
+   username.string = user;
+   
+   r4.in.domain_handle = handle;
+   r4.in.account_name = username;
+   r4.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+   r4.out.user_handle = user_handle;
+   r4.out.rid = user_rid;
+
+   printf(creating user '%s'\n, username.string);
+   
+   status = dcerpc_samr_CreateUser(p, mem_ctx, r4);
+   if (!NT_STATUS_IS_OK(status)) {
+   printf(CreateUser failed - %s\n, nt_errstr(status));
+   return False;
+   }
+
+   return True;
+}
+
+
+static BOOL test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+struct policy_handle *handle, const char *username)
+{
+   NTSTATUS status;
+   BOOL ret = False;
+   struct rpc_composite_userdel user;
+   
+   user.in.domain_handle = *handle;
+   user.in.username = username;
+   
+   status = rpc_composite_userdel(p, mem_ctx, user);
+   if (!NT_STATUS_IS_OK(status)) {
+   printf(Failed to call sync rpc_composite_userdel - %s\n, 
nt_errstr(status));
+   return False;
+   }
+
+   return True;
+}
+
+
 BOOL torture_useradd(void)
 {
NTSTATUS status;
@@ -206,3 +255,58 @@
talloc_free(mem_ctx);
return ret;
 }
+
+
+BOOL torture_userdel(void)
+{
+   NTSTATUS status;
+   const char *binding;
+   struct dcerpc_pipe *p;
+   struct dcerpc_binding *b;
+   struct policy_handle h;
+   struct samr_String domain_name;
+   char* name = TEST_USERNAME;
+   TALLOC_CTX *mem_ctx;
+   BOOL ret = True;
+
+   mem_ctx = talloc_init(test_userdel);
+   binding = lp_parm_string(-1, torture, binding);
+
+   status = torture_rpc_connection(mem_ctx, 
+   p,
+   DCERPC_SAMR_NAME,
+   DCERPC_SAMR_UUID,
+   DCERPC_SAMR_VERSION);
+   
+   if (!NT_STATUS_IS_OK(status)) {
+   return False;
+   }
+
+   status = dcerpc_parse_binding(mem_ctx, binding, b);
+   if (!NT_STATUS_IS_OK(status)) {
+   printf(failed to parse dcerpc binding '%s'\n, binding);
+   talloc_free(mem_ctx);
+   ret = False;
+   goto done;
+   }
+
+   domain_name.string = lp_workgroup();
+   if (!test_opendomain(p, mem_ctx, h, domain_name)) {
+   ret = False;
+   goto done;
+   }
+
+   if (!test_createuser(p, mem_ctx, h, name)) {
+   ret = False;
+   goto done;
+   }
+
+   if (!test_userdel(p, mem_ctx, h, name)) {
+   ret = False;
+   goto done;
+   }
+
+done:
+   talloc_free(mem_ctx);
+   return ret;
+}

Modified: branches/SAMBA_4_0/source/torture/torture.c
===
--- branches/SAMBA_4_0/source/torture/torture.c 2005-04-21 07:24:16 UTC (rev 
6414)
+++ branches/SAMBA_4_0/source/torture/torture.c 2005-04-21 07:25:16 UTC (rev 
6415)
@@ -2420,6 +2420,7 @@
/* libnet tests */
{NET-USERINFO, torture_userinfo, 0},
{NET-USERADD, torture_useradd, 0},
+   {NET-USERDEL, torture_userdel, 0},
 
{NULL, NULL, 0}};
 



svn commit: samba r6416 - in trunk/source/smbd: .

2005-04-21 Thread jra
Author: jra
Date: 2005-04-21 07:57:41 + (Thu, 21 Apr 2005)
New Revision: 6416

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

Log:
Strange old IRIX systems return -1 for telldir() when
end of directory reached. Don't check for that and bail
when reading directory entries as it's a valid value.
Excellent work from Cale Fairchild [EMAIL PROTECTED]
tracked this down.
Jeremy.

Modified:
   trunk/source/smbd/dir.c


Changeset:
Modified: trunk/source/smbd/dir.c
===
--- trunk/source/smbd/dir.c 2005-04-21 07:25:16 UTC (rev 6415)
+++ trunk/source/smbd/dir.c 2005-04-21 07:57:41 UTC (rev 6416)
@@ -1038,9 +1038,6 @@
while ((n = vfs_readdirname(conn, dirp-dir))) {
struct name_cache_entry *e;
dirp-offset = SMB_VFS_TELLDIR(conn, dirp-dir);
-   if (dirp-offset == -1) {
-   return NULL;
-   }
dirp-name_cache_index = (dirp-name_cache_index+1) % 
NAME_CACHE_SIZE;
 
e = dirp-name_cache[dirp-name_cache_index];



svn commit: samba r6417 - in branches/SAMBA_3_0/source/smbd: .

2005-04-21 Thread jra
Author: jra
Date: 2005-04-21 07:57:52 + (Thu, 21 Apr 2005)
New Revision: 6417

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

Log:
Strange old IRIX systems return -1 for telldir() when
end of directory reached. Don't check for that and bail
when reading directory entries as it's a valid value.
Excellent work from Cale Fairchild [EMAIL PROTECTED]
tracked this down.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/smbd/dir.c


Changeset:
Modified: branches/SAMBA_3_0/source/smbd/dir.c
===
--- branches/SAMBA_3_0/source/smbd/dir.c2005-04-21 07:57:41 UTC (rev 
6416)
+++ branches/SAMBA_3_0/source/smbd/dir.c2005-04-21 07:57:52 UTC (rev 
6417)
@@ -1038,11 +1038,7 @@
while ((n = vfs_readdirname(conn, dirp-dir))) {
struct name_cache_entry *e;
dirp-offset = SMB_VFS_TELLDIR(conn, dirp-dir);
-   if (dirp-offset == -1) {
-   return NULL;
-   }
dirp-name_cache_index = (dirp-name_cache_index+1) % 
NAME_CACHE_SIZE;
-
e = dirp-name_cache[dirp-name_cache_index];
SAFE_FREE(e-name);
e-name = SMB_STRDUP(n);



svn commit: samba r6418 - in branches/tmp/pidl2/source/build/pidl: .

2005-04-21 Thread jelmer
Author: jelmer
Date: 2005-04-21 08:03:38 + (Thu, 21 Apr 2005)
New Revision: 6418

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

Log:
Allow determining the prefix necessary for getting to the value of a variable

Modified:
   branches/tmp/pidl2/source/build/pidl/ndr_parser.pm


Changeset:
Modified: branches/tmp/pidl2/source/build/pidl/ndr_parser.pm
===
--- branches/tmp/pidl2/source/build/pidl/ndr_parser.pm  2005-04-21 07:57:52 UTC 
(rev 6417)
+++ branches/tmp/pidl2/source/build/pidl/ndr_parser.pm  2005-04-21 08:03:38 UTC 
(rev 6418)
@@ -21,6 +21,25 @@
return $typefamily{$n};
 }
 
+sub append_prefix($$)
+{
+   my $e = shift;
+   my $var_name = shift;
+   my $pointers = 0;
+
+   foreach my $l (@{$e-{LEVELS}}) {
+   if ($l-{TYPE} eq POINTER) {
+   $pointers++;
+   } elsif ($l-{TYPE} eq DATA) {
+   if ($l-{DATA_TYPE} eq string) {
+   return get_value_of($var_name) unless 
($pointers);
+   }
+   }
+   }
+   
+   return $var_name;
+}
+
 # see if a variable needs to be allocated by the NDR subsystem on pull
 sub need_alloc($)
 {
@@ -628,6 +647,8 @@
 
my $var_name = $var_prefix.$e-{NAME};
 
+   $var_name = append_prefix($e, $var_name);
+
return unless $primitives or ($deferred and ContainsDeferred($e));
 
start_flags($e);
@@ -717,6 +738,7 @@
my($var_name) = shift;
my $env = shift;
 
+   $var_name = append_prefix($e, $var_name);
return if (util::has_property($e, noprint));
 
if (my $value = util::has_property($e, value)) {
@@ -886,6 +908,8 @@
 
my $var_name = $var_prefix.$e-{NAME};
 
+   $var_name = append_prefix($e, $var_name);
+
my $previous = undef;
 
return unless $primitives or ($deferred and ContainsDeferred($e));



svn commit: samba r6419 - in branches/SAMBA_4_0/source/libnet: .

2005-04-21 Thread mimir
Author: mimir
Date: 2005-04-21 12:21:14 + (Thu, 21 Apr 2005)
New Revision: 6419

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

Log:
Fix strange behaviour of NET-USERDEL where account doesn't actually
gets deleted.


rafal


Modified:
   branches/SAMBA_4_0/source/libnet/userman.c


Changeset:
Modified: branches/SAMBA_4_0/source/libnet/userman.c
===
--- branches/SAMBA_4_0/source/libnet/userman.c  2005-04-21 08:03:38 UTC (rev 
6418)
+++ branches/SAMBA_4_0/source/libnet/userman.c  2005-04-21 12:21:14 UTC (rev 
6419)
@@ -314,11 +314,13 @@
s = talloc_zero(c, struct userdel_state);
if (s == NULL) goto failure;
 
-   s-pipe = p;
c-state  = SMBCLI_REQUEST_SEND;
c-private= s;
c-event_ctx  = dcerpc_event_context(p);
 
+   s-pipe  = p;
+   s-domain_handle = io-in.domain_handle;
+
s-lookupname.in.domain_handle = io-in.domain_handle;
s-lookupname.in.num_names = 1;
s-lookupname.in.names = talloc_zero(s, struct samr_String);



svn commit: samba r6420 - in branches/SAMBA_4_0/source/torture/libnet: .

2005-04-21 Thread mimir
Author: mimir
Date: 2005-04-21 12:22:48 + (Thu, 21 Apr 2005)
New Revision: 6420

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

Log:
Close user account handle before calling tested function to better
simulate real conditions of calling the function.


rafal


Modified:
   branches/SAMBA_4_0/source/torture/libnet/userman.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/libnet/userman.c
===
--- branches/SAMBA_4_0/source/torture/libnet/userman.c  2005-04-21 12:21:14 UTC 
(rev 6419)
+++ branches/SAMBA_4_0/source/torture/libnet/userman.c  2005-04-21 12:22:48 UTC 
(rev 6420)
@@ -159,25 +159,37 @@
NTSTATUS status;
struct policy_handle h, domain_handle, user_handle;
struct samr_String username;
-   struct samr_CreateUser r4;
+   struct samr_CreateUser r1;
+   struct samr_Close r2;
uint32_t user_rid;
 
username.string = user;

-   r4.in.domain_handle = handle;
-   r4.in.account_name = username;
-   r4.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-   r4.out.user_handle = user_handle;
-   r4.out.rid = user_rid;
+   r1.in.domain_handle = handle;
+   r1.in.account_name = username;
+   r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+   r1.out.user_handle = user_handle;
+   r1.out.rid = user_rid;
 
printf(creating user '%s'\n, username.string);

-   status = dcerpc_samr_CreateUser(p, mem_ctx, r4);
+   status = dcerpc_samr_CreateUser(p, mem_ctx, r1);
if (!NT_STATUS_IS_OK(status)) {
printf(CreateUser failed - %s\n, nt_errstr(status));
return False;
}
 
+   r2.in.handle = user_handle;
+   r2.out.handle = user_handle;
+   
+   printf(closing user '%s'\n, username.string);
+
+   status = dcerpc_samr_Close(p, mem_ctx, r2);
+   if (!NT_STATUS_IS_OK(status)) {
+   printf(Close failed - %s\n, nt_errstr(status));
+   return False;
+   }
+
return True;
 }
 



svn commit: samba r6421 - in branches/SAMBA_3_0/source: passdb rpc_server

2005-04-21 Thread jerry
Author: jerry
Date: 2005-04-21 17:13:50 + (Thu, 21 Apr 2005)
New Revision: 6421

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

Log:
use add machine script when creating a user (ACB_NORMAL)
who has a name ending in '$' (usrmgr.exe does this for
domain trusts (that's was jfm's original comment I think).

avoid an assert() call in libldap.


Modified:
   branches/SAMBA_3_0/source/passdb/pdb_ldap.c
   branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c


Changeset:
Modified: branches/SAMBA_3_0/source/passdb/pdb_ldap.c
===
--- branches/SAMBA_3_0/source/passdb/pdb_ldap.c 2005-04-21 12:22:48 UTC (rev 
6420)
+++ branches/SAMBA_3_0/source/passdb/pdb_ldap.c 2005-04-21 17:13:50 UTC (rev 
6421)
@@ -3423,7 +3423,8 @@
state-connection-paged_results = False;
}
 
-   state-current_entry = ldap_first_entry(ld, state-entries);
+   if ( ld )
+   state-current_entry = ldap_first_entry(ld, state-entries);
 
if (state-current_entry == NULL) {
ldap_msgfree(state-entries);

Modified: branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c
===
--- branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c  2005-04-21 12:22:48 UTC 
(rev 6420)
+++ branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c  2005-04-21 17:13:50 UTC 
(rev 6421)
@@ -1985,13 +1985,15 @@
se_priv_copy( se_rights, se_machine_account );
can_add_account = user_has_privileges( 
p-pipe_user.nt_user_token, se_rights );
} 
-   else if ( acb_info  ACB_NORMAL )
+   /* usrmgr.exe (and net rpc trustdom grant) creates a normal user 
+  account for domain trusts and changes the ACB flags later */
+   else if ( acb_info  ACB_NORMAL  (account[strlen(account)-1] != '$') )
{
pstrcpy(add_script, lp_adduser_script());
se_priv_copy( se_rights, se_add_users );
can_add_account = user_has_privileges( 
p-pipe_user.nt_user_token, se_rights );
} 
-   else if ( acb_info  (ACB_SVRTRUST|ACB_DOMTRUST) ) 
+   else/* implicit assumption of a BDC or domain trust account here 
(we already check the flags earlier) */
{
pstrcpy(add_script, lp_addmachine_script());
if ( lp_enable_privileges() ) {



svn commit: samba r6422 - in trunk/source: . client include passdb rpc_server tests

2005-04-21 Thread jerry
Author: jerry
Date: 2005-04-21 18:01:37 + (Thu, 21 Apr 2005)
New Revision: 6422

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

Log:
merging changes from 3.0
Added:
   trunk/source/client/umount.cifs.c
Modified:
   trunk/source/Makefile.in
   trunk/source/client/client.c
   trunk/source/include/includes.h
   trunk/source/include/libsmb_internal.h
   trunk/source/passdb/pdb_ldap.c
   trunk/source/rpc_server/srv_samr_nt.c
   trunk/source/tests/sysquotas.c


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


svn commit: samba r6423 - in trunk/source/rpc_server: .

2005-04-21 Thread jerry
Author: jerry
Date: 2005-04-21 18:44:56 + (Thu, 21 Apr 2005)
New Revision: 6423

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

Log:
fix compile ereor from bad merge
Modified:
   trunk/source/rpc_server/srv_samr_nt.c


Changeset:
Modified: trunk/source/rpc_server/srv_samr_nt.c
===
--- trunk/source/rpc_server/srv_samr_nt.c   2005-04-21 18:01:37 UTC (rev 
6422)
+++ trunk/source/rpc_server/srv_samr_nt.c   2005-04-21 18:44:56 UTC (rev 
6423)
@@ -501,7 +501,7 @@
/* TODO: different SDs have to be generated for aliases groups 
and users.
 Currently all three get a default user SD  */
DEBUG(10,(_samr_query_sec_obj: querying security on Object 
with SID: %s\n, sid_to_string(str_sid, pol_sid)));
-   r_u-status = samr_make_usr_obj_sd(p-mem_ctx, psd,sd_size, 
pol_sid);
+   r_u-status = make_samr_object_sd(p-mem_ctx, psd, sd_size, 
usr_generic_mapping, pol_sid, SAMR_USR_RIGHTS_WRITE_PW);
}
else return NT_STATUS_OBJECT_TYPE_MISMATCH;
 



svn commit: samba r6424 - in branches/SAMBA_4_0/source/libnet: .

2005-04-21 Thread mimir
Author: mimir
Date: 2005-04-21 23:25:38 + (Thu, 21 Apr 2005)
New Revision: 6424

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

Log:
More comments and fixes to existing ones.


rafal


Modified:
   branches/SAMBA_4_0/source/libnet/userman.c


Changeset:
Modified: branches/SAMBA_4_0/source/libnet/userman.c
===
--- branches/SAMBA_4_0/source/libnet/userman.c  2005-04-21 18:44:56 UTC (rev 
6423)
+++ branches/SAMBA_4_0/source/libnet/userman.c  2005-04-21 23:25:38 UTC (rev 
6424)
@@ -95,6 +95,7 @@
  * @param p dce/rpc call pipe 
  * @param io arguments and results of the call
  */
+
 struct composite_context *rpc_composite_useradd_send(struct dcerpc_pipe *p,
 struct 
rpc_composite_useradd *io)
 {
@@ -141,7 +142,7 @@
 /**
  * Waits for and receives result of asynchronous useradd call
  * 
- * @param c composite context returned by asynchronous userinfo call
+ * @param c composite context returned by asynchronous useradd call
  * @param mem_ctx memory context of the call
  * @param io pointer to results (and arguments) of the call
  * @return nt status code of execution
@@ -185,7 +186,7 @@
 
 
 /*
- * Composite user del function
+ * Composite user delete function
  */
 
 static void userdel_handler(struct rpc_request*);
@@ -204,6 +205,9 @@
 };
 
 
+/**
+ * Stage 1: Lookup the user name and resolve it to rid
+ */
 static NTSTATUS userdel_lookup(struct composite_context *c,
   struct userdel_state *s)
 {
@@ -239,6 +243,9 @@
 }
 
 
+/**
+ * Stage 2: Open user account.
+ */
 static NTSTATUS userdel_open(struct composite_context *c,
 struct userdel_state *s)
 {
@@ -260,6 +267,9 @@
 }
 
 
+/**
+ * Stage 3: Delete user account
+ */
 static NTSTATUS userdel_delete(struct composite_context *c,
   struct userdel_state *s)
 {
@@ -274,6 +284,12 @@
 }
 
 
+/**
+ * Event handler for asynchronous request. Handles transition through
+ * intermediate stages of the call.
+ *
+ * @param req rpc call context
+ */
 static void userdel_handler(struct rpc_request *req)
 {
struct composite_context *c = req-async.private;
@@ -302,6 +318,13 @@
 }
 
 
+/**
+ * Sends asynchronous userdel request
+ *
+ * @param p dce/rpc call pipe
+ * @param io arguments and results of the call
+ */
+
 struct composite_context *rpc_composite_userdel_send(struct dcerpc_pipe *p,
 struct 
rpc_composite_userdel *io)
 {
@@ -320,14 +343,17 @@
 
s-pipe  = p;
s-domain_handle = io-in.domain_handle;
-
+   
+   /* preparing parameters to send rpc request */
s-lookupname.in.domain_handle = io-in.domain_handle;
s-lookupname.in.num_names = 1;
s-lookupname.in.names = talloc_zero(s, struct samr_String);
s-lookupname.in.names-string = io-in.username;
 
+   /* send the request */
s-req = dcerpc_samr_LookupNames_send(p, c, s-lookupname);
-   
+
+   /* callback handler */
s-req-async.callback = userdel_handler;
s-req-async.private  = c;
s-stage = USERDEL_LOOKUP;
@@ -340,6 +366,15 @@
 }
 
 
+/**
+ * Waits for and receives results of asynchronous userdel call
+ *
+ * @param c composite context returned by asynchronous userdel call
+ * @param mem_ctx memory context of the call
+ * @param io pointer to results (and arguments) of the call
+ * @return nt status code of execution
+ */
+
 NTSTATUS rpc_composite_userdel_recv(struct composite_context *c, TALLOC_CTX 
*mem_ctx,
struct rpc_composite_userdel *io)
 {



Build status as of Fri Apr 22 00:00:02 2005

2005-04-21 Thread build
URL: http://build.samba.org/

--- /home/build/master/cache/broken_results.txt.old 2005-04-21 
00:00:19.0 +
+++ /home/build/master/cache/broken_results.txt 2005-04-22 00:00:35.0 
+
@@ -1,18 +1,19 @@
-Build status as of Thu Apr 21 00:00:02 2005
+Build status as of Fri Apr 22 00:00:02 2005
 
 Build counts:
 Tree Total  Broken Panic 
-ccache   38 4  0 
-distcc   38 1  0 
+ccache   39 4  0 
+distcc   39 1  0 
 ppp  23 2  0 
 rsync38 1  0 
 samba1  1  1 
 samba-docs   0  0  0 
-samba4   40 11 0 
+samba4   41 15 0 
 samba_3_040 9  0 
 
 Currently broken builds:
 Host   Tree Compiler   Status
+cyberone   samba4   gccok/ 2/?/? 
 fusberta   samba4   gccok/ 2/?/? 
 samba-s390 samba4   gccok/ 2/?/? 
 rhonwynsamba4   gcc-4.0ok/ 2/?/? 
@@ -20,11 +21,14 @@
 rhonwynsamba4   tccok/ 2/?/? 
 shelob ccache   iccok/ok/ok/ 2
 aretnapccache   iccok/ok/ok/ 1
+smartserv1 samba4   gcc-4.0ok/ 1/?/? 
 smartserv1 samba_3_0gcc-4.0ok/ 1/?/? 
 gwen   distcc   cc ok/ 1/?/? 
 gwen   samba4   cc ok/ 1/?/? 
 gwen   samba_3_0cc ok/ 1/?/? 
+us4samba4   cc ok/ 1/?/? 
 us4samba_3_0cc ok/ 1/?/? 
+us4samba4   gccok/ 1/?/? 
 us4samba_3_0gccok/ 1/?/? 
 flock  samba4   gccok/ 1/?/? 
 shubnigurath   samba4   cc ok/ 1/?/? 


svn commit: samba r6425 - in branches/SAMBA_4_0/source/libnet: .

2005-04-21 Thread mimir
Author: mimir
Date: 2005-04-22 00:22:11 + (Fri, 22 Apr 2005)
New Revision: 6425

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

Log:
Yet another comment.


rafal


Modified:
   branches/SAMBA_4_0/source/libnet/userman.c


Changeset:
Modified: branches/SAMBA_4_0/source/libnet/userman.c
===
--- branches/SAMBA_4_0/source/libnet/userman.c  2005-04-21 23:25:38 UTC (rev 
6424)
+++ branches/SAMBA_4_0/source/libnet/userman.c  2005-04-22 00:22:11 UTC (rev 
6425)
@@ -393,6 +393,15 @@
 }
 
 
+/**
+ * Synchronous version of userdel call
+ *
+ * @param pipe dce/rpc call pipe
+ * @param mem_ctx memory context for the call
+ * @param io arguments and results of the call
+ * @return nt status code of execution
+ */
+
 NTSTATUS rpc_composite_userdel(struct dcerpc_pipe *pipe,
   TALLOC_CTX *mem_ctx,
   struct rpc_composite_userdel *io)



svn commit: samba r6426 - in branches/SAMBA_4_0/source/torture/libnet: .

2005-04-21 Thread mimir
Author: mimir
Date: 2005-04-22 00:32:37 + (Fri, 22 Apr 2005)
New Revision: 6426

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

Log:
DCE/RPC bind string parsing is not needed anymore, as we use
lp_workgroup parameter as domain name to operate on.


rafal


Modified:
   branches/SAMBA_4_0/source/torture/libnet/userinfo.c
   branches/SAMBA_4_0/source/torture/libnet/userman.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/libnet/userinfo.c
===
--- branches/SAMBA_4_0/source/torture/libnet/userinfo.c 2005-04-22 00:22:11 UTC 
(rev 6425)
+++ branches/SAMBA_4_0/source/torture/libnet/userinfo.c 2005-04-22 00:32:37 UTC 
(rev 6426)
@@ -225,17 +225,8 @@
DCERPC_SAMR_UUID,
DCERPC_SAMR_VERSION);

-   if (!NT_STATUS_IS_OK(status)) {
-   return False;
-   }
+   if (!NT_STATUS_IS_OK(status)) return False;
 
-   status = dcerpc_parse_binding(mem_ctx, binding, b);
-   if (!NT_STATUS_IS_OK(status)) {
-   printf(failed to parse dcerpc binding '%s'\n, binding);
-   talloc_free(mem_ctx);
-   ret = False;
-   goto done;
-   }
name.string = lp_workgroup();
 
if (!test_opendomain(p, mem_ctx, h, name, sid)) {

Modified: branches/SAMBA_4_0/source/torture/libnet/userman.c
===
--- branches/SAMBA_4_0/source/torture/libnet/userman.c  2005-04-22 00:22:11 UTC 
(rev 6425)
+++ branches/SAMBA_4_0/source/torture/libnet/userman.c  2005-04-22 00:32:37 UTC 
(rev 6426)
@@ -23,7 +23,7 @@
 #include librpc/gen_ndr/ndr_samr.h
 #include libnet/composite.h
 
-#define TEST_USERNAME  libnetuserinfotest
+#define TEST_USERNAME  libnetusermantest
 
 
 static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
@@ -235,18 +235,8 @@
DCERPC_SAMR_UUID,
DCERPC_SAMR_VERSION);

-   if (!NT_STATUS_IS_OK(status)) {
-   return False;
-   }
+   if (!NT_STATUS_IS_OK(status)) return False;
 
-   status = dcerpc_parse_binding(mem_ctx, binding, b);
-   if (!NT_STATUS_IS_OK(status)) {
-   printf(failed to parse dcerpc binding '%s'\n, binding);
-   talloc_free(mem_ctx);
-   ret = False;
-   goto done;
-   }
-
domain_name.string = lp_workgroup();
if (!test_opendomain(p, mem_ctx, h, domain_name)) {
ret = False;
@@ -290,18 +280,8 @@
DCERPC_SAMR_UUID,
DCERPC_SAMR_VERSION);

-   if (!NT_STATUS_IS_OK(status)) {
-   return False;
-   }
+   if (!NT_STATUS_IS_OK(status)) return False;
 
-   status = dcerpc_parse_binding(mem_ctx, binding, b);
-   if (!NT_STATUS_IS_OK(status)) {
-   printf(failed to parse dcerpc binding '%s'\n, binding);
-   talloc_free(mem_ctx);
-   ret = False;
-   goto done;
-   }
-
domain_name.string = lp_workgroup();
if (!test_opendomain(p, mem_ctx, h, domain_name)) {
ret = False;



Re: svn commit: samba r6426 - in branches/SAMBA_4_0/source/torture/libnet: .

2005-04-21 Thread Richard Sharpe
On Fri, 22 Apr 2005 [EMAIL PROTECTED] wrote:

 Author: mimir
 Date: 2005-04-22 00:32:37 + (Fri, 22 Apr 2005)
 New Revision: 6426
[deletia]
 Changeset:
 Modified: branches/SAMBA_4_0/source/torture/libnet/userinfo.c
 ===
 --- branches/SAMBA_4_0/source/torture/libnet/userinfo.c   2005-04-22 
 00:22:11 UTC (rev 6425)
 +++ branches/SAMBA_4_0/source/torture/libnet/userinfo.c   2005-04-22 
 00:32:37 UTC (rev 6426)
 @@ -225,17 +225,8 @@
   DCERPC_SAMR_UUID,
   DCERPC_SAMR_VERSION);

 - if (!NT_STATUS_IS_OK(status)) {
 - return False;
 - }
 + if (!NT_STATUS_IS_OK(status)) return False;

I don't think this is a big item, but I actually prefer the first one
above that was deleted, because it makes things much easier when you are
inserting debugging statements and so forth, at the cost of a few more
characters.

Of course, I am not going to create a big fuss, though.

Regards
-
Richard Sharpe, rsharpe[at]richardsharpe.com, rsharpe[at]samba.org,
sharpe[at]ethereal.com, http://www.richardsharpe.com


svn commit: samba-docs r498 - in trunk/Samba-Guide: .

2005-04-21 Thread jht
Author: jht
Date: 2005-04-22 01:46:37 + (Fri, 22 Apr 2005)
New Revision: 498

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

Log:
More updates from feedback.
Modified:
   trunk/Samba-Guide/SBE-AddingUNIXClients.xml
   trunk/Samba-Guide/SBE-MakingHappyUsers.xml
   trunk/Samba-Guide/SBE-MigrateNT4Samba3.xml
   trunk/Samba-Guide/SBE-MigrateNW4Samba3.xml


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


Re: svn commit: samba r6426 - in branches/SAMBA_4_0/source/torture/libnet: .

2005-04-21 Thread Rafal Szczesniak
On Thu, Apr 21, 2005 at 06:20:34PM -0700, Richard Sharpe wrote:
 On Fri, 22 Apr 2005 [EMAIL PROTECTED] wrote:
 
  -   if (!NT_STATUS_IS_OK(status)) {
  -   return False;
  -   }
  +   if (!NT_STATUS_IS_OK(status)) return False;
 
 I don't think this is a big item, but I actually prefer the first one
 above that was deleted, because it makes things much easier when you are
 inserting debugging statements and so forth, at the cost of a few more
 characters.

Certainly, when you add debug statements you use the deleted form.
I changed it to single line because it is smaller. Once I put there
something more it will be just what you prefer.


cheers,
-- 
Rafal Szczesniak
Samba Team member  http://www.samba.org



signature.asc
Description: Digital signature


svn commit: samba r6427 - in trunk/source: include registry utils

2005-04-21 Thread jerry
Author: jerry
Date: 2005-04-22 02:42:09 + (Fri, 22 Apr 2005)
New Revision: 6427

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

Log:
start to give more flesh to the structure surrounding
reading registry files.  Connect the SK, VK,  LF records
to the NK parent.


Modified:
   trunk/source/include/regfio.h
   trunk/source/registry/regfio.c
   trunk/source/utils/net_rpc_registry.c


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


svn commit: samba-docs r499 - in trunk/Samba-Guide: .

2005-04-21 Thread jht
Author: jht
Date: 2005-04-22 03:53:48 + (Fri, 22 Apr 2005)
New Revision: 499

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

Log:
More wonderful edits from feedback.
Modified:
   trunk/Samba-Guide/SBE-500UserNetwork.xml
   trunk/Samba-Guide/SBE-AddingUNIXClients.xml
   trunk/Samba-Guide/SBE-Appendix1.xml
   trunk/Samba-Guide/SBE-DomainAppsSupport.xml
   trunk/Samba-Guide/SBE-HighAvailability.xml
   trunk/Samba-Guide/SBE-MakingHappyUsers.xml
   trunk/Samba-Guide/SBE-TheSmallOffice.xml
   trunk/Samba-Guide/SBE-preface.xml


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


svn commit: samba r6428 - in trunk/source: include registry utils

2005-04-21 Thread jerry
Author: jerry
Date: 2005-04-22 04:12:11 + (Fri, 22 Apr 2005)
New Revision: 6428

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

Log:
successfully parse lf and vk records


Modified:
   trunk/source/include/regfio.h
   trunk/source/registry/regfio.c
   trunk/source/utils/net_rpc_registry.c


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


svn commit: samba r6429 - in trunk/source: include registry

2005-04-21 Thread jerry
Author: jerry
Date: 2005-04-22 04:25:21 + (Fri, 22 Apr 2005)
New Revision: 6429

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

Log:
fix bug that caused prs_vk_rec() to fail prematurely when the reg value data 
was stored in the offset
Modified:
   trunk/source/include/regfio.h
   trunk/source/registry/regfio.c


Changeset:
Modified: trunk/source/include/regfio.h
===
--- trunk/source/include/regfio.h   2005-04-22 04:12:11 UTC (rev 6428)
+++ trunk/source/include/regfio.h   2005-04-22 04:25:21 UTC (rev 6429)
@@ -40,6 +40,7 @@
 /* Flags for the vk records */
 
 #define VK_FLAG_NAME_PRESENT   0x0001
+#define VK_DATA_IN_OFFSET  0x1000
 
 /* ??? List -- list of key offsets and hashed names for consistency */
 

Modified: trunk/source/registry/regfio.c
===
--- trunk/source/registry/regfio.c  2005-04-22 04:12:11 UTC (rev 6428)
+++ trunk/source/registry/regfio.c  2005-04-22 04:25:21 UTC (rev 6429)
@@ -400,21 +400,19 @@
if ( vk-data_size != 0 ) {
BOOL charmode = vk-type  (REG_SZ|REG_MULTI_SZ);
 
-   if ( !(vk-data = PRS_ALLOC_MEM( ps, uint8, vk-data_size) ) )
-   return False;
-
/* the data is stored in the offset if the size = 4 */
 
-   if ( vk-data_size  4 ) {
-   /* set the offset */
-   
+   if ( vk-data_size  VK_DATA_IN_OFFSET ) {
+   if ( !(vk-data = PRS_ALLOC_MEM( ps, uint8, 
vk-data_size) ) )
+   return False;
if ( !(prs_set_offset( ps, vk-data_off+HBIN_HDR_SIZE 
)) )
return False;
-
if ( !prs_uint8s( charmode, data, ps, depth, 
vk-data, vk-data_size) )
return False;
}
else {
+   if ( !(vk-data = PRS_ALLOC_MEM( ps, uint8, 4 ) ) )
+   return False;
SIVAL( vk-data, 0, vk-data_off );
}




svn commit: samba r6430 - in branches/SAMBA_4_0/source/torture/libnet: .

2005-04-21 Thread mimir
Author: mimir
Date: 2005-04-22 05:11:53 + (Fri, 22 Apr 2005)
New Revision: 6430

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

Log:
Delete existing test account if, for some reason, it hasn't been
deleted last time running the test.


rafal


Modified:
   branches/SAMBA_4_0/source/torture/libnet/userman.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/libnet/userman.c
===
--- branches/SAMBA_4_0/source/torture/libnet/userman.c  2005-04-22 04:25:21 UTC 
(rev 6429)
+++ branches/SAMBA_4_0/source/torture/libnet/userman.c  2005-04-22 05:11:53 UTC 
(rev 6430)
@@ -176,6 +176,22 @@
status = dcerpc_samr_CreateUser(p, mem_ctx, r1);
if (!NT_STATUS_IS_OK(status)) {
printf(CreateUser failed - %s\n, nt_errstr(status));
+
+   if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
+   printf(User (%s) already exists - attempting to delete 
and recreate account again\n, user);
+   if (!test_cleanup(p, mem_ctx, handle, TEST_USERNAME)) {
+   return False;
+   }
+
+   printf(creating user account\n);
+   
+   status = dcerpc_samr_CreateUser(p, mem_ctx, r1);
+   if (!NT_STATUS_IS_OK(status)) {
+   printf(CreateUser failed - %s\n, 
nt_errstr(status));
+   return False;
+   }
+   return True;
+   }   
return False;
}
 
@@ -292,12 +308,12 @@
ret = False;
goto done;
}
-
-   if (!test_userdel(p, mem_ctx, h, name)) {
+   
+   if (!test_userdel(p, mem_ctx, h, name)) {
ret = False;
goto done;
}
-
+   
 done:
talloc_free(mem_ctx);
return ret;