示例#1
0
文件: listener.py 项目: hj91/cspace
def acceptIncoming(acceptFlag, sslConn, reactor, callback=None):
    def doCancel():
        stream.close()

    def onError(*args):
        doCancel()
        op.notify(None)

    def onWriteComplete():
        stream.shutdown()
        op.notify(sslConn)

    stream = SSLMessageStream(sslConn, reactor)
    stream.setCloseCallback(onError)
    stream.setErrorCallback(onError)
    stream.setInvalidMessageCallback(onError)
    stream.setInputCallback(onError)
    stream.setWriteCompleteCallback(onWriteComplete)
    if acceptFlag:
        data = 0
    else:
        data = -1
    stream.sendMessage(encode(data))
    op = AsyncOp(callback, doCancel)
    return op
示例#2
0
文件: connector.py 项目: hj91/cspace
def _serviceConnect( sslConn, serviceName, reactor, callback=None ) :
    def doCancel() :
        ms.shutdown()
        sslAbort( sslConn )
    def onClose( *args ) :
        doCancel()
        op.notify( None )
    def onInput( data ) :
        try :
            result = decode( data )
            assert type(result) is int
            assert result == 0
        except :
            doCancel()
            op.notify( None )
            return
        ms.shutdown()
        op.notify( sslConn )
    ms = SSLMessageStream( sslConn, reactor )
    ms.setCloseCallback( onClose )
    ms.setErrorCallback( onClose )
    ms.setInvalidMessageCallback( onClose )
    ms.setInputCallback( onInput )
    ms.sendMessage( encode(serviceName) )
    ms.enableRead( True )
    op = AsyncOp( callback, doCancel )
    return op
示例#3
0
def acceptIncoming( acceptFlag, sslConn, reactor, callback=None ) :
    def doCancel() :
        stream.close()
    def onError( *args ) :
        doCancel()
        op.notify( None )
    def onWriteComplete() :
        stream.shutdown()
        op.notify( sslConn )
    stream = SSLMessageStream( sslConn, reactor )
    stream.setCloseCallback( onError )
    stream.setErrorCallback( onError )
    stream.setInvalidMessageCallback( onError )
    stream.setInputCallback( onError )
    stream.setWriteCompleteCallback( onWriteComplete )
    if acceptFlag :
        data = 0
    else :
        data = -1
    stream.sendMessage( encode(data) )
    op = AsyncOp( callback, doCancel )
    return op