예제 #1
0
파일: RPC.py 프로젝트: Amit-DU/dht
PROG_UNAVAIL      = RPCProto.PROG_UNAVAIL   # remote hasn't exported program
PROG_MISMATCH     = RPCProto.PROG_MISMATCH  # remote can't support version #
PROC_UNAVAIL      = RPCProto.PROC_UNAVAIL   # program can't support procedure
GARBAGE_ARGS      = RPCProto.GARBAGE_ARGS   # procedure can't decode params
SYSTEM_ERR        = RPCProto.SYSTEM_ERR     # errors like memory allocation
AUTH_OK           = RPCProto.AUTH_OK           # success
AUTH_BADCRED      = RPCProto.AUTH_BADCRED      # bad credential (seal broken)
AUTH_REJECTEDCRED = RPCProto.AUTH_REJECTEDCRED # client must begin new session
AUTH_BADVERF      = RPCProto.AUTH_BADVERF      # bad verifier (seal broken)
AUTH_REJECTEDVERF = RPCProto.AUTH_REJECTEDVERF # verifier expired or replayed
AUTH_TOOWEAK      = RPCProto.AUTH_TOOWEAK      # rejected for security reasons
AUTH_INVALIDRESP  = RPCProto.AUTH_INVALIDRESP  # bogus response verifier
AUTH_FAILED       = RPCProto.AUTH_FAILED       # reason unknown

PROC_NULL = 0
NULL_AUTH = RPCProto.opaque_auth()
NULL_AUTH.flavor = RPCProto.AUTH_NONE
NULL_AUTH.body = ''


def parse_frag_len(data):
    if len(data) < 4:
        raise EOFError, "no fraglen"
    fraglen = struct.unpack('>L', data[:4])[0]
    lastfrag = fraglen & 0x80000000
    fraglen = fraglen & 0x7fffffff
    return (fraglen, lastfrag)

def writefrags(message, write):
    """Fragments message and writes the fragments using write.
예제 #2
0
PROG_UNAVAIL = RPCProto.PROG_UNAVAIL  # remote hasn't exported program
PROG_MISMATCH = RPCProto.PROG_MISMATCH  # remote can't support version #
PROC_UNAVAIL = RPCProto.PROC_UNAVAIL  # program can't support procedure
GARBAGE_ARGS = RPCProto.GARBAGE_ARGS  # procedure can't decode params
SYSTEM_ERR = RPCProto.SYSTEM_ERR  # errors like memory allocation
AUTH_OK = RPCProto.AUTH_OK  # success
AUTH_BADCRED = RPCProto.AUTH_BADCRED  # bad credential (seal broken)
AUTH_REJECTEDCRED = RPCProto.AUTH_REJECTEDCRED  # client must begin new session
AUTH_BADVERF = RPCProto.AUTH_BADVERF  # bad verifier (seal broken)
AUTH_REJECTEDVERF = RPCProto.AUTH_REJECTEDVERF  # verifier expired or replayed
AUTH_TOOWEAK = RPCProto.AUTH_TOOWEAK  # rejected for security reasons
AUTH_INVALIDRESP = RPCProto.AUTH_INVALIDRESP  # bogus response verifier
AUTH_FAILED = RPCProto.AUTH_FAILED  # reason unknown

PROC_NULL = 0
NULL_AUTH = RPCProto.opaque_auth()
NULL_AUTH.flavor = RPCProto.AUTH_NONE
NULL_AUTH.body = ''


def parse_frag_len(data):
    if len(data) < 4:
        raise EOFError, "no fraglen"
    fraglen = struct.unpack('>L', data[:4])[0]
    lastfrag = fraglen & 0x80000000
    fraglen = fraglen & 0x7fffffff
    return (fraglen, lastfrag)


def writefrags(message, write):
    """Fragments message and writes the fragments using write.