samples/want/server.lua

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