@jsonjoy.com/json-pack 1.20.0 → 17.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/JsonPackExtension.d.ts +8 -0
- package/lib/JsonPackExtension.js +8 -0
- package/lib/JsonPackExtension.js.map +1 -1
- package/lib/JsonPackMpint.d.ts +25 -0
- package/lib/JsonPackMpint.js +31 -1
- package/lib/JsonPackMpint.js.map +1 -1
- package/lib/JsonPackValue.d.ts +10 -0
- package/lib/JsonPackValue.js +10 -0
- package/lib/JsonPackValue.js.map +1 -1
- package/lib/avro/AvroDecoder.d.ts +67 -0
- package/lib/avro/AvroDecoder.js +77 -5
- package/lib/avro/AvroDecoder.js.map +1 -1
- package/lib/avro/AvroEncoder.d.ts +71 -0
- package/lib/avro/AvroEncoder.js +90 -12
- package/lib/avro/AvroEncoder.js.map +1 -1
- package/lib/avro/AvroSchemaDecoder.d.ts +53 -0
- package/lib/avro/AvroSchemaDecoder.js +60 -3
- package/lib/avro/AvroSchemaDecoder.js.map +1 -1
- package/lib/avro/AvroSchemaEncoder.d.ts +65 -0
- package/lib/avro/AvroSchemaEncoder.js +84 -5
- package/lib/avro/AvroSchemaEncoder.js.map +1 -1
- package/lib/avro/AvroSchemaValidator.d.ts +10 -0
- package/lib/avro/AvroSchemaValidator.js +18 -1
- package/lib/avro/AvroSchemaValidator.js.map +1 -1
- package/lib/avro/types.d.ts +31 -0
- package/lib/avro/types.js +4 -0
- package/lib/avro/types.js.map +1 -1
- package/lib/bencode/BencodeDecoder.js +9 -9
- package/lib/bencode/BencodeDecoder.js.map +1 -1
- package/lib/bencode/BencodeEncoder.d.ts +5 -0
- package/lib/bencode/BencodeEncoder.js +25 -20
- package/lib/bencode/BencodeEncoder.js.map +1 -1
- package/lib/bson/BsonDecoder.js +48 -33
- package/lib/bson/BsonDecoder.js.map +1 -1
- package/lib/bson/BsonEncoder.js +11 -3
- package/lib/bson/BsonEncoder.js.map +1 -1
- package/lib/cbor/CborDecoder.d.ts +24 -0
- package/lib/cbor/CborDecoder.js +94 -56
- package/lib/cbor/CborDecoder.js.map +1 -1
- package/lib/cbor/CborDecoderBase.d.ts +1 -0
- package/lib/cbor/CborDecoderBase.js +63 -53
- package/lib/cbor/CborDecoderBase.js.map +1 -1
- package/lib/cbor/CborEncoder.d.ts +5 -0
- package/lib/cbor/CborEncoder.js +9 -3
- package/lib/cbor/CborEncoder.js.map +1 -1
- package/lib/cbor/CborEncoderFast.d.ts +7 -0
- package/lib/cbor/CborEncoderFast.js +22 -14
- package/lib/cbor/CborEncoderFast.js.map +1 -1
- package/lib/cbor/CborEncoderStable.d.ts +1 -0
- package/lib/cbor/CborEncoderStable.js +2 -1
- package/lib/cbor/CborEncoderStable.js.map +1 -1
- package/lib/cbor/shared.d.ts +1 -1
- package/lib/codecs/Codecs.d.ts +1 -1
- package/lib/codecs/cbor.js +1 -1
- package/lib/codecs/cbor.js.map +1 -1
- package/lib/codecs/json.js +1 -1
- package/lib/codecs/json.js.map +1 -1
- package/lib/codecs/msgpack.js +1 -1
- package/lib/codecs/msgpack.js.map +1 -1
- package/lib/ejson/EjsonDecoder.d.ts +5 -0
- package/lib/ejson/EjsonDecoder.js +72 -37
- package/lib/ejson/EjsonDecoder.js.map +1 -1
- package/lib/ejson/EjsonEncoder.d.ts +5 -0
- package/lib/ejson/EjsonEncoder.js +149 -114
- package/lib/ejson/EjsonEncoder.js.map +1 -1
- package/lib/ejson/index.js +1 -0
- package/lib/ejson/index.js.map +1 -1
- package/lib/ion/Import.d.ts +1 -1
- package/lib/ion/Import.js.map +1 -1
- package/lib/ion/IonDecoder.d.ts +0 -1
- package/lib/ion/IonDecoder.js +4 -3
- package/lib/ion/IonDecoder.js.map +1 -1
- package/lib/ion/IonDecoderBase.js +29 -18
- package/lib/ion/IonDecoderBase.js.map +1 -1
- package/lib/ion/IonEncoderFast.d.ts +1 -1
- package/lib/ion/IonEncoderFast.js +30 -30
- package/lib/ion/IonEncoderFast.js.map +1 -1
- package/lib/ion/ast.d.ts +4 -1
- package/lib/ion/symbols.d.ts +1 -1
- package/lib/json/JsonDecoder.js +72 -66
- package/lib/json/JsonDecoder.js.map +1 -1
- package/lib/json/JsonDecoderDag.js +14 -0
- package/lib/json/JsonDecoderDag.js.map +1 -1
- package/lib/json/JsonDecoderPartial.d.ts +22 -0
- package/lib/json/JsonDecoderPartial.js +30 -8
- package/lib/json/JsonDecoderPartial.js.map +1 -1
- package/lib/json/JsonEncoder.d.ts +5 -0
- package/lib/json/JsonEncoder.js +68 -54
- package/lib/json/JsonEncoder.js.map +1 -1
- package/lib/json/JsonEncoderDag.d.ts +17 -0
- package/lib/json/JsonEncoderDag.js +27 -10
- package/lib/json/JsonEncoderDag.js.map +1 -1
- package/lib/json/JsonEncoderStable.js +5 -5
- package/lib/json/JsonEncoderStable.js.map +1 -1
- package/lib/json-binary/codec.d.ts +8 -1
- package/lib/json-binary/codec.js +7 -0
- package/lib/json-binary/codec.js.map +1 -1
- package/lib/msgpack/MsgPackDecoder.d.ts +27 -0
- package/lib/msgpack/MsgPackDecoder.js +55 -23
- package/lib/msgpack/MsgPackDecoder.js.map +1 -1
- package/lib/msgpack/MsgPackDecoderFast.d.ts +8 -0
- package/lib/msgpack/MsgPackDecoderFast.js +14 -5
- package/lib/msgpack/MsgPackDecoderFast.js.map +1 -1
- package/lib/msgpack/MsgPackEncoder.d.ts +3 -0
- package/lib/msgpack/MsgPackEncoder.js +7 -4
- package/lib/msgpack/MsgPackEncoder.js.map +1 -1
- package/lib/msgpack/MsgPackEncoderFast.d.ts +26 -4
- package/lib/msgpack/MsgPackEncoderFast.js +31 -0
- package/lib/msgpack/MsgPackEncoderFast.js.map +1 -1
- package/lib/msgpack/MsgPackEncoderStable.d.ts +3 -0
- package/lib/msgpack/MsgPackEncoderStable.js +3 -0
- package/lib/msgpack/MsgPackEncoderStable.js.map +1 -1
- package/lib/msgpack/MsgPackToJsonConverter.d.ts +30 -4
- package/lib/msgpack/MsgPackToJsonConverter.js +32 -5
- package/lib/msgpack/MsgPackToJsonConverter.js.map +1 -1
- package/lib/msgpack/index.d.ts +29 -0
- package/lib/msgpack/index.js +30 -0
- package/lib/msgpack/index.js.map +1 -1
- package/lib/msgpack/shallow-read.js +7 -7
- package/lib/msgpack/shallow-read.js.map +1 -1
- package/lib/msgpack/types.d.ts +1 -0
- package/lib/msgpack/util.d.ts +1 -1
- package/lib/nfs/v3/FullNfsv3Encoder.d.ts +3 -3
- package/lib/nfs/v3/FullNfsv3Encoder.js +3 -3
- package/lib/nfs/v3/FullNfsv3Encoder.js.map +1 -1
- package/lib/nfs/v3/Nfsv3Decoder.js +51 -50
- package/lib/nfs/v3/Nfsv3Decoder.js.map +1 -1
- package/lib/nfs/v3/Nfsv3Encoder.d.ts +2 -2
- package/lib/nfs/v3/Nfsv3Encoder.js +52 -52
- package/lib/nfs/v3/Nfsv3Encoder.js.map +1 -1
- package/lib/nfs/v3/constants.d.ts +34 -0
- package/lib/nfs/v3/constants.js +4 -0
- package/lib/nfs/v3/constants.js.map +1 -1
- package/lib/nfs/v3/locks/NlmDecoder.js +20 -20
- package/lib/nfs/v3/locks/NlmDecoder.js.map +1 -1
- package/lib/nfs/v3/locks/NlmEncoder.d.ts +2 -2
- package/lib/nfs/v3/locks/NlmEncoder.js +20 -20
- package/lib/nfs/v3/locks/NlmEncoder.js.map +1 -1
- package/lib/nfs/v3/locks/constants.d.ts +9 -0
- package/lib/nfs/v3/locks/messages.d.ts +58 -1
- package/lib/nfs/v3/locks/messages.js +54 -0
- package/lib/nfs/v3/locks/messages.js.map +1 -1
- package/lib/nfs/v3/locks/structs.d.ts +15 -0
- package/lib/nfs/v3/locks/structs.js +15 -0
- package/lib/nfs/v3/locks/structs.js.map +1 -1
- package/lib/nfs/v3/messages.d.ts +249 -0
- package/lib/nfs/v3/messages.js +249 -0
- package/lib/nfs/v3/messages.js.map +1 -1
- package/lib/nfs/v3/mount/MountDecoder.js +12 -12
- package/lib/nfs/v3/mount/MountEncoder.d.ts +2 -2
- package/lib/nfs/v3/mount/MountEncoder.js +13 -13
- package/lib/nfs/v3/mount/MountEncoder.js.map +1 -1
- package/lib/nfs/v3/mount/constants.d.ts +9 -0
- package/lib/nfs/v3/mount/messages.d.ts +31 -1
- package/lib/nfs/v3/mount/messages.js +27 -0
- package/lib/nfs/v3/mount/messages.js.map +1 -1
- package/lib/nfs/v3/mount/structs.d.ts +15 -0
- package/lib/nfs/v3/mount/structs.js +15 -0
- package/lib/nfs/v3/mount/structs.js.map +1 -1
- package/lib/nfs/v3/structs.d.ts +78 -0
- package/lib/nfs/v3/structs.js +78 -0
- package/lib/nfs/v3/structs.js.map +1 -1
- package/lib/nfs/v4/Nfsv4Decoder.d.ts +14 -12
- package/lib/nfs/v4/Nfsv4Decoder.js +241 -165
- package/lib/nfs/v4/Nfsv4Decoder.js.map +1 -1
- package/lib/nfs/v4/Nfsv4Encoder.d.ts +6 -93
- package/lib/nfs/v4/Nfsv4Encoder.js +8 -824
- package/lib/nfs/v4/Nfsv4Encoder.js.map +1 -1
- package/lib/nfs/v4/Nfsv4FullEncoder.d.ts +32 -0
- package/lib/nfs/v4/Nfsv4FullEncoder.js +72 -0
- package/lib/nfs/v4/Nfsv4FullEncoder.js.map +1 -0
- package/lib/nfs/v4/attributes.d.ts +79 -0
- package/lib/nfs/v4/attributes.js +265 -0
- package/lib/nfs/v4/attributes.js.map +1 -0
- package/lib/nfs/v4/builder.d.ts +333 -0
- package/lib/nfs/v4/builder.js +460 -0
- package/lib/nfs/v4/builder.js.map +1 -0
- package/lib/nfs/v4/client/NfsFsDir.d.ts +23 -0
- package/lib/nfs/v4/client/NfsFsDir.js +132 -0
- package/lib/nfs/v4/client/NfsFsDir.js.map +1 -0
- package/lib/nfs/v4/client/NfsFsDirent.d.ts +17 -0
- package/lib/nfs/v4/client/NfsFsDirent.js +35 -0
- package/lib/nfs/v4/client/NfsFsDirent.js.map +1 -0
- package/lib/nfs/v4/client/NfsFsFileHandle.d.ts +35 -0
- package/lib/nfs/v4/client/NfsFsFileHandle.js +271 -0
- package/lib/nfs/v4/client/NfsFsFileHandle.js.map +1 -0
- package/lib/nfs/v4/client/NfsFsStats.d.ts +34 -0
- package/lib/nfs/v4/client/NfsFsStats.js +52 -0
- package/lib/nfs/v4/client/NfsFsStats.js.map +1 -0
- package/lib/nfs/v4/client/Nfsv4FsClient.d.ts +53 -0
- package/lib/nfs/v4/client/Nfsv4FsClient.js +812 -0
- package/lib/nfs/v4/client/Nfsv4FsClient.js.map +1 -0
- package/lib/nfs/v4/client/Nfsv4TcpClient.d.ts +41 -0
- package/lib/nfs/v4/client/Nfsv4TcpClient.js +216 -0
- package/lib/nfs/v4/client/Nfsv4TcpClient.js.map +1 -0
- package/lib/nfs/v4/client/types.d.ts +9 -0
- package/lib/nfs/v4/client/types.js +3 -0
- package/lib/nfs/v4/client/types.js.map +1 -0
- package/lib/nfs/v4/constants.d.ts +80 -0
- package/lib/nfs/v4/constants.js +4 -0
- package/lib/nfs/v4/constants.js.map +1 -1
- package/lib/nfs/v4/format.d.ts +23 -0
- package/lib/nfs/v4/format.js +870 -0
- package/lib/nfs/v4/format.js.map +1 -0
- package/lib/nfs/v4/index.d.ts +3 -1
- package/lib/nfs/v4/index.js +3 -1
- package/lib/nfs/v4/index.js.map +1 -1
- package/lib/nfs/v4/messages.d.ts +208 -90
- package/lib/nfs/v4/messages.js +585 -1
- package/lib/nfs/v4/messages.js.map +1 -1
- package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.d.ts +30 -0
- package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.js +176 -0
- package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.js.map +1 -0
- package/lib/nfs/v4/server/Nfsv4Connection.d.ts +45 -0
- package/lib/nfs/v4/server/Nfsv4Connection.js +163 -0
- package/lib/nfs/v4/server/Nfsv4Connection.js.map +1 -0
- package/lib/nfs/v4/server/Nfsv4TcpServer.d.ts +25 -0
- package/lib/nfs/v4/server/Nfsv4TcpServer.js +92 -0
- package/lib/nfs/v4/server/Nfsv4TcpServer.js.map +1 -0
- package/lib/nfs/v4/server/operations/ByteRangeLock.d.ts +79 -0
- package/lib/nfs/v4/server/operations/ByteRangeLock.js +63 -0
- package/lib/nfs/v4/server/operations/ByteRangeLock.js.map +1 -0
- package/lib/nfs/v4/server/operations/ClientRecord.d.ts +110 -0
- package/lib/nfs/v4/server/operations/ClientRecord.js +70 -0
- package/lib/nfs/v4/server/operations/ClientRecord.js.map +1 -0
- package/lib/nfs/v4/server/operations/FilesystemStats.d.ts +30 -0
- package/lib/nfs/v4/server/operations/FilesystemStats.js +30 -0
- package/lib/nfs/v4/server/operations/FilesystemStats.js.map +1 -0
- package/lib/nfs/v4/server/operations/LockOwnerState.d.ts +82 -0
- package/lib/nfs/v4/server/operations/LockOwnerState.js +57 -0
- package/lib/nfs/v4/server/operations/LockOwnerState.js.map +1 -0
- package/lib/nfs/v4/server/operations/LockStateid.d.ts +64 -0
- package/lib/nfs/v4/server/operations/LockStateid.js +58 -0
- package/lib/nfs/v4/server/operations/LockStateid.js.map +1 -0
- package/lib/nfs/v4/server/operations/Nfsv4Operations.d.ts +45 -0
- package/lib/nfs/v4/server/operations/Nfsv4Operations.js +3 -0
- package/lib/nfs/v4/server/operations/Nfsv4Operations.js.map +1 -0
- package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.d.ts +42 -0
- package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.js +159 -0
- package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.js.map +1 -0
- package/lib/nfs/v4/server/operations/OpenFileState.d.ts +102 -0
- package/lib/nfs/v4/server/operations/OpenFileState.js +68 -0
- package/lib/nfs/v4/server/operations/OpenFileState.js.map +1 -0
- package/lib/nfs/v4/server/operations/OpenOwnerState.d.ts +83 -0
- package/lib/nfs/v4/server/operations/OpenOwnerState.js +58 -0
- package/lib/nfs/v4/server/operations/OpenOwnerState.js.map +1 -0
- package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.d.ts +169 -0
- package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.js +1474 -0
- package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.js.map +1 -0
- package/lib/nfs/v4/server/operations/node/attrs.d.ts +17 -0
- package/lib/nfs/v4/server/operations/node/attrs.js +275 -0
- package/lib/nfs/v4/server/operations/node/attrs.js.map +1 -0
- package/lib/nfs/v4/server/operations/node/fh.d.ts +93 -0
- package/lib/nfs/v4/server/operations/node/fh.js +209 -0
- package/lib/nfs/v4/server/operations/node/fh.js.map +1 -0
- package/lib/nfs/v4/server/operations/node/util.d.ts +4 -0
- package/lib/nfs/v4/server/operations/node/util.js +17 -0
- package/lib/nfs/v4/server/operations/node/util.js.map +1 -0
- package/lib/nfs/v4/server/types.d.ts +4 -0
- package/lib/nfs/v4/server/types.js +3 -0
- package/lib/nfs/v4/server/types.js.map +1 -0
- package/lib/nfs/v4/server/util.d.ts +5 -0
- package/lib/nfs/v4/server/util.js +184 -0
- package/lib/nfs/v4/server/util.js.map +1 -0
- package/lib/nfs/v4/structs.d.ts +243 -56
- package/lib/nfs/v4/structs.js +367 -17
- package/lib/nfs/v4/structs.js.map +1 -1
- package/lib/resp/RespDecoder.d.ts +9 -0
- package/lib/resp/RespDecoder.js +93 -76
- package/lib/resp/RespDecoder.js.map +1 -1
- package/lib/resp/RespEncoder.d.ts +8 -0
- package/lib/resp/RespEncoder.js +107 -89
- package/lib/resp/RespEncoder.js.map +1 -1
- package/lib/resp/RespEncoderLegacy.d.ts +3 -0
- package/lib/resp/RespEncoderLegacy.js +7 -4
- package/lib/resp/RespEncoderLegacy.js.map +1 -1
- package/lib/resp/RespStreamingDecoder.d.ts +48 -0
- package/lib/resp/RespStreamingDecoder.js +48 -0
- package/lib/resp/RespStreamingDecoder.js.map +1 -1
- package/lib/resp/constants.d.ts +19 -19
- package/lib/rm/RmRecordDecoder.js.map +1 -1
- package/lib/rm/RmRecordEncoder.d.ts +17 -1
- package/lib/rm/RmRecordEncoder.js +40 -1
- package/lib/rm/RmRecordEncoder.js.map +1 -1
- package/lib/rpc/RpcMessageDecoder.d.ts +1 -1
- package/lib/rpc/RpcMessageDecoder.js +11 -8
- package/lib/rpc/RpcMessageDecoder.js.map +1 -1
- package/lib/rpc/RpcMessageEncoder.d.ts +2 -2
- package/lib/rpc/RpcMessageEncoder.js +6 -6
- package/lib/rpc/RpcMessageEncoder.js.map +1 -1
- package/lib/rpc/constants.d.ts +76 -28
- package/lib/rpc/constants.js +10 -0
- package/lib/rpc/constants.js.map +1 -1
- package/lib/ssh/SshDecoder.d.ts +47 -1
- package/lib/ssh/SshDecoder.js +52 -2
- package/lib/ssh/SshDecoder.js.map +1 -1
- package/lib/ssh/SshEncoder.d.ts +70 -1
- package/lib/ssh/SshEncoder.js +81 -8
- package/lib/ssh/SshEncoder.js.map +1 -1
- package/lib/ssh/index.d.ts +6 -0
- package/lib/ssh/index.js +6 -0
- package/lib/ssh/index.js.map +1 -1
- package/lib/ubjson/UbjsonDecoder.js +1 -1
- package/lib/ubjson/UbjsonDecoder.js.map +1 -1
- package/lib/ubjson/UbjsonEncoder.js +6 -5
- package/lib/ubjson/UbjsonEncoder.js.map +1 -1
- package/lib/util/CompressionTable.js +4 -4
- package/lib/util/CompressionTable.js.map +1 -1
- package/lib/util/DecompressionTable.js +3 -2
- package/lib/util/DecompressionTable.js.map +1 -1
- package/lib/ws/WsFrameDecoder.d.ts +18 -0
- package/lib/ws/WsFrameDecoder.js +18 -0
- package/lib/ws/WsFrameDecoder.js.map +1 -1
- package/lib/ws/WsFrameEncoder.d.ts +1 -1
- package/lib/ws/WsFrameEncoder.js +3 -3
- package/lib/ws/WsFrameEncoder.js.map +1 -1
- package/lib/ws/constants.js +5 -0
- package/lib/ws/constants.js.map +1 -1
- package/lib/xdr/XdrDecoder.d.ts +62 -0
- package/lib/xdr/XdrDecoder.js +73 -6
- package/lib/xdr/XdrDecoder.js.map +1 -1
- package/lib/xdr/XdrEncoder.d.ts +71 -0
- package/lib/xdr/XdrEncoder.js +88 -13
- package/lib/xdr/XdrEncoder.js.map +1 -1
- package/lib/xdr/XdrSchemaDecoder.d.ts +40 -0
- package/lib/xdr/XdrSchemaDecoder.js +52 -0
- package/lib/xdr/XdrSchemaDecoder.js.map +1 -1
- package/lib/xdr/XdrSchemaEncoder.d.ts +5 -0
- package/lib/xdr/XdrSchemaEncoder.js +9 -0
- package/lib/xdr/XdrSchemaEncoder.js.map +1 -1
- package/lib/xdr/XdrSchemaValidator.d.ts +9 -0
- package/lib/xdr/XdrSchemaValidator.js +42 -11
- package/lib/xdr/XdrSchemaValidator.js.map +1 -1
- package/lib/xdr/XdrUnion.d.ts +5 -0
- package/lib/xdr/XdrUnion.js +5 -0
- package/lib/xdr/XdrUnion.js.map +1 -1
- package/lib/xdr/index.d.ts +14 -0
- package/lib/xdr/index.js +14 -0
- package/lib/xdr/index.js.map +1 -1
- package/lib/xdr/types.d.ts +52 -0
- package/package.json +35 -56
- package/lib/nfs/v4/FullNfsv4Encoder.d.ts +0 -28
- package/lib/nfs/v4/FullNfsv4Encoder.js +0 -73
- package/lib/nfs/v4/FullNfsv4Encoder.js.map +0 -1
|
@@ -12,26 +12,16 @@ class Nfsv4Decoder {
|
|
|
12
12
|
this.xdr = new XdrDecoder_1.XdrDecoder(reader);
|
|
13
13
|
}
|
|
14
14
|
decodeCompound(reader, isRequest) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
if (isRequest) {
|
|
19
|
-
return this.decodeCompoundRequest();
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
return this.decodeCompoundResponse();
|
|
23
|
-
}
|
|
15
|
+
if (isRequest) {
|
|
16
|
+
return this.decodeCompoundRequest(reader);
|
|
24
17
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
reader.x = startPos;
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
throw err;
|
|
18
|
+
else {
|
|
19
|
+
return this.decodeCompoundResponse(reader);
|
|
31
20
|
}
|
|
32
21
|
}
|
|
33
|
-
decodeCompoundRequest() {
|
|
22
|
+
decodeCompoundRequest(reader) {
|
|
34
23
|
const xdr = this.xdr;
|
|
24
|
+
xdr.reader = reader;
|
|
35
25
|
const tag = xdr.readString();
|
|
36
26
|
const minorversion = xdr.readUnsignedInt();
|
|
37
27
|
const argarray = [];
|
|
@@ -44,8 +34,9 @@ class Nfsv4Decoder {
|
|
|
44
34
|
}
|
|
45
35
|
return new msg.Nfsv4CompoundRequest(tag, minorversion, argarray);
|
|
46
36
|
}
|
|
47
|
-
decodeCompoundResponse() {
|
|
37
|
+
decodeCompoundResponse(reader) {
|
|
48
38
|
const xdr = this.xdr;
|
|
39
|
+
xdr.reader = reader;
|
|
49
40
|
const status = xdr.readUnsignedInt();
|
|
50
41
|
const tag = xdr.readString();
|
|
51
42
|
const resarray = [];
|
|
@@ -59,167 +50,172 @@ class Nfsv4Decoder {
|
|
|
59
50
|
return new msg.Nfsv4CompoundResponse(status, tag, resarray);
|
|
60
51
|
}
|
|
61
52
|
decodeRequest(op) {
|
|
53
|
+
const xdr = this.xdr;
|
|
62
54
|
switch (op) {
|
|
63
|
-
case 3
|
|
64
|
-
return
|
|
65
|
-
case 4
|
|
66
|
-
return
|
|
67
|
-
case 5
|
|
68
|
-
return
|
|
69
|
-
case 6
|
|
55
|
+
case 3 /* Nfsv4Op.ACCESS */:
|
|
56
|
+
return msg.Nfsv4AccessRequest.decode(xdr);
|
|
57
|
+
case 4 /* Nfsv4Op.CLOSE */:
|
|
58
|
+
return msg.Nfsv4CloseRequest.decode(xdr);
|
|
59
|
+
case 5 /* Nfsv4Op.COMMIT */:
|
|
60
|
+
return msg.Nfsv4CommitRequest.decode(xdr);
|
|
61
|
+
case 6 /* Nfsv4Op.CREATE */:
|
|
70
62
|
return this.decodeCreateRequest();
|
|
71
|
-
case 7
|
|
72
|
-
return
|
|
73
|
-
case 8
|
|
74
|
-
return
|
|
75
|
-
case 9
|
|
63
|
+
case 7 /* Nfsv4Op.DELEGPURGE */:
|
|
64
|
+
return msg.Nfsv4DelegpurgeRequest.decode(xdr);
|
|
65
|
+
case 8 /* Nfsv4Op.DELEGRETURN */:
|
|
66
|
+
return msg.Nfsv4DelegreturnRequest.decode(xdr);
|
|
67
|
+
case 9 /* Nfsv4Op.GETATTR */:
|
|
76
68
|
return this.decodeGetattrRequest();
|
|
77
|
-
case 10
|
|
69
|
+
case 10 /* Nfsv4Op.GETFH */:
|
|
78
70
|
return this.decodeGetfhRequest();
|
|
79
|
-
case 11
|
|
71
|
+
case 11 /* Nfsv4Op.LINK */:
|
|
80
72
|
return this.decodeLinkRequest();
|
|
81
|
-
case 12
|
|
73
|
+
case 12 /* Nfsv4Op.LOCK */:
|
|
82
74
|
return this.decodeLockRequest();
|
|
83
|
-
case 13
|
|
75
|
+
case 13 /* Nfsv4Op.LOCKT */:
|
|
84
76
|
return this.decodeLocktRequest();
|
|
85
|
-
case 14
|
|
77
|
+
case 14 /* Nfsv4Op.LOCKU */:
|
|
86
78
|
return this.decodeLockuRequest();
|
|
87
|
-
case 15
|
|
79
|
+
case 15 /* Nfsv4Op.LOOKUP */:
|
|
88
80
|
return this.decodeLookupRequest();
|
|
89
|
-
case 16
|
|
81
|
+
case 16 /* Nfsv4Op.LOOKUPP */:
|
|
90
82
|
return this.decodeLookuppRequest();
|
|
91
|
-
case 17
|
|
83
|
+
case 17 /* Nfsv4Op.NVERIFY */:
|
|
92
84
|
return this.decodeNverifyRequest();
|
|
93
|
-
case 18
|
|
85
|
+
case 18 /* Nfsv4Op.OPEN */:
|
|
94
86
|
return this.decodeOpenRequest();
|
|
95
|
-
case 19
|
|
87
|
+
case 19 /* Nfsv4Op.OPENATTR */:
|
|
96
88
|
return this.decodeOpenattrRequest();
|
|
97
|
-
case 20
|
|
89
|
+
case 20 /* Nfsv4Op.OPEN_CONFIRM */:
|
|
98
90
|
return this.decodeOpenConfirmRequest();
|
|
99
|
-
case 21
|
|
91
|
+
case 21 /* Nfsv4Op.OPEN_DOWNGRADE */:
|
|
100
92
|
return this.decodeOpenDowngradeRequest();
|
|
101
|
-
case 22
|
|
93
|
+
case 22 /* Nfsv4Op.PUTFH */:
|
|
102
94
|
return this.decodePutfhRequest();
|
|
103
|
-
case 23
|
|
104
|
-
return
|
|
105
|
-
case 24
|
|
106
|
-
return
|
|
107
|
-
case 25
|
|
95
|
+
case 23 /* Nfsv4Op.PUTPUBFH */:
|
|
96
|
+
return new msg.Nfsv4PutpubfhRequest();
|
|
97
|
+
case 24 /* Nfsv4Op.PUTROOTFH */:
|
|
98
|
+
return new msg.Nfsv4PutrootfhRequest();
|
|
99
|
+
case 25 /* Nfsv4Op.READ */:
|
|
108
100
|
return this.decodeReadRequest();
|
|
109
|
-
case 26
|
|
101
|
+
case 26 /* Nfsv4Op.READDIR */:
|
|
110
102
|
return this.decodeReaddirRequest();
|
|
111
|
-
case 27
|
|
103
|
+
case 27 /* Nfsv4Op.READLINK */:
|
|
112
104
|
return this.decodeReadlinkRequest();
|
|
113
|
-
case 28
|
|
105
|
+
case 28 /* Nfsv4Op.REMOVE */:
|
|
114
106
|
return this.decodeRemoveRequest();
|
|
115
|
-
case 29
|
|
107
|
+
case 29 /* Nfsv4Op.RENAME */:
|
|
116
108
|
return this.decodeRenameRequest();
|
|
117
|
-
case 30
|
|
109
|
+
case 30 /* Nfsv4Op.RENEW */:
|
|
118
110
|
return this.decodeRenewRequest();
|
|
119
|
-
case 31
|
|
111
|
+
case 31 /* Nfsv4Op.RESTOREFH */:
|
|
120
112
|
return this.decodeRestorefhRequest();
|
|
121
|
-
case 32
|
|
122
|
-
return
|
|
123
|
-
case 33
|
|
113
|
+
case 32 /* Nfsv4Op.SAVEFH */:
|
|
114
|
+
return new msg.Nfsv4SavefhRequest();
|
|
115
|
+
case 33 /* Nfsv4Op.SECINFO */:
|
|
124
116
|
return this.decodeSecinfoRequest();
|
|
125
|
-
case 34
|
|
117
|
+
case 34 /* Nfsv4Op.SETATTR */:
|
|
126
118
|
return this.decodeSetattrRequest();
|
|
127
|
-
case 35
|
|
119
|
+
case 35 /* Nfsv4Op.SETCLIENTID */:
|
|
128
120
|
return this.decodeSetclientidRequest();
|
|
129
|
-
case 36
|
|
121
|
+
case 36 /* Nfsv4Op.SETCLIENTID_CONFIRM */:
|
|
130
122
|
return this.decodeSetclientidConfirmRequest();
|
|
131
|
-
case 37
|
|
123
|
+
case 37 /* Nfsv4Op.VERIFY */:
|
|
132
124
|
return this.decodeVerifyRequest();
|
|
133
|
-
case 38
|
|
125
|
+
case 38 /* Nfsv4Op.WRITE */:
|
|
134
126
|
return this.decodeWriteRequest();
|
|
135
|
-
case 39
|
|
127
|
+
case 39 /* Nfsv4Op.RELEASE_LOCKOWNER */:
|
|
136
128
|
return this.decodeReleaseLockOwnerRequest();
|
|
137
|
-
case 10044
|
|
129
|
+
case 10044 /* Nfsv4Op.ILLEGAL */:
|
|
138
130
|
return this.decodeIllegalRequest();
|
|
139
131
|
default:
|
|
140
|
-
|
|
132
|
+
// Per RFC 7530 §15.2.4, operations 0, 1, 2 are not defined and any
|
|
133
|
+
// unknown operation code should be treated as ILLEGAL
|
|
134
|
+
return this.decodeIllegalRequest();
|
|
141
135
|
}
|
|
142
136
|
}
|
|
143
137
|
decodeResponse(op) {
|
|
138
|
+
const xdr = this.xdr;
|
|
144
139
|
switch (op) {
|
|
145
|
-
case 3
|
|
140
|
+
case 3 /* Nfsv4Op.ACCESS */:
|
|
146
141
|
return this.decodeAccessResponse();
|
|
147
|
-
case 4
|
|
142
|
+
case 4 /* Nfsv4Op.CLOSE */:
|
|
148
143
|
return this.decodeCloseResponse();
|
|
149
|
-
case 5
|
|
144
|
+
case 5 /* Nfsv4Op.COMMIT */:
|
|
150
145
|
return this.decodeCommitResponse();
|
|
151
|
-
case 6
|
|
146
|
+
case 6 /* Nfsv4Op.CREATE */:
|
|
152
147
|
return this.decodeCreateResponse();
|
|
153
|
-
case 7
|
|
148
|
+
case 7 /* Nfsv4Op.DELEGPURGE */:
|
|
154
149
|
return this.decodeDelegpurgeResponse();
|
|
155
|
-
case 8
|
|
150
|
+
case 8 /* Nfsv4Op.DELEGRETURN */:
|
|
156
151
|
return this.decodeDelegreturnResponse();
|
|
157
|
-
case 9
|
|
152
|
+
case 9 /* Nfsv4Op.GETATTR */:
|
|
158
153
|
return this.decodeGetattrResponse();
|
|
159
|
-
case 10
|
|
154
|
+
case 10 /* Nfsv4Op.GETFH */:
|
|
160
155
|
return this.decodeGetfhResponse();
|
|
161
|
-
case 11
|
|
156
|
+
case 11 /* Nfsv4Op.LINK */:
|
|
162
157
|
return this.decodeLinkResponse();
|
|
163
|
-
case 12
|
|
158
|
+
case 12 /* Nfsv4Op.LOCK */:
|
|
164
159
|
return this.decodeLockResponse();
|
|
165
|
-
case 13
|
|
160
|
+
case 13 /* Nfsv4Op.LOCKT */:
|
|
166
161
|
return this.decodeLocktResponse();
|
|
167
|
-
case 14
|
|
162
|
+
case 14 /* Nfsv4Op.LOCKU */:
|
|
168
163
|
return this.decodeLockuResponse();
|
|
169
|
-
case 15
|
|
164
|
+
case 15 /* Nfsv4Op.LOOKUP */:
|
|
170
165
|
return this.decodeLookupResponse();
|
|
171
|
-
case 16
|
|
166
|
+
case 16 /* Nfsv4Op.LOOKUPP */:
|
|
172
167
|
return this.decodeLookuppResponse();
|
|
173
|
-
case 17
|
|
168
|
+
case 17 /* Nfsv4Op.NVERIFY */:
|
|
174
169
|
return this.decodeNverifyResponse();
|
|
175
|
-
case 18
|
|
170
|
+
case 18 /* Nfsv4Op.OPEN */:
|
|
176
171
|
return this.decodeOpenResponse();
|
|
177
|
-
case 19
|
|
172
|
+
case 19 /* Nfsv4Op.OPENATTR */:
|
|
178
173
|
return this.decodeOpenattrResponse();
|
|
179
|
-
case 20
|
|
174
|
+
case 20 /* Nfsv4Op.OPEN_CONFIRM */:
|
|
180
175
|
return this.decodeOpenConfirmResponse();
|
|
181
|
-
case 21
|
|
176
|
+
case 21 /* Nfsv4Op.OPEN_DOWNGRADE */:
|
|
182
177
|
return this.decodeOpenDowngradeResponse();
|
|
183
|
-
case 22
|
|
178
|
+
case 22 /* Nfsv4Op.PUTFH */:
|
|
184
179
|
return this.decodePutfhResponse();
|
|
185
|
-
case 23
|
|
186
|
-
return
|
|
187
|
-
case 24
|
|
180
|
+
case 23 /* Nfsv4Op.PUTPUBFH */:
|
|
181
|
+
return msg.Nfsv4PutpubfhResponse.decode(xdr);
|
|
182
|
+
case 24 /* Nfsv4Op.PUTROOTFH */:
|
|
188
183
|
return this.decodePutrootfhResponse();
|
|
189
|
-
case 25
|
|
184
|
+
case 25 /* Nfsv4Op.READ */:
|
|
190
185
|
return this.decodeReadResponse();
|
|
191
|
-
case 26
|
|
186
|
+
case 26 /* Nfsv4Op.READDIR */:
|
|
192
187
|
return this.decodeReaddirResponse();
|
|
193
|
-
case 27
|
|
188
|
+
case 27 /* Nfsv4Op.READLINK */:
|
|
194
189
|
return this.decodeReadlinkResponse();
|
|
195
|
-
case 28
|
|
190
|
+
case 28 /* Nfsv4Op.REMOVE */:
|
|
196
191
|
return this.decodeRemoveResponse();
|
|
197
|
-
case 29
|
|
192
|
+
case 29 /* Nfsv4Op.RENAME */:
|
|
198
193
|
return this.decodeRenameResponse();
|
|
199
|
-
case 30
|
|
194
|
+
case 30 /* Nfsv4Op.RENEW */:
|
|
200
195
|
return this.decodeRenewResponse();
|
|
201
|
-
case 31
|
|
196
|
+
case 31 /* Nfsv4Op.RESTOREFH */:
|
|
202
197
|
return this.decodeRestorefhResponse();
|
|
203
|
-
case 32
|
|
198
|
+
case 32 /* Nfsv4Op.SAVEFH */:
|
|
204
199
|
return this.decodeSavefhResponse();
|
|
205
|
-
case 33
|
|
200
|
+
case 33 /* Nfsv4Op.SECINFO */:
|
|
206
201
|
return this.decodeSecinfoResponse();
|
|
207
|
-
case 34
|
|
202
|
+
case 34 /* Nfsv4Op.SETATTR */:
|
|
208
203
|
return this.decodeSetattrResponse();
|
|
209
|
-
case 35
|
|
204
|
+
case 35 /* Nfsv4Op.SETCLIENTID */:
|
|
210
205
|
return this.decodeSetclientidResponse();
|
|
211
|
-
case 36
|
|
206
|
+
case 36 /* Nfsv4Op.SETCLIENTID_CONFIRM */:
|
|
212
207
|
return this.decodeSetclientidConfirmResponse();
|
|
213
|
-
case 37
|
|
208
|
+
case 37 /* Nfsv4Op.VERIFY */:
|
|
214
209
|
return this.decodeVerifyResponse();
|
|
215
|
-
case 38
|
|
210
|
+
case 38 /* Nfsv4Op.WRITE */:
|
|
216
211
|
return this.decodeWriteResponse();
|
|
217
|
-
case 39
|
|
212
|
+
case 39 /* Nfsv4Op.RELEASE_LOCKOWNER */:
|
|
218
213
|
return this.decodeReleaseLockOwnerResponse();
|
|
219
|
-
case 10044
|
|
214
|
+
case 10044 /* Nfsv4Op.ILLEGAL */:
|
|
220
215
|
return this.decodeIllegalResponse();
|
|
221
216
|
default:
|
|
222
|
-
|
|
217
|
+
// Per RFC 7530 §15.2.4, treat unknown operation codes as ILLEGAL
|
|
218
|
+
return this.decodeIllegalResponse();
|
|
223
219
|
}
|
|
224
220
|
}
|
|
225
221
|
readFh() {
|
|
@@ -230,21 +226,14 @@ class Nfsv4Decoder {
|
|
|
230
226
|
const data = this.xdr.readOpaque(8);
|
|
231
227
|
return new structs.Nfsv4Verifier(data);
|
|
232
228
|
}
|
|
233
|
-
readTime() {
|
|
234
|
-
const xdr = this.xdr;
|
|
235
|
-
const seconds = xdr.readHyper();
|
|
236
|
-
const nseconds = xdr.readUnsignedInt();
|
|
237
|
-
return new structs.Nfsv4Time(seconds, nseconds);
|
|
238
|
-
}
|
|
239
229
|
readStateid() {
|
|
240
|
-
|
|
241
|
-
const seqid = xdr.readUnsignedInt();
|
|
242
|
-
const other = xdr.readOpaque(12);
|
|
243
|
-
return new structs.Nfsv4Stateid(seqid, other);
|
|
230
|
+
return structs.Nfsv4Stateid.decode(this.xdr);
|
|
244
231
|
}
|
|
245
232
|
readBitmap() {
|
|
246
233
|
const xdr = this.xdr;
|
|
247
234
|
const count = xdr.readUnsignedInt();
|
|
235
|
+
if (count > 8)
|
|
236
|
+
throw 10036 /* Nfsv4Stat.NFS4ERR_BADXDR */;
|
|
248
237
|
const mask = [];
|
|
249
238
|
for (let i = 0; i < count; i++)
|
|
250
239
|
mask.push(xdr.readUnsignedInt());
|
|
@@ -336,13 +325,33 @@ class Nfsv4Decoder {
|
|
|
336
325
|
throw new errors_1.Nfsv4DecodingError(`Unknown open claim type: ${claimType}`);
|
|
337
326
|
}
|
|
338
327
|
}
|
|
328
|
+
readOpenHow() {
|
|
329
|
+
const xdr = this.xdr;
|
|
330
|
+
const opentype = xdr.readUnsignedInt();
|
|
331
|
+
if (opentype === 0 /* Nfsv4OpenFlags.OPEN4_NOCREATE */)
|
|
332
|
+
return new structs.Nfsv4OpenHow(opentype);
|
|
333
|
+
const mode = xdr.readUnsignedInt();
|
|
334
|
+
switch (mode) {
|
|
335
|
+
case 0 /* Nfsv4CreateMode.UNCHECKED4 */:
|
|
336
|
+
case 1 /* Nfsv4CreateMode.GUARDED4 */: {
|
|
337
|
+
const createattrs = this.readFattr();
|
|
338
|
+
return new structs.Nfsv4OpenHow(opentype, new structs.Nfsv4CreateHow(mode, new structs.Nfsv4CreateAttrs(createattrs)));
|
|
339
|
+
}
|
|
340
|
+
case 2 /* Nfsv4CreateMode.EXCLUSIVE4 */: {
|
|
341
|
+
const createverf = this.readVerifier();
|
|
342
|
+
return new structs.Nfsv4OpenHow(opentype, new structs.Nfsv4CreateHow(mode, new structs.Nfsv4CreateVerf(createverf)));
|
|
343
|
+
}
|
|
344
|
+
default:
|
|
345
|
+
throw new errors_1.Nfsv4DecodingError(`Unknown create mode: ${mode}`);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
339
348
|
readOpenDelegation() {
|
|
340
349
|
const xdr = this.xdr;
|
|
341
350
|
const delegationType = xdr.readUnsignedInt();
|
|
342
351
|
switch (delegationType) {
|
|
343
|
-
case 0
|
|
352
|
+
case 0 /* Nfsv4DelegType.OPEN_DELEGATE_NONE */:
|
|
344
353
|
return new structs.Nfsv4OpenDelegation(delegationType);
|
|
345
|
-
case 1
|
|
354
|
+
case 1 /* Nfsv4DelegType.OPEN_DELEGATE_READ */: {
|
|
346
355
|
const stateid = this.readStateid();
|
|
347
356
|
const recall = xdr.readBoolean();
|
|
348
357
|
const aceCount = xdr.readUnsignedInt();
|
|
@@ -352,7 +361,7 @@ class Nfsv4Decoder {
|
|
|
352
361
|
}
|
|
353
362
|
return new structs.Nfsv4OpenDelegation(delegationType, new structs.Nfsv4OpenReadDelegation(stateid, recall, permissions));
|
|
354
363
|
}
|
|
355
|
-
case 2
|
|
364
|
+
case 2 /* Nfsv4DelegType.OPEN_DELEGATE_WRITE */: {
|
|
356
365
|
const stateid = this.readStateid();
|
|
357
366
|
const recall = xdr.readBoolean();
|
|
358
367
|
const spaceLimit = xdr.readUnsignedHyper();
|
|
@@ -387,10 +396,6 @@ class Nfsv4Decoder {
|
|
|
387
396
|
}
|
|
388
397
|
return new structs.Nfsv4SecInfoFlavor(flavor);
|
|
389
398
|
}
|
|
390
|
-
decodeAccessRequest() {
|
|
391
|
-
const access = this.xdr.readUnsignedInt();
|
|
392
|
-
return new msg.Nfsv4AccessRequest(access);
|
|
393
|
-
}
|
|
394
399
|
decodeAccessResponse() {
|
|
395
400
|
const xdr = this.xdr;
|
|
396
401
|
const status = xdr.readUnsignedInt();
|
|
@@ -401,12 +406,6 @@ class Nfsv4Decoder {
|
|
|
401
406
|
}
|
|
402
407
|
return new msg.Nfsv4AccessResponse(status);
|
|
403
408
|
}
|
|
404
|
-
decodeCloseRequest() {
|
|
405
|
-
const xdr = this.xdr;
|
|
406
|
-
const seqid = xdr.readUnsignedInt();
|
|
407
|
-
const openStateid = this.readStateid();
|
|
408
|
-
return new msg.Nfsv4CloseRequest(seqid, openStateid);
|
|
409
|
-
}
|
|
410
409
|
decodeCloseResponse() {
|
|
411
410
|
const status = this.xdr.readUnsignedInt();
|
|
412
411
|
if (status === 0) {
|
|
@@ -415,12 +414,6 @@ class Nfsv4Decoder {
|
|
|
415
414
|
}
|
|
416
415
|
return new msg.Nfsv4CloseResponse(status);
|
|
417
416
|
}
|
|
418
|
-
decodeCommitRequest() {
|
|
419
|
-
const xdr = this.xdr;
|
|
420
|
-
const offset = xdr.readUnsignedHyper();
|
|
421
|
-
const count = xdr.readUnsignedInt();
|
|
422
|
-
return new msg.Nfsv4CommitRequest(offset, count);
|
|
423
|
-
}
|
|
424
417
|
decodeCommitResponse() {
|
|
425
418
|
const status = this.xdr.readUnsignedInt();
|
|
426
419
|
if (status === 0) {
|
|
@@ -433,26 +426,28 @@ class Nfsv4Decoder {
|
|
|
433
426
|
const xdr = this.xdr;
|
|
434
427
|
const type = xdr.readUnsignedInt();
|
|
435
428
|
let objtype;
|
|
436
|
-
const objname = xdr.readString();
|
|
437
|
-
const createattrs = this.readFattr();
|
|
438
429
|
switch (type) {
|
|
439
|
-
case 5
|
|
430
|
+
case 5 /* Nfsv4FType.NF4LNK */: {
|
|
440
431
|
const linkdata = xdr.readString();
|
|
441
|
-
objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeLink(linkdata
|
|
432
|
+
objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeLink(linkdata));
|
|
442
433
|
break;
|
|
443
434
|
}
|
|
444
|
-
case 3
|
|
445
|
-
case 4
|
|
435
|
+
case 3 /* Nfsv4FType.NF4BLK */:
|
|
436
|
+
case 4 /* Nfsv4FType.NF4CHR */: {
|
|
446
437
|
const specdata1 = xdr.readUnsignedInt();
|
|
447
438
|
const specdata2 = xdr.readUnsignedInt();
|
|
448
439
|
const devdata = new structs.Nfsv4SpecData(specdata1, specdata2);
|
|
449
|
-
objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeDevice(devdata
|
|
440
|
+
objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeDevice(devdata));
|
|
441
|
+
break;
|
|
442
|
+
}
|
|
443
|
+
default: {
|
|
444
|
+
objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeVoid());
|
|
450
445
|
break;
|
|
451
446
|
}
|
|
452
|
-
default:
|
|
453
|
-
objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeOther(createattrs));
|
|
454
447
|
}
|
|
455
|
-
|
|
448
|
+
const objname = xdr.readString();
|
|
449
|
+
const createattrs = this.readFattr();
|
|
450
|
+
return new msg.Nfsv4CreateRequest(objtype, objname, createattrs);
|
|
456
451
|
}
|
|
457
452
|
decodeCreateResponse() {
|
|
458
453
|
const status = this.xdr.readUnsignedInt();
|
|
@@ -463,18 +458,10 @@ class Nfsv4Decoder {
|
|
|
463
458
|
}
|
|
464
459
|
return new msg.Nfsv4CreateResponse(status);
|
|
465
460
|
}
|
|
466
|
-
decodeDelegpurgeRequest() {
|
|
467
|
-
const clientid = this.xdr.readUnsignedHyper();
|
|
468
|
-
return new msg.Nfsv4DelegpurgeRequest(clientid);
|
|
469
|
-
}
|
|
470
461
|
decodeDelegpurgeResponse() {
|
|
471
462
|
const status = this.xdr.readUnsignedInt();
|
|
472
463
|
return new msg.Nfsv4DelegpurgeResponse(status);
|
|
473
464
|
}
|
|
474
|
-
decodeDelegreturnRequest() {
|
|
475
|
-
const delegStateid = this.readStateid();
|
|
476
|
-
return new msg.Nfsv4DelegreturnRequest(delegStateid);
|
|
477
|
-
}
|
|
478
465
|
decodeDelegreturnResponse() {
|
|
479
466
|
const status = this.xdr.readUnsignedInt();
|
|
480
467
|
return new msg.Nfsv4DelegreturnResponse(status);
|
|
@@ -605,7 +592,7 @@ class Nfsv4Decoder {
|
|
|
605
592
|
const shareAccess = xdr.readUnsignedInt();
|
|
606
593
|
const shareDeny = xdr.readUnsignedInt();
|
|
607
594
|
const owner = this.readOpenOwner();
|
|
608
|
-
const openhow =
|
|
595
|
+
const openhow = this.readOpenHow();
|
|
609
596
|
const claim = this.readOpenClaim();
|
|
610
597
|
return new msg.Nfsv4OpenRequest(seqid, shareAccess, shareDeny, owner, openhow, claim);
|
|
611
598
|
}
|
|
@@ -667,16 +654,6 @@ class Nfsv4Decoder {
|
|
|
667
654
|
const status = this.xdr.readUnsignedInt();
|
|
668
655
|
return new msg.Nfsv4PutfhResponse(status);
|
|
669
656
|
}
|
|
670
|
-
decodePutpubfhRequest() {
|
|
671
|
-
return new msg.Nfsv4PutpubfhRequest();
|
|
672
|
-
}
|
|
673
|
-
decodePutpubfhResponse() {
|
|
674
|
-
const status = this.xdr.readUnsignedInt();
|
|
675
|
-
return new msg.Nfsv4PutpubfhResponse(status);
|
|
676
|
-
}
|
|
677
|
-
decodePutrootfhRequest() {
|
|
678
|
-
return new msg.Nfsv4PutrootfhRequest();
|
|
679
|
-
}
|
|
680
657
|
decodePutrootfhResponse() {
|
|
681
658
|
const status = this.xdr.readUnsignedInt();
|
|
682
659
|
return new msg.Nfsv4PutrootfhResponse(status);
|
|
@@ -779,9 +756,6 @@ class Nfsv4Decoder {
|
|
|
779
756
|
const status = this.xdr.readUnsignedInt();
|
|
780
757
|
return new msg.Nfsv4RestorefhResponse(status);
|
|
781
758
|
}
|
|
782
|
-
decodeSavefhRequest() {
|
|
783
|
-
return new msg.Nfsv4SavefhRequest();
|
|
784
|
-
}
|
|
785
759
|
decodeSavefhResponse() {
|
|
786
760
|
const status = this.xdr.readUnsignedInt();
|
|
787
761
|
return new msg.Nfsv4SavefhResponse(status);
|
|
@@ -879,6 +853,108 @@ class Nfsv4Decoder {
|
|
|
879
853
|
const status = this.xdr.readUnsignedInt();
|
|
880
854
|
return new msg.Nfsv4IllegalResponse(status);
|
|
881
855
|
}
|
|
856
|
+
decodeCbCompound(reader, isRequest) {
|
|
857
|
+
this.xdr.reader = reader;
|
|
858
|
+
const startPos = reader.x;
|
|
859
|
+
try {
|
|
860
|
+
if (isRequest) {
|
|
861
|
+
return this.decodeCbCompoundRequest();
|
|
862
|
+
}
|
|
863
|
+
else {
|
|
864
|
+
return this.decodeCbCompoundResponse();
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
catch (err) {
|
|
868
|
+
if (err instanceof RangeError) {
|
|
869
|
+
reader.x = startPos;
|
|
870
|
+
return undefined;
|
|
871
|
+
}
|
|
872
|
+
throw err;
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
decodeCbCompoundRequest() {
|
|
876
|
+
const xdr = this.xdr;
|
|
877
|
+
const tag = xdr.readString();
|
|
878
|
+
const minorversion = xdr.readUnsignedInt();
|
|
879
|
+
const callbackIdent = xdr.readUnsignedInt();
|
|
880
|
+
const argarray = [];
|
|
881
|
+
const count = xdr.readUnsignedInt();
|
|
882
|
+
for (let i = 0; i < count; i++) {
|
|
883
|
+
const op = xdr.readUnsignedInt();
|
|
884
|
+
const request = this.decodeCbRequest(op);
|
|
885
|
+
if (request)
|
|
886
|
+
argarray.push(request);
|
|
887
|
+
}
|
|
888
|
+
return new msg.Nfsv4CbCompoundRequest(tag, minorversion, callbackIdent, argarray);
|
|
889
|
+
}
|
|
890
|
+
decodeCbCompoundResponse() {
|
|
891
|
+
const xdr = this.xdr;
|
|
892
|
+
const status = xdr.readUnsignedInt();
|
|
893
|
+
const tag = xdr.readString();
|
|
894
|
+
const resarray = [];
|
|
895
|
+
const count = xdr.readUnsignedInt();
|
|
896
|
+
for (let i = 0; i < count; i++) {
|
|
897
|
+
const op = xdr.readUnsignedInt();
|
|
898
|
+
const response = this.decodeCbResponse(op);
|
|
899
|
+
if (response)
|
|
900
|
+
resarray.push(response);
|
|
901
|
+
}
|
|
902
|
+
return new msg.Nfsv4CbCompoundResponse(status, tag, resarray);
|
|
903
|
+
}
|
|
904
|
+
decodeCbRequest(op) {
|
|
905
|
+
switch (op) {
|
|
906
|
+
case 3 /* Nfsv4CbOp.CB_GETATTR */:
|
|
907
|
+
return this.decodeCbGetattrRequest();
|
|
908
|
+
case 4 /* Nfsv4CbOp.CB_RECALL */:
|
|
909
|
+
return this.decodeCbRecallRequest();
|
|
910
|
+
case 10044 /* Nfsv4CbOp.CB_ILLEGAL */:
|
|
911
|
+
return this.decodeCbIllegalRequest();
|
|
912
|
+
default:
|
|
913
|
+
throw new errors_1.Nfsv4DecodingError(`Unknown callback operation: ${op}`);
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
decodeCbResponse(op) {
|
|
917
|
+
switch (op) {
|
|
918
|
+
case 3 /* Nfsv4CbOp.CB_GETATTR */:
|
|
919
|
+
return this.decodeCbGetattrResponse();
|
|
920
|
+
case 4 /* Nfsv4CbOp.CB_RECALL */:
|
|
921
|
+
return this.decodeCbRecallResponse();
|
|
922
|
+
case 10044 /* Nfsv4CbOp.CB_ILLEGAL */:
|
|
923
|
+
return this.decodeCbIllegalResponse();
|
|
924
|
+
default:
|
|
925
|
+
throw new errors_1.Nfsv4DecodingError(`Unknown callback operation: ${op}`);
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
decodeCbGetattrRequest() {
|
|
929
|
+
const fh = this.readFh();
|
|
930
|
+
const attrRequest = this.readBitmap();
|
|
931
|
+
return new msg.Nfsv4CbGetattrRequest(fh, attrRequest);
|
|
932
|
+
}
|
|
933
|
+
decodeCbGetattrResponse() {
|
|
934
|
+
const status = this.xdr.readUnsignedInt();
|
|
935
|
+
if (status === 0) {
|
|
936
|
+
const objAttributes = this.readFattr();
|
|
937
|
+
return new msg.Nfsv4CbGetattrResponse(status, new msg.Nfsv4CbGetattrResOk(objAttributes));
|
|
938
|
+
}
|
|
939
|
+
return new msg.Nfsv4CbGetattrResponse(status);
|
|
940
|
+
}
|
|
941
|
+
decodeCbRecallRequest() {
|
|
942
|
+
const stateid = this.readStateid();
|
|
943
|
+
const truncate = this.xdr.readBoolean();
|
|
944
|
+
const fh = this.readFh();
|
|
945
|
+
return new msg.Nfsv4CbRecallRequest(stateid, truncate, fh);
|
|
946
|
+
}
|
|
947
|
+
decodeCbRecallResponse() {
|
|
948
|
+
const status = this.xdr.readUnsignedInt();
|
|
949
|
+
return new msg.Nfsv4CbRecallResponse(status);
|
|
950
|
+
}
|
|
951
|
+
decodeCbIllegalRequest() {
|
|
952
|
+
return new msg.Nfsv4CbIllegalRequest();
|
|
953
|
+
}
|
|
954
|
+
decodeCbIllegalResponse() {
|
|
955
|
+
const status = this.xdr.readUnsignedInt();
|
|
956
|
+
return new msg.Nfsv4CbIllegalResponse(status);
|
|
957
|
+
}
|
|
882
958
|
}
|
|
883
959
|
exports.Nfsv4Decoder = Nfsv4Decoder;
|
|
884
960
|
//# sourceMappingURL=Nfsv4Decoder.js.map
|