summary refs log tree commit diff
diff options
context:
space:
mode:
authorNakidai <nakidai@disroot.org>2024-09-27 21:30:39 +0300
committerNakidai <nakidai@disroot.org>2024-09-27 21:30:39 +0300
commite974e8ce246ebe70b557ccf8bbec5b12486fd2fe (patch)
tree7d5b6d897eea97245b60fca95c5f9e83750df15b
parent69364cdab01da4642ed14b3e3aa64ecea653cd71 (diff)
downloadcptc-e974e8ce246ebe70b557ccf8bbec5b12486fd2fe.tar.gz
cptc-e974e8ce246ebe70b557ccf8bbec5b12486fd2fe.zip
Add support for HEAD
-rw-r--r--requestHandler.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/requestHandler.c b/requestHandler.c
index 8e1dd18..9ce2c4a 100644
--- a/requestHandler.c
+++ b/requestHandler.c
@@ -72,7 +72,8 @@ void CPTC_requestHandler(int fd)
         strcat(response, length);
         strcat(response, "\r\n");
         send(fd, response, strlen(response), 0);
-        send(fd, CPTC_root, strlen(CPTC_root), 0);
+        if (method == CPTC_GET)
+            send(fd, CPTC_root, strlen(CPTC_root), 0);
         free(length);
         return;
     }
@@ -115,21 +116,24 @@ void CPTC_requestHandler(int fd)
         strcat(response, length);
         strcat(response, "\r\n");
         send(fd, response, strlen(response), 0);
-        responseadd = response;
-        while ((ch = getc(fp)) >= 0)
+        if (method == CPTC_GET)
         {
-            *responseadd++ = ch;
-            if (responseadd == response + sizeof(response))
+            responseadd = response;
+            while ((ch = getc(fp)) >= 0)
             {
-                if (send(fd, response, sizeof(response), 0) < 0)
+                *responseadd++ = ch;
+                if (responseadd == response + sizeof(response))
                 {
-                    perror("send()");
-                    goto err_send;
+                    if (send(fd, response, sizeof(response), 0) < 0)
+                    {
+                        perror("send()");
+                        goto err_send;
+                    }
+                    responseadd = response;
                 }
-                responseadd = response;
             }
+            send(fd, response, responseadd - response, 0);
         }
-        send(fd, response, responseadd - response, 0);
 
 err_send:
         fclose(fp);