summaryrefslogtreecommitdiff
path: root/source3/smbd/lanman.c
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2010-07-06 11:33:15 -0400
committerAndreas Schneider <asn@samba.org>2010-09-15 12:53:42 +0200
commit5685914344d21e5fdac98c367b3dd1eba555f227 (patch)
treebc9328e59b1136935157598bf54b31935017ccd4 /source3/smbd/lanman.c
parent344260d03e9a50bce051e180df75f696e2478228 (diff)
downloadsamba-5685914344d21e5fdac98c367b3dd1eba555f227.tar.gz
samba-5685914344d21e5fdac98c367b3dd1eba555f227.tar.bz2
samba-5685914344d21e5fdac98c367b3dd1eba555f227.zip
s3-rpc_server: Convert rpc_connect_spoolss_pipe into a generic interface.
This way we have one common way to open internal pipes whether they are shortcircuited or piped to an external process.
Diffstat (limited to 'source3/smbd/lanman.c')
-rw-r--r--source3/smbd/lanman.c63
1 files changed, 54 insertions, 9 deletions
diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c
index 1c7d08db37..fd69d247d2 100644
--- a/source3/smbd/lanman.c
+++ b/source3/smbd/lanman.c
@@ -825,7 +825,12 @@ static bool api_DosPrintQGetInfo(struct smbd_server_connection *sconn,
goto out;
}
- status = rpc_connect_spoolss_pipe(conn, &cli);
+ status = rpc_pipe_open_interface(conn,
+ &ndr_table_spoolss.syntax_id,
+ conn->server_info,
+ &conn->sconn->client_id,
+ conn->sconn->msg_ctx,
+ &cli);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("api_DosPrintQGetInfo: could not connect to spoolss: %s\n",
nt_errstr(status)));
@@ -1015,7 +1020,12 @@ static bool api_DosPrintQEnum(struct smbd_server_connection *sconn,
return(True);
}
- status = rpc_connect_spoolss_pipe(conn, &cli);
+ status = rpc_pipe_open_interface(conn,
+ &ndr_table_spoolss.syntax_id,
+ conn->server_info,
+ &conn->sconn->client_id,
+ conn->sconn->msg_ctx,
+ &cli);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("api_DosPrintQEnum: could not connect to spoolss: %s\n",
nt_errstr(status)));
@@ -3233,7 +3243,12 @@ static bool api_RDosPrintJobDel(struct smbd_server_connection *sconn,
ZERO_STRUCT(handle);
- status = rpc_connect_spoolss_pipe(conn, &cli);
+ status = rpc_pipe_open_interface(conn,
+ &ndr_table_spoolss.syntax_id,
+ conn->server_info,
+ &conn->sconn->client_id,
+ conn->sconn->msg_ctx,
+ &cli);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("api_RDosPrintJobDel: could not connect to spoolss: %s\n",
nt_errstr(status)));
@@ -3354,7 +3369,12 @@ static bool api_WPrintQueueCtrl(struct smbd_server_connection *sconn,
ZERO_STRUCT(handle);
- status = rpc_connect_spoolss_pipe(conn, &cli);
+ status = rpc_pipe_open_interface(conn,
+ &ndr_table_spoolss.syntax_id,
+ conn->server_info,
+ &conn->sconn->client_id,
+ conn->sconn->msg_ctx,
+ &cli);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("api_WPrintQueueCtrl: could not connect to spoolss: %s\n",
nt_errstr(status)));
@@ -3529,7 +3549,12 @@ static bool api_PrintJobInfo(struct smbd_server_connection *sconn,
ZERO_STRUCT(handle);
- status = rpc_connect_spoolss_pipe(conn, &cli);
+ status = rpc_pipe_open_interface(conn,
+ &ndr_table_spoolss.syntax_id,
+ conn->server_info,
+ &conn->sconn->client_id,
+ conn->sconn->msg_ctx,
+ &cli);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("api_PrintJobInfo: could not connect to spoolss: %s\n",
nt_errstr(status)));
@@ -4617,7 +4642,12 @@ static bool api_WPrintJobGetInfo(struct smbd_server_connection *sconn,
ZERO_STRUCT(handle);
- status = rpc_connect_spoolss_pipe(conn, &cli);
+ status = rpc_pipe_open_interface(conn,
+ &ndr_table_spoolss.syntax_id,
+ conn->server_info,
+ &conn->sconn->client_id,
+ conn->sconn->msg_ctx,
+ &cli);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("api_WPrintJobGetInfo: could not connect to spoolss: %s\n",
nt_errstr(status)));
@@ -4752,7 +4782,12 @@ static bool api_WPrintJobEnumerate(struct smbd_server_connection *sconn,
ZERO_STRUCT(handle);
- status = rpc_connect_spoolss_pipe(conn, &cli);
+ status = rpc_pipe_open_interface(conn,
+ &ndr_table_spoolss.syntax_id,
+ conn->server_info,
+ &conn->sconn->client_id,
+ conn->sconn->msg_ctx,
+ &cli);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("api_WPrintJobEnumerate: could not connect to spoolss: %s\n",
nt_errstr(status)));
@@ -4945,7 +4980,12 @@ static bool api_WPrintDestGetInfo(struct smbd_server_connection *sconn,
ZERO_STRUCT(handle);
- status = rpc_connect_spoolss_pipe(conn, &cli);
+ status = rpc_pipe_open_interface(conn,
+ &ndr_table_spoolss.syntax_id,
+ conn->server_info,
+ &conn->sconn->client_id,
+ conn->sconn->msg_ctx,
+ &cli);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("api_WPrintDestGetInfo: could not connect to spoolss: %s\n",
nt_errstr(status)));
@@ -5071,7 +5111,12 @@ static bool api_WPrintDestEnum(struct smbd_server_connection *sconn,
queuecnt = 0;
- status = rpc_connect_spoolss_pipe(conn, &cli);
+ status = rpc_pipe_open_interface(conn,
+ &ndr_table_spoolss.syntax_id,
+ conn->server_info,
+ &conn->sconn->client_id,
+ conn->sconn->msg_ctx,
+ &cli);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("api_WPrintDestEnum: could not connect to spoolss: %s\n",
nt_errstr(status)));