samples/wantwrite/client.lua

changeset 0
f7d2d78eb424
equal deleted inserted replaced
-1:000000000000 0:f7d2d78eb424
1 --
2 -- Public domain
3 --
4 require("socket")
5 require("ssl")
6
7 local params = {
8 mode = "client",
9 protocol = "sslv3",
10 key = "../certs/clientAkey.pem",
11 certificate = "../certs/clientA.pem",
12 cafile = "../certs/rootA.pem",
13 verify = {"peer", "fail_if_no_peer_cert"},
14 options = {"all", "no_sslv2"},
15 }
16
17 local function wait(peer, err)
18 if err == "wantread" then
19 socket.select({peer}, nil)
20 elseif err == "timeout" or err == "wantwrite" then
21 socket.select(nil, {peer})
22 else
23 peer:close()
24 os.exit(1)
25 end
26 end
27
28
29 local peer = socket.tcp()
30 assert( peer:connect("127.0.0.1", 8888) )
31
32 -- [[ SSL wrapper
33 peer = assert( ssl.wrap(peer, params) )
34 assert( peer:dohandshake() )
35 --]]
36
37 peer:settimeout(0.3)
38
39 local str = "a rose is a rose is a rose is a...\n"
40 while true do
41 print("Sending...")
42 local succ, err = peer:send(str)
43 while succ do
44 succ, err = peer:send(str)
45 end
46 print("Waiting...", err)
47 wait(peer, err)
48 end
49 peer:close()

mercurial