From: Stefan Metzmacher Date: Thu, 30 Jan 2014 18:00:09 +0000 (+0100) Subject: s4:rpc_server: use dcerpc_binding_get_*() in endpoints_match() X-Git-Tag: tdb-1.2.13~401 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=efcae33cb5e7227b8c25fd261534a240fa8b50d8;p=thirdparty%2Fsamba.git s4:rpc_server: use dcerpc_binding_get_*() in endpoints_match() Signed-off-by: Stefan Metzmacher Reviewed-by: Guenther Deschner --- diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c index bf91529ae1e..2df7872d801 100644 --- a/source4/rpc_server/dcerpc_server.c +++ b/source4/rpc_server/dcerpc_server.c @@ -127,16 +127,28 @@ static struct dcesrv_assoc_group *dcesrv_assoc_group_new(TALLOC_CTX *mem_ctx, static bool endpoints_match(const struct dcerpc_binding *ep1, const struct dcerpc_binding *ep2) { - if (ep1->transport != ep2->transport) { + enum dcerpc_transport_t t1; + enum dcerpc_transport_t t2; + const char *e1; + const char *e2; + + t1 = dcerpc_binding_get_transport(ep1); + t2 = dcerpc_binding_get_transport(ep2); + + e1 = dcerpc_binding_get_string_option(ep1, "endpoint"); + e2 = dcerpc_binding_get_string_option(ep2, "endpoint"); + + if (t1 != t2) { return false; } - if (!ep1->endpoint || !ep2->endpoint) { - return ep1->endpoint == ep2->endpoint; + if (!e1 || !e2) { + return e1 == e2; } - if (strcasecmp(ep1->endpoint, ep2->endpoint) != 0) + if (strcasecmp(e1, e2) != 0) { return false; + } return true; }