[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-2391-g144f41e

Günther Deschner gd at samba.org
Mon Feb 18 12:54:35 GMT 2008


The branch, v3-2-test has been updated
       via  144f41e7c3c97afede71ed771acd130f9018f0df (commit)
       via  2746e88c5c4a9e859356d5c53106eba0c2cd7cbe (commit)
      from  e0a8818af0e3e82e9b70ff6c485090986b435fed (commit)

http://gitweb.samba.org/?samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 144f41e7c3c97afede71ed771acd130f9018f0df
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 18 13:45:36 2008 +0100

    Remove unused marshalling for SVCCTL_GET_DISPLAY_NAME.
    
    Guenther

commit 2746e88c5c4a9e859356d5c53106eba0c2cd7cbe
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 18 13:43:12 2008 +0100

    Use pidl for _svcctl_GetServiceDisplayNameW().
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source/include/rpc_svcctl.h       |   14 -------
 source/rpc_client/cli_svcctl.c    |   45 -----------------------
 source/rpc_parse/parse_svcctl.c   |   71 -------------------------------------
 source/rpc_server/srv_svcctl.c    |   18 +---------
 source/rpc_server/srv_svcctl_nt.c |   23 ++++++------
 5 files changed, 13 insertions(+), 158 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/rpc_svcctl.h b/source/include/rpc_svcctl.h
index 14a9dd6..c40ea8e 100644
--- a/source/include/rpc_svcctl.h
+++ b/source/include/rpc_svcctl.h
@@ -198,20 +198,6 @@ typedef struct _ServiceInfo {
 
 typedef struct {
 	POLICY_HND handle;
-	UNISTR2 servicename;
-	uint32  display_name_len;
-} SVCCTL_Q_GET_DISPLAY_NAME;
-
-typedef struct {
-	UNISTR2 displayname;
-	uint32 display_name_len;
-	WERROR status;
-} SVCCTL_R_GET_DISPLAY_NAME;
-
-/**************************/
-
-typedef struct {
-	POLICY_HND handle;
 	uint32 parmcount;
 	UNISTR4_ARRAY *parameters;
 } SVCCTL_Q_START_SERVICE;
diff --git a/source/rpc_client/cli_svcctl.c b/source/rpc_client/cli_svcctl.c
index 0a5cf76..cdd1b93 100644
--- a/source/rpc_client/cli_svcctl.c
+++ b/source/rpc_client/cli_svcctl.c
@@ -290,48 +290,3 @@ WERROR rpccli_svcctl_control_service( struct rpc_pipe_client *cli, TALLOC_CTX *m
 	
 	return out.status;
 }
-
-
-/*******************************************************************
-*******************************************************************/
-
-WERROR rpccli_svcctl_get_dispname( struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, 
-                                POLICY_HND *hService, fstring displayname )
-{
-	SVCCTL_Q_GET_DISPLAY_NAME in;
-	SVCCTL_R_GET_DISPLAY_NAME out;
-	prs_struct qbuf, rbuf;
-	
-	ZERO_STRUCT(in);
-	ZERO_STRUCT(out);
-	
-	memcpy( &in.handle, hService, sizeof(POLICY_HND) );
-	in.display_name_len = 0;
-	
-	CLI_DO_RPC_WERR( cli, mem_ctx, PI_SVCCTL, SVCCTL_GET_DISPLAY_NAME, 
-	            in, out, 
-	            qbuf, rbuf,
-	            svcctl_io_q_get_display_name,
-	            svcctl_io_r_get_display_name, 
-	            WERR_GENERAL_FAILURE );
-	
-	/* second time with correct buffer size...should be ok */
-	
-	if ( W_ERROR_EQUAL( out.status, WERR_INSUFFICIENT_BUFFER ) ) {
-		in.display_name_len = out.display_name_len;
-
-		CLI_DO_RPC_WERR( cli, mem_ctx, PI_SVCCTL, SVCCTL_GET_DISPLAY_NAME, 
-		            in, out, 
-		            qbuf, rbuf,
-		            svcctl_io_q_get_display_name,
-		            svcctl_io_r_get_display_name, 
-		            WERR_GENERAL_FAILURE );
-	}
-
-	if ( !W_ERROR_IS_OK( out.status ) )
-		return out.status;
-
-	rpcstr_pull( displayname, out.displayname.buffer, sizeof(displayname), -1, STR_TERMINATE );
-	
-	return out.status;
-}
diff --git a/source/rpc_parse/parse_svcctl.c b/source/rpc_parse/parse_svcctl.c
index 7fd13e8..f3ed8d1 100644
--- a/source/rpc_parse/parse_svcctl.c
+++ b/source/rpc_parse/parse_svcctl.c
@@ -198,77 +198,6 @@ uint32 svcctl_sizeof_service_config( SERVICE_CONFIG *config )
 /*******************************************************************
 ********************************************************************/
 
-bool svcctl_io_q_get_display_name(const char *desc, SVCCTL_Q_GET_DISPLAY_NAME *q_u, prs_struct *ps, int depth)
-{
-	if (q_u == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "svcctl_io_q_get_display_name");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!smb_io_pol_hnd("scm_pol", &q_u->handle, ps, depth))
-		return False;
-
-	if(!smb_io_unistr2("servicename", &q_u->servicename, 1, ps, depth))
-		return False;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_uint32("display_name_len", ps, depth, &q_u->display_name_len))
-		return False;
-	
-	return True;
-}
-
-/*******************************************************************
-********************************************************************/
-
-bool init_svcctl_r_get_display_name( SVCCTL_R_GET_DISPLAY_NAME *r_u, const char *displayname )
-{
-	r_u->display_name_len = strlen(displayname);
-	init_unistr2( &r_u->displayname, displayname, UNI_STR_TERMINATE );
-
-	return True;
-}
-
-/*******************************************************************
-********************************************************************/
-
-bool svcctl_io_r_get_display_name(const char *desc, SVCCTL_R_GET_DISPLAY_NAME *r_u, prs_struct *ps, int depth)
-{
-	if (r_u == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "svcctl_io_r_get_display_name");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	
-	if(!smb_io_unistr2("displayname", &r_u->displayname, 1, ps, depth))
-		return False;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_uint32("display_name_len", ps, depth, &r_u->display_name_len))
-		return False;
-
-	if(!prs_werror("status", ps, depth, &r_u->status))
-		return False;
-
-	return True;
-}
-
-
-/*******************************************************************
-********************************************************************/
-
 bool svcctl_io_q_query_status(const char *desc, SVCCTL_Q_QUERY_STATUS *q_u, prs_struct *ps, int depth)
 {
 	if (q_u == NULL)
diff --git a/source/rpc_server/srv_svcctl.c b/source/rpc_server/srv_svcctl.c
index a134df8..84c986d 100644
--- a/source/rpc_server/srv_svcctl.c
+++ b/source/rpc_server/srv_svcctl.c
@@ -69,23 +69,7 @@ static bool api_svcctl_open_service(pipes_struct *p)
 
 static bool api_svcctl_get_display_name(pipes_struct *p)
 {
-	SVCCTL_Q_GET_DISPLAY_NAME q_u;
-	SVCCTL_R_GET_DISPLAY_NAME r_u;
-	prs_struct *data = &p->in_data.data;
-	prs_struct *rdata = &p->out_data.rdata;
-
-	ZERO_STRUCT(q_u);
-	ZERO_STRUCT(r_u);
-
-	if(!svcctl_io_q_get_display_name("", &q_u, data, 0))
-		return False;
-
-	r_u.status = _svcctl_get_display_name(p, &q_u, &r_u);
-
-	if(!svcctl_io_r_get_display_name("", &r_u, rdata, 0))
-		return False;
-
-	return True;
+	return proxy_svcctl_call(p, NDR_SVCCTL_GETSERVICEDISPLAYNAMEW);
 }
 
 /*******************************************************************
diff --git a/source/rpc_server/srv_svcctl_nt.c b/source/rpc_server/srv_svcctl_nt.c
index 40f3584..bdd0f4f 100644
--- a/source/rpc_server/srv_svcctl_nt.c
+++ b/source/rpc_server/srv_svcctl_nt.c
@@ -332,23 +332,30 @@ WERROR _svcctl_CloseServiceHandle(pipes_struct *p, struct svcctl_CloseServiceHan
 }
 
 /********************************************************************
+ _svcctl_GetServiceDisplayNameW
 ********************************************************************/
 
-WERROR _svcctl_get_display_name(pipes_struct *p, SVCCTL_Q_GET_DISPLAY_NAME *q_u, SVCCTL_R_GET_DISPLAY_NAME *r_u)
+WERROR _svcctl_GetServiceDisplayNameW(pipes_struct *p,
+				      struct svcctl_GetServiceDisplayNameW *r)
 {
-	fstring service;
+	const char *service;
 	const char *display_name;
-	SERVICE_INFO *info = find_service_info_by_hnd( p, &q_u->handle );
+	SERVICE_INFO *info = find_service_info_by_hnd( p, r->in.handle );
 
 	/* can only use an SCM handle here */
 
 	if ( !info || (info->type != SVC_HANDLE_IS_SCM) )
 		return WERR_BADFID;
 
-	rpcstr_pull(service, q_u->servicename.buffer, sizeof(service), q_u->servicename.uni_str_len*2, 0);
+	service = r->in.service_name;
 
 	display_name = svcctl_lookup_dispname(p->mem_ctx, service, p->pipe_user.nt_user_token );
-	init_svcctl_r_get_display_name( r_u, display_name ? display_name : "");
+	if (!display_name) {
+		display_name = "";
+	}
+
+	*r->out.display_name = display_name;
+	*r->out.display_name_length = strlen(display_name);
 
 	return WERR_OK;
 }
@@ -981,12 +988,6 @@ WERROR _svcctl_StartServiceW(pipes_struct *p, struct svcctl_StartServiceW *r)
 	return WERR_NOT_SUPPORTED;
 }
 
-WERROR _svcctl_GetServiceDisplayNameW(pipes_struct *p, struct svcctl_GetServiceDisplayNameW *r)
-{
-	p->rng_fault_state = True;
-	return WERR_NOT_SUPPORTED;
-}
-
 WERROR _svcctl_GetServiceKeyNameW(pipes_struct *p, struct svcctl_GetServiceKeyNameW *r)
 {
 	p->rng_fault_state = True;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list