49 if not data then |
49 if not data then |
50 conn:close(); |
50 conn:close(); |
51 return |
51 return |
52 end |
52 end |
53 if data:sub(1,1) ~= "<" then |
53 if data:sub(1,1) ~= "<" then |
54 local chunk = assert(loadstring("return "..data, "@stdin")); |
54 local chunk, err = loadstring("return "..data, "@stdin"); |
|
55 if not chunk then |
|
56 conn:error(err); |
|
57 return; |
|
58 end |
55 data = ""; |
59 data = ""; |
56 setfenv(chunk, env); |
60 setfenv(chunk, env); |
57 local ok, ret = pcall(chunk); |
61 local ok, ret = pcall(chunk); |
58 if ok then |
62 if ok then |
59 data = ret |
63 data = ret |
|
64 else |
|
65 conn:error(ret); |
|
66 return; |
60 end |
67 end |
61 end |
68 end |
62 if data then |
69 if data then |
63 conn:send(data); |
70 conn:send(data); |
64 end |
71 end |