diff options
-rw-r--r-- | source4/include/includes.h | 1 | ||||
-rw-r--r-- | source4/ldap_server/ldap_server.c | 1 | ||||
-rw-r--r-- | source4/lib/messaging/messaging.c | 1 | ||||
-rw-r--r-- | source4/lib/socket/access.c | 1 | ||||
-rw-r--r-- | source4/lib/socket/config.mk | 4 | ||||
-rw-r--r-- | source4/lib/socket/socket.c | 5 | ||||
-rw-r--r-- | source4/lib/socket/socket.h | 35 | ||||
-rw-r--r-- | source4/lib/socket/socket_ipv4.c | 1 | ||||
-rw-r--r-- | source4/lib/socket/socket_ipv6.c | 1 | ||||
-rw-r--r-- | source4/lib/socket/socket_unix.c | 2 | ||||
-rw-r--r-- | source4/libcli/nbt/nbtsocket.c | 1 | ||||
-rw-r--r-- | source4/libcli/raw/clisocket.c | 1 | ||||
-rw-r--r-- | source4/libcli/raw/clitransport.c | 1 | ||||
-rw-r--r-- | source4/librpc/rpc/dcerpc_sock.c | 1 | ||||
-rw-r--r-- | source4/nbt_server/interfaces.c | 1 | ||||
-rw-r--r-- | source4/rpc_server/dcerpc_sock.c | 1 | ||||
-rw-r--r-- | source4/smbd/process_model.h | 2 | ||||
-rw-r--r-- | source4/smbd/service_stream.c | 1 | ||||
-rw-r--r-- | source4/torture/local/socket.c | 1 | ||||
-rw-r--r-- | source4/torture/nbt/register.c | 1 | ||||
-rw-r--r-- | source4/torture/nbt/wins.c | 1 | ||||
-rw-r--r-- | source4/utils/nmblookup.c | 1 | ||||
-rw-r--r-- | source4/winbind/wb_server.c | 1 |
23 files changed, 65 insertions, 1 deletions
diff --git a/source4/include/includes.h b/source4/include/includes.h index 890491f884..cfc0a26260 100644 --- a/source4/include/includes.h +++ b/source4/include/includes.h @@ -122,7 +122,6 @@ extern int errno; #include "enums.h" #include "smb_macros.h" #include "smb.h" -#include "lib/socket/socket.h" #include "libcli/ldap/ldap.h" #include "byteorder.h" #include "module.h" diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c index 3a0e3d1cde..7319c1c7ac 100644 --- a/source4/ldap_server/ldap_server.c +++ b/source4/ldap_server/ldap_server.c @@ -26,6 +26,7 @@ #include "asn_1.h" #include "ldap_server/ldap_server.h" #include "smbd/service_stream.h" +#include "lib/socket/socket.h" /* close the socket and shutdown a server_context diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c index df0216617d..8127e7e8fc 100644 --- a/source4/lib/messaging/messaging.c +++ b/source4/lib/messaging/messaging.c @@ -26,6 +26,7 @@ #include "system/time.h" #include "messages.h" #include "dlinklist.h" +#include "lib/socket/socket.h" /* change the message version with any incompatible changes in the protocol */ #define MESSAGING_VERSION 1 diff --git a/source4/lib/socket/access.c b/source4/lib/socket/access.c index c90bf203dd..a64444d41c 100644 --- a/source4/lib/socket/access.c +++ b/source4/lib/socket/access.c @@ -34,6 +34,7 @@ #include "includes.h" #include "system/network.h" #include "system/iconv.h" +#include "lib/socket/socket.h" #define FAIL (-1) #define ALLONES ((uint32_t)0xFFFFFFFF) diff --git a/source4/lib/socket/config.mk b/source4/lib/socket/config.mk index 6217fbc079..e4719c3f67 100644 --- a/source4/lib/socket/config.mk +++ b/source4/lib/socket/config.mk @@ -5,6 +5,7 @@ SUBSYSTEM = SOCKET INIT_OBJ_FILES = \ lib/socket/socket_ipv4.o +NOPROTO=YES # End MODULE socket_ipv4 ################################################ @@ -14,6 +15,7 @@ INIT_OBJ_FILES = \ SUBSYSTEM = SOCKET INIT_OBJ_FILES = \ lib/socket/socket_ipv6.o +NOPROTO=YES # End MODULE socket_ipv6 ################################################ @@ -23,6 +25,7 @@ INIT_OBJ_FILES = \ SUBSYSTEM = SOCKET INIT_OBJ_FILES = \ lib/socket/socket_unix.o +NOPROTO=YES # End MODULE socket_unix ################################################ @@ -33,5 +36,6 @@ INIT_OBJ_FILES = \ lib/socket/socket.o ADD_OBJ_FILES = \ lib/socket/access.o +NOPROTO=YES # End SUBSYSTEM SOCKET ################################################ diff --git a/source4/lib/socket/socket.c b/source4/lib/socket/socket.c index 109a7cadc0..ddc2097f42 100644 --- a/source4/lib/socket/socket.c +++ b/source4/lib/socket/socket.c @@ -19,6 +19,7 @@ */ #include "includes.h" +#include "lib/socket/socket.h" #include "system/filesys.h" /* @@ -326,6 +327,10 @@ NTSTATUS socket_dup(struct socket_context *sock) const struct socket_ops *socket_getops_byname(const char *name, enum socket_type type) { + extern const struct socket_ops *socket_ipv4_ops(enum socket_type ); + extern const struct socket_ops *socket_ipv6_ops(enum socket_type ); + extern const struct socket_ops *socket_unixdom_ops(enum socket_type ); + if (strcmp("ip", name) == 0 || strcmp("ipv4", name) == 0) { return socket_ipv4_ops(type); diff --git a/source4/lib/socket/socket.h b/source4/lib/socket/socket.h index 162a05cb40..b1fae9ac56 100644 --- a/source4/lib/socket/socket.h +++ b/source4/lib/socket/socket.h @@ -103,4 +103,39 @@ struct socket_context { const struct socket_ops *ops; }; + +/* prototypes */ +NTSTATUS socket_create(const char *name, enum socket_type type, + struct socket_context **new_sock, uint32_t flags); +void socket_destroy(struct socket_context *sock); +NTSTATUS socket_connect(struct socket_context *sock, + const char *my_address, int my_port, + const char *server_address, int server_port, + uint32_t flags); +NTSTATUS socket_connect_complete(struct socket_context *sock, uint32_t flags); +NTSTATUS socket_listen(struct socket_context *sock, const char *my_address, int port, int queue_size, uint32_t flags); +NTSTATUS socket_accept(struct socket_context *sock, struct socket_context **new_sock); +NTSTATUS socket_recv(struct socket_context *sock, void *buf, + size_t wantlen, size_t *nread, uint32_t flags); +NTSTATUS socket_recvfrom(struct socket_context *sock, void *buf, + size_t wantlen, size_t *nread, uint32_t flags, + const char **src_addr, int *src_port); +NTSTATUS socket_send(struct socket_context *sock, + const DATA_BLOB *blob, size_t *sendlen, uint32_t flags); +NTSTATUS socket_sendto(struct socket_context *sock, + const DATA_BLOB *blob, size_t *sendlen, uint32_t flags, + const char *dest_addr, int dest_port); +NTSTATUS socket_set_option(struct socket_context *sock, const char *option, const char *val); +char *socket_get_peer_name(struct socket_context *sock, TALLOC_CTX *mem_ctx); +char *socket_get_peer_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx); +int socket_get_peer_port(struct socket_context *sock); +char *socket_get_my_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx); +int socket_get_my_port(struct socket_context *sock); +int socket_get_fd(struct socket_context *sock); +NTSTATUS socket_dup(struct socket_context *sock); +const struct socket_ops *socket_getops_byname(const char *name, enum socket_type type); +BOOL socket_check_access(struct socket_context *sock, + const char *service_name, + const char **allow_list, const char **deny_list); + #endif /* _SAMBA_SOCKET_H */ diff --git a/source4/lib/socket/socket_ipv4.c b/source4/lib/socket/socket_ipv4.c index 2a212fbc94..4f8b1e6dd6 100644 --- a/source4/lib/socket/socket_ipv4.c +++ b/source4/lib/socket/socket_ipv4.c @@ -24,6 +24,7 @@ #include "includes.h" #include "system/network.h" #include "system/filesys.h" +#include "lib/socket/socket.h" static NTSTATUS ipv4_init(struct socket_context *sock) { diff --git a/source4/lib/socket/socket_ipv6.c b/source4/lib/socket/socket_ipv6.c index d7241d9b38..2384e60550 100644 --- a/source4/lib/socket/socket_ipv6.c +++ b/source4/lib/socket/socket_ipv6.c @@ -20,6 +20,7 @@ */ #include "includes.h" +#include "lib/socket/socket.h" #include "system/network.h" #include "system/filesys.h" diff --git a/source4/lib/socket/socket_unix.c b/source4/lib/socket/socket_unix.c index 2bcce0eb11..7cf12db4b2 100644 --- a/source4/lib/socket/socket_unix.c +++ b/source4/lib/socket/socket_unix.c @@ -22,6 +22,8 @@ */ #include "includes.h" +#include "lib/socket/socket.h" +#include "lib/socket/socket.h" #include "system/network.h" #include "system/filesys.h" diff --git a/source4/libcli/nbt/nbtsocket.c b/source4/libcli/nbt/nbtsocket.c index c771d3b4f5..dd14e76706 100644 --- a/source4/libcli/nbt/nbtsocket.c +++ b/source4/libcli/nbt/nbtsocket.c @@ -24,6 +24,7 @@ #include "lib/events/events.h" #include "dlinklist.h" #include "libcli/nbt/libnbt.h" +#include "lib/socket/socket.h" #define NBT_MAX_PACKET_SIZE 2048 #define NBT_MAX_REPLIES 1000 diff --git a/source4/libcli/raw/clisocket.c b/source4/libcli/raw/clisocket.c index 44c6a87e21..cbb479ca1a 100644 --- a/source4/libcli/raw/clisocket.c +++ b/source4/libcli/raw/clisocket.c @@ -25,6 +25,7 @@ #include "lib/events/events.h" #include "libcli/raw/libcliraw.h" #include "libcli/composite/composite.h" +#include "lib/socket/socket.h" /* this private structure is used during async connection handling diff --git a/source4/libcli/raw/clitransport.c b/source4/libcli/raw/clitransport.c index 079783435c..ee382da3c2 100644 --- a/source4/libcli/raw/clitransport.c +++ b/source4/libcli/raw/clitransport.c @@ -22,6 +22,7 @@ #include "includes.h" #include "libcli/raw/libcliraw.h" +#include "lib/socket/socket.h" #include "system/time.h" #include "dlinklist.h" #include "lib/events/events.h" diff --git a/source4/librpc/rpc/dcerpc_sock.c b/source4/librpc/rpc/dcerpc_sock.c index e983c9f532..4d2a661749 100644 --- a/source4/librpc/rpc/dcerpc_sock.c +++ b/source4/librpc/rpc/dcerpc_sock.c @@ -25,6 +25,7 @@ #include "dlinklist.h" #include "lib/events/events.h" #include "librpc/gen_ndr/ndr_epmapper.h" +#include "lib/socket/socket.h" #define MIN_HDR_SIZE 16 diff --git a/source4/nbt_server/interfaces.c b/source4/nbt_server/interfaces.c index c84f630400..b2fc0ad6be 100644 --- a/source4/nbt_server/interfaces.c +++ b/source4/nbt_server/interfaces.c @@ -24,6 +24,7 @@ #include "dlinklist.h" #include "nbt_server/nbt_server.h" #include "smbd/service_task.h" +#include "lib/socket/socket.h" /* diff --git a/source4/rpc_server/dcerpc_sock.c b/source4/rpc_server/dcerpc_sock.c index 48537375d5..d2ebf794b3 100644 --- a/source4/rpc_server/dcerpc_sock.c +++ b/source4/rpc_server/dcerpc_sock.c @@ -23,6 +23,7 @@ */ #include "includes.h" +#include "lib/socket/socket.h" #include "system/filesys.h" #include "lib/events/events.h" #include "rpc_server/dcerpc_server.h" diff --git a/source4/smbd/process_model.h b/source4/smbd/process_model.h index 137f2add91..2575adeccb 100644 --- a/source4/smbd/process_model.h +++ b/source4/smbd/process_model.h @@ -22,6 +22,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include "lib/socket/socket.h" + /* modules can use the following to determine if the interface has changed * please increment the version number after each interface change * with a comment and maybe update struct process_model_critical_sizes. diff --git a/source4/smbd/service_stream.c b/source4/smbd/service_stream.c index 35a6014eb2..4da4453ac7 100644 --- a/source4/smbd/service_stream.c +++ b/source4/smbd/service_stream.c @@ -24,6 +24,7 @@ #include "includes.h" #include "process_model.h" #include "lib/events/events.h" +#include "lib/socket/socket.h" #include "smbd/service_stream.h" /* the range of ports to try for dcerpc over tcp endpoints */ diff --git a/source4/torture/local/socket.c b/source4/torture/local/socket.c index 6a6f867fa0..3b4707b06a 100644 --- a/source4/torture/local/socket.c +++ b/source4/torture/local/socket.c @@ -21,6 +21,7 @@ */ #include "includes.h" +#include "lib/socket/socket.h" #define CHECK_STATUS(status, correct) do { \ if (!NT_STATUS_EQUAL(status, correct)) { \ diff --git a/source4/torture/nbt/register.c b/source4/torture/nbt/register.c index a8be5dbb9a..dbbe1d3e87 100644 --- a/source4/torture/nbt/register.c +++ b/source4/torture/nbt/register.c @@ -23,6 +23,7 @@ #include "includes.h" #include "libcli/nbt/libnbt.h" #include "librpc/gen_ndr/ndr_nbt.h" +#include "lib/socket/socket.h" #define CHECK_VALUE(v, correct) do { \ if ((v) != (correct)) { \ diff --git a/source4/torture/nbt/wins.c b/source4/torture/nbt/wins.c index 62efcd3e97..313a46b02a 100644 --- a/source4/torture/nbt/wins.c +++ b/source4/torture/nbt/wins.c @@ -23,6 +23,7 @@ #include "includes.h" #include "libcli/nbt/libnbt.h" #include "librpc/gen_ndr/ndr_nbt.h" +#include "lib/socket/socket.h" #define CHECK_VALUE(v, correct) do { \ if ((v) != (correct)) { \ diff --git a/source4/utils/nmblookup.c b/source4/utils/nmblookup.c index e4cf87802d..5e8b59edc8 100644 --- a/source4/utils/nmblookup.c +++ b/source4/utils/nmblookup.c @@ -27,6 +27,7 @@ #include "libcli/nbt/libnbt.h" #include "lib/cmdline/popt_common.h" #include "system/iconv.h" +#include "lib/socket/socket.h" /* command line options */ static struct { diff --git a/source4/winbind/wb_server.c b/source4/winbind/wb_server.c index 0513b1b125..63d186f9dd 100644 --- a/source4/winbind/wb_server.c +++ b/source4/winbind/wb_server.c @@ -21,6 +21,7 @@ */ #include "includes.h" +#include "lib/socket/socket.h" #include "system/filesys.h" #include "dlinklist.h" #include "lib/events/events.h" |