commit 15a3b46e31c79be85ec1992e77c028558b2a3a94
parent ab42faeecb9f5c97fee4f81a0a94c855675d55d4
Author: finwo <finwo@pm.me>
Date: Sat, 3 Jan 2026 19:35:50 +0100
2.13
Diffstat:
8 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,9 +1,13 @@
+2.13 [KK 2008-09-17]
+- Porting issues resolved for older MacOSX (10.3, 10.4)
+- Bugfix in XML emitting of web interface. Most browsers didn't even notice..
+
2.12 [KK 2008-09-10]
- Small code changes for g++ v3.x backward-compatibility support.
(Thanks Simon M.)
- Web interface: layout enhanced, more modification options
- Code cleanup, duplications removed
-- Network sends treat ignore some errno's and retry (see
+- Network sending ignores some errno's and retries (see
sys/fdwrite.cc)
- Web interface retries binding to its socket (incase a previous
instance hasn't terminated yet)
diff --git a/Makefile b/Makefile
@@ -1,7 +1,7 @@
# Top-level Makefile for XR
# -------------------------
-VER = 2.12
+VER = 2.13
BINDIR = /usr/sbin
TAR = /tmp/crossroads-$(VER).tar.gz
AUTHOR = Karel Kubat <karel@kubat.nl>
diff --git a/doc/xr.odt b/doc/xr.odt
Binary files differ.
diff --git a/doc/xr.pdf b/doc/xr.pdf
Binary files differ.
diff --git a/xr/backendvector/backendvector b/xr/backendvector/backendvector
@@ -3,15 +3,15 @@
class BackendVector {
public:
- BackendVector(): vec(), is_set(false) {};
- bool isset() const { return is_set; }
- void isset(bool i) { is_set = i; }
+ BackendVector(): vec(), is_defined(false) {};
+ bool isdefined() const { return is_defined; }
+ void isdefined(bool i) { is_defined = i; }
void add (unsigned nr) { vec.push_back(nr); }
unsigned size() const { return vec.size(); }
unsigned operator[] (unsigned index) const { return vec[index]; }
private:
vector<unsigned> vec;
- bool is_set;
+ bool is_defined;
};
#endif
diff --git a/xr/httpdispatcher/dispatch.cc b/xr/httpdispatcher/dispatch.cc
@@ -32,7 +32,7 @@ void HttpDispatcher::dispatch() {
// Construct locally and poke into TcpDispatcher.
msg ("Creating host-based target list for the HTTP dispatcher\n");
BackendVector v;
- v.isset(true);
+ v.isdefined(true);
for (unsigned i = 0; i < balancer.nbackends(); i++) {
if ( (balancer.backend(i).available()) &&
(!regexec (&(balancer.backend(i).hostregex()),
diff --git a/xr/tcpdispatcher/dispatch.cc b/xr/tcpdispatcher/dispatch.cc
@@ -6,7 +6,7 @@ void TcpDispatcher::dispatch() {
// Build up the target list, if not yet done so. The HTTP dispatcher
// might've created it already for host-based matching (in which case
// we won't bother here).
- if (! target_list.isset()) {
+ if (! target_list.isdefined()) {
msg ("Creating target list for the TCP dispatcher\n");
for (unsigned i = 0; i < balancer.nbackends(); i++)
if (balancer.backend(i).available()) {
diff --git a/xr/webinterface/answerblob.cc b/xr/webinterface/answerblob.cc
@@ -10,5 +10,5 @@ void Webinterface::answer_blob (string const &blob) {
"Content-Length: " + cl.str() + "\r\n"
"\r\n" +
blob;
- fdwrite (cfd, config.client_timeout(), resp.c_str(), resp.size());
+ fdwrite (cfd, config.client_timeout(), resp.c_str(), resp.size() - 1);
}