Improve compat with old clients

epel9
Daniel Drake 12 years ago
parent 77fca2933e
commit 821adb9431

@ -20,7 +20,7 @@
Name: puppet Name: puppet
Version: 3.0.2 Version: 3.0.2
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
@ -349,6 +352,9 @@ fi
rm -rf %{buildroot} rm -rf %{buildroot}
%changelog %changelog
* Thu Mar 7 2013 Daniel Drake <dsd@laptop.org> - 3.0.2-2
- Improve server compatibility with old puppet clients (#831303)
* Tue Oct 30 2012 Moses Mendoza <moses@puppetlabs.com> - 3.0.2-1 * Tue Oct 30 2012 Moses Mendoza <moses@puppetlabs.com> - 3.0.2-1
- Update to 3.0.2 - Update to 3.0.2
- Update new dependencies (ruby >= 1.8.7, facter >= 1.6.6, hiera >= 1.0.0) - Update new dependencies (ruby >= 1.8.7, facter >= 1.6.6, hiera >= 1.0.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.0.2/lib/puppet/util/monkey_patches.rb
===================================================================
--- puppet-3.0.2.orig/lib/puppet/util/monkey_patches.rb
+++ puppet-3.0.2/lib/puppet/util/monkey_patches.rb
@@ -310,3 +310,13 @@ if RUBY_VERSION == '1.8.5'
module_function :move
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