summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2008-07-12 12:56:00 +0200
committerVolker Lendecke <vl@samba.org>2008-07-26 13:20:10 +0200
commit33cbe2f88ce411718db1d37a0e2f9d19e931e383 (patch)
tree933f8d21ded4253aafa8f9696194ac391aed655e
parenta803f0a9204fc917668b68ca67ff02e8f9ed0262 (diff)
downloadsamba-33cbe2f88ce411718db1d37a0e2f9d19e931e383.tar.gz
samba-33cbe2f88ce411718db1d37a0e2f9d19e931e383.tar.bz2
samba-33cbe2f88ce411718db1d37a0e2f9d19e931e383.zip
make read/write to internal pipes available externally
(This used to be commit e11b5cb1e061caf4c3793fb402ca6bee95a8f26c)
-rw-r--r--source3/include/ntdomain.h14
-rw-r--r--source3/include/proto.h3
-rw-r--r--source3/rpc_server/srv_pipe_hnd.c11
3 files changed, 12 insertions, 16 deletions
diff --git a/source3/include/ntdomain.h b/source3/include/ntdomain.h
index da3dd14189..de0a313609 100644
--- a/source3/include/ntdomain.h
+++ b/source3/include/ntdomain.h
@@ -303,10 +303,8 @@ typedef struct smb_np_struct {
/*
* NamedPipe state information.
- *
- * (e.g. typecast a np_struct, above).
*/
- void *np_state;
+ struct pipes_struct *np_state;
/*
* NamedPipe functions, to be called to perform
@@ -326,8 +324,8 @@ typedef struct smb_np_struct {
/* call to perform a write namedpipe operation
*/
- ssize_t (*namedpipe_write)(void * np_state,
- char *data, size_t n);
+ ssize_t (*namedpipe_write)(struct pipes_struct *p,
+ char *data, size_t n);
/* call to perform a read namedpipe operation.
*
@@ -340,9 +338,9 @@ typedef struct smb_np_struct {
* when samba is modified to use namedpipe_transact,
* the pipe_outstanding argument may be removed.
*/
- ssize_t (*namedpipe_read)(void * np_state,
- char *data, size_t max_len,
- bool *pipe_outstanding);
+ ssize_t (*namedpipe_read)(struct pipes_struct *p,
+ char *data, size_t max_len,
+ bool *pipe_outstanding);
} smb_np_struct;
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 6e503efadd..d1d2c90905 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -8849,6 +8849,9 @@ struct pipes_struct *make_internal_rpc_pipe_p(const char *pipe_name,
const char *client_address,
struct auth_serversupplied_info *server_info,
uint16_t vuid);
+ssize_t read_from_internal_pipe(struct pipes_struct *p, char *data, size_t n,
+ bool *is_data_outstanding);
+ssize_t write_to_internal_pipe(struct pipes_struct *p, char *data, size_t n);
/* The following definitions come from rpc_server/srv_samr_nt.c */
diff --git a/source3/rpc_server/srv_pipe_hnd.c b/source3/rpc_server/srv_pipe_hnd.c
index 2e77b5b903..bc6d180199 100644
--- a/source3/rpc_server/srv_pipe_hnd.c
+++ b/source3/rpc_server/srv_pipe_hnd.c
@@ -61,9 +61,6 @@ static struct bitmap *bmap;
* system _anyway_. so that's the next step...
*/
-static ssize_t read_from_internal_pipe(void *np_conn, char *data, size_t n,
- bool *is_data_outstanding);
-static ssize_t write_to_internal_pipe(void *np_conn, char *data, size_t n);
static int close_internal_rpc_pipe_hnd(struct pipes_struct *pipe);
/****************************************************************************
@@ -925,9 +922,8 @@ ssize_t write_to_pipe(smb_np_struct *p, char *data, size_t n)
Accepts incoming data on an internal rpc pipe.
****************************************************************************/
-static ssize_t write_to_internal_pipe(void *np_conn, char *data, size_t n)
+ssize_t write_to_internal_pipe(struct pipes_struct *p, char *data, size_t n)
{
- pipes_struct *p = (pipes_struct*)np_conn;
size_t data_left = n;
while(data_left) {
@@ -985,10 +981,9 @@ ssize_t read_from_pipe(smb_np_struct *p, char *data, size_t n,
have been prepared into arrays of headers + data stream sections.
****************************************************************************/
-static ssize_t read_from_internal_pipe(void *np_conn, char *data, size_t n,
- bool *is_data_outstanding)
+ssize_t read_from_internal_pipe(struct pipes_struct *p, char *data, size_t n,
+ bool *is_data_outstanding)
{
- pipes_struct *p = (pipes_struct*)np_conn;
uint32 pdu_remaining = 0;
ssize_t data_returned = 0;