From 796a6c947951a5a4459545b99bf97e0523f71402 Mon Sep 17 00:00:00 2001 From: Martin Nagy Date: Thu, 10 Dec 2009 22:23:04 +0100 Subject: Don't consider one address with different port numbers as the same There were two problems with the code. We were using fo_set_server_status() instead of fo_set_port_status() when we failed to connect to a service. This is a problem because if two services use the same server, or we want to use one server with two different ports, marking the whole server as bad is incorrect. The other problem was that be_resolve_server_done() was comparing the hostent structures -- these are, however, equal across multiple server:port pairs with the same server addresses. Fixes: #321 --- server/providers/fail_over.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'server/providers/fail_over.h') diff --git a/server/providers/fail_over.h b/server/providers/fail_over.h index 5fa9ff0c..e581fbaf 100644 --- a/server/providers/fail_over.h +++ b/server/providers/fail_over.h @@ -88,7 +88,7 @@ void fo_set_server_status(struct fo_server *server, /* * Set feedback about the port status. This function should be used when * the server itself is working but the service is not. When status is set - * to PORT_WORKING, 'server' is also marked as an "active server" for it's + * to PORT_WORKING, 'server' is also marked as an "active server" for its * service. When the next fo_resolve_service_send() function is called, this * server will be preferred. This will hold as long as it is not marked as * not-working. -- cgit