$OpenBSD: patch-lib_puppet_network_http_mongrel_rest_rb,v 1.1 2011/11/24 18:45:14 robert Exp $
--- lib/puppet/network/http/mongrel/rest.rb.orig	Thu Nov 24 19:44:09 2011
+++ lib/puppet/network/http/mongrel/rest.rb	Thu Nov 24 19:44:03 2011
@@ -28,6 +28,8 @@ class Puppet::Network::HTTP::MongrelREST < Mongrel::Ht
   # testing purposes.
   def params(request)
     params = Mongrel::HttpRequest.query_parse(request.params["QUERY_STRING"])
+    params.merge!(Mongrel::HttpRequest.query_parse(body(request))) if http_method(request).upcase == 'POST'
+
     params = decode_params(params)
     params.merge(client_info(request))
   end
@@ -41,7 +43,12 @@ class Puppet::Network::HTTP::MongrelREST < Mongrel::Ht
 
   # return the request body
   def body(request)
-    request.body.read
+    body = request.body.read
+    # We rewind the body, since read on a StringIO is destructive, and
+    # subsequent reads will return an empty string.
+    request.body.rewind
+
+    body
   end
 
   def set_content_type(response, format)
