diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-12-12 03:59:09 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-12-12 03:59:09 +0000 |
commit | 16309de71d6c8de96e869aeaab0b879185991d87 (patch) | |
tree | d122fe6bd25cd87df5422b0af661c9e93db31ef8 /source4/include | |
parent | fcc4efd1ea637c810eed8444080b87d7f92c837a (diff) | |
download | samba-16309de71d6c8de96e869aeaab0b879185991d87.tar.gz samba-16309de71d6c8de96e869aeaab0b879185991d87.tar.xz samba-16309de71d6c8de96e869aeaab0b879185991d87.zip |
* the RPC-ECHO pipe now works in smbd, as long as the data sizes
don't cause fragmented pdus (I'll add fragments shortly)
* change data_blob_talloc() to not zero memory when the 2nd argument
is NULL. The zeroing just masks bugs, and can't even allow a DOS
attack
* modified pidl to ensure that [ref] arguments to the out side of
functions are allocated when parsing the in side. This allows rpc
backends to assume that [ref] variables are all setup. Doesn't work
correctly for [ref] arrays yet
* changed DLIST_ADD_END() to take the type instead of a tmp
variable. This means you don't need to declare a silly tmp variable in
the caller
(This used to be commit 46e0a358198eeb9af1907ee2a29025d3ab23b6d1)
Diffstat (limited to 'source4/include')
-rw-r--r-- | source4/include/client.h | 1 | ||||
-rw-r--r-- | source4/include/context.h | 39 | ||||
-rw-r--r-- | source4/include/dlinklist.h | 9 | ||||
-rw-r--r-- | source4/include/includes.h | 5 | ||||
-rw-r--r-- | source4/include/ntvfs.h | 6 | ||||
-rw-r--r-- | source4/include/smb.h | 31 |
6 files changed, 49 insertions, 42 deletions
diff --git a/source4/include/client.h b/source4/include/client.h index 015c8fb18a6..8b0aedd48cc 100644 --- a/source4/include/client.h +++ b/source4/include/client.h @@ -114,5 +114,4 @@ struct cli_client #define CLI_FULL_CONNECTION_ANNONYMOUS_FALLBACK 0x0004 #define CLI_FULL_CONNECTION_USE_DFS 0x0008 -#include "cli_context.h" #endif /* _CLIENT_H */ diff --git a/source4/include/context.h b/source4/include/context.h index 959793ab5e3..f9a9bdc5547 100644 --- a/source4/include/context.h +++ b/source4/include/context.h @@ -42,6 +42,44 @@ struct user_context { struct user_struct *vuser; }; + +/* each backend has to be one one of the following 3 basic types. In + * earlier versions of Samba backends needed to handle all types, now + * we implement them separately. */ +enum ntvfs_type {NTVFS_DISK, NTVFS_PRINT, NTVFS_IPC}; + +/* we need a forward declaration of the ntvfs_ops strucutre to prevent + include recursion */ +struct ntvfs_ops; + +struct tcon_context { + struct tcon_context *next, *prev; + + /* the server context that this was created on */ + struct server_context *smb; + + /* a talloc context for all data in this structure */ + TALLOC_CTX *mem_ctx; + + /* a private structure used by the active NTVFS backend */ + void *ntvfs_private; + + uint16 cnum; /* an index passed over the wire (the TID) */ + int service; + enum ntvfs_type type; + BOOL read_only; + BOOL admin_user; + + /* the NTVFS operations - see source/ntvfs/ and include/ntvfs.h for details */ + struct ntvfs_ops *ntvfs_ops; + + /* the reported filesystem type */ + char *fs_type; + + /* the reported device type */ + char *dev_type; +}; + /* the context for a single SMB request. This is passed to any request-context functions */ struct request_context { @@ -343,3 +381,4 @@ struct server_context { struct model_ops *model_ops; }; + diff --git a/source4/include/dlinklist.h b/source4/include/dlinklist.h index f1ceb8acf3e..61912993842 100644 --- a/source4/include/dlinklist.h +++ b/source4/include/dlinklist.h @@ -57,16 +57,17 @@ do { \ } while (0) /* hook into the end of the list - needs a tmp pointer */ -#define DLIST_ADD_END(list, p, tmp) \ +#define DLIST_ADD_END(list, p, type) \ do { \ if (!(list)) { \ (list) = (p); \ (p)->next = (p)->prev = NULL; \ } else { \ - for ((tmp) = (list); (tmp)->next; (tmp) = (tmp)->next) ; \ - (tmp)->next = (p); \ + type tmp; \ + for (tmp = (list); tmp->next; tmp = tmp->next) ; \ + tmp->next = (p); \ (p)->next = NULL; \ - (p)->prev = (tmp); \ + (p)->prev = tmp; \ } \ } while (0) diff --git a/source4/include/includes.h b/source4/include/includes.h index 9683d032cc5..305875cae03 100644 --- a/source4/include/includes.h +++ b/source4/include/includes.h @@ -773,6 +773,11 @@ extern int errno; #include "librpc/ndr/libndr.h" #include "librpc/rpc/dcerpc.h" +#include "rpc_server/dcerpc_server.h" +#include "context.h" +#include "ntvfs.h" +#include "cli_context.h" + /* used in net.c */ struct functable { diff --git a/source4/include/ntvfs.h b/source4/include/ntvfs.h index 88122166eef..b03ab218c6e 100644 --- a/source4/include/ntvfs.h +++ b/source4/include/ntvfs.h @@ -23,12 +23,6 @@ -/* each backend has to be one one of the following 3 basic types. In - * earlier versions of Samba backends needed to handle all types, now - * we implement them separately. */ -enum ntvfs_type {NTVFS_DISK, NTVFS_PRINT, NTVFS_IPC}; - - /* the ntvfs operations structure - contains function pointers to the backend implementations of each operation */ struct ntvfs_ops { diff --git a/source4/include/smb.h b/source4/include/smb.h index a0a190190b8..9b8bc286144 100644 --- a/source4/include/smb.h +++ b/source4/include/smb.h @@ -421,10 +421,7 @@ struct vuid_cache { #include "smb_acls.h" #include "enums.h" #include "events.h" -#include "rpc_server/dcerpc_server.h" -#include "context.h" #include "smb_interfaces.h" -#include "ntvfs.h" typedef struct smb_vfs_handle_struct { @@ -435,34 +432,6 @@ typedef struct smb_vfs_handle_struct } smb_vfs_handle_struct; -struct tcon_context { - struct tcon_context *next, *prev; - - /* the server context that this was created on */ - struct server_context *smb; - - /* a talloc context for all data in this structure */ - TALLOC_CTX *mem_ctx; - - /* a private structure used by the active NTVFS backend */ - void *ntvfs_private; - - uint16 cnum; /* an index passed over the wire (the TID) */ - int service; - enum ntvfs_type type; - BOOL read_only; - BOOL admin_user; - - /* the NTVFS operations - see source/ntvfs/ and include/ntvfs.h for details */ - struct ntvfs_ops *ntvfs_ops; - - /* the reported filesystem type */ - char *fs_type; - - /* the reported device type */ - char *dev_type; -}; - struct current_user { struct tcon_context *conn; |