summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/auth/credentials/credentials.c1
-rw-r--r--source4/auth/gensec/config.mk21
-rw-r--r--source4/auth/gensec/gensec.h31
-rw-r--r--source4/auth/gensec/socket.h50
-rw-r--r--source4/auth/gensec/spnego.c1
-rw-r--r--source4/ldap_server/config.mk3
-rw-r--r--source4/ldap_server/ldap_bind.c1
-rw-r--r--source4/libcli/ldap/ldap_bind.c3
-rw-r--r--source4/libcli/nbt/namerefresh.c4
9 files changed, 43 insertions, 72 deletions
diff --git a/source4/auth/credentials/credentials.c b/source4/auth/credentials/credentials.c
index 089af8f0f5..e7f2280bc9 100644
--- a/source4/auth/credentials/credentials.c
+++ b/source4/auth/credentials/credentials.c
@@ -720,6 +720,7 @@ void cli_credentials_set_anonymous(struct cli_credentials *cred)
cli_credentials_set_domain(cred, "", CRED_SPECIFIED);
cli_credentials_set_password(cred, NULL, CRED_SPECIFIED);
cli_credentials_set_realm(cred, NULL, CRED_SPECIFIED);
+ cli_credentials_set_workstation(cred, "", CRED_UNINITIALISED);
}
/**
diff --git a/source4/auth/gensec/config.mk b/source4/auth/gensec/config.mk
index 8ee942c63a..ab20f4bb9b 100644
--- a/source4/auth/gensec/config.mk
+++ b/source4/auth/gensec/config.mk
@@ -6,9 +6,9 @@ SO_VERSION = 0
DESCRIPTION = Generic Security Library
PUBLIC_HEADERS = gensec.h spnego.h
PUBLIC_PROTO_HEADER = gensec_proto.h
-OBJ_FILES = gensec.o
+OBJ_FILES = gensec.o socket.o
PUBLIC_DEPENDENCIES = \
- CREDENTIALS LIBSAMBA-UTIL LIBCRYPTO ASN1_UTIL
+ CREDENTIALS LIBSAMBA-UTIL LIBCRYPTO ASN1_UTIL samba-socket LIBPACKET
# End SUBSYSTEM gensec
#################################
@@ -48,7 +48,7 @@ PRIVATE_DEPENDENCIES = CREDENTIALS SASL
SUBSYSTEM = gensec
INIT_FUNCTION = gensec_spnego_init
PRIVATE_PROTO_HEADER = spnego_proto.h
-PRIVATE_DEPENDENCIES = ASN1_UTIL GENSEC_SOCKET CREDENTIALS
+PRIVATE_DEPENDENCIES = ASN1_UTIL CREDENTIALS
OBJ_FILES = spnego.o spnego_parse.o
# End MODULE gensec_spnego
################################################
@@ -61,7 +61,7 @@ PRIVATE_PROTO_HEADER = schannel_proto.h
INIT_FUNCTION = gensec_schannel_init
OBJ_FILES = schannel.o \
schannel_sign.o
-PRIVATE_DEPENDENCIES = SCHANNELDB NDR_SCHANNEL CREDENTIALS
+PRIVATE_DEPENDENCIES = SCHANNELDB NDR_SCHANNEL CREDENTIALS LIBNDR
OUTPUT_TYPE = INTEGRATED
# End MODULE gensec_schannel
################################################
@@ -72,19 +72,8 @@ OUTPUT_TYPE = INTEGRATED
PRIVATE_PROTO_HEADER = schannel_state.h
OBJ_FILES = \
schannel_state.o
-PRIVATE_DEPENDENCIES = LDB_WRAP
+PRIVATE_DEPENDENCIES = LDB_WRAP SAMDB
#
# End SUBSYSTEM SCHANNELDB
################################################
-################################################
-# Start SUBSYSTEM GENSEC_SOCKET
-[SUBSYSTEM::GENSEC_SOCKET]
-OBJ_FILES = \
- socket.o
-PUBLIC_DEPENDENCIES = samba-socket LIBPACKET
-#PUBLIC_DEPENDENCIES = gensec
-#
-# End SUBSYSTEM GENSEC_SOCKET
-################################################
-
diff --git a/source4/auth/gensec/gensec.h b/source4/auth/gensec/gensec.h
index dbedcf091a..3413e5c8ce 100644
--- a/source4/auth/gensec/gensec.h
+++ b/source4/auth/gensec/gensec.h
@@ -166,6 +166,37 @@ struct gensec_critical_sizes {
int sizeof_gensec_security;
};
+/* Socket wrapper */
+
+struct gensec_security;
+struct socket_context;
+
+NTSTATUS gensec_socket_init(struct gensec_security *gensec_security,
+ struct socket_context *current_socket,
+ struct event_context *ev,
+ void (*recv_handler)(void *, uint16_t),
+ void *recv_private,
+ struct socket_context **new_socket);
+/* These functions are for use here only (public because SPNEGO must
+ * use them for recursion) */
+NTSTATUS gensec_wrap_packets(struct gensec_security *gensec_security,
+ TALLOC_CTX *mem_ctx,
+ const DATA_BLOB *in,
+ DATA_BLOB *out,
+ size_t *len_processed);
+/* These functions are for use here only (public because SPNEGO must
+ * use them for recursion) */
+NTSTATUS gensec_unwrap_packets(struct gensec_security *gensec_security,
+ TALLOC_CTX *mem_ctx,
+ const DATA_BLOB *in,
+ DATA_BLOB *out,
+ size_t *len_processed);
+
+/* These functions are for use here only (public because SPNEGO must
+ * use them for recursion) */
+NTSTATUS gensec_packet_full_request(struct gensec_security *gensec_security,
+ DATA_BLOB blob, size_t *size);
+
struct loadparm_context;
#include "auth/gensec/gensec_proto.h"
diff --git a/source4/auth/gensec/socket.h b/source4/auth/gensec/socket.h
deleted file mode 100644
index 83100c65da..0000000000
--- a/source4/auth/gensec/socket.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- Generic Authentication Interface (socket wrapper)
-
- Copyright (C) Andrew Bartlett <abartlet@samba.org> 2006
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-struct gensec_security;
-struct socket_context;
-
-NTSTATUS gensec_socket_init(struct gensec_security *gensec_security,
- struct socket_context *current_socket,
- struct event_context *ev,
- void (*recv_handler)(void *, uint16_t),
- void *recv_private,
- struct socket_context **new_socket);
-/* These functions are for use here only (public because SPNEGO must
- * use them for recursion) */
-NTSTATUS gensec_wrap_packets(struct gensec_security *gensec_security,
- TALLOC_CTX *mem_ctx,
- const DATA_BLOB *in,
- DATA_BLOB *out,
- size_t *len_processed);
-/* These functions are for use here only (public because SPNEGO must
- * use them for recursion) */
-NTSTATUS gensec_unwrap_packets(struct gensec_security *gensec_security,
- TALLOC_CTX *mem_ctx,
- const DATA_BLOB *in,
- DATA_BLOB *out,
- size_t *len_processed);
-
-/* These functions are for use here only (public because SPNEGO must
- * use them for recursion) */
-NTSTATUS gensec_packet_full_request(struct gensec_security *gensec_security,
- DATA_BLOB blob, size_t *size);
-
diff --git a/source4/auth/gensec/spnego.c b/source4/auth/gensec/spnego.c
index 15dabb8033..782aa44c75 100644
--- a/source4/auth/gensec/spnego.c
+++ b/source4/auth/gensec/spnego.c
@@ -26,7 +26,6 @@
#include "librpc/gen_ndr/ndr_dcerpc.h"
#include "auth/credentials/credentials.h"
#include "auth/gensec/gensec.h"
-#include "auth/gensec/socket.h"
enum spnego_state_position {
SPNEGO_SERVER_START,
diff --git a/source4/ldap_server/config.mk b/source4/ldap_server/config.mk
index 51650a116f..9892376821 100644
--- a/source4/ldap_server/config.mk
+++ b/source4/ldap_server/config.mk
@@ -14,6 +14,7 @@ OBJ_FILES = \
PRIVATE_DEPENDENCIES = CREDENTIALS \
LIBCLI_LDAP SAMDB \
process_model \
- GENSEC_SOCKET
+ gensec \
+ LIBSAMBA-CONFIG
# End SUBSYSTEM SMB
#######################
diff --git a/source4/ldap_server/ldap_bind.c b/source4/ldap_server/ldap_bind.c
index 53cef5b349..f2c974ae3f 100644
--- a/source4/ldap_server/ldap_bind.c
+++ b/source4/ldap_server/ldap_bind.c
@@ -26,7 +26,6 @@
#include "lib/ldb/include/ldb_errors.h"
#include "dsdb/samdb/samdb.h"
#include "auth/gensec/gensec.h"
-#include "auth/gensec/socket.h"
#include "param/param.h"
static NTSTATUS ldapsrv_BindSimple(struct ldapsrv_call *call)
diff --git a/source4/libcli/ldap/ldap_bind.c b/source4/libcli/ldap/ldap_bind.c
index bd548be38e..fd15ff2fc7 100644
--- a/source4/libcli/ldap/ldap_bind.c
+++ b/source4/libcli/ldap/ldap_bind.c
@@ -26,7 +26,6 @@
#include "libcli/ldap/ldap_client.h"
#include "lib/tls/tls.h"
#include "auth/gensec/gensec.h"
-#include "auth/gensec/socket.h"
#include "auth/credentials/credentials.h"
#include "lib/stream/packet.h"
#include "param/param.h"
@@ -221,6 +220,8 @@ NTSTATUS ldap_bind_sasl(struct ldap_connection *conn,
NULL
};
+ gensec_init(lp_ctx);
+
status = gensec_client_start(conn, &conn->gensec, NULL, lp_ctx);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("Failed to start GENSEC engine (%s)\n", nt_errstr(status)));
diff --git a/source4/libcli/nbt/namerefresh.c b/source4/libcli/nbt/namerefresh.c
index 3e99854215..8408b4e3c3 100644
--- a/source4/libcli/nbt/namerefresh.c
+++ b/source4/libcli/nbt/namerefresh.c
@@ -137,7 +137,7 @@ NTSTATUS nbt_name_refresh(struct nbt_name_socket *nbtsock,
-/*
+/**
a wins name refresh with multiple WINS servers and multiple
addresses to refresh. Try each WINS server in turn, until we get a
reply for each address
@@ -152,7 +152,7 @@ struct refresh_wins_state {
};
-/*
+/**
state handler for WINS multi-homed multi-server name refresh
*/
static void name_refresh_wins_handler(struct nbt_name_request *req)