mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
build: moved librpc/rpc/*.c into a rpccommon library
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org> Autobuild-User: Andrew Tridgell <tridge@samba.org> Autobuild-Date: Thu Feb 24 02:42:37 CET 2011 on sn-devel-104
This commit is contained in:
parent
52fe20c310
commit
5ec284d152
@ -27,6 +27,8 @@
|
||||
#include "librpc/gen_ndr/ndr_epmapper.h"
|
||||
#include "librpc/gen_ndr/ndr_misc.h"
|
||||
#include "librpc/rpc/dcerpc.h"
|
||||
#include "rpc_common.h"
|
||||
|
||||
#undef strcasecmp
|
||||
#undef strncasecmp
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <tevent.h>
|
||||
#include "../lib/util/tevent_ntstatus.h"
|
||||
#include "librpc/rpc/dcerpc.h"
|
||||
#include "rpc_common.h"
|
||||
|
||||
struct dcerpc_binding_handle {
|
||||
void *private_data;
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#include "includes.h"
|
||||
#include "librpc/rpc/dcerpc.h"
|
||||
#include "rpc_common.h"
|
||||
|
||||
struct dcerpc_fault_table {
|
||||
const char *errstr;
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "lib/util/tevent_ntstatus.h"
|
||||
#include "librpc/rpc/dcerpc.h"
|
||||
#include "librpc/gen_ndr/ndr_dcerpc.h"
|
||||
#include "rpc_common.h"
|
||||
|
||||
/* we need to be able to get/set the fragment length without doing a full
|
||||
decode */
|
||||
|
101
librpc/rpc/rpc_common.h
Normal file
101
librpc/rpc/rpc_common.h
Normal file
@ -0,0 +1,101 @@
|
||||
#ifndef __DEFAULT_LIBRPC_RPCCOMMON_H__
|
||||
#define __DEFAULT_LIBRPC_RPCCOMMON_H__
|
||||
|
||||
/* The following definitions come from ../librpc/rpc/dcerpc_error.c */
|
||||
|
||||
|
||||
/* The following definitions come from ../librpc/rpc/binding.c */
|
||||
|
||||
const char *epm_floor_string(TALLOC_CTX *mem_ctx, struct epm_floor *epm_floor);
|
||||
const char *dcerpc_floor_get_rhs_data(TALLOC_CTX *mem_ctx, struct epm_floor *epm_floor);
|
||||
enum dcerpc_transport_t dcerpc_transport_by_endpoint_protocol(int prot);
|
||||
|
||||
/* The following definitions come from ../librpc/rpc/dcerpc_util.c */
|
||||
|
||||
void dcerpc_set_frag_length(DATA_BLOB *blob, uint16_t v);
|
||||
uint16_t dcerpc_get_frag_length(const DATA_BLOB *blob);
|
||||
void dcerpc_set_auth_length(DATA_BLOB *blob, uint16_t v);
|
||||
uint8_t dcerpc_get_endian_flag(DATA_BLOB *blob);
|
||||
|
||||
/**
|
||||
* @brief Pull a dcerpc_auth structure, taking account of any auth
|
||||
* padding in the blob. For request/response packets we pass
|
||||
* the whole data blob, so auth_data_only must be set to false
|
||||
* as the blob contains data+pad+auth and no just pad+auth.
|
||||
*
|
||||
* @param pkt - The ncacn_packet strcuture
|
||||
* @param mem_ctx - The mem_ctx used to allocate dcerpc_auth elements
|
||||
* @param pkt_trailer - The packet trailer data, usually the trailing
|
||||
* auth_info blob, but in the request/response case
|
||||
* this is the stub_and_verifier blob.
|
||||
* @param auth - A preallocated dcerpc_auth *empty* structure
|
||||
* @param auth_length - The length of the auth trail, sum of auth header
|
||||
* lenght and pkt->auth_length
|
||||
* @param auth_data_only - Whether the pkt_trailer includes only the auth_blob
|
||||
* (+ padding) or also other data.
|
||||
*
|
||||
* @return - A NTSTATUS error code.
|
||||
*/
|
||||
NTSTATUS dcerpc_pull_auth_trailer(struct ncacn_packet *pkt,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
DATA_BLOB *pkt_trailer,
|
||||
struct dcerpc_auth *auth,
|
||||
uint32_t *auth_length,
|
||||
bool auth_data_only);
|
||||
struct tevent_req *dcerpc_read_ncacn_packet_send(TALLOC_CTX *mem_ctx,
|
||||
struct tevent_context *ev,
|
||||
struct tstream_context *stream);
|
||||
NTSTATUS dcerpc_read_ncacn_packet_recv(struct tevent_req *req,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
struct ncacn_packet **pkt,
|
||||
DATA_BLOB *buffer);
|
||||
|
||||
/* The following definitions come from ../librpc/rpc/binding_handle.c */
|
||||
|
||||
struct dcerpc_binding_handle *_dcerpc_binding_handle_create(TALLOC_CTX *mem_ctx,
|
||||
const struct dcerpc_binding_handle_ops *ops,
|
||||
const struct GUID *object,
|
||||
const struct ndr_interface_table *table,
|
||||
void *pstate,
|
||||
size_t psize,
|
||||
const char *type,
|
||||
const char *location);
|
||||
void *_dcerpc_binding_handle_data(struct dcerpc_binding_handle *h);
|
||||
void dcerpc_binding_handle_set_sync_ev(struct dcerpc_binding_handle *h,
|
||||
struct tevent_context *ev);
|
||||
bool dcerpc_binding_handle_is_connected(struct dcerpc_binding_handle *h);
|
||||
uint32_t dcerpc_binding_handle_set_timeout(struct dcerpc_binding_handle *h,
|
||||
uint32_t timeout);
|
||||
struct tevent_req *dcerpc_binding_handle_raw_call_send(TALLOC_CTX *mem_ctx,
|
||||
struct tevent_context *ev,
|
||||
struct dcerpc_binding_handle *h,
|
||||
const struct GUID *object,
|
||||
uint32_t opnum,
|
||||
uint32_t in_flags,
|
||||
const uint8_t *in_data,
|
||||
size_t in_length);
|
||||
NTSTATUS dcerpc_binding_handle_raw_call_recv(struct tevent_req *req,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
uint8_t **out_data,
|
||||
size_t *out_length,
|
||||
uint32_t *out_flags);
|
||||
struct tevent_req *dcerpc_binding_handle_disconnect_send(TALLOC_CTX *mem_ctx,
|
||||
struct tevent_context *ev,
|
||||
struct dcerpc_binding_handle *h);
|
||||
NTSTATUS dcerpc_binding_handle_disconnect_recv(struct tevent_req *req);
|
||||
struct tevent_req *dcerpc_binding_handle_call_send(TALLOC_CTX *mem_ctx,
|
||||
struct tevent_context *ev,
|
||||
struct dcerpc_binding_handle *h,
|
||||
const struct GUID *object,
|
||||
const struct ndr_interface_table *table,
|
||||
uint32_t opnum,
|
||||
TALLOC_CTX *r_mem,
|
||||
void *r_ptr);
|
||||
NTSTATUS dcerpc_binding_handle_call_recv(struct tevent_req *req);
|
||||
NTSTATUS dcerpc_binding_handle_call(struct dcerpc_binding_handle *h,
|
||||
const struct GUID *object,
|
||||
const struct ndr_interface_table *table,
|
||||
uint32_t opnum,
|
||||
TALLOC_CTX *r_mem,
|
||||
void *r_ptr);
|
||||
#endif /* __DEFAULT_LIBRPC_RPCCOMMON_H__ */
|
@ -565,3 +565,8 @@ bld.SAMBA_LIBRARY('ndr',
|
||||
depends_on='PIDL_MISC',
|
||||
vnum='0.0.1'
|
||||
)
|
||||
|
||||
bld.SAMBA_LIBRARY('rpccommon',
|
||||
source='rpc/dcerpc_error.c rpc/binding.c rpc/dcerpc_util.c rpc/binding_handle.c',
|
||||
deps='ndr tevent NDR_DCERPC LIBTSOCKET',
|
||||
private_library=True)
|
||||
|
@ -122,10 +122,6 @@ LIBNMB_SRC = '''libsmb/unexpected.c libsmb/namecache.c libsmb/nmblib.c
|
||||
libsmb/namequery.c libsmb/conncache.c
|
||||
libads/dns.c libads/sitename_cache.c'''
|
||||
|
||||
DCE_RPC_ERR_SRC = '../librpc/rpc/dcerpc_error.c'
|
||||
|
||||
LIBSMB_ERR_SRC = '''${DCE_RPC_ERR_SRC}'''
|
||||
|
||||
LIBNTLMSSP_SRC = '''
|
||||
libsmb/ntlmssp.c
|
||||
libsmb/ntlmssp_wrap.c'''
|
||||
@ -152,10 +148,8 @@ LIBMSRPC_SRC = '''
|
||||
rpc_client/rpc_transport_np.c
|
||||
rpc_client/rpc_transport_sock.c
|
||||
rpc_client/rpc_transport_tstream.c
|
||||
../librpc/rpc/binding.c
|
||||
../librpc/rpc/dcerpc_util.c
|
||||
librpc/rpc/dcerpc_helpers.c
|
||||
../librpc/rpc/binding_handle.c'''
|
||||
'''
|
||||
|
||||
#
|
||||
# registry-related objects
|
||||
@ -684,7 +678,7 @@ bld.SAMBA3_SUBSYSTEM('msrpc3',
|
||||
source='${LIBMSRPC_SRC}',
|
||||
deps='''ndr ndr-util NDR_SECURITY NDR_DCERPC NDR_SCHANNEL
|
||||
RPC_NDR_EPMAPPER COMMON_SCHANNEL LIBCLI_AUTH
|
||||
LIBTSOCKET krb5''',
|
||||
LIBTSOCKET krb5 rpccommon''',
|
||||
vars=locals())
|
||||
|
||||
bld.SAMBA3_SUBSYSTEM('LIBMSRPC_GEN',
|
||||
@ -773,8 +767,8 @@ bld.SAMBA3_SUBSYSTEM('LIB_NONSMBD',
|
||||
vars=locals())
|
||||
|
||||
bld.SAMBA3_SUBSYSTEM('LIBSMB_ERR',
|
||||
source=LIBSMB_ERR_SRC,
|
||||
deps='errors3 SECRETS3 ldap lber MSRPC_PARSE LIBCLI_AUTH',
|
||||
source='',
|
||||
deps='errors3 SECRETS3 ldap lber MSRPC_PARSE LIBCLI_AUTH rpccommon',
|
||||
vars=locals())
|
||||
|
||||
bld.SAMBA3_SUBSYSTEM('LIBNTLMSSP',
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "auth/gensec/gensec.h"
|
||||
#include "param/param.h"
|
||||
#include "lib/util/tevent_ntstatus.h"
|
||||
#include "librpc/rpc/rpc_common.h"
|
||||
|
||||
_PUBLIC_ NTSTATUS dcerpc_init(struct loadparm_context *lp_ctx)
|
||||
{
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "libcli/composite/composite.h"
|
||||
#include "librpc/rpc/dcerpc.h"
|
||||
#include "librpc/rpc/dcerpc_proto.h"
|
||||
#include "librpc/rpc/rpc_common.h"
|
||||
|
||||
/* transport private information used by SMB pipe transport */
|
||||
struct smb_private {
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "libcli/raw/ioctl.h"
|
||||
#include "librpc/rpc/dcerpc.h"
|
||||
#include "librpc/rpc/dcerpc_proto.h"
|
||||
#include "librpc/rpc/rpc_common.h"
|
||||
|
||||
/* transport private information used by SMB2 pipe transport */
|
||||
struct smb2_private {
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "librpc/rpc/dcerpc.h"
|
||||
#include "librpc/rpc/dcerpc_proto.h"
|
||||
#include "libcli/resolve/resolve.h"
|
||||
#include "librpc/rpc/rpc_common.h"
|
||||
|
||||
/* transport private information used by general socket pipe transports */
|
||||
struct sock_private {
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "librpc/rpc/dcerpc_proto.h"
|
||||
#include "auth/credentials/credentials.h"
|
||||
#include "param/param.h"
|
||||
#include "librpc/rpc/rpc_common.h"
|
||||
|
||||
/*
|
||||
find a dcerpc call on an interface by name
|
||||
|
@ -154,11 +154,9 @@ bld.SAMBA_SUBSYSTEM('RPC_NDR_WINSIF',
|
||||
bld.SAMBA_LIBRARY('dcerpc',
|
||||
source='''rpc/dcerpc.c rpc/dcerpc_auth.c rpc/dcerpc_schannel.c
|
||||
rpc/dcerpc_util.c rpc/dcerpc_smb.c rpc/dcerpc_smb2.c rpc/dcerpc_sock.c
|
||||
rpc/dcerpc_connect.c rpc/dcerpc_secondary.c ../../librpc/rpc/binding.c
|
||||
../../librpc/rpc/dcerpc_error.c ../../librpc/rpc/dcerpc_util.c
|
||||
../../librpc/rpc/binding_handle.c''',
|
||||
rpc/dcerpc_connect.c rpc/dcerpc_secondary.c''',
|
||||
pc_files='dcerpc.pc',
|
||||
deps='samba_socket LIBCLI_RESOLVE LIBCLI_SMB LIBCLI_SMB2 ndr NDR_DCERPC RPC_NDR_EPMAPPER NDR_SCHANNEL RPC_NDR_NETLOGON RPC_NDR_MGMT gensec LIBCLI_AUTH LIBCLI_RAW LP_RESOLVE UTIL_TEVENT',
|
||||
deps='samba_socket LIBCLI_RESOLVE LIBCLI_SMB LIBCLI_SMB2 ndr NDR_DCERPC RPC_NDR_EPMAPPER NDR_SCHANNEL RPC_NDR_NETLOGON RPC_NDR_MGMT gensec LIBCLI_AUTH LIBCLI_RAW LP_RESOLVE UTIL_TEVENT rpccommon',
|
||||
autoproto='rpc/dcerpc_proto.h',
|
||||
public_deps='credentials tevent talloc',
|
||||
public_headers='rpc/dcerpc.h ../../librpc/gen_ndr/mgmt.h ../../librpc/gen_ndr/ndr_mgmt.h ../../librpc/gen_ndr/ndr_mgmt_c.h ../../librpc/gen_ndr/epmapper.h ../../librpc/gen_ndr/ndr_epmapper.h ../../librpc/gen_ndr/ndr_epmapper_c.h',
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "lib/socket/socket.h"
|
||||
#include "smbd/process_model.h"
|
||||
#include "lib/messaging/irpc.h"
|
||||
#include "librpc/rpc/rpc_common.h"
|
||||
|
||||
|
||||
/*
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "lib/socket/socket.h"
|
||||
#include "smbd/process_model.h"
|
||||
#include "lib/messaging/irpc.h"
|
||||
#include "librpc/rpc/rpc_common.h"
|
||||
|
||||
/* this is only used when the client asks for an unknown interface */
|
||||
#define DUMMY_ASSOC_GROUP 0x0FFFFFFF
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "auth/gensec/gensec.h"
|
||||
#include "auth/auth.h"
|
||||
#include "param/param.h"
|
||||
#include "librpc/rpc/rpc_common.h"
|
||||
|
||||
/*
|
||||
parse any auth information from a dcerpc bind request
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "librpc/rpc/dcerpc_proto.h"
|
||||
#include "torture/rpc/torture_rpc.h"
|
||||
#include "lib/util/util_net.h"
|
||||
#include "librpc/rpc/rpc_common.h"
|
||||
|
||||
/*
|
||||
display any protocol tower
|
||||
|
Loading…
x
Reference in New Issue
Block a user