35 lines
1.1 KiB
Lua
35 lines
1.1 KiB
Lua
--[[
|
|
|
|
Copyright 2016 The Luvit Authors. All Rights Reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS-IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
|
|
--]]
|
|
local getContext = require('./context')
|
|
local bioWrap = require('./biowrap')
|
|
|
|
return function (socket, options, callback)
|
|
if options == true then options = {} end
|
|
local ctx = getContext(options)
|
|
local thread
|
|
if not callback then
|
|
thread = coroutine.running()
|
|
end
|
|
bioWrap(ctx, options.server, socket, callback or function (err, ssocket)
|
|
return assert(coroutine.resume(thread, ssocket, err))
|
|
end, options.servername)
|
|
if not callback then
|
|
return coroutine.yield()
|
|
end
|
|
end
|