samples/wantread/server.lua

1
-- 
2
-- Test the conn:want() function.
3
--
4
-- Public domain
5
--
6
require("socket")
7
require("ssl")
8
 
9
local params = {
10
   mode = "server",
11
   protocol = "sslv3",
12
   key = "../certs/serverAkey.pem",
13
   certificate = "../certs/serverA.pem",
14
   cafile = "../certs/rootA.pem",
15
   verify = {"peer", "fail_if_no_peer_cert"},
16
   options = {"all", "no_sslv2"},
17
}
18
 
19
-- [[ SSL context
20
local ctx = assert(ssl.newcontext(params))
21
--]]
22
 
23
local server = socket.tcp()
24
server:setoption('reuseaddr', true)
25
assert( server:bind("127.0.0.1", 8888) )
26
server:listen()
27
 
28
local peer = server:accept()
29
 
30
-- [[ SSL wrapper
31
peer = assert( ssl.wrap(peer, ctx) )
32
socket.sleep(2) -- force the timeout in the client dohandshake()
33
assert( peer:dohandshake() )
34
--]]
35
 
36
for i = 1, 10 do
37
   local v = tostring(i)
38
   io.write(v)
39
   io.flush()
40
   peer:send(v)
41
   socket.sleep(1) -- force the timeout in the client receive()
42
end
43
io.write("\n")
44
peer:send("\n")
45
peer:close()