diff options
| author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2003-05-25 01:54:13 +0000 |
|---|---|---|
| committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2003-05-25 01:54:13 +0000 |
| commit | 0f6c8d50a99997ac7829864b1c93362b50f1bbf3 (patch) | |
| tree | d0cefe3a05484e65b7b7e79d8cae4a1d2e6d19fb /src/smtp.lua | |
| parent | c1ef3e7103cc652d2004ef1ddc9409b946207f33 (diff) | |
| download | luasocket-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.lua | 39 |
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 | ||
| 9 | local Public, Private = {}, {} | 9 | local Public, Private = {}, {} |
| 10 | socket.smtp = Public | 10 | local socket = _G[LUASOCKET_LIBNAME] -- get LuaSocket namespace |
| 11 | socket.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" | |||
| 23 | Public.SERVER = "localhost" | 24 | Public.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 | ----------------------------------------------------------------------------- |
| 33 | function Private.try_send(sock, data) | 34 | function 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 |
| 37 | end | 38 | end |
| 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 | ----------------------------------------------------------------------------- |
| 47 | function Private.try_receive(...) | 47 | function 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 | ||
| 52 | end | 51 | end |
| 53 | 52 | ||
| 54 | ----------------------------------------------------------------------------- | 53 | ----------------------------------------------------------------------------- |
