aboutsummaryrefslogtreecommitdiff
path: root/src/mbox.lua
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2011-05-25 20:57:22 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2011-05-25 20:57:22 +0000
commit3a8ba90dfb0c2eb224f317dd692ede426691e72a (patch)
treefe1cc5379a2e0e031663fe9c15d908653844bc73 /src/mbox.lua
parentbce60be30fe8e9c1b0eb33128c23c93d7bca5303 (diff)
downloadluasocket-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.lua40
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
5function Public.split_message(message_s) 5function 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
59end 59end
60 60
61function Public.split_mbox(mbox_s) 61function 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
73end 73end
74 74
75function Public.parse(mbox_s) 75function 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
81end 81end
82 82
83function Public.parse_message(message_s) 83function Public.parse_message(message_s)