diff options
author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-11-27 07:58:04 +0000 |
---|---|---|
committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-11-27 07:58:04 +0000 |
commit | 7c97e8e40aaa665226fb54449773dc3134e755b2 (patch) | |
tree | 47888d4c924fc24bf3b355bf58120ea3cdc74bc4 /etc/lp.lua | |
parent | eb0fc857ddea6f084d338589e2a33d3e7d4eade6 (diff) | |
download | luasocket-7c97e8e40aaa665226fb54449773dc3134e755b2.tar.gz luasocket-7c97e8e40aaa665226fb54449773dc3134e755b2.tar.bz2 luasocket-7c97e8e40aaa665226fb54449773dc3134e755b2.zip |
Almost ready for beta3
Diffstat (limited to 'etc/lp.lua')
-rw-r--r-- | etc/lp.lua | 23 |
1 files changed, 14 insertions, 9 deletions
@@ -9,9 +9,12 @@ | |||
9 | if you have any questions: RFC 1179 | 9 | if you have any questions: RFC 1179 |
10 | ]] | 10 | ]] |
11 | -- make sure LuaSocket is loaded | 11 | -- make sure LuaSocket is loaded |
12 | local io = require("io") | ||
13 | local base = require("base") | ||
14 | local string = require("string") | ||
12 | local socket = require("socket") | 15 | local socket = require("socket") |
13 | local ltn12 = require("ltn12") | 16 | local ltn12 = require("ltn12") |
14 | local test = socket.try | 17 | local lp = module("socket.lp") |
15 | 18 | ||
16 | -- default port | 19 | -- default port |
17 | PORT = 515 | 20 | PORT = 515 |
@@ -28,7 +31,7 @@ local function connect(localhost, option) | |||
28 | local localport = 721 | 31 | local localport = 721 |
29 | local done, err | 32 | local done, err |
30 | repeat | 33 | repeat |
31 | skt = test(socket.tcp()) | 34 | skt = socket.try(socket.tcp()) |
32 | try(skt:settimeout(30)) | 35 | try(skt:settimeout(30)) |
33 | done, err = skt:bind(localhost, localport) | 36 | done, err = skt:bind(localhost, localport) |
34 | if not done then | 37 | if not done then |
@@ -37,8 +40,8 @@ local function connect(localhost, option) | |||
37 | skt = nil | 40 | skt = nil |
38 | else break end | 41 | else break end |
39 | until localport > 731 | 42 | until localport > 731 |
40 | test(skt, err) | 43 | socket.try(skt, err) |
41 | else skt = test(socket.tcp()) end | 44 | else skt = socket.try(socket.tcp()) end |
42 | try(skt:connect(host, port)) | 45 | try(skt:connect(host, port)) |
43 | return { skt = skt, try = try } | 46 | return { skt = skt, try = try } |
44 | end | 47 | end |
@@ -241,9 +244,9 @@ local format_codes = { | |||
241 | -- lp.send | 244 | -- lp.send |
242 | 245 | ||
243 | send = socket.protect(function(file, option) | 246 | send = socket.protect(function(file, option) |
244 | test(file, "invalid file name") | 247 | socket.try(file, "invalid file name") |
245 | test(option and type(option) == "table", "invalid options") | 248 | socket.try(option and base.type(option) == "table", "invalid options") |
246 | local fh = test(io.open(file,"rb")) | 249 | local fh = socket.try(io.open(file,"rb")) |
247 | local datafile_size = fh:seek("end") -- get total size | 250 | local datafile_size = fh:seek("end") -- get total size |
248 | fh:seek("set") -- go back to start of file | 251 | fh:seek("set") -- go back to start of file |
249 | local localhost = socket.dns.gethostname() or os.getenv("COMPUTERNAME") | 252 | local localhost = socket.dns.gethostname() or os.getenv("COMPUTERNAME") |
@@ -270,11 +273,11 @@ send = socket.protect(function(file, option) | |||
270 | lpfile, | 273 | lpfile, |
271 | ctlfn); -- mandatory part of ctl file | 274 | ctlfn); -- mandatory part of ctl file |
272 | if (option.banner) then cfile = cfile .. 'L'..user..'\10' end | 275 | if (option.banner) then cfile = cfile .. 'L'..user..'\10' end |
273 | if (option.indent) then cfile = cfile .. 'I'..tonumber(option.indent)..'\10' end | 276 | if (option.indent) then cfile = cfile .. 'I'..base.tonumber(option.indent)..'\10' end |
274 | if (option.mail) then cfile = cfile .. 'M'..string.sub((option.mail),1,128)..'\10' end | 277 | if (option.mail) then cfile = cfile .. 'M'..string.sub((option.mail),1,128)..'\10' end |
275 | if (fmt == 'p' and option.title) then cfile = cfile .. 'T'..string.sub((option.title),1,79)..'\10' end | 278 | if (fmt == 'p' and option.title) then cfile = cfile .. 'T'..string.sub((option.title),1,79)..'\10' end |
276 | if ((fmt == 'p' or fmt == 'l' or fmt == 'f') and option.width) then | 279 | if ((fmt == 'p' or fmt == 'l' or fmt == 'f') and option.width) then |
277 | cfile = cfile .. 'W'..tonumber(option,width)..'\10' | 280 | cfile = cfile .. 'W'..base.tonumber(option,width)..'\10' |
278 | end | 281 | end |
279 | 282 | ||
280 | con.skt:settimeout(option.timeout or 65) | 283 | con.skt:settimeout(option.timeout or 65) |
@@ -314,3 +317,5 @@ query = socket.protect(function(p) | |||
314 | con.skt:close() | 317 | con.skt:close() |
315 | return data | 318 | return data |
316 | end) | 319 | end) |
320 | |||
321 | base.setmetatable(lp, nil) | ||