Comparison

net/server_select.lua @ 5956:59997f3f5502

net/server_select: pcall require ssl (easy to forget to require ssl)
author daurnimator <quae@daurnimator.com>
date Wed, 18 Dec 2013 17:50:38 -0500
parent 5950:bd1d1c29a7e7
child 5957:3c5061d937dd
comparison
equal deleted inserted replaced
5955:b3d5aa57c454 5956:59997f3f5502
46 local coroutine_wrap = coroutine.wrap 46 local coroutine_wrap = coroutine.wrap
47 local coroutine_yield = coroutine.yield 47 local coroutine_yield = coroutine.yield
48 48
49 --// extern libs //-- 49 --// extern libs //--
50 50
51 local luasec = use "ssl" 51 local has_luasec, luasec = pcall ( require , "ssl" )
52 local luasocket = use "socket" or require "socket" 52 local luasocket = use "socket" or require "socket"
53 local luasocket_gettime = luasocket.gettime 53 local luasocket_gettime = luasocket.gettime
54 54
55 --// extern lib methods //-- 55 --// extern lib methods //--
56 56
57 local ssl_wrap = ( luasec and luasec.wrap ) 57 local ssl_wrap = ( has_luasec and luasec.wrap )
58 local socket_bind = luasocket.bind 58 local socket_bind = luasocket.bind
59 local socket_sleep = luasocket.sleep 59 local socket_sleep = luasocket.sleep
60 local socket_select = luasocket.select 60 local socket_select = luasocket.select
61 61
62 --// functions //-- 62 --// functions //--
583 _ = handler and handler:force_close("ssl handshake failed") 583 _ = handler and handler:force_close("ssl handshake failed")
584 return false, err -- handshake failed 584 return false, err -- handshake failed
585 end 585 end
586 ) 586 )
587 end 587 end
588 if luasec then 588 if has_luasec then
589 handler.starttls = function( self, _sslctx) 589 handler.starttls = function( self, _sslctx)
590 if _sslctx then 590 if _sslctx then
591 handler:set_sslctx(_sslctx); 591 handler:set_sslctx(_sslctx);
592 end 592 end
593 if bufferqueuelen > 0 then 593 if bufferqueuelen > 0 then
636 shutdown = ( ssl and id ) or socket.shutdown 636 shutdown = ( ssl and id ) or socket.shutdown
637 637
638 _socketlist[ socket ] = handler 638 _socketlist[ socket ] = handler
639 _readlistlen = addsocket(_readlist, socket, _readlistlen) 639 _readlistlen = addsocket(_readlist, socket, _readlistlen)
640 640
641 if sslctx and luasec then 641 if sslctx and has_luasec then
642 out_put "server.lua: auto-starting ssl negotiation..." 642 out_put "server.lua: auto-starting ssl negotiation..."
643 handler.autostart_ssl = true; 643 handler.autostart_ssl = true;
644 local ok, err = handler:starttls(sslctx); 644 local ok, err = handler:starttls(sslctx);
645 if ok == false then 645 if ok == false then
646 return nil, nil, err 646 return nil, nil, err
719 end 719 end
720 if type( port ) ~= "number" or not ( port >= 0 and port <= 65535 ) then 720 if type( port ) ~= "number" or not ( port >= 0 and port <= 65535 ) then
721 err = "invalid port" 721 err = "invalid port"
722 elseif _server[ addr..":"..port ] then 722 elseif _server[ addr..":"..port ] then
723 err = "listeners on '[" .. addr .. "]:" .. port .. "' already exist" 723 err = "listeners on '[" .. addr .. "]:" .. port .. "' already exist"
724 elseif sslctx and not luasec then 724 elseif sslctx and not has_luasec then
725 err = "luasec not found" 725 err = "luasec not found"
726 end 726 end
727 if err then 727 if err then
728 out_error( "server.lua, [", addr, "]:", port, ": ", err ) 728 out_error( "server.lua, [", addr, "]:", port, ": ", err )
729 return nil, err 729 return nil, err