--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/wantwrite/client.lua Sat Jul 24 13:40:16 2010 +0100 @@ -0,0 +1,49 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "client", + protocol = "sslv3", + key = "../certs/clientAkey.pem", + certificate = "../certs/clientA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + +local function wait(peer, err) + if err == "wantread" then + socket.select({peer}, nil) + elseif err == "timeout" or err == "wantwrite" then + socket.select(nil, {peer}) + else + peer:close() + os.exit(1) + end +end + + +local peer = socket.tcp() +assert( peer:connect("127.0.0.1", 8888) ) + +-- [[ SSL wrapper +peer = assert( ssl.wrap(peer, params) ) +assert( peer:dohandshake() ) +--]] + +peer:settimeout(0.3) + +local str = "a rose is a rose is a rose is a...\n" +while true do + print("Sending...") + local succ, err = peer:send(str) + while succ do + succ, err = peer:send(str) + end + print("Waiting...", err) + wait(peer, err) +end +peer:close()