From 32b0bb64bcb91a3f08fcaea72b89bf6409d0e67c Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sat, 11 Mar 2006 10:25:59 +0000 Subject: r14205: move smb specific stuff out of includes.h (finally!!!:-) all this changes really help ccache to speed up the samba4 build:-) metze (This used to be commit 180a79d1036e54fc0c50572b820818e9aafa28e9) --- source4/include/core.h | 16 +++++++ source4/include/includes.h | 2 - source4/include/smb.h | 3 ++ source4/include/structs.h | 4 ++ source4/libcli/raw/interfaces.h | 71 ++++++++++++-------------------- source4/libcli/raw/raweas.c | 1 + source4/libcli/raw/rawlpq.c | 1 + source4/libcli/raw/rawrequest.c | 4 +- source4/libcli/smb_composite/fetchfile.c | 1 + source4/librpc/rpc/dcerpc_connect.c | 1 + source4/ntvfs/ipc/ipc_rap.c | 1 + source4/smb_server/smb/trans2.c | 4 +- source4/smbd/server.c | 1 + source4/torture/torture_util.c | 3 +- source4/winbind/wb_init_domain.c | 1 + 15 files changed, 63 insertions(+), 51 deletions(-) (limited to 'source4') diff --git a/source4/include/core.h b/source4/include/core.h index ab5c1a55a36..28a14562eff 100644 --- a/source4/include/core.h +++ b/source4/include/core.h @@ -58,4 +58,20 @@ struct ipv4_addr { typedef NTSTATUS (*init_module_fn) (void); +/* + use the same structure for dom_sid2 as dom_sid. A dom_sid2 is really + just a dom sid, but with the sub_auths represented as a conformant + array. As with all in-structure conformant arrays, the array length + is placed before the start of the structure. That's what gives rise + to the extra num_auths elemenent. We don't want the Samba code to + have to bother with such esoteric NDR details, so its easier to just + define it as a dom_sid and use pidl magic to make it all work. It + just means you need to mark a sid as a "dom_sid2" in the IDL when you + know it is of the conformant array variety +*/ +#define dom_sid2 dom_sid + +/* same struct as dom_sid but inside a 28 bytes fixed buffer in NDR */ +#define dom_sid28 dom_sid + #endif /* _SAMBA_CORE_H */ diff --git a/source4/include/includes.h b/source4/include/includes.h index 89d586b75cd..71fa67c251c 100644 --- a/source4/include/includes.h +++ b/source4/include/includes.h @@ -119,8 +119,6 @@ enum brl_type { #include "librpc/ndr/ndr_orpc.h" #include "librpc/gen_ndr/orpc.h" #include "librpc/rpc/dcerpc.h" -#include "libcli/raw/trans2.h" -#include "libcli/raw/interfaces.h" #include "auth/credentials/credentials.h" #include "libcli/nbt/libnbt.h" #include "libcli/util/proto.h" diff --git a/source4/include/smb.h b/source4/include/smb.h index 78a66dd20a5..7b2f1e903c5 100644 --- a/source4/include/smb.h +++ b/source4/include/smb.h @@ -579,4 +579,7 @@ #define _smb2_setlen(buf,len) do {(buf)[0] = 0; (buf)[1] = ((len)&0xFF0000)>>16; \ (buf)[2] = ((len)&0xFF00)>>8; (buf)[3] = (len)&0xFF;} while (0) +#include "libcli/raw/trans2.h" +#include "libcli/raw/interfaces.h" + #endif /* _SMB_H */ diff --git a/source4/include/structs.h b/source4/include/structs.h index 5148f08a9b6..124d97f4931 100644 --- a/source4/include/structs.h +++ b/source4/include/structs.h @@ -159,3 +159,7 @@ struct smbcli_session; struct smbcli_state; struct model_ops; + +struct smb_wire_string; + +union smb_fileinfo; diff --git a/source4/libcli/raw/interfaces.h b/source4/libcli/raw/interfaces.h index 0505078fd48..e476a00b686 100644 --- a/source4/libcli/raw/interfaces.h +++ b/source4/libcli/raw/interfaces.h @@ -34,27 +34,10 @@ is always determined by NULL or packet termination a normal char* is used in the structure definition. */ -typedef struct { +struct smb_wire_string { uint32_t private_length; const char *s; -} WIRE_STRING; - - -/* - use the same structure for dom_sid2 as dom_sid. A dom_sid2 is really - just a dom sid, but with the sub_auths represented as a conformant - array. As with all in-structure conformant arrays, the array length - is placed before the start of the structure. That's what gives rise - to the extra num_auths elemenent. We don't want the Samba code to - have to bother with such esoteric NDR details, so its easier to just - define it as a dom_sid and use pidl magic to make it all work. It - just means you need to mark a sid as a "dom_sid2" in the IDL when you - know it is of the conformant array variety -*/ -#define dom_sid2 dom_sid - -/* same struct as dom_sid but inside a 28 bytes fixed buffer in NDR */ -#define dom_sid28 dom_sid +}; /* a generic container for file handles @@ -368,7 +351,7 @@ union smb_fileinfo { uint_t num_eas; struct ea_struct { uint8_t flags; - WIRE_STRING name; + struct smb_wire_string name; DATA_BLOB value; } *eas; NTTIME create_time; @@ -378,8 +361,8 @@ union smb_fileinfo { uint64_t alloc_size; uint64_t size; uint32_t nlink; - WIRE_STRING fname; - WIRE_STRING alt_fname; + struct smb_wire_string fname; + struct smb_wire_string alt_fname; uint8_t delete_pending; uint8_t directory; uint64_t compressed_size; @@ -397,7 +380,7 @@ union smb_fileinfo { struct stream_struct { uint64_t size; uint64_t alloc_size; - WIRE_STRING stream_name; + struct smb_wire_string stream_name; } *streams; } out; } generic; @@ -455,7 +438,7 @@ union smb_fileinfo { struct { uint_t num_names; struct ea_name { - WIRE_STRING name; + struct smb_wire_string name; } *ea_names; } in; @@ -528,7 +511,7 @@ union smb_fileinfo { union smb_file file; struct { - WIRE_STRING fname; + struct smb_wire_string fname; } out; } name_info; @@ -549,7 +532,7 @@ union smb_fileinfo { uint8_t delete_pending; uint8_t directory; uint32_t ea_size; - WIRE_STRING fname; + struct smb_wire_string fname; } out; } all_info; @@ -576,7 +559,7 @@ union smb_fileinfo { uint32_t access_mask; uint64_t position; uint64_t mode; - WIRE_STRING fname; + struct smb_wire_string fname; } out; } all_info2; @@ -586,7 +569,7 @@ union smb_fileinfo { union smb_file file; struct { - WIRE_STRING fname; + struct smb_wire_string fname; } out; } alt_name_info; @@ -643,7 +626,7 @@ union smb_fileinfo { union smb_file file; struct { - WIRE_STRING link_dest; + struct smb_wire_string link_dest; } out; } unix_link_info; @@ -1009,7 +992,7 @@ union smb_fsinfo { struct { uint32_t serial_number; - WIRE_STRING volume_name; + struct smb_wire_string volume_name; } out; } volume; @@ -1021,7 +1004,7 @@ union smb_fsinfo { struct { NTTIME create_time; uint32_t serial_number; - WIRE_STRING volume_name; + struct smb_wire_string volume_name; } out; } volume_info; @@ -1058,7 +1041,7 @@ union smb_fsinfo { struct { uint32_t fs_attr; uint32_t max_file_component_length; - WIRE_STRING fs_type; + struct smb_wire_string fs_type; } out; } attribute_info; @@ -1741,7 +1724,7 @@ union smb_notify { uint32_t num_changes; struct notify_changes { uint32_t action; - WIRE_STRING name; + struct smb_wire_string name; } *changes; } out; } notify; @@ -1876,7 +1859,7 @@ union smb_search_data { uint32_t size; uint32_t alloc_size; uint16_t attrib; - WIRE_STRING name; + struct smb_wire_string name; } standard; /* trans2 findfirst RAW_SEARCH_EA_SIZE level */ @@ -1889,7 +1872,7 @@ union smb_search_data { uint32_t alloc_size; uint16_t attrib; uint32_t ea_size; - WIRE_STRING name; + struct smb_wire_string name; } ea_size; /* trans2 findfirst RAW_SEARCH_EA_LIST level */ @@ -1902,7 +1885,7 @@ union smb_search_data { uint32_t alloc_size; uint16_t attrib; struct smb_ea_list eas; - WIRE_STRING name; + struct smb_wire_string name; } ea_list; /* RAW_SEARCH_DIRECTORY_INFO interface */ @@ -1915,7 +1898,7 @@ union smb_search_data { uint64_t size; uint64_t alloc_size; uint32_t attrib; - WIRE_STRING name; + struct smb_wire_string name; } directory_info; /* RAW_SEARCH_FULL_DIRECTORY_INFO interface */ @@ -1929,13 +1912,13 @@ union smb_search_data { uint64_t alloc_size; uint32_t attrib; uint32_t ea_size; - WIRE_STRING name; + struct smb_wire_string name; } full_directory_info; /* RAW_SEARCH_NAME_INFO interface */ struct { uint32_t file_index; - WIRE_STRING name; + struct smb_wire_string name; } name_info; /* RAW_SEARCH_BOTH_DIRECTORY_INFO interface */ @@ -1949,8 +1932,8 @@ union smb_search_data { uint64_t alloc_size; uint32_t attrib; uint32_t ea_size; - WIRE_STRING short_name; - WIRE_STRING name; + struct smb_wire_string short_name; + struct smb_wire_string name; } both_directory_info; /* RAW_SEARCH_ID_FULL_DIRECTORY_INFO interface */ @@ -1965,7 +1948,7 @@ union smb_search_data { uint32_t attrib; uint32_t ea_size; uint64_t file_id; - WIRE_STRING name; + struct smb_wire_string name; } id_full_directory_info; /* RAW_SEARCH_ID_BOTH_DIRECTORY_INFO interface */ @@ -1980,8 +1963,8 @@ union smb_search_data { uint32_t attrib; uint32_t ea_size; uint64_t file_id; - WIRE_STRING short_name; - WIRE_STRING name; + struct smb_wire_string short_name; + struct smb_wire_string name; } id_both_directory_info; /* RAW_SEARCH_UNIX_INFO interface */ diff --git a/source4/libcli/raw/raweas.c b/source4/libcli/raw/raweas.c index 4ab33441359..4c609aa5937 100644 --- a/source4/libcli/raw/raweas.c +++ b/source4/libcli/raw/raweas.c @@ -19,6 +19,7 @@ */ #include "includes.h" +#include "smb.h" /* work out how many bytes on the wire a ea list will consume. diff --git a/source4/libcli/raw/rawlpq.c b/source4/libcli/raw/rawlpq.c index 40669e51de9..882ed3c302a 100644 --- a/source4/libcli/raw/rawlpq.c +++ b/source4/libcli/raw/rawlpq.c @@ -19,6 +19,7 @@ */ #include "includes.h" +#include "smb.h" /**************************************************************************** lpq - async send diff --git a/source4/libcli/raw/rawrequest.c b/source4/libcli/raw/rawrequest.c index cd76e0e438f..b07a92e3fa4 100644 --- a/source4/libcli/raw/rawrequest.c +++ b/source4/libcli/raw/rawrequest.c @@ -827,7 +827,7 @@ static size_t smbcli_blob_pull_ascii(TALLOC_CTX *mem_ctx, } /* - pull a string from a blob, returning a talloced WIRE_STRING + pull a string from a blob, returning a talloced struct smb_wire_string the string length is limited by the 3 things: - the data size in the blob @@ -843,7 +843,7 @@ static size_t smbcli_blob_pull_ascii(TALLOC_CTX *mem_ctx, size_t smbcli_blob_pull_string(struct smbcli_session *session, TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, - WIRE_STRING *dest, + struct smb_wire_string *dest, uint16_t len_offset, uint16_t str_offset, uint_t flags) { diff --git a/source4/libcli/smb_composite/fetchfile.c b/source4/libcli/smb_composite/fetchfile.c index 5783a3258f7..6ad70a3af71 100644 --- a/source4/libcli/smb_composite/fetchfile.c +++ b/source4/libcli/smb_composite/fetchfile.c @@ -22,6 +22,7 @@ */ #include "includes.h" +#include "smb.h" #include "libcli/composite/composite.h" #include "libcli/smb_composite/smb_composite.h" diff --git a/source4/librpc/rpc/dcerpc_connect.c b/source4/librpc/rpc/dcerpc_connect.c index 973ddb9787c..bea119d645d 100644 --- a/source4/librpc/rpc/dcerpc_connect.c +++ b/source4/librpc/rpc/dcerpc_connect.c @@ -25,6 +25,7 @@ #include "includes.h" +#include "smb.h" #include "libcli/composite/composite.h" #include "libcli/smb_composite/smb_composite.h" #include "libcli/smb2/smb2.h" diff --git a/source4/ntvfs/ipc/ipc_rap.c b/source4/ntvfs/ipc/ipc_rap.c index bc9bc6f31e5..f683082d589 100644 --- a/source4/ntvfs/ipc/ipc_rap.c +++ b/source4/ntvfs/ipc/ipc_rap.c @@ -20,6 +20,7 @@ */ #include "includes.h" +#include "smb.h" #include "libcli/rap/rap.h" #include "ntvfs/ipc/proto.h" diff --git a/source4/smb_server/smb/trans2.c b/source4/smb_server/smb/trans2.c index a02a7416741..113828fbfa6 100644 --- a/source4/smb_server/smb/trans2.c +++ b/source4/smb_server/smb/trans2.c @@ -123,7 +123,7 @@ static size_t trans2_push_data_string(struct smbsrv_request *req, struct smb_trans2 *trans, uint32_t len_offset, uint32_t offset, - const WIRE_STRING *str, + const struct smb_wire_string *str, int dest_len, int flags) { @@ -190,7 +190,7 @@ static size_t trans2_push_data_string(struct smbsrv_request *req, */ static void trans2_append_data_string(struct smbsrv_request *req, struct smb_trans2 *trans, - const WIRE_STRING *str, + const struct smb_wire_string *str, uint_t len_offset, int flags) { diff --git a/source4/smbd/server.c b/source4/smbd/server.c index db2a13f29f5..c68c436d52a 100644 --- a/source4/smbd/server.c +++ b/source4/smbd/server.c @@ -32,6 +32,7 @@ #include "build.h" #include "ldb/include/ldb.h" #include "registry/registry.h" +#include "smb.h" #include "ntvfs/ntvfs.h" #include "ntptr/ntptr.h" #include "auth/gensec/gensec.h" diff --git a/source4/torture/torture_util.c b/source4/torture/torture_util.c index bf227f4e9fe..801c4b1e59b 100644 --- a/source4/torture/torture_util.c +++ b/source4/torture/torture_util.c @@ -19,6 +19,7 @@ */ #include "includes.h" +#include "smb.h" #include "libcli/raw/libcliraw.h" #include "libcli/libcli.h" #include "system/shmem.h" @@ -274,7 +275,7 @@ void *shm_setup(int size) check that a wire string matches the flags specified not 100% accurate, but close enough for testing */ -BOOL wire_bad_flags(WIRE_STRING *str, int flags, struct smbcli_state *cli) +BOOL wire_bad_flags(struct smb_wire_string *str, int flags, struct smbcli_state *cli) { BOOL server_unicode; int len; diff --git a/source4/winbind/wb_init_domain.c b/source4/winbind/wb_init_domain.c index 4045ddc2442..90371eb4572 100644 --- a/source4/winbind/wb_init_domain.c +++ b/source4/winbind/wb_init_domain.c @@ -21,6 +21,7 @@ */ #include "includes.h" +#include "smb.h" #include "libcli/composite/composite.h" #include "libcli/smb_composite/smb_composite.h" #include "winbind/wb_server.h" -- cgit