From 349a3aaf5b33406445d394922813cf60b5d3264d Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Fri, 11 Aug 2000 06:39:53 +0000
Subject: [PATCH] Made it possible to replace the Content-Type: and
 Content-Length: headers curl issues when doing a regular HTTP post. This
 should not be taken light- heartedly though. Replacing them might get you
 into trouble!

---
 lib/http.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/lib/http.c b/lib/http.c
index d05e73cf07..fae22816f9 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -481,12 +481,23 @@ CURLcode http(struct connectdata *conn)
     }
     else {
       if(data->bits.http_post) {
-        /* this is the simple x-www-form-urlencoded style */
+        /* this is the simple POST, using x-www-form-urlencoded style */
+
+        if(!checkheaders(data, "Content-Length:"))
+          /* we allow replacing this header, although it isn't very wise to
+             actually set your own */
+          sendf(data->firstsocket, data,
+                "Content-Length: %d\r\n",
+                strlen(data->postfields));
+
+        if(!checkheaders(data, "Content-Type:"))
+          sendf(data->firstsocket, data,
+                "Content-Type: application/x-www-form-urlencoded\r\n");
+
+        /* and here comes the actual data */
         sendf(data->firstsocket, data,
-              "Content-Length: %d\015\012"
-              "Content-Type: application/x-www-form-urlencoded\r\n\r\n"
+              "\r\n"
               "%s\r\n",
-              strlen(data->postfields),
               data->postfields );
       }
       else
-- 
GitLab