From 3da665e9ac324320fed68a21163fffdf4bd3df89 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 10 Dec 2007 18:42:07 +0100 Subject: r26385: Integrate gensec-socket into gensec. (This used to be commit 78bb444b4b73df9a84f8702814f9b30b32ffd885) --- source4/auth/credentials/credentials.c | 1 + source4/auth/gensec/config.mk | 21 ++++---------- source4/auth/gensec/gensec.h | 31 +++++++++++++++++++++ source4/auth/gensec/socket.h | 50 ---------------------------------- source4/auth/gensec/spnego.c | 1 - source4/ldap_server/config.mk | 3 +- source4/ldap_server/ldap_bind.c | 1 - source4/libcli/ldap/ldap_bind.c | 3 +- source4/libcli/nbt/namerefresh.c | 4 +-- 9 files changed, 43 insertions(+), 72 deletions(-) delete mode 100644 source4/auth/gensec/socket.h 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 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 . -*/ - -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) -- cgit