diff options
author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2002-12-02 23:34:41 +0000 |
---|---|---|
committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2002-12-02 23:34:41 +0000 |
commit | d7e80592a69c076991ed4f4cc15d5390e14d1f0b (patch) | |
tree | 5fd9c99742b4a03e6a66f940a1f86f98d4db50c8 /src/http.lua | |
parent | b796207ce06a66b04cce6686b3fa664c06703995 (diff) | |
download | luasocket-d7e80592a69c076991ed4f4cc15d5390e14d1f0b.tar.gz luasocket-d7e80592a69c076991ed4f4cc15d5390e14d1f0b.tar.bz2 luasocket-d7e80592a69c076991ed4f4cc15d5390e14d1f0b.zip |
Already compiling and running for Lua 5.0 (alpha)
Diffstat (limited to 'src/http.lua')
-rw-r--r-- | src/http.lua | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/http.lua b/src/http.lua index 9832a6b..dce3ac8 100644 --- a/src/http.lua +++ b/src/http.lua | |||
@@ -32,7 +32,7 @@ Public.BLOCKSIZE = 8192 | |||
32 | ----------------------------------------------------------------------------- | 32 | ----------------------------------------------------------------------------- |
33 | function Private.try_receive(...) | 33 | function Private.try_receive(...) |
34 | local sock = arg[1] | 34 | local sock = arg[1] |
35 | local data, err = call(sock.receive, arg) | 35 | local data, err = sock.receive(unpack(arg)) |
36 | if err then | 36 | if err then |
37 | sock:close() | 37 | sock:close() |
38 | return nil, err | 38 | return nil, err |
@@ -62,7 +62,7 @@ end | |||
62 | ----------------------------------------------------------------------------- | 62 | ----------------------------------------------------------------------------- |
63 | function Private.get_statuscode(line) | 63 | function Private.get_statuscode(line) |
64 | local code, _ | 64 | local code, _ |
65 | _, _, code = strfind(line, "HTTP/%d*%.%d* (%d%d%d)") | 65 | _, _, code = string.find(line, "HTTP/%d*%.%d* (%d%d%d)") |
66 | return tonumber(code) | 66 | return tonumber(code) |
67 | end | 67 | end |
68 | 68 | ||
@@ -102,17 +102,17 @@ function Private.receive_headers(sock, headers) | |||
102 | -- headers go until a blank line is found | 102 | -- headers go until a blank line is found |
103 | while line ~= "" do | 103 | while line ~= "" do |
104 | -- get field-name and value | 104 | -- get field-name and value |
105 | _,_, name, value = strfind(line, "^(.-):%s*(.*)") | 105 | _,_, name, value = string.find(line, "^(.-):%s*(.*)") |
106 | if not name or not value then | 106 | if not name or not value then |
107 | sock:close() | 107 | sock:close() |
108 | return nil, "malformed reponse headers" | 108 | return nil, "malformed reponse headers" |
109 | end | 109 | end |
110 | name = strlower(name) | 110 | name = string.lower(name) |
111 | -- get next line (value might be folded) | 111 | -- get next line (value might be folded) |
112 | line, err = Private.try_receive(sock) | 112 | line, err = Private.try_receive(sock) |
113 | if err then return nil, err end | 113 | if err then return nil, err end |
114 | -- unfold any folded values | 114 | -- unfold any folded values |
115 | while not err and strfind(line, "^%s") do | 115 | while not err and string.find(line, "^%s") do |
116 | value = value .. line | 116 | value = value .. line |
117 | line, err = Private.try_receive(sock) | 117 | line, err = Private.try_receive(sock) |
118 | if err then return nil, err end | 118 | if err then return nil, err end |
@@ -142,7 +142,7 @@ function Private.receivebody_bychunks(sock, headers, receive_cb) | |||
142 | local go, uerr = receive_cb(nil, err) | 142 | local go, uerr = receive_cb(nil, err) |
143 | return uerr or err | 143 | return uerr or err |
144 | end | 144 | end |
145 | size = tonumber(gsub(line, ";.*", ""), 16) | 145 | size = tonumber(string.gsub(line, ";.*", ""), 16) |
146 | if not size then | 146 | if not size then |
147 | err = "invalid chunk size" | 147 | err = "invalid chunk size" |
148 | sock:close() | 148 | sock:close() |
@@ -299,7 +299,7 @@ function Private.send_indirect(data, send_cb, chunk, size) | |||
299 | data:close() | 299 | data:close() |
300 | return err | 300 | return err |
301 | end | 301 | end |
302 | sent = sent + strlen(chunk) | 302 | sent = sent + string.len(chunk) |
303 | if sent >= size then break end | 303 | if sent >= size then break end |
304 | chunk, size = send_cb() | 304 | chunk, size = send_cb() |
305 | end | 305 | end |
@@ -391,7 +391,7 @@ function Private.fill_headers(headers, parsed) | |||
391 | lower["user-agent"] = Public.USERAGENT | 391 | lower["user-agent"] = Public.USERAGENT |
392 | -- override with user values | 392 | -- override with user values |
393 | for i,v in headers do | 393 | for i,v in headers do |
394 | lower[strlower(i)] = v | 394 | lower[string.lower(i)] = v |
395 | end | 395 | end |
396 | lower["host"] = parsed.host | 396 | lower["host"] = parsed.host |
397 | -- this cannot be overriden | 397 | -- this cannot be overriden |
@@ -554,7 +554,7 @@ function Public.request_cb(request, response) | |||
554 | request.headers = Private.fill_headers(request.headers, parsed) | 554 | request.headers = Private.fill_headers(request.headers, parsed) |
555 | -- try to connect to server | 555 | -- try to connect to server |
556 | local sock | 556 | local sock |
557 | sock, response.error = connect(parsed.host, parsed.port) | 557 | sock, response.error = socket.connect(parsed.host, parsed.port) |
558 | if not sock then return response end | 558 | if not sock then return response end |
559 | -- set connection timeout so that we do not hang forever | 559 | -- set connection timeout so that we do not hang forever |
560 | sock:timeout(Public.TIMEOUT) | 560 | sock:timeout(Public.TIMEOUT) |
@@ -619,7 +619,7 @@ function Public.request(request) | |||
619 | local response = {} | 619 | local response = {} |
620 | if request.body then | 620 | if request.body then |
621 | request.body_cb = function() | 621 | request.body_cb = function() |
622 | return request.body, strlen(request.body) | 622 | return request.body, string.len(request.body) |
623 | end | 623 | end |
624 | end | 624 | end |
625 | local cat = Concat.create() | 625 | local cat = Concat.create() |