Remove sync rpc_api_pipe_req
authorVolker Lendecke <vl@samba.org>
Sat, 17 Jan 2009 16:53:05 +0000 (17:53 +0100)
committerVolker Lendecke <vl@samba.org>
Sun, 18 Jan 2009 14:40:45 +0000 (15:40 +0100)
source3/rpc_client/cli_pipe.c

index bedd652fd682c3fbef9cae49cb159fad6085d785..35c3a9301f2dec466c2b29d44c038229118de1cf 100644 (file)
@@ -2170,176 +2170,6 @@ static uint32 calculate_data_len_tosend(struct rpc_pipe_client *cli,
  and deals with signing/sealing details.
  ********************************************************************/
 
-#if 0
-
-NTSTATUS rpc_api_pipe_req(TALLOC_CTX *mem_ctx, struct rpc_pipe_client *cli,
-                       uint8 op_num,
-                       prs_struct *in_data,
-                       prs_struct *out_data)
-{
-       NTSTATUS ret;
-       uint32 data_left = prs_offset(in_data);
-       uint32 alloc_hint = prs_offset(in_data);
-       uint32 data_sent_thistime = 0;
-       uint32 current_data_offset = 0;
-       uint32 call_id = get_rpc_call_id();
-       char pad[8];
-       prs_struct outgoing_pdu;
-
-       memset(pad, '\0', 8);
-
-       if (cli->max_xmit_frag < RPC_HEADER_LEN + RPC_HDR_REQ_LEN + RPC_MAX_SIGN_SIZE) {
-               /* Server is screwed up ! */
-               return NT_STATUS_INVALID_PARAMETER;
-       }
-
-       if (!prs_init(&outgoing_pdu, cli->max_xmit_frag, prs_get_mem_context(in_data), MARSHALL))
-               return NT_STATUS_NO_MEMORY;
-
-       while (1) {
-               RPC_HDR hdr;
-               RPC_HDR_REQ hdr_req;
-               uint16 auth_len = 0;
-               uint16 frag_len = 0;
-               uint8 flags = 0;
-               uint32 ss_padding = 0;
-               ssize_t num_written;
-
-               data_sent_thistime = calculate_data_len_tosend(cli, data_left,
-                                               &frag_len, &auth_len, &ss_padding);
-
-               if (current_data_offset == 0) {
-                       flags = RPC_FLG_FIRST;
-               }
-
-               if (data_sent_thistime == data_left) {
-                       flags |= RPC_FLG_LAST;
-               }
-
-               /* Create and marshall the header and request header. */
-               init_rpc_hdr(&hdr, RPC_REQUEST, flags, call_id, frag_len, auth_len);
-
-               if(!smb_io_rpc_hdr("hdr    ", &hdr, &outgoing_pdu, 0)) {
-                       prs_mem_free(&outgoing_pdu);
-                       return NT_STATUS_NO_MEMORY;
-               }
-
-               /* Create the rpc request RPC_HDR_REQ */
-               init_rpc_hdr_req(&hdr_req, alloc_hint, op_num);
-
-               if(!smb_io_rpc_hdr_req("hdr_req", &hdr_req, &outgoing_pdu, 0)) {
-                       prs_mem_free(&outgoing_pdu);
-                       return NT_STATUS_NO_MEMORY;
-               }
-
-               /* Copy in the data, plus any ss padding. */
-               if (!prs_append_some_prs_data(&outgoing_pdu, in_data, current_data_offset, data_sent_thistime)) {
-                       prs_mem_free(&outgoing_pdu);
-                       return NT_STATUS_NO_MEMORY;
-               }
-
-               /* Copy the sign/seal padding data. */
-               if (ss_padding) {
-                       if (!prs_copy_data_in(&outgoing_pdu, pad, ss_padding)) {
-                               prs_mem_free(&outgoing_pdu);
-                               return NT_STATUS_NO_MEMORY;
-                       }
-               }
-
-               /* Generate any auth sign/seal and add the auth footer. */
-               if (auth_len) {
-                       switch (cli->auth->auth_type) {
-                               case PIPE_AUTH_TYPE_NONE:
-                                       break;
-                               case PIPE_AUTH_TYPE_NTLMSSP:
-                               case PIPE_AUTH_TYPE_SPNEGO_NTLMSSP:
-                                       ret = add_ntlmssp_auth_footer(cli, &hdr, ss_padding, &outgoing_pdu);
-                                       if (!NT_STATUS_IS_OK(ret)) {
-                                               prs_mem_free(&outgoing_pdu);
-                                               return ret;
-                                       }
-                                       break;
-                               case PIPE_AUTH_TYPE_SCHANNEL:
-                                       ret = add_schannel_auth_footer(cli, &hdr, ss_padding, &outgoing_pdu);
-                                       if (!NT_STATUS_IS_OK(ret)) {
-                                               prs_mem_free(&outgoing_pdu);
-                                               return ret;
-                                       }
-                                       break;
-                               default:
-                                       smb_panic("bad auth type");
-                                       break; /* notreached */
-                       }
-               }
-
-               /* Actually send the packet. */
-               if (flags & RPC_FLG_LAST) {
-                       /* Last packet - send the data, get the reply and return. */
-                       ret = rpc_api_pipe(mem_ctx, cli, &outgoing_pdu,
-                                          out_data, RPC_RESPONSE);
-                       prs_mem_free(&outgoing_pdu);
-
-                       if ((DEBUGLEVEL >= 50)
-                           && (cli->transport_type == NCACN_NP)) {
-                               char *dump_name = NULL;
-                               /* Also capture received data */
-                               if (asprintf(&dump_name, "%s/reply_%s_%d",
-                                            get_dyn_LOGFILEBASE(),
-                                            cli->trans.np.pipe_name, op_num) > 0) {
-                                       prs_dump(dump_name, op_num, out_data);
-                                       SAFE_FREE(dump_name);
-                               }
-                       }
-
-                       return ret;
-               }
-
-               switch (cli->transport_type) {
-               case NCACN_NP:
-                       num_written = cli_write(cli->trans.np.cli,
-                                               cli->trans.np.fnum,
-                                               8, /* 8 means message mode. */
-                                               prs_data_p(&outgoing_pdu),
-                                               (off_t)0,
-                                               (size_t)hdr.frag_len);
-
-                       if (num_written != hdr.frag_len) {
-                               prs_mem_free(&outgoing_pdu);
-                               return cli_get_nt_error(cli->trans.np.cli);
-                       }
-                       break;
-               case NCACN_IP_TCP:
-               case NCACN_UNIX_STREAM:
-                       num_written = write_data(
-                               cli->trans.sock.fd,
-                               prs_data_p(&outgoing_pdu),
-                               (size_t)hdr.frag_len);
-                       if (num_written != hdr.frag_len) {
-                               NTSTATUS status;
-                               status = map_nt_error_from_unix(errno);
-                               prs_mem_free(&outgoing_pdu);
-                               return status;
-                       }
-                       break;
-               default:
-                       DEBUG(0, ("unknown transport type %d\n",
-                                 cli->transport_type));
-                       return NT_STATUS_INTERNAL_ERROR;
-               }
-
-               current_data_offset += data_sent_thistime;
-               data_left -= data_sent_thistime;
-
-               /* Reset the marshalling position back to zero. */
-               if (!prs_set_offset(&outgoing_pdu, 0)) {
-                       prs_mem_free(&outgoing_pdu);
-                       return NT_STATUS_NO_MEMORY;
-               }
-       }
-}
-
-#endif
-
 struct rpc_api_pipe_req_state {
        struct event_context *ev;
        struct rpc_pipe_client *cli;