Erlang distribution 握手(SEND_NAME/sok/CHALLENGE/REPLY/ACK 五帧)+cookie MD5 认证+控制帧解析;纯核零依赖
| 包 | 内容 |
|---|---|
| thy1016/moonbit-beam-dist | 五帧握手+digest 注入形+flags 常量面(唯一包) |
moon check --deny-warn && moon test --target nativepub(open) trait DigestPort {
fn md5(self : Self, data : Bytes) -> Bytes
}pub(open) trait EtfPort {
fn decode_term(self : Self, bytes : Bytes, pos : Int, attab : Array[String]) -> (EtfItem, Int) raise ControlError
}pub(all) suberror ControlError {
ShortFrame(String)
UnknownDop(Int)
BadTag(String)
CacheSegment(String)
Codec(String)
}pub(all) suberror DistError {
Truncated(String)
Malformed(String)
DigestUnavailable(String)
}pub(all) struct ServerChallenge {
flags : UInt64
challenge : UInt
creation : Int
name : String
}let DIST_FLAGS : UInt64let DOP_MONITOR_P_EXIT : Intlet DOP_PAYLOAD_MONITOR_P_EXIT : Intlet DOP_REG_SEND : Intlet DOP_SEND : Intlet DOP_SEND_SENDER : Intfn challenge_reply(digest : &DigestPort, client_chal : UInt, server_chal : UInt, cookie : String) -> Bytesfn dop_semantics_of(tag : Int) -> String?fn epmd_alive2_req(port : Int, name : String) -> Bytesfn epmd_port2_req(name : String) -> Bytesfn parse_ack(digest : &DigestPort, data : Bytes, client_chal : UInt, cookie : String) -> Bool raise DistErrorfn send_name(creation : Int, name : String) -> BytesInstall
Download zipErlang distribution 握手(SEND_NAME/sok/CHALLENGE/REPLY/ACK 五帧)+cookie MD5 认证+控制帧解析;纯核零依赖