r14464: Don't include ndr_BASENAME.h files unless strictly required, instead
[kai/samba-autobuild/.git] / source4 / ntvfs / ipc / rap_server.c
index 4a7b2dd91b31e63bce9e74e399be9c75bbefc43c..8ec62dff8b0e9e7e1d5b9d5aeec9ed9e8c7698b8 100644 (file)
 */
 
 #include "includes.h"
+#include "libcli/rap/rap.h"
+#include "librpc/gen_ndr/srvsvc.h"
+#include "rpc_server/common/common.h"
 
 /* At this moment these are just dummy functions, but you might get the
  * idea. */
 
-NTSTATUS rap_netshareenum(struct smbsrv_request *req,
+NTSTATUS rap_netshareenum(TALLOC_CTX *mem_ctx,
                          struct rap_NetShareEnum *r)
 {
+       int i;
        r->out.status = 0;
-       r->out.available = 2;
-       r->out.info = talloc_array_p(req->mem_ctx,
-                                    union rap_shareenum_info, 2);
+       r->out.available = dcesrv_common_get_count_of_shares(mem_ctx, NULL);
+       r->out.info = talloc_array(mem_ctx,
+                                  union rap_shareenum_info, r->out.available);
 
-       strncpy(r->out.info[0].info1.name, "C$", 12);
-       r->out.info[0].info1.pad = 0;
-       r->out.info[0].info1.type = 0;
-       r->out.info[0].info1.comment = talloc_strdup(req->mem_ctx, "Bla");
-       
-       strncpy(r->out.info[1].info1.name, "IPC$", 12);
-       r->out.info[1].info1.pad = 0;
-       r->out.info[1].info1.type = 1;
-       r->out.info[1].info1.comment = talloc_strdup(req->mem_ctx, "Blub");
+       for (i=0;i<r->out.available;i++) {
+               strncpy(r->out.info[i].info1.name, 
+                       dcesrv_common_get_share_name(mem_ctx, NULL, i),
+                       sizeof(r->out.info[0].info1.name));
+               r->out.info[i].info1.pad = 0;
+               r->out.info[i].info1.type = dcesrv_common_get_share_type(mem_ctx, NULL, i);
+               r->out.info[i].info1.comment = talloc_strdup(mem_ctx, 
+                                                            dcesrv_common_get_share_comment(mem_ctx, NULL, i));
+       }
        
        return NT_STATUS_OK;
 }
 
-NTSTATUS rap_netserverenum2(struct smbsrv_request *req,
-                                  struct rap_NetServerEnum2 *r)
+NTSTATUS rap_netserverenum2(TALLOC_CTX *mem_ctx,
+                           struct rap_NetServerEnum2 *r)
 {
        r->out.status = 0;
        r->out.available = 0;