libcli/security Provide a common, top level libcli/security/security.h
[sfrench/samba-autobuild/.git] / source3 / rpc_server / srv_wkssvc_nt.c
index d9f788142d931ef64158ed6392da7e786f8d9f46..ee2b419696c2c37a3ca267182111830c943a2bc5 100644 (file)
@@ -27,6 +27,7 @@
 #include "libnet/libnet_join.h"
 #include "../libcli/auth/libcli_auth.h"
 #include "../librpc/gen_ndr/srv_wkssvc.h"
+#include "../libcli/security/security.h"
 
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_RPC_SRV
@@ -336,7 +337,8 @@ static struct wkssvc_NetWkstaInfo102 *create_wks_info_102(TALLOC_CTX *mem_ctx)
  Handling for RPC Workstation Service request NetWkstaGetInfo
  ********************************************************************/
 
-WERROR _wkssvc_NetWkstaGetInfo(pipes_struct *p, struct wkssvc_NetWkstaGetInfo *r)
+WERROR _wkssvc_NetWkstaGetInfo(struct pipes_struct *p,
+                              struct wkssvc_NetWkstaGetInfo *r)
 {
        switch (r->in.level) {
        case 100:
@@ -394,7 +396,8 @@ WERROR _wkssvc_NetWkstaGetInfo(pipes_struct *p, struct wkssvc_NetWkstaGetInfo *r
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetWkstaSetInfo(pipes_struct *p, struct wkssvc_NetWkstaSetInfo *r)
+WERROR _wkssvc_NetWkstaSetInfo(struct pipes_struct *p,
+                              struct wkssvc_NetWkstaSetInfo *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -549,7 +552,8 @@ static struct wkssvc_NetWkstaEnumUsersCtr1 *create_enum_users1(
  (a.k.a Windows NetWkstaUserEnum)
  ********************************************************************/
 
-WERROR _wkssvc_NetWkstaEnumUsers(pipes_struct *p, struct wkssvc_NetWkstaEnumUsers *r)
+WERROR _wkssvc_NetWkstaEnumUsers(struct pipes_struct *p,
+                                struct wkssvc_NetWkstaEnumUsers *r)
 {
        /* This with any level should only be allowed from a domain administrator */
        if (!nt_token_check_sid(&global_sid_Builtin_Administrators,
@@ -591,7 +595,8 @@ WERROR _wkssvc_NetWkstaEnumUsers(pipes_struct *p, struct wkssvc_NetWkstaEnumUser
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrWkstaUserGetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserGetInfo *r)
+WERROR _wkssvc_NetrWkstaUserGetInfo(struct pipes_struct *p,
+                                   struct wkssvc_NetrWkstaUserGetInfo *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -601,7 +606,8 @@ WERROR _wkssvc_NetrWkstaUserGetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUser
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrWkstaUserSetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserSetInfo *r)
+WERROR _wkssvc_NetrWkstaUserSetInfo(struct pipes_struct *p,
+                                   struct wkssvc_NetrWkstaUserSetInfo *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -611,7 +617,8 @@ WERROR _wkssvc_NetrWkstaUserSetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUser
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetWkstaTransportEnum(pipes_struct *p, struct wkssvc_NetWkstaTransportEnum *r)
+WERROR _wkssvc_NetWkstaTransportEnum(struct pipes_struct *p,
+                                    struct wkssvc_NetWkstaTransportEnum *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -621,7 +628,8 @@ WERROR _wkssvc_NetWkstaTransportEnum(pipes_struct *p, struct wkssvc_NetWkstaTran
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrWkstaTransportAdd(pipes_struct *p, struct wkssvc_NetrWkstaTransportAdd *r)
+WERROR _wkssvc_NetrWkstaTransportAdd(struct pipes_struct *p,
+                                    struct wkssvc_NetrWkstaTransportAdd *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -631,7 +639,8 @@ WERROR _wkssvc_NetrWkstaTransportAdd(pipes_struct *p, struct wkssvc_NetrWkstaTra
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrWkstaTransportDel(pipes_struct *p, struct wkssvc_NetrWkstaTransportDel *r)
+WERROR _wkssvc_NetrWkstaTransportDel(struct pipes_struct *p,
+                                    struct wkssvc_NetrWkstaTransportDel *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -641,7 +650,8 @@ WERROR _wkssvc_NetrWkstaTransportDel(pipes_struct *p, struct wkssvc_NetrWkstaTra
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrUseAdd(pipes_struct *p, struct wkssvc_NetrUseAdd *r)
+WERROR _wkssvc_NetrUseAdd(struct pipes_struct *p,
+                         struct wkssvc_NetrUseAdd *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -651,7 +661,8 @@ WERROR _wkssvc_NetrUseAdd(pipes_struct *p, struct wkssvc_NetrUseAdd *r)
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrUseGetInfo(pipes_struct *p, struct wkssvc_NetrUseGetInfo *r)
+WERROR _wkssvc_NetrUseGetInfo(struct pipes_struct *p,
+                             struct wkssvc_NetrUseGetInfo *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -661,7 +672,8 @@ WERROR _wkssvc_NetrUseGetInfo(pipes_struct *p, struct wkssvc_NetrUseGetInfo *r)
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrUseDel(pipes_struct *p, struct wkssvc_NetrUseDel *r)
+WERROR _wkssvc_NetrUseDel(struct pipes_struct *p,
+                         struct wkssvc_NetrUseDel *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -671,7 +683,8 @@ WERROR _wkssvc_NetrUseDel(pipes_struct *p, struct wkssvc_NetrUseDel *r)
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrUseEnum(pipes_struct *p, struct wkssvc_NetrUseEnum *r)
+WERROR _wkssvc_NetrUseEnum(struct pipes_struct *p,
+                          struct wkssvc_NetrUseEnum *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -681,7 +694,8 @@ WERROR _wkssvc_NetrUseEnum(pipes_struct *p, struct wkssvc_NetrUseEnum *r)
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrMessageBufferSend(pipes_struct *p, struct wkssvc_NetrMessageBufferSend *r)
+WERROR _wkssvc_NetrMessageBufferSend(struct pipes_struct *p,
+                                    struct wkssvc_NetrMessageBufferSend *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -691,7 +705,8 @@ WERROR _wkssvc_NetrMessageBufferSend(pipes_struct *p, struct wkssvc_NetrMessageB
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrWorkstationStatisticsGet(pipes_struct *p, struct wkssvc_NetrWorkstationStatisticsGet *r) 
+WERROR _wkssvc_NetrWorkstationStatisticsGet(struct pipes_struct *p,
+                                           struct wkssvc_NetrWorkstationStatisticsGet *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -701,7 +716,8 @@ WERROR _wkssvc_NetrWorkstationStatisticsGet(pipes_struct *p, struct wkssvc_NetrW
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrLogonDomainNameAdd(pipes_struct *p, struct wkssvc_NetrLogonDomainNameAdd *r)
+WERROR _wkssvc_NetrLogonDomainNameAdd(struct pipes_struct *p,
+                                     struct wkssvc_NetrLogonDomainNameAdd *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -711,7 +727,8 @@ WERROR _wkssvc_NetrLogonDomainNameAdd(pipes_struct *p, struct wkssvc_NetrLogonDo
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrLogonDomainNameDel(pipes_struct *p, struct wkssvc_NetrLogonDomainNameDel *r)
+WERROR _wkssvc_NetrLogonDomainNameDel(struct pipes_struct *p,
+                                     struct wkssvc_NetrLogonDomainNameDel *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -721,7 +738,8 @@ WERROR _wkssvc_NetrLogonDomainNameDel(pipes_struct *p, struct wkssvc_NetrLogonDo
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrJoinDomain(pipes_struct *p, struct wkssvc_NetrJoinDomain *r)
+WERROR _wkssvc_NetrJoinDomain(struct pipes_struct *p,
+                             struct wkssvc_NetrJoinDomain *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -731,7 +749,8 @@ WERROR _wkssvc_NetrJoinDomain(pipes_struct *p, struct wkssvc_NetrJoinDomain *r)
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrUnjoinDomain(pipes_struct *p, struct wkssvc_NetrUnjoinDomain *r)
+WERROR _wkssvc_NetrUnjoinDomain(struct pipes_struct *p,
+                               struct wkssvc_NetrUnjoinDomain *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -741,7 +760,8 @@ WERROR _wkssvc_NetrUnjoinDomain(pipes_struct *p, struct wkssvc_NetrUnjoinDomain
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrRenameMachineInDomain(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain *r)
+WERROR _wkssvc_NetrRenameMachineInDomain(struct pipes_struct *p,
+                                        struct wkssvc_NetrRenameMachineInDomain *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -751,7 +771,8 @@ WERROR _wkssvc_NetrRenameMachineInDomain(pipes_struct *p, struct wkssvc_NetrRena
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrValidateName(pipes_struct *p, struct wkssvc_NetrValidateName *r)
+WERROR _wkssvc_NetrValidateName(struct pipes_struct *p,
+                               struct wkssvc_NetrValidateName *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -761,7 +782,8 @@ WERROR _wkssvc_NetrValidateName(pipes_struct *p, struct wkssvc_NetrValidateName
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrGetJoinInformation(pipes_struct *p, struct wkssvc_NetrGetJoinInformation *r)
+WERROR _wkssvc_NetrGetJoinInformation(struct pipes_struct *p,
+                                     struct wkssvc_NetrGetJoinInformation *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -771,7 +793,8 @@ WERROR _wkssvc_NetrGetJoinInformation(pipes_struct *p, struct wkssvc_NetrGetJoin
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrGetJoinableOus(pipes_struct *p, struct wkssvc_NetrGetJoinableOus *r)
+WERROR _wkssvc_NetrGetJoinableOus(struct pipes_struct *p,
+                                 struct wkssvc_NetrGetJoinableOus *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -782,7 +805,7 @@ WERROR _wkssvc_NetrGetJoinableOus(pipes_struct *p, struct wkssvc_NetrGetJoinable
  _wkssvc_NetrJoinDomain2
  ********************************************************************/
 
-WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p,
+WERROR _wkssvc_NetrJoinDomain2(struct pipes_struct *p,
                               struct wkssvc_NetrJoinDomain2 *r)
 {
        struct libnet_JoinCtx *j = NULL;
@@ -790,7 +813,7 @@ WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p,
        char *admin_domain = NULL;
        char *admin_account = NULL;
        WERROR werr;
-       struct nt_user_token *token = p->server_info->ptok;
+       struct security_token *token = p->server_info->ptok;
 
        if (!r->in.domain_name) {
                return WERR_INVALID_PARAM;
@@ -800,7 +823,7 @@ WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p,
                return WERR_INVALID_PARAM;
        }
 
-       if (!user_has_privileges(token, &se_machine_account) &&
+       if (!security_token_has_privilege(token, SEC_PRIV_MACHINE_ACCOUNT) &&
            !nt_token_check_domain_rid(token, DOMAIN_RID_ADMINS) &&
            !nt_token_check_sid(&global_sid_Builtin_Administrators, token)) {
                DEBUG(5,("_wkssvc_NetrJoinDomain2: account doesn't have "
@@ -837,7 +860,7 @@ WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p,
        j->in.admin_password    = cleartext_pwd;
        j->in.debug             = true;
        j->in.modify_config     = lp_config_backend_is_registry();
-       j->in.msg_ctx           = smbd_messaging_context();
+       j->in.msg_ctx           = p->msg_ctx;
 
        become_root();
        werr = libnet_Join(p->mem_ctx, j);
@@ -857,7 +880,7 @@ WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p,
  _wkssvc_NetrUnjoinDomain2
  ********************************************************************/
 
-WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p,
+WERROR _wkssvc_NetrUnjoinDomain2(struct pipes_struct *p,
                                 struct wkssvc_NetrUnjoinDomain2 *r)
 {
        struct libnet_UnjoinCtx *u = NULL;
@@ -865,13 +888,13 @@ WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p,
        char *admin_domain = NULL;
        char *admin_account = NULL;
        WERROR werr;
-       struct nt_user_token *token = p->server_info->ptok;
+       struct security_token *token = p->server_info->ptok;
 
        if (!r->in.account || !r->in.encrypted_password) {
                return WERR_INVALID_PARAM;
        }
 
-       if (!user_has_privileges(token, &se_machine_account) &&
+       if (!security_token_has_privilege(token, SEC_PRIV_MACHINE_ACCOUNT) &&
            !nt_token_check_domain_rid(token, DOMAIN_RID_ADMINS) &&
            !nt_token_check_sid(&global_sid_Builtin_Administrators, token)) {
                DEBUG(5,("_wkssvc_NetrUnjoinDomain2: account doesn't have "
@@ -903,7 +926,7 @@ WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p,
        u->in.admin_password    = cleartext_pwd;
        u->in.debug             = true;
        u->in.modify_config     = lp_config_backend_is_registry();
-       u->in.msg_ctx           = smbd_messaging_context();
+       u->in.msg_ctx           = p->msg_ctx;
 
        become_root();
        werr = libnet_Unjoin(p->mem_ctx, u);
@@ -922,7 +945,8 @@ WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p,
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrRenameMachineInDomain2(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain2 *r)
+WERROR _wkssvc_NetrRenameMachineInDomain2(struct pipes_struct *p,
+                                         struct wkssvc_NetrRenameMachineInDomain2 *r)
 {
        /* for now just return not supported */
        return WERR_NOT_SUPPORTED;
@@ -931,7 +955,8 @@ WERROR _wkssvc_NetrRenameMachineInDomain2(pipes_struct *p, struct wkssvc_NetrRen
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrValidateName2(pipes_struct *p, struct wkssvc_NetrValidateName2 *r)
+WERROR _wkssvc_NetrValidateName2(struct pipes_struct *p,
+                                struct wkssvc_NetrValidateName2 *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -941,7 +966,8 @@ WERROR _wkssvc_NetrValidateName2(pipes_struct *p, struct wkssvc_NetrValidateName
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrGetJoinableOus2(pipes_struct *p, struct wkssvc_NetrGetJoinableOus2 *r)
+WERROR _wkssvc_NetrGetJoinableOus2(struct pipes_struct *p,
+                                  struct wkssvc_NetrGetJoinableOus2 *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -951,7 +977,8 @@ WERROR _wkssvc_NetrGetJoinableOus2(pipes_struct *p, struct wkssvc_NetrGetJoinabl
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, struct wkssvc_NetrAddAlternateComputerName *r)
+WERROR _wkssvc_NetrAddAlternateComputerName(struct pipes_struct *p,
+                                           struct wkssvc_NetrAddAlternateComputerName *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -961,7 +988,8 @@ WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, struct wkssvc_NetrA
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, struct wkssvc_NetrRemoveAlternateComputerName *r)
+WERROR _wkssvc_NetrRemoveAlternateComputerName(struct pipes_struct *p,
+                                              struct wkssvc_NetrRemoveAlternateComputerName *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -971,7 +999,8 @@ WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, struct wkssvc_Ne
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrSetPrimaryComputername(pipes_struct *p, struct wkssvc_NetrSetPrimaryComputername *r)
+WERROR _wkssvc_NetrSetPrimaryComputername(struct pipes_struct *p,
+                                         struct wkssvc_NetrSetPrimaryComputername *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;
@@ -981,7 +1010,8 @@ WERROR _wkssvc_NetrSetPrimaryComputername(pipes_struct *p, struct wkssvc_NetrSet
 /********************************************************************
  ********************************************************************/
 
-WERROR _wkssvc_NetrEnumerateComputerNames(pipes_struct *p, struct wkssvc_NetrEnumerateComputerNames *r)
+WERROR _wkssvc_NetrEnumerateComputerNames(struct pipes_struct *p,
+                                         struct wkssvc_NetrEnumerateComputerNames *r)
 {
        /* FIXME: Add implementation code here */
        p->rng_fault_state = True;