summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2008-06-23 08:38:27 +0200
committerVolker Lendecke <vl@samba.org>2008-06-24 10:31:36 +0200
commit9ff4001245d718515cb90036659109e23833e5fe (patch)
tree1dee67731ee10d0766e69d0ee144a7f0814720a2
parentc5401a2a46da9a7523f4363be14805eb893ea0f4 (diff)
downloadsamba-9ff4001245d718515cb90036659109e23833e5fe.tar.gz
samba-9ff4001245d718515cb90036659109e23833e5fe.tar.bz2
samba-9ff4001245d718515cb90036659109e23833e5fe.zip
Remove "conn" from pipes_struct
For spoolss, we need the client's IP address (This used to be commit 64a4dfaa826cf9319ef3f5c65023352bf8af539e)
-rw-r--r--source3/include/ntdomain.h3
-rw-r--r--source3/rpc_server/srv_pipe_hnd.c3
-rw-r--r--source3/rpc_server/srv_spoolss_nt.c5
3 files changed, 6 insertions, 5 deletions
diff --git a/source3/include/ntdomain.h b/source3/include/ntdomain.h
index 46842c8b97..caf7e3431c 100644
--- a/source3/include/ntdomain.h
+++ b/source3/include/ntdomain.h
@@ -211,7 +211,8 @@ struct pipe_auth_data {
typedef struct pipes_struct {
struct pipes_struct *next, *prev;
- connection_struct *conn;
+ char client_address[INET6_ADDRSTRLEN];
+
uint16 vuid; /* points to the unauthenticated user that opened this pipe. */
fstring name;
diff --git a/source3/rpc_server/srv_pipe_hnd.c b/source3/rpc_server/srv_pipe_hnd.c
index 22903aacba..1feed1550c 100644
--- a/source3/rpc_server/srv_pipe_hnd.c
+++ b/source3/rpc_server/srv_pipe_hnd.c
@@ -316,7 +316,8 @@ static void *make_internal_rpc_pipe_p(const char *pipe_name,
DLIST_ADD(InternalPipes, p);
- p->conn = conn;
+ memcpy(p->client_address, conn->client_address,
+ sizeof(p->client_address));
p->vuid = vuid;
diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c
index 06b3d4a07a..eaf563eaa9 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -2721,9 +2721,8 @@ WERROR _spoolss_rffpcnex(pipes_struct *p, SPOOL_Q_RFFPCNEX *q_u, SPOOL_R_RFFPCNE
!get_printer_snum(p, handle, &snum, NULL) )
return WERR_BADFID;
- if (!interpret_string_addr(&client_ss,
- p->conn->client_address,
- AI_NUMERICHOST)) {
+ if (!interpret_string_addr(&client_ss, p->client_address,
+ AI_NUMERICHOST)) {
return WERR_SERVER_UNAVAILABLE;
}