Print this page
1575 untangle libmlrpc from SMB server
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
NEX-15052 Need a way to add appliance local user/group ACE from Windows
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-15052 Need a way to add appliance local user/group ACE from Windows
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-3106 ACL editor crash in Windows 2012 R2
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
re #12435 rb3958 r10 is added 2 times to panic info
re #12393 rb3935 Kerberos and smbd disagree about who is our AD server

@@ -19,21 +19,21 @@
  * CDDL HEADER END
  */
 
 /*
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
+ * Copyright 2017 Nexenta Systems, Inc.  All rights reserved.
  */
 
 #ifndef _MLSVC_SAM_NDL_
 #define _MLSVC_SAM_NDL_
 
 /*
  * Security Accounts Manager RPC (SAMR) interface definition.
  */
 
-#include "ndrtypes.ndl"
+#include <libmlrpc/ndrtypes.ndl>
 
 /* Windows NT */
 #define SAMR_OPNUM_Connect                      0x00    /* SamrConnect */
 #define SAMR_OPNUM_CloseHandle                  0x01
 #define SAMR_OPNUM_SetSecObject                 0x02

@@ -361,11 +361,11 @@
  * and for the benefit of our client-side code.
  */
 #ifndef NDRGEN
 #define SAMR_USER_PWLEN 256
 struct samr_user_password {
-        smb_wchar_t     Buffer[SAMR_USER_PWLEN];
+        ndr_wchar_t     Buffer[SAMR_USER_PWLEN];
         DWORD Length;
 };
 #endif  /* NDRGEN */
 
 /* SAMPR_ENCRYPTED_USER_PASSWORD */

@@ -486,10 +486,37 @@
 };
 
 
 /*
  ***********************************************************************
+ * QuerySecObject
+ *
+ * Returns the SecurityDescriptor of the object. Support not complete.
+ *
+ * QuerySecObject (
+ *      IN samr_handle_t obj_handle,
+ *      IN SECURITY_INFO secinfo,
+ *      OUT samr_sd_t *sd,
+ *      OUT DWORD status
+ * )
+ *
+ ***********************************************************************
+ */
+
+typedef DWORD SECURITY_INFO;
+
+OPERATION(SAMR_OPNUM_QuerySecObject)
+struct samr_QuerySecObject {
+        IN      samr_handle_t obj_handle;
+        IN      SECURITY_INFO secinfo;
+        OUT     samr_sd_t *sd;
+        OUT     DWORD status;
+};
+
+
+/*
+ ***********************************************************************
  * LookupDomain: lookup up the domain SID.
  ***********************************************************************
  */
 OPERATION(SAMR_OPNUM_LookupDomain)
 struct samr_LookupDomain {

@@ -1390,10 +1417,12 @@
 union samr_interface {
         CASE(SAMR_OPNUM_Connect)
                 struct samr_Connect             Connect;
         CASE(SAMR_OPNUM_CloseHandle)
                 struct samr_CloseHandle         CloseHandle;
+        CASE(SAMR_OPNUM_QuerySecObject)
+                struct samr_QuerySecObject      QuerySecObject;
         CASE(SAMR_OPNUM_LookupDomain)
                 struct samr_LookupDomain        LookupDomain;
         CASE(SAMR_OPNUM_EnumLocalDomains)
                 struct samr_EnumLocalDomain     EnumLocalDomain;
         CASE(SAMR_OPNUM_OpenDomain)