Fixes to event_http_server for examples

Set Content-Length on responses. Otherwise e.g. curl will wait forever
for the connection to close.
Set request data to request body only, instead of full request. Parsing
of any local commands would fail previously.

BUG: 27437132

Change-Id: Iba8ebb429ec3430d32d8a166dcc6985a5f79562e
Reviewed-on: https://weave-review.googlesource.com/2781
Reviewed-by: Dave Paul <davepaul@google.com>
(cherry picked from commit b18bead3cc5cf1f53555a9bcb2442f1f72475f8c)
Reviewed-on: https://weave-review.googlesource.com/2796
Reviewed-by: Vitaly Buka <vitalybuka@google.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 0bb7f26..66a9132 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -16,6 +16,7 @@
 Chris Sosa <sosa@google.com>
 Christopher Wiley <wiley@google.com>
 Daniel Erat <derat@google.com>
+David Paul <davepaul@google.com>
 David Zeuthen <zeuthen@google.com>
 Gene Gutnik <gene@google.com>
 Gerry Fan <gfan@google.com>
diff --git a/examples/provider/event_http_server.cc b/examples/provider/event_http_server.cc
index c058401..48faab1 100644
--- a/examples/provider/event_http_server.cc
+++ b/examples/provider/event_http_server.cc
@@ -30,8 +30,7 @@
 class HttpServerImpl::RequestImpl : public Request {
  public:
   RequestImpl(EventPtr<evhtp_request_t> req) : req_(std::move(req)) {
-    evbuf_t* input_buffer =
-        bufferevent_get_input(evhtp_request_get_bev(req_.get()));
+    evbuf_t* input_buffer = req_.get()->buffer_in;
     data_.resize(evbuffer_get_length(input_buffer));
     evbuffer_remove(input_buffer, &data_[0], data_.size());
   }
@@ -56,6 +55,9 @@
     evbuffer_add(buf.get(), data.data(), data.size());
     evhtp_header_key_add(req_->headers_out, "Content-Type", 0);
     evhtp_header_val_add(req_->headers_out, mime_type.c_str(), 1);
+    evhtp_header_key_add(req_->headers_out, "Content-Length", 0);
+    std::string content_length = std::to_string(evbuffer_get_length(buf.get()));
+    evhtp_header_val_add(req_->headers_out, content_length.c_str(), 1);
     evhtp_send_reply_start(req_.get(), status_code);
     evhtp_send_reply_body(req_.get(), buf.get());
     evhtp_send_reply_end(req_.get());