}
}
+#ifdef WITH_TCP
+ /*
+ * We want to avoid opening a UDP proxy listener
+ * when all of the home servers are TCP.
+ */
+ extern bool home_servers_udp;
+
+ if (!home_servers_udp) defined_proxy = true;
+#endif
+
/*
* If we're proxying requests, open the proxy FD.
* Otherwise, don't do anything.
memset(&home, 0, sizeof(home));
/*
- *
+ * Open a default UDP port
*/
home.proto = IPPROTO_UDP;
home.src_ipaddr = server_ipaddr;
#include <fcntl.h>
static rbtree_t *realms_byname = NULL;
+#ifdef WITH_TCP
+bool home_servers_udp = false;
+#endif
#ifdef HAVE_REGEX_H
typedef struct realm_regex_t {
home->proto = IPPROTO_UDP;
#ifdef WITH_TCP
- if (hs_proto) {
+ if (!hs_proto) {
+ home_servers_udp = true;
+
+ } else {
if (strcmp(hs_proto, "udp") == 0) {
hs_proto = NULL;
+ home_servers_udp = true;
} else if (strcmp(hs_proto, "tcp") == 0) {
hs_proto = NULL;