Improve compat with old clients

epel9
Daniel Drake 12 years ago
parent ebf700d449
commit bf3db4410d

@ -20,7 +20,7 @@
Name: puppet Name: puppet
Version: 3.1.0 Version: 3.1.0
Release: 1%{?dist} Release: 2%{?dist}
Summary: A network tool for managing many disparate systems Summary: A network tool for managing many disparate systems
License: ASL 2.0 License: ASL 2.0
URL: http://puppetlabs.com URL: http://puppetlabs.com
@ -28,6 +28,8 @@ Source0: http://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.g
Source1: http://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.gz.asc Source1: http://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.gz.asc
Source2: puppet-nm-dispatcher Source2: puppet-nm-dispatcher
Patch0: puppetmaster-old-client-compat.patch
Group: System Environment/Base Group: System Environment/Base
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -103,6 +105,7 @@ The server can also function as a certificate authority and file server.
%prep %prep
%setup -q %setup -q
%patch0 -p1
patch -s -p1 < %{confdir}/rundir-perms.patch patch -s -p1 < %{confdir}/rundir-perms.patch
# Fix some rpmlint complaints # Fix some rpmlint complaints
@ -345,6 +348,9 @@ fi
rm -rf %{buildroot} rm -rf %{buildroot}
%changelog %changelog
* Thu Mar 7 2013 Daniel Drake <dsd@laptop.org> - 3.1.0-2
- Improve server compatibility with old puppet clients (#831303)
* Mon Feb 11 2013 Sam Kottler <shk@redhat.com> - 3.1.0-1 * Mon Feb 11 2013 Sam Kottler <shk@redhat.com> - 3.1.0-1
- Update to 3.1.0 - Update to 3.1.0

@ -0,0 +1,39 @@
From ec462b7b974fc34110437010f862780fb2ee39a3 Mon Sep 17 00:00:00 2001
From: Daniel Drake <dsd@laptop.org>
Date: Thu, 14 Feb 2013 15:05:10 -0600
Subject: [PATCH] (#18781) Be more tolerant of old clients in WEBrick server
In #18781 and #6117 there are cases of relatively simplistic puppet
setups failing between old versions of the puppet client (which
always use HTTP GET) and new versions of the puppet WEBrick server
(which has a relatively low limit on the size of a valid GET: 2083
bytes).
While there are other non-WEBrick server options available, WEBrick
has the advantage of simplicity, so it would be nice to keep it working.
Here we patch the WEBrick constant which specifies the maximum size of
a HTTP GET request, increasing it to a value that should work for common
setups.
---
lib/puppet/util/monkey_patches.rb | 9 +++++++++
1 file changed, 9 insertions(+)
Index: puppet-3.1.0/lib/puppet/util/monkey_patches.rb
===================================================================
--- puppet-3.1.0.orig/lib/puppet/util/monkey_patches.rb
+++ puppet-3.1.0/lib/puppet/util/monkey_patches.rb
@@ -356,3 +356,13 @@ unless Dir.respond_to?(:mktmpdir)
end
end
end
+
+# Old puppet clients may make large GET requests, lets be reasonably tolerant
+# in our default WEBrick server.
+require 'webrick'
+if defined?(WEBrick::HTTPRequest::MAX_URI_LENGTH) and WEBrick::HTTPRequest::MAX_URI_LENGTH < 8192
+ # Silence ruby warning: already initialized constant MAX_URI_LENGTH
+ v, $VERBOSE = $VERBOSE, nil
+ WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 8192)
+ $VERBOSE = v
+end
Loading…
Cancel
Save