- Lauri
>From 4f637b87582ba72076784151b66f072d39632feb Mon Sep 17 00:00:00 2001
From: Lauri Kasanen <[email protected]>
Date: Sun, 17 Jun 2012 17:14:48 +0300
Subject: [PATCH 2/3] http: Mark range_set, range_parse as static


Signed-off-by: Lauri Kasanen <[email protected]>
---
 src/include/mk_http.h |    2 -
 src/mk_http.c         |  202 ++++++++++++++++++++++++------------------------
 2 files changed, 101 insertions(+), 103 deletions(-)

diff --git a/src/include/mk_http.h b/src/include/mk_http.h
index 48b2d63..8e7acef 100644
--- a/src/include/mk_http.h
+++ b/src/include/mk_http.h
@@ -72,8 +72,6 @@ mk_pointer mk_http_protocol_check_str(int protocol);
 
 int mk_http_init(struct client_session *cs, struct session_request *sr);
 int mk_http_keepalive_check(struct client_session *cs);
-int mk_http_range_set(struct session_request *sr, long file_size);
-int mk_http_range_parse(struct session_request *sr);
 
 int mk_http_pending_request(struct client_session *cs);
 int mk_http_send_file(struct client_session *cs, struct session_request *sr);
diff --git a/src/mk_http.c b/src/mk_http.c
index af889df..e3e1c35 100644
--- a/src/mk_http.c
+++ b/src/mk_http.c
@@ -103,6 +103,107 @@ mk_pointer mk_http_method_check_str(int method)
     return mk_http_method_null_p;
 }
 
+static int mk_http_range_set(struct session_request *sr, long file_size)
+{
+    struct response_headers *sh = &sr->headers;
+
+    sr->bytes_to_send = file_size;
+    sr->bytes_offset = 0;
+
+    if (config->resume == MK_TRUE && sr->range.data) {
+        /* yyy- */
+        if (sh->ranges[0] >= 0 && sh->ranges[1] == -1) {
+            sr->bytes_offset = sh->ranges[0];
+            sr->bytes_to_send = file_size - sr->bytes_offset;
+        }
+
+        /* yyy-xxx */
+        if (sh->ranges[0] >= 0 && sh->ranges[1] >= 0) {
+            sr->bytes_offset = sh->ranges[0];
+            sr->bytes_to_send = labs(sh->ranges[1] - sh->ranges[0]) + 1;
+        }
+
+        /* -xxx */
+        if (sh->ranges[0] == -1 && sh->ranges[1] > 0) {
+            sr->bytes_to_send = sh->ranges[1];
+            sr->bytes_offset = file_size - sh->ranges[1];
+        }
+
+        if (sr->bytes_offset > file_size || sr->bytes_to_send > file_size) {
+            return -1;
+        }
+
+        lseek(sr->fd_file, sr->bytes_offset, SEEK_SET);
+    }
+    return 0;
+
+
+}
+
+static int mk_http_range_parse(struct session_request *sr)
+{
+    int eq_pos, sep_pos, len;
+    char *buffer = 0;
+    struct response_headers *sh;
+
+    if (!sr->range.data)
+        return -1;
+
+    if ((eq_pos = mk_string_char_search(sr->range.data, '=', sr->range.len)) < 
0)
+        return -1;
+
+    if (strncasecmp(sr->range.data, "Bytes", eq_pos) != 0)
+        return -1;
+
+    if ((sep_pos = mk_string_char_search(sr->range.data, '-', sr->range.len)) 
< 0)
+        return -1;
+
+    len = sr->range.len;
+    sh = &sr->headers;
+
+    /* =-xxx */
+    if (eq_pos + 1 == sep_pos) {
+        sh->ranges[0] = -1;
+        sh->ranges[1] = (unsigned long) atol(sr->range.data + sep_pos + 1);
+
+        if (sh->ranges[1] <= 0) {
+            return -1;
+        }
+
+        sh->content_length = sh->ranges[1];
+        return 0;
+    }
+
+    /* =yyy-xxx */
+    if ((eq_pos + 1 != sep_pos) && (len > sep_pos + 1)) {
+        buffer = mk_string_copy_substr(sr->range.data, eq_pos + 1, sep_pos);
+        sh->ranges[0] = (unsigned long) atol(buffer);
+        mk_mem_free(buffer);
+
+        buffer = mk_string_copy_substr(sr->range.data, sep_pos + 1, len);
+        sh->ranges[1] = (unsigned long) atol(buffer);
+        mk_mem_free(buffer);
+
+        if (sh->ranges[1] <= 0 || (sh->ranges[0] > sh->ranges[1])) {
+            return -1;
+        }
+
+        sh->content_length = abs(sh->ranges[1] - sh->ranges[0]) + 1;
+        return 0;
+    }
+    /* =yyy- */
+    if ((eq_pos + 1 != sep_pos) && (len == sep_pos + 1)) {
+        buffer = mk_string_copy_substr(sr->range.data, eq_pos + 1, len);
+        sr->headers.ranges[0] = (unsigned long) atol(buffer);
+        mk_mem_free(buffer);
+
+        sh->content_length = (sh->content_length - sh->ranges[0]);
+        return 0;
+    }
+
+    return -1;
+}
+
 int mk_http_method_get(char *body)
 {
     int int_method, pos = 0;
@@ -546,107 +647,6 @@ int mk_http_keepalive_check(struct client_session *cs)
     return 0;
 }
 
-int mk_http_range_set(struct session_request *sr, long file_size)
-{
-    struct response_headers *sh = &sr->headers;
-
-    sr->bytes_to_send = file_size;
-    sr->bytes_offset = 0;
-
-    if (config->resume == MK_TRUE && sr->range.data) {
-        /* yyy- */
-        if (sh->ranges[0] >= 0 && sh->ranges[1] == -1) {
-            sr->bytes_offset = sh->ranges[0];
-            sr->bytes_to_send = file_size - sr->bytes_offset;
-        }
-
-        /* yyy-xxx */
-        if (sh->ranges[0] >= 0 && sh->ranges[1] >= 0) {
-            sr->bytes_offset = sh->ranges[0];
-            sr->bytes_to_send = labs(sh->ranges[1] - sh->ranges[0]) + 1;
-        }
-
-        /* -xxx */
-        if (sh->ranges[0] == -1 && sh->ranges[1] > 0) {
-            sr->bytes_to_send = sh->ranges[1];
-            sr->bytes_offset = file_size - sh->ranges[1];
-        }
-
-        if (sr->bytes_offset > file_size || sr->bytes_to_send > file_size) {
-            return -1;
-        }
-
-        lseek(sr->fd_file, sr->bytes_offset, SEEK_SET);
-    }
-    return 0;
-
-
-}
-
-int mk_http_range_parse(struct session_request *sr)
-{
-    int eq_pos, sep_pos, len;
-    char *buffer = 0;
-    struct response_headers *sh;
-
-    if (!sr->range.data)
-        return -1;
-
-    if ((eq_pos = mk_string_char_search(sr->range.data, '=', sr->range.len)) < 
0)
-        return -1;
-
-    if (strncasecmp(sr->range.data, "Bytes", eq_pos) != 0)
-        return -1;
-
-    if ((sep_pos = mk_string_char_search(sr->range.data, '-', sr->range.len)) 
< 0)
-        return -1;
-
-    len = sr->range.len;
-    sh = &sr->headers;
-
-    /* =-xxx */
-    if (eq_pos + 1 == sep_pos) {
-        sh->ranges[0] = -1;
-        sh->ranges[1] = (unsigned long) atol(sr->range.data + sep_pos + 1);
-
-        if (sh->ranges[1] <= 0) {
-            return -1;
-        }
-
-        sh->content_length = sh->ranges[1];
-        return 0;
-    }
-
-    /* =yyy-xxx */
-    if ((eq_pos + 1 != sep_pos) && (len > sep_pos + 1)) {
-        buffer = mk_string_copy_substr(sr->range.data, eq_pos + 1, sep_pos);
-        sh->ranges[0] = (unsigned long) atol(buffer);
-        mk_mem_free(buffer);
-
-        buffer = mk_string_copy_substr(sr->range.data, sep_pos + 1, len);
-        sh->ranges[1] = (unsigned long) atol(buffer);
-        mk_mem_free(buffer);
-
-        if (sh->ranges[1] <= 0 || (sh->ranges[0] > sh->ranges[1])) {
-            return -1;
-        }
-
-        sh->content_length = abs(sh->ranges[1] - sh->ranges[0]) + 1;
-        return 0;
-    }
-    /* =yyy- */
-    if ((eq_pos + 1 != sep_pos) && (len == sep_pos + 1)) {
-        buffer = mk_string_copy_substr(sr->range.data, eq_pos + 1, len);
-        sr->headers.ranges[0] = (unsigned long) atol(buffer);
-        mk_mem_free(buffer);
-
-        sh->content_length = (sh->content_length - sh->ranges[0]);
-        return 0;
-    }
-
-    return -1;
-}
-
 /*
  * Check if client request still has pending data
  *
-- 
1.7.2.1

_______________________________________________
Monkey mailing list
[email protected]
http://lists.monkey-project.com/listinfo/monkey

Reply via email to