aboutsummaryrefslogtreecommitdiff
path: root/src/smtp.lua
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2003-05-25 01:54:13 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2003-05-25 01:54:13 +0000
commit0f6c8d50a99997ac7829864b1c93362b50f1bbf3 (patch)
treed0cefe3a05484e65b7b7e79d8cae4a1d2e6d19fb /src/smtp.lua
parentc1ef3e7103cc652d2004ef1ddc9409b946207f33 (diff)
downloadluasocket-0f6c8d50a99997ac7829864b1c93362b50f1bbf3.tar.gz
luasocket-0f6c8d50a99997ac7829864b1c93362b50f1bbf3.tar.bz2
luasocket-0f6c8d50a99997ac7829864b1c93362b50f1bbf3.zip
Porting to LUA 5.0 final
Diffstat (limited to 'src/smtp.lua')
-rw-r--r--src/smtp.lua39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/smtp.lua b/src/smtp.lua
index 0ba2b0f..604f79b 100644
--- a/src/smtp.lua
+++ b/src/smtp.lua
@@ -7,7 +7,8 @@
7----------------------------------------------------------------------------- 7-----------------------------------------------------------------------------
8 8
9local Public, Private = {}, {} 9local Public, Private = {}, {}
10socket.smtp = Public 10local socket = _G[LUASOCKET_LIBNAME] -- get LuaSocket namespace
11socket.smtp = Public -- create smtp sub namespace
11 12
12----------------------------------------------------------------------------- 13-----------------------------------------------------------------------------
13-- Program constants 14-- Program constants
@@ -23,32 +24,30 @@ Public.DOMAIN = os.getenv("SERVER_NAME") or "localhost"
23Public.SERVER = "localhost" 24Public.SERVER = "localhost"
24 25
25----------------------------------------------------------------------------- 26-----------------------------------------------------------------------------
26-- Tries to send data through socket. Closes socket on error. 27-- Tries to get a pattern from the server and closes socket on error
27-- Input 28-- sock: socket connected to the server
28-- sock: server socket 29-- pattern: pattern to receive
29-- data: string to be sent
30-- Returns 30-- Returns
31-- err: message in case of error, nil if successfull 31-- received pattern on success
32-- nil followed by error message on error
32----------------------------------------------------------------------------- 33-----------------------------------------------------------------------------
33function Private.try_send(sock, data) 34function Private.try_receive(sock, pattern)
34 local err = sock:send(data) 35 local data, err = sock:receive(pattern)
35 if err then sock:close() end 36 if not data then sock:close() end
36 return err 37 return data, err
37end 38end
38 39
39----------------------------------------------------------------------------- 40-----------------------------------------------------------------------------
40-- Tries to get a pattern from the server and closes socket on error 41-- Tries to send data to the server and closes socket on error
41-- sock: socket opened to the server 42-- sock: socket connected to the server
42-- ...: pattern to receive 43-- data: data to send
43-- Returns 44-- Returns
44-- ...: received pattern 45-- err: error message if any, nil if successfull
45-- err: error message if any
46----------------------------------------------------------------------------- 46-----------------------------------------------------------------------------
47function Private.try_receive(...) 47function Private.try_send(sock, data)
48 local sock = arg[1] 48 local sent, err = sock:send(data)
49 local data, err = sock.receive(unpack(arg)) 49 if not sent then sock:close() end
50 if err then sock:close() end 50 return err
51 return data, err
52end 51end
53 52
54----------------------------------------------------------------------------- 53-----------------------------------------------------------------------------