if (NT_STATUS_EQUAL(status, NT_STATUS_UNSUCCESSFUL)) {
DEBUG(3, ("query_user_list: flushing "
"connection cache\n"));
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
}
if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) ||
NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) {
/* Close down all open pipes on a connection. */
-void invalidate_cm_connection(struct winbindd_cm_conn *conn)
+void invalidate_cm_connection(struct winbindd_domain *domain)
{
NTSTATUS result;
+ struct winbindd_cm_conn *conn = &domain->conn;
/* We're closing down a possibly dead
connection. Don't have impossibly long (10s) timeouts. */
smbXcli_conn_disconnect(domain->conn.cli->conn, NT_STATUS_OK);
}
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
}
for (cli_state = winbindd_client_list();
return NT_STATUS_OK;
}
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
if (!domain->primary && !domain->initialized) {
/*
ZERO_STRUCT(conn->sam_domain_handle);
return status;
} else if (!NT_STATUS_IS_OK(status)) {
- invalidate_cm_connection(conn);
+ invalidate_cm_connection(domain);
return status;
}
&conn->lsa_policy);
done:
if (!NT_STATUS_IS_OK(result)) {
- invalidate_cm_connection(conn);
+ invalidate_cm_connection(domain);
return result;
}
if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) ||
NT_STATUS_EQUAL(status, NT_STATUS_RPC_SEC_PKG_ERROR) ||
NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_ACCESS_DENIED)) {
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
status = cm_connect_lsa_tcp(domain, mem_ctx, cli);
}
if (NT_STATUS_IS_OK(status)) {
"must set 'winbind sealed pipes = false' and "
"'require strong key = false' to proceed: %s\n",
domain->name, nt_errstr(result)));
- invalidate_cm_connection(conn);
+ invalidate_cm_connection(domain);
return result;
}
result = cli_rpc_pipe_open_noauth(conn->cli,
&ndr_table_netlogon,
&conn->netlogon_pipe);
if (!NT_STATUS_IS_OK(result)) {
- invalidate_cm_connection(conn);
+ invalidate_cm_connection(domain);
return result;
}
DEBUG(3, ("Could not open schannel'ed NETLOGON pipe. Error "
"was %s\n", nt_errstr(result)));
- invalidate_cm_connection(conn);
+ invalidate_cm_connection(domain);
return result;
}
"password was changed and we didn't know it. "
"Killing connections to domain %s\n",
child->domain->name));
- invalidate_cm_connection(&child->domain->conn);
+ invalidate_cm_connection(child->domain);
}
if (!calculate_next_machine_pwd_change(child->domain->name,
NTSTATUS status)
{
if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT)) {
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
/* We invalidated the connection. */
return true;
}
}
again:
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
domain->conn.netlogon_force_reauth = true;
{
* all connections to the dc and reestablish
* a netlogon connection first.
*/
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
domain->can_do_ncacn_ip_tcp = domain->active_directory;
if (!retried) {
retried = true;
* all connections to the dc and reestablish
* a netlogon connection first.
*/
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
if (!retried) {
retried = true;
goto connect;
DEBUG(3, ("This is again a problem for this "
"particular call, forcing the close "
"of this connection\n"));
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
}
/* After the second retry failover to the next DC */
"password was changed and we didn't know it. "
"Killing connections to domain %s\n",
domainname));
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
retry = true;
}
* In order to recover from this situation, we need to
* drop the connection.
*/
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
result = NT_STATUS_LOGON_FAILURE;
break;
}
"returned NT_STATUS_IO_TIMEOUT after the retry."
"Killing connections to domain %s\n",
domainname));
- invalidate_cm_connection(&domain->conn);
+ invalidate_cm_connection(domain);
}
return result;
}
NTSTATUS wb_open_internal_pipe(TALLOC_CTX *mem_ctx,
const struct ndr_interface_table *table,
struct rpc_pipe_client **ret_pipe);
-void invalidate_cm_connection(struct winbindd_cm_conn *conn);
+void invalidate_cm_connection(struct winbindd_domain *domain);
void close_conns_after_fork(void);
NTSTATUS init_dc_connection(struct winbindd_domain *domain, bool need_rw_dc);
NTSTATUS cm_connect_sam(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx,