From 5685914344d21e5fdac98c367b3dd1eba555f227 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Tue, 6 Jul 2010 11:33:15 -0400 Subject: 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. --- source3/smbd/lanman.c | 63 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 54 insertions(+), 9 deletions(-) (limited to 'source3/smbd/lanman.c') 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))); -- cgit