[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Mon Aug 16 06:37:03 MDT 2010
The branch, master has been updated
via 760948a... s3:winbindd: remove rpc_pipe_client references from winbind_dual_ndr code
via 13c744f... s3:winbindd: use dcerpc_wbint_* functions instead of rpccli_wbint_*
via 2ccaa23... s3:winbindd: add binding_handle to struct winbindd_child
via e79c809... s3:include: remove unused dispatch* fn pointers from rpc_pipe_client
via 7f2343b... s3:winbindd: remove unused wb_ndr_dispatch* functions
via 1237909... s3:rpc_server: remove unused rpc_pipe_internal_dispatch()
via 745f63f... s3:rpc_client: remove unused cli_do_rpc_ndr* functions
via dd16d3b... s3:rpc_client: remove unused rpc_pipe_open_local()
from d418f9f... s3-printing: Lift the use of smbd_server_fd from job_submit.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 760948a5d4b65fe9353357e701e854f437adf7cb
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Aug 12 15:28:27 2010 +0200
s3:winbindd: remove rpc_pipe_client references from winbind_dual_ndr code
metze
commit 13c744fa30b94e6ab4321c69a8a3d01ef42845d7
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Aug 12 15:13:54 2010 +0200
s3:winbindd: use dcerpc_wbint_* functions instead of rpccli_wbint_*
metze
commit 2ccaa2355872612559935090cb032031659ea284
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Aug 12 15:12:11 2010 +0200
s3:winbindd: add binding_handle to struct winbindd_child
metze
commit e79c8098d62d415d988a840f71f5733b9dfb9f68
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Aug 12 14:50:47 2010 +0200
s3:include: remove unused dispatch* fn pointers from rpc_pipe_client
metze
commit 7f2343be122e80a426eeea29ed602fbc84bdc77b
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Aug 12 14:49:47 2010 +0200
s3:winbindd: remove unused wb_ndr_dispatch* functions
metze
commit 12379097abbab06f7a41bdcd00093f0c7ba08a8f
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Aug 12 14:48:27 2010 +0200
s3:rpc_server: remove unused rpc_pipe_internal_dispatch()
metze
commit 745f63fd1ead248d5a7cd257c0cb38af3ed9dd8b
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Aug 12 14:46:24 2010 +0200
s3:rpc_client: remove unused cli_do_rpc_ndr* functions
metze
commit dd16d3b2d6cdaa036fe12c80b06d9963d20f5b27
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Aug 12 14:39:42 2010 +0200
s3:rpc_client: remove unused rpc_pipe_open_local()
metze
-----------------------------------------------------------------------
Summary of changes:
source3/Makefile.in | 8 +-
source3/include/client.h | 16 -
source3/include/proto.h | 4 -
source3/rpc_client/cli_pipe.c | 74 ---
source3/rpc_client/ndr.c | 174 -----
source3/rpc_client/rpc_transport_smbd.c | 767 -----------------------
source3/rpc_server/rpc_ncacn_np_internal.c | 145 -----
source3/winbindd/wb_dsgetdcname.c | 6 +-
source3/winbindd/wb_gid2sid.c | 6 +-
source3/winbindd/wb_group_members.c | 6 +-
source3/winbindd/wb_lookupname.c | 12 +-
source3/winbindd/wb_lookupsid.c | 10 +-
source3/winbindd/wb_lookupuseraliases.c | 6 +-
source3/winbindd/wb_lookupusergroups.c | 6 +-
source3/winbindd/wb_next_grent.c | 10 +-
source3/winbindd/wb_query_user_list.c | 8 +-
source3/winbindd/wb_queryuser.c | 4 +-
source3/winbindd/wb_seqnum.c | 6 +-
source3/winbindd/wb_sid2gid.c | 4 +-
source3/winbindd/wb_sid2uid.c | 4 +-
source3/winbindd/wb_uid2sid.c | 6 +-
source3/winbindd/winbindd.h | 2 +-
source3/winbindd/winbindd_allocate_gid.c | 4 +-
source3/winbindd/winbindd_allocate_uid.c | 4 +-
source3/winbindd/winbindd_change_machine_acct.c | 6 +-
source3/winbindd/winbindd_check_machine_acct.c | 6 +-
source3/winbindd/winbindd_dsgetdcname.c | 6 +-
source3/winbindd/winbindd_dual.c | 4 +-
source3/winbindd/winbindd_dual_ndr.c | 243 +-------
source3/winbindd/winbindd_list_groups.c | 6 +-
source3/winbindd/winbindd_list_users.c | 6 +-
source3/winbindd/winbindd_lookuprids.c | 6 +-
source3/winbindd/winbindd_ping_dc.c | 4 +-
source3/winbindd/winbindd_proto.h | 6 +-
34 files changed, 91 insertions(+), 1494 deletions(-)
delete mode 100644 source3/rpc_client/ndr.c
delete mode 100644 source3/rpc_client/rpc_transport_smbd.c
Changeset truncated at 500 lines:
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 755fdb2..fac4e0b 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -316,8 +316,6 @@ LIBNDR_OBJ = ../librpc/ndr/ndr_basic.o \
librpc/ndr/util.o \
librpc/gen_ndr/ndr_dcerpc.o
-RPCCLIENT_NDR_OBJ = rpc_client/ndr.o
-
LIBNDR_GEN_OBJ0 = librpc/gen_ndr/ndr_samr.o \
librpc/gen_ndr/ndr_lsa.o
@@ -595,8 +593,7 @@ LIBMSRPC_GEN_OBJ = librpc/gen_ndr/cli_lsa.o \
../librpc/rpc/dcerpc_util.o \
../librpc/rpc/binding_handle.o \
librpc/rpc/dcerpc_helpers.o \
- $(LIBNDR_GEN_OBJ) \
- $(RPCCLIENT_NDR_OBJ)
+ $(LIBNDR_GEN_OBJ)
#
# registry-related objects
@@ -706,8 +703,7 @@ RPC_CLIENT_OBJ = rpc_client/cli_pipe.o \
librpc/rpc/dcerpc_spnego.o \
librpc/rpc/rpc_common.o \
rpc_client/rpc_transport_np.o \
- rpc_client/rpc_transport_sock.o \
- rpc_client/rpc_transport_smbd.o
+ rpc_client/rpc_transport_sock.o
LOCKING_OBJ = locking/locking.o locking/brlock.o locking/posix.o
diff --git a/source3/include/client.h b/source3/include/client.h
index c702996..326931c 100644
--- a/source3/include/client.h
+++ b/source3/include/client.h
@@ -115,22 +115,6 @@ struct rpc_pipe_client {
struct ndr_syntax_id abstract_syntax;
struct ndr_syntax_id transfer_syntax;
- NTSTATUS (*dispatch) (struct rpc_pipe_client *cli,
- TALLOC_CTX *mem_ctx,
- const struct ndr_interface_table *table,
- uint32_t opnum, void *r);
-
- struct tevent_req *(*dispatch_send)(
- TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- struct rpc_pipe_client *cli,
- const struct ndr_interface_table *table,
- uint32_t opnum,
- void *r);
- NTSTATUS (*dispatch_recv)(struct tevent_req *req,
- TALLOC_CTX *mem_ctx);
-
-
char *desthost;
char *srv_name_slash;
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 80d23e5..70a2102 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -4614,10 +4614,6 @@ NTSTATUS cli_rpc_pipe_open_spnego_krb5(struct cli_state *cli,
NTSTATUS cli_get_session_key(TALLOC_CTX *mem_ctx,
struct rpc_pipe_client *cli,
DATA_BLOB *session_key);
-NTSTATUS rpc_pipe_open_local(TALLOC_CTX *mem_ctx,
- struct rpc_cli_smbd_conn *conn,
- const struct ndr_syntax_id *syntax,
- struct rpc_pipe_client **presult);
/* The following definitions come from rpc_client/rpc_transport_np.c */
diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c
index 18724a6..840148b 100644
--- a/source3/rpc_client/cli_pipe.c
+++ b/source3/rpc_client/cli_pipe.c
@@ -2447,9 +2447,6 @@ static NTSTATUS rpc_pipe_open_tcp_port(TALLOC_CTX *mem_ctx, const char *host,
result->abstract_syntax = *abstract_syntax;
result->transfer_syntax = ndr_transfer_syntax;
- result->dispatch = cli_do_rpc_ndr;
- result->dispatch_send = cli_do_rpc_ndr_send;
- result->dispatch_recv = cli_do_rpc_ndr_recv;
result->desthost = talloc_strdup(result, host);
result->srv_name_slash = talloc_asprintf_strupper_m(
@@ -2664,9 +2661,6 @@ NTSTATUS rpc_pipe_open_ncalrpc(TALLOC_CTX *mem_ctx, const char *socket_path,
result->abstract_syntax = *abstract_syntax;
result->transfer_syntax = ndr_transfer_syntax;
- result->dispatch = cli_do_rpc_ndr;
- result->dispatch_send = cli_do_rpc_ndr_send;
- result->dispatch_recv = cli_do_rpc_ndr_recv;
result->desthost = get_myname(result);
result->srv_name_slash = talloc_asprintf_strupper_m(
@@ -2763,9 +2757,6 @@ static NTSTATUS rpc_pipe_open_np(struct cli_state *cli,
result->abstract_syntax = *abstract_syntax;
result->transfer_syntax = ndr_transfer_syntax;
- result->dispatch = cli_do_rpc_ndr;
- result->dispatch_send = cli_do_rpc_ndr_send;
- result->dispatch_recv = cli_do_rpc_ndr_recv;
result->desthost = talloc_strdup(result, cli->desthost);
result->srv_name_slash = talloc_asprintf_strupper_m(
result, "\\\\%s", result->desthost);
@@ -2808,71 +2799,6 @@ static NTSTATUS rpc_pipe_open_np(struct cli_state *cli,
return NT_STATUS_OK;
}
-NTSTATUS rpc_pipe_open_local(TALLOC_CTX *mem_ctx,
- struct rpc_cli_smbd_conn *conn,
- const struct ndr_syntax_id *syntax,
- struct rpc_pipe_client **presult)
-{
- struct rpc_pipe_client *result;
- struct pipe_auth_data *auth;
- NTSTATUS status;
-
- result = talloc(mem_ctx, struct rpc_pipe_client);
- if (result == NULL) {
- return NT_STATUS_NO_MEMORY;
- }
- result->abstract_syntax = *syntax;
- result->transfer_syntax = ndr_transfer_syntax;
- result->dispatch = cli_do_rpc_ndr;
- result->dispatch_send = cli_do_rpc_ndr_send;
- result->dispatch_recv = cli_do_rpc_ndr_recv;
- result->max_xmit_frag = RPC_MAX_PDU_FRAG_LEN;
- result->max_recv_frag = RPC_MAX_PDU_FRAG_LEN;
-
- result->desthost = talloc_strdup(result, global_myname());
- result->srv_name_slash = talloc_asprintf_strupper_m(
- result, "\\\\%s", global_myname());
- if ((result->desthost == NULL) || (result->srv_name_slash == NULL)) {
- TALLOC_FREE(result);
- return NT_STATUS_NO_MEMORY;
- }
-
- status = rpc_transport_smbd_init(result, conn, syntax,
- &result->transport);
- if (!NT_STATUS_IS_OK(status)) {
- DEBUG(1, ("rpc_transport_smbd_init failed: %s\n",
- nt_errstr(status)));
- TALLOC_FREE(result);
- return status;
- }
-
- status = rpccli_anon_bind_data(result, &auth);
- if (!NT_STATUS_IS_OK(status)) {
- DEBUG(1, ("rpccli_anon_bind_data failed: %s\n",
- nt_errstr(status)));
- TALLOC_FREE(result);
- return status;
- }
-
- status = rpc_pipe_bind(result, auth);
- if (!NT_STATUS_IS_OK(status)) {
- DEBUG(1, ("rpc_pipe_bind failed: %s\n", nt_errstr(status)));
- TALLOC_FREE(result);
- return status;
- }
-
- result->transport->transport = NCACN_INTERNAL;
-
- result->binding_handle = rpccli_bh_create(result);
- if (result->binding_handle == NULL) {
- TALLOC_FREE(result);
- return NT_STATUS_NO_MEMORY;
- }
-
- *presult = result;
- return NT_STATUS_OK;
-}
-
/****************************************************************************
Open a pipe to a remote server.
****************************************************************************/
diff --git a/source3/rpc_client/ndr.c b/source3/rpc_client/ndr.c
deleted file mode 100644
index a1642c0..0000000
--- a/source3/rpc_client/ndr.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- libndr interface
-
- Copyright (C) Jelmer Vernooij 2006
- Copyright (C) Volker Lendecke 2009
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-
-struct cli_do_rpc_ndr_state {
- const struct ndr_interface_call *call;
- DATA_BLOB q_pdu;
- DATA_BLOB r_pdu;
- void *r;
-};
-
-static void cli_do_rpc_ndr_done(struct tevent_req *subreq);
-
-struct tevent_req *cli_do_rpc_ndr_send(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- struct rpc_pipe_client *cli,
- const struct ndr_interface_table *table,
- uint32_t opnum,
- void *r)
-{
- struct tevent_req *req, *subreq;
- struct cli_do_rpc_ndr_state *state;
- struct ndr_push *push;
- enum ndr_err_code ndr_err;
-
- req = tevent_req_create(mem_ctx, &state,
- struct cli_do_rpc_ndr_state);
- if (req == NULL) {
- return NULL;
- }
-
- if (!ndr_syntax_id_equal(&table->syntax_id, &cli->abstract_syntax)
- || (opnum >= table->num_calls)) {
- tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
- return tevent_req_post(req, ev);
- }
-
- state->r = r;
- state->call = &table->calls[opnum];
-
- if (DEBUGLEVEL >= 10) {
- ndr_print_function_debug(state->call->ndr_print,
- state->call->name, NDR_IN, r);
- }
-
- push = ndr_push_init_ctx(state);
- if (tevent_req_nomem(push, req)) {
- return tevent_req_post(req, ev);
- }
-
- ndr_err = state->call->ndr_push(push, NDR_IN, r);
- if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
- tevent_req_nterror(req, ndr_map_error2ntstatus(ndr_err));
- TALLOC_FREE(push);
- return tevent_req_post(req, ev);
- }
-
- state->q_pdu = ndr_push_blob(push);
- talloc_steal(mem_ctx, state->q_pdu.data);
- TALLOC_FREE(push);
-
- subreq = rpc_api_pipe_req_send(state, ev, cli, opnum, &state->q_pdu);
- if (tevent_req_nomem(subreq, req)) {
- return tevent_req_post(req, ev);
- }
- tevent_req_set_callback(subreq, cli_do_rpc_ndr_done, req);
- return req;
-}
-
-static void cli_do_rpc_ndr_done(struct tevent_req *subreq)
-{
- struct tevent_req *req = tevent_req_callback_data(
- subreq, struct tevent_req);
- struct cli_do_rpc_ndr_state *state = tevent_req_data(
- req, struct cli_do_rpc_ndr_state);
- NTSTATUS status;
-
- status = rpc_api_pipe_req_recv(subreq, state, &state->r_pdu);
- TALLOC_FREE(subreq);
- if (!NT_STATUS_IS_OK(status)) {
- tevent_req_nterror(req, status);
- return;
- }
- tevent_req_done(req);
-}
-
-NTSTATUS cli_do_rpc_ndr_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
-{
- struct cli_do_rpc_ndr_state *state = tevent_req_data(
- req, struct cli_do_rpc_ndr_state);
- struct ndr_pull *pull;
- enum ndr_err_code ndr_err;
- NTSTATUS status;
-
- if (tevent_req_is_nterror(req, &status)) {
- return status;
- }
-
- pull = ndr_pull_init_blob(&state->r_pdu, mem_ctx);
- if (pull == NULL) {
- return NT_STATUS_NO_MEMORY;
- }
-
- /* have the ndr parser alloc memory for us */
- pull->flags |= LIBNDR_FLAG_REF_ALLOC;
- ndr_err = state->call->ndr_pull(pull, NDR_OUT, state->r);
- TALLOC_FREE(pull);
-
- if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
- if (DEBUGLEVEL >= 10) {
- ndr_print_function_debug(state->call->ndr_print,
- state->call->name, NDR_OUT,
- state->r);
- }
- } else {
- return ndr_map_error2ntstatus(ndr_err);
- }
-
- return NT_STATUS_OK;
-}
-
-NTSTATUS cli_do_rpc_ndr(struct rpc_pipe_client *cli,
- TALLOC_CTX *mem_ctx,
- const struct ndr_interface_table *table,
- uint32_t opnum, void *r)
-{
- TALLOC_CTX *frame = talloc_stackframe();
- struct event_context *ev;
- struct tevent_req *req;
- NTSTATUS status = NT_STATUS_OK;
-
- ev = event_context_init(frame);
- if (ev == NULL) {
- status = NT_STATUS_NO_MEMORY;
- goto fail;
- }
-
- req = cli_do_rpc_ndr_send(frame, ev, cli, table, opnum, r);
- if (req == NULL) {
- status = NT_STATUS_NO_MEMORY;
- goto fail;
- }
-
- if (!tevent_req_poll(req, ev)) {
- status = map_nt_error_from_unix(errno);
- goto fail;
- }
-
- status = cli_do_rpc_ndr_recv(req, mem_ctx);
-
- fail:
- TALLOC_FREE(frame);
- return status;
-}
diff --git a/source3/rpc_client/rpc_transport_smbd.c b/source3/rpc_client/rpc_transport_smbd.c
deleted file mode 100644
index 57fac68..0000000
--- a/source3/rpc_client/rpc_transport_smbd.c
+++ /dev/null
@@ -1,767 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * RPC client transport over named pipes to a child smbd
- * Copyright (C) Volker Lendecke 2009
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "includes.h"
-
-#undef DBGC_CLASS
-#define DBGC_CLASS DBGC_RPC_CLI
-
-/**
- * struct rpc_cli_smbd_conn represents a forked smbd. This structure should
- * exist only once per process which does the rpc calls.
- *
- * RPC pipe handles can be attached to this smbd connection with
- * rpc_pipe_open_local().
- *
- * For this to work right, we can not use rpc_transport_np directly, because
- * the child smbd wants to write its DEBUG output somewhere. We redirect the
- * child's output to rpc_cli_smbd_conn->stdout_fd. While the RPC calls are
- * active, we have an event context available and attach a fd event to the
- * stdout_df.
- */
-
-struct rpc_cli_smbd_conn {
- /**
- * The smb connection to handle the named pipe traffic over
- */
- struct cli_state *cli;
-
- /**
- * Attached to stdout in the forked smbd, this is where smbd will
- * print its DEBUG.
- */
- int stdout_fd;
-
- /**
- * Custom callback provided by the owner of the
- * rpc_cli_smbd_conn. Here we send the smbd DEBUG output. Can be NULL.
- */
- struct {
- void (*fn)(char *buf, size_t len, void *priv);
- void *priv;
- } stdout_callback ;
-};
-
-/**
- * Event handler to be called whenever the forked smbd prints debugging
- * output.
- */
-
-static void rpc_cli_smbd_stdout_reader(struct event_context *ev,
- struct fd_event *fde,
- uint16_t flags, void *priv)
-{
- struct rpc_cli_smbd_conn *conn = talloc_get_type_abort(
- priv, struct rpc_cli_smbd_conn);
- char buf[1024];
- ssize_t nread;
-
- if ((flags & EVENT_FD_READ) == 0) {
- return;
- }
-
- nread = read(conn->stdout_fd, buf, sizeof(buf)-1);
- if (nread < 0) {
- DEBUG(0, ("Could not read from smbd stdout: %s\n",
- strerror(errno)));
- TALLOC_FREE(fde);
- return;
- }
- if (nread == 0) {
- DEBUG(0, ("EOF from smbd stdout\n"));
- TALLOC_FREE(fde);
- return;
- }
- buf[nread] = '\0';
-
- if (conn->stdout_callback.fn != NULL) {
- conn->stdout_callback.fn(buf, nread,
- conn->stdout_callback.priv);
- }
-}
-
-/**
- * struct rpc_transport_smbd_state is the link from a struct rpc_pipe_client
- * to the rpc_cli_smbd_conn. We use a named pipe transport as a subtransport.
- */
-
-struct rpc_transport_smbd_state {
- struct rpc_cli_smbd_conn *conn;
- struct rpc_cli_transport *sub_transp;
-};
-
-static int rpc_cli_smbd_conn_destructor(struct rpc_cli_smbd_conn *conn)
-{
- if (conn->cli != NULL) {
- cli_shutdown(conn->cli);
- conn->cli = NULL;
- }
- if (conn->stdout_fd != -1) {
- close(conn->stdout_fd);
- conn->stdout_fd = -1;
- }
- return 0;
-}
-
-/*
- * Do the negprot/sesssetup/tcon to an anonymous ipc$ connection
- */
-
-struct get_anon_ipc_state {
- struct event_context *ev;
- struct cli_state *cli;
-};
-
-static void get_anon_ipc_negprot_done(struct tevent_req *subreq);
-static void get_anon_ipc_sesssetup_done(struct tevent_req *subreq);
-static void get_anon_ipc_tcon_done(struct tevent_req *subreq);
--
Samba Shared Repository
More information about the samba-cvs
mailing list