diff options
author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2011-05-25 20:57:22 +0000 |
---|---|---|
committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2011-05-25 20:57:22 +0000 |
commit | 3a8ba90dfb0c2eb224f317dd692ede426691e72a (patch) | |
tree | fe1cc5379a2e0e031663fe9c15d908653844bc73 /src/mbox.lua | |
parent | bce60be30fe8e9c1b0eb33128c23c93d7bca5303 (diff) | |
download | luasocket-3a8ba90dfb0c2eb224f317dd692ede426691e72a.tar.gz luasocket-3a8ba90dfb0c2eb224f317dd692ede426691e72a.tar.bz2 luasocket-3a8ba90dfb0c2eb224f317dd692ede426691e72a.zip |
Saving before big changes to support IPv6.
Diffstat (limited to 'src/mbox.lua')
-rw-r--r-- | src/mbox.lua | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/src/mbox.lua b/src/mbox.lua index ce6537c..b7d4a2a 100644 --- a/src/mbox.lua +++ b/src/mbox.lua | |||
@@ -5,10 +5,10 @@ mbox = Public | |||
5 | function Public.split_message(message_s) | 5 | function Public.split_message(message_s) |
6 | local message = {} | 6 | local message = {} |
7 | message_s = string.gsub(message_s, "\r\n", "\n") | 7 | message_s = string.gsub(message_s, "\r\n", "\n") |
8 | string.gsub(message_s, "^(.-\n)\n", function (h) message.headers = h end) | 8 | string.gsub(message_s, "^(.-\n)\n", function (h) message.headers = h end) |
9 | string.gsub(message_s, "^.-\n\n(.*)", function (b) message.body = b end) | 9 | string.gsub(message_s, "^.-\n\n(.*)", function (b) message.body = b end) |
10 | if not message.body then | 10 | if not message.body then |
11 | string.gsub(message_s, "^\n(.*)", function (b) message.body = b end) | 11 | string.gsub(message_s, "^\n(.*)", function (b) message.body = b end) |
12 | end | 12 | end |
13 | if not message.headers and not message.body then | 13 | if not message.headers and not message.body then |
14 | message.headers = message_s | 14 | message.headers = message_s |
@@ -54,30 +54,30 @@ function Public.parse_from(from) | |||
54 | name = name or "" | 54 | name = name or "" |
55 | address = address or "" | 55 | address = address or "" |
56 | if name == "" then name = address end | 56 | if name == "" then name = address end |
57 | name = string.gsub(name, '"', "") | 57 | name = string.gsub(name, '"', "") |
58 | return name, address | 58 | return name, address |
59 | end | 59 | end |
60 | 60 | ||
61 | function Public.split_mbox(mbox_s) | 61 | function Public.split_mbox(mbox_s) |
62 | mbox = {} | 62 | mbox = {} |
63 | mbox_s = string.gsub(mbox_s, "\r\n", "\n") .."\n\nFrom \n" | 63 | mbox_s = string.gsub(mbox_s, "\r\n", "\n") .."\n\nFrom \n" |
64 | local nj, i, j = 1, 1, 1 | 64 | local nj, i, j = 1, 1, 1 |
65 | while 1 do | 65 | while 1 do |
66 | i, nj = string.find(mbox_s, "\n\nFrom .-\n", j) | 66 | i, nj = string.find(mbox_s, "\n\nFrom .-\n", j) |
67 | if not i then break end | 67 | if not i then break end |
68 | local message = string.sub(mbox_s, j, i-1) | 68 | local message = string.sub(mbox_s, j, i-1) |
69 | table.insert(mbox, message) | 69 | table.insert(mbox, message) |
70 | j = nj+1 | 70 | j = nj+1 |
71 | end | 71 | end |
72 | return mbox | 72 | return mbox |
73 | end | 73 | end |
74 | 74 | ||
75 | function Public.parse(mbox_s) | 75 | function Public.parse(mbox_s) |
76 | local mbox = Public.split_mbox(mbox_s) | 76 | local mbox = Public.split_mbox(mbox_s) |
77 | for i = 1, table.getn(mbox) do | 77 | for i = 1, table.getn(mbox) do |
78 | mbox[i] = Public.parse_message(mbox[i]) | 78 | mbox[i] = Public.parse_message(mbox[i]) |
79 | end | 79 | end |
80 | return mbox | 80 | return mbox |
81 | end | 81 | end |
82 | 82 | ||
83 | function Public.parse_message(message_s) | 83 | function Public.parse_message(message_s) |