mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
r19212: Make sure domains marked internal don't do
network queries. Jeremy.
This commit is contained in:
parent
81a9dc4b9f
commit
e4d5e1d90b
@ -122,6 +122,12 @@ void set_domain_offline(struct winbindd_domain *domain)
|
|||||||
TALLOC_FREE(domain->check_online_event);
|
TALLOC_FREE(domain->check_online_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (domain->internal) {
|
||||||
|
DEBUG(3,("set_domain_offline: domain %s is internal - logic error.\n",
|
||||||
|
domain->name ));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
domain->online = False;
|
domain->online = False;
|
||||||
|
|
||||||
/* We only add the timeout handler that checks and
|
/* We only add the timeout handler that checks and
|
||||||
@ -166,6 +172,12 @@ static void set_domain_online(struct winbindd_domain *domain)
|
|||||||
DEBUG(10,("set_domain_online: called for domain %s\n",
|
DEBUG(10,("set_domain_online: called for domain %s\n",
|
||||||
domain->name ));
|
domain->name ));
|
||||||
|
|
||||||
|
if (domain->internal) {
|
||||||
|
DEBUG(3,("set_domain_offline: domain %s is internal - logic error.\n",
|
||||||
|
domain->name ));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (get_global_winbindd_state_offline()) {
|
if (get_global_winbindd_state_offline()) {
|
||||||
DEBUG(10,("set_domain_online: domain %s remaining globally offline\n",
|
DEBUG(10,("set_domain_online: domain %s remaining globally offline\n",
|
||||||
domain->name ));
|
domain->name ));
|
||||||
@ -1197,6 +1209,12 @@ NTSTATUS init_dc_connection(struct winbindd_domain *domain)
|
|||||||
{
|
{
|
||||||
NTSTATUS result;
|
NTSTATUS result;
|
||||||
|
|
||||||
|
/* Internal connections never use the network. */
|
||||||
|
if (domain->internal) {
|
||||||
|
domain->initialized = True;
|
||||||
|
return NT_STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
if (connection_ok(domain)) {
|
if (connection_ok(domain)) {
|
||||||
if (!domain->initialized) {
|
if (!domain->initialized) {
|
||||||
set_dc_type_and_flags(domain);
|
set_dc_type_and_flags(domain);
|
||||||
@ -1237,11 +1255,6 @@ static void set_dc_type_and_flags( struct winbindd_domain *domain )
|
|||||||
|
|
||||||
ZERO_STRUCT( ctr );
|
ZERO_STRUCT( ctr );
|
||||||
|
|
||||||
if (domain->internal) {
|
|
||||||
domain->initialized = True;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!connection_ok(domain)) {
|
if (!connection_ok(domain)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -462,16 +462,18 @@ enum winbindd_result winbindd_dual_init_connection(struct winbindd_domain *domai
|
|||||||
fstrcpy(domain->dcname, state->request.data.init_conn.dcname);
|
fstrcpy(domain->dcname, state->request.data.init_conn.dcname);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen(domain->dcname) > 0) {
|
if (!domain->internal) {
|
||||||
if (!resolve_name(domain->dcname, &ipaddr, 0x20)) {
|
if (strlen(domain->dcname) > 0) {
|
||||||
DEBUG(2, ("Could not resolve DC name %s for domain %s\n",
|
if (!resolve_name(domain->dcname, &ipaddr, 0x20)) {
|
||||||
domain->dcname, domain->name));
|
DEBUG(2, ("Could not resolve DC name %s for domain %s\n",
|
||||||
return WINBINDD_ERROR;
|
domain->dcname, domain->name));
|
||||||
}
|
return WINBINDD_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
domain->dcaddr.sin_family = PF_INET;
|
domain->dcaddr.sin_family = PF_INET;
|
||||||
putip((char *)&(domain->dcaddr.sin_addr), (char *)&ipaddr);
|
putip((char *)&(domain->dcaddr.sin_addr), (char *)&ipaddr);
|
||||||
domain->dcaddr.sin_port = 0;
|
domain->dcaddr.sin_port = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
init_dc_connection(domain);
|
init_dc_connection(domain);
|
||||||
|
Loading…
Reference in New Issue
Block a user