Author: gd
Date: 2005-08-03 01:08:42 +0000 (Wed, 03 Aug 2005)
New Revision: 8971

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=8971

Log:
Fix querydispinfo (still need to look at enumdomusers) to allow to list
more then 511 users.

After the rewrite, the old NT_STATUS-semantics didn't fit any longer.

Guenther

Modified:
   branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c
   trunk/source/rpc_server/srv_samr_nt.c


Changeset:
Modified: branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c  2005-08-03 00:59:35 UTC 
(rev 8970)
+++ branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c  2005-08-03 01:08:42 UTC 
(rev 8971)
@@ -808,7 +808,7 @@
        struct samr_displayentry *entries = NULL;
 
        DEBUG(5, ("samr_reply_query_dispinfo: %d\n", __LINE__));
-       r_u->status = NT_STATUS_OK;
+       r_u->status = NT_STATUS_UNSUCCESSFUL;
 
        /* find the policy handle.  open a policy on it. */
        if (!find_policy_by_hnd(p, &q_u->domain_pol, (void **)&info))
@@ -951,8 +951,10 @@
        /* calculate the total size */
        total_data_size=num_account*struct_size;
 
-       if (enum_context+max_entries < num_account)
+       if (num_account)
                r_u->status = STATUS_MORE_ENTRIES;
+       else
+               r_u->status = NT_STATUS_OK;
 
        DEBUG(5, ("_samr_query_dispinfo: %d\n", __LINE__));
 

Modified: trunk/source/rpc_server/srv_samr_nt.c
===================================================================
--- trunk/source/rpc_server/srv_samr_nt.c       2005-08-03 00:59:35 UTC (rev 
8970)
+++ trunk/source/rpc_server/srv_samr_nt.c       2005-08-03 01:08:42 UTC (rev 
8971)
@@ -807,7 +807,7 @@
        struct samr_displayentry *entries = NULL;
 
        DEBUG(5, ("samr_reply_query_dispinfo: %d\n", __LINE__));
-       r_u->status = NT_STATUS_OK;
+       r_u->status = NT_STATUS_UNSUCCESSFUL;
 
        /* find the policy handle.  open a policy on it. */
        if (!find_policy_by_hnd(p, &q_u->domain_pol, (void **)&info))
@@ -950,8 +950,10 @@
        /* calculate the total size */
        total_data_size=num_account*struct_size;
 
-       if (enum_context+max_entries < num_account)
+       if (num_account)
                r_u->status = STATUS_MORE_ENTRIES;
+       else
+               r_u->status = NT_STATUS_OK;
 
        DEBUG(5, ("_samr_query_dispinfo: %d\n", __LINE__));
 

Reply via email to