@jsonjoy.com/json-pack 1.21.0 → 17.60.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 +59 -51
- 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 +0 -2
- package/lib/nfs/v4/Nfsv4Decoder.js +96 -102
- package/lib/nfs/v4/Nfsv4Decoder.js.map +1 -1
- package/lib/nfs/v4/Nfsv4Encoder.d.ts +2 -2
- package/lib/nfs/v4/Nfsv4Encoder.js +1 -1
- package/lib/nfs/v4/Nfsv4Encoder.js.map +1 -1
- package/lib/nfs/v4/Nfsv4FullEncoder.d.ts +4 -4
- package/lib/nfs/v4/Nfsv4FullEncoder.js +4 -4
- package/lib/nfs/v4/Nfsv4FullEncoder.js.map +1 -1
- package/lib/nfs/v4/attributes.d.ts +62 -0
- package/lib/nfs/v4/attributes.js +209 -147
- package/lib/nfs/v4/attributes.js.map +1 -1
- package/lib/nfs/v4/builder.d.ts +274 -1
- package/lib/nfs/v4/builder.js +283 -10
- package/lib/nfs/v4/builder.js.map +1 -1
- package/lib/nfs/v4/client/NfsFsDir.d.ts +4 -1
- package/lib/nfs/v4/client/NfsFsDir.js +8 -5
- package/lib/nfs/v4/client/NfsFsDir.js.map +1 -1
- package/lib/nfs/v4/client/NfsFsDirent.d.ts +3 -0
- package/lib/nfs/v4/client/NfsFsDirent.js +10 -7
- package/lib/nfs/v4/client/NfsFsDirent.js.map +1 -1
- package/lib/nfs/v4/client/NfsFsFileHandle.d.ts +4 -3
- package/lib/nfs/v4/client/NfsFsFileHandle.js +13 -10
- package/lib/nfs/v4/client/NfsFsFileHandle.js.map +1 -1
- package/lib/nfs/v4/client/NfsFsStats.d.ts +3 -0
- package/lib/nfs/v4/client/NfsFsStats.js +10 -7
- package/lib/nfs/v4/client/NfsFsStats.js.map +1 -1
- package/lib/nfs/v4/client/Nfsv4FsClient.d.ts +2 -3
- package/lib/nfs/v4/client/Nfsv4FsClient.js +92 -92
- package/lib/nfs/v4/client/Nfsv4FsClient.js.map +1 -1
- package/lib/nfs/v4/client/Nfsv4TcpClient.d.ts +6 -6
- package/lib/nfs/v4/client/Nfsv4TcpClient.js +3 -3
- package/lib/nfs/v4/client/Nfsv4TcpClient.js.map +1 -1
- package/lib/nfs/v4/client/types.d.ts +1 -1
- package/lib/nfs/v4/constants.d.ts +78 -1
- package/lib/nfs/v4/format.d.ts +1 -1
- package/lib/nfs/v4/format.js +229 -229
- package/lib/nfs/v4/format.js.map +1 -1
- package/lib/nfs/v4/messages.js +101 -101
- package/lib/nfs/v4/messages.js.map +1 -1
- package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.d.ts +20 -1
- package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.js +29 -8
- package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.js.map +1 -1
- package/lib/nfs/v4/server/Nfsv4Connection.d.ts +6 -3
- package/lib/nfs/v4/server/Nfsv4Connection.js +11 -8
- package/lib/nfs/v4/server/Nfsv4Connection.js.map +1 -1
- package/lib/nfs/v4/server/Nfsv4TcpServer.d.ts +2 -3
- package/lib/nfs/v4/server/Nfsv4TcpServer.js +1 -0
- package/lib/nfs/v4/server/Nfsv4TcpServer.js.map +1 -1
- package/lib/nfs/v4/server/operations/ByteRangeLock.d.ts +69 -1
- package/lib/nfs/v4/server/operations/ByteRangeLock.js +43 -1
- package/lib/nfs/v4/server/operations/ByteRangeLock.js.map +1 -1
- package/lib/nfs/v4/server/operations/ClientRecord.d.ts +98 -1
- package/lib/nfs/v4/server/operations/ClientRecord.js +54 -1
- package/lib/nfs/v4/server/operations/ClientRecord.js.map +1 -1
- package/lib/nfs/v4/server/operations/FilesystemStats.d.ts +22 -1
- package/lib/nfs/v4/server/operations/FilesystemStats.js +16 -1
- package/lib/nfs/v4/server/operations/FilesystemStats.js.map +1 -1
- package/lib/nfs/v4/server/operations/LockOwnerState.d.ts +75 -2
- package/lib/nfs/v4/server/operations/LockOwnerState.js +43 -1
- package/lib/nfs/v4/server/operations/LockOwnerState.js.map +1 -1
- package/lib/nfs/v4/server/operations/LockStateid.d.ts +55 -1
- package/lib/nfs/v4/server/operations/LockStateid.js +37 -1
- package/lib/nfs/v4/server/operations/LockStateid.js.map +1 -1
- package/lib/nfs/v4/server/operations/Nfsv4Operations.d.ts +2 -1
- package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.d.ts +2 -2
- package/lib/nfs/v4/server/operations/OpenFileState.d.ts +90 -2
- package/lib/nfs/v4/server/operations/OpenFileState.js +52 -1
- package/lib/nfs/v4/server/operations/OpenFileState.js.map +1 -1
- package/lib/nfs/v4/server/operations/OpenOwnerState.d.ts +76 -2
- package/lib/nfs/v4/server/operations/OpenOwnerState.js +44 -1
- package/lib/nfs/v4/server/operations/OpenOwnerState.js.map +1 -1
- package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.d.ts +73 -3
- package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.js +261 -187
- package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.js.map +1 -1
- package/lib/nfs/v4/server/operations/node/attrs.d.ts +13 -1
- package/lib/nfs/v4/server/operations/node/attrs.js +75 -62
- package/lib/nfs/v4/server/operations/node/attrs.js.map +1 -1
- package/lib/nfs/v4/server/operations/node/fh.d.ts +67 -2
- package/lib/nfs/v4/server/operations/node/fh.js +83 -21
- package/lib/nfs/v4/server/operations/node/fh.js.map +1 -1
- package/lib/nfs/v4/server/operations/node/util.js +4 -4
- package/lib/nfs/v4/server/operations/node/util.js.map +1 -1
- package/lib/nfs/v4/server/util.d.ts +0 -1
- package/lib/nfs/v4/server/util.js +40 -40
- package/lib/nfs/v4/structs.d.ts +136 -4
- package/lib/nfs/v4/structs.js +129 -0
- 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/RmRecordEncoder.d.ts +15 -1
- package/lib/rm/RmRecordEncoder.js +15 -1
- package/lib/rm/RmRecordEncoder.js.map +1 -1
- package/lib/rpc/RpcMessageDecoder.d.ts +1 -1
- package/lib/rpc/RpcMessageDecoder.js +8 -7
- 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 +46 -0
- package/lib/ssh/SshDecoder.js +52 -2
- package/lib/ssh/SshDecoder.js.map +1 -1
- package/lib/ssh/SshEncoder.d.ts +69 -0
- 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 +46 -0
- package/package.json +32 -55
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attrs.js","sourceRoot":"","sources":["../../../../../../src/nfs/v4/server/operations/node/attrs.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"attrs.js","sourceRoot":"","sources":["../../../../../../src/nfs/v4/server/operations/node/attrs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module File handle (FH) operations for NFS v4 server.
|
|
3
|
+
*/
|
|
1
4
|
import type { Nfsv4OperationCtx } from '../Nfsv4Operations';
|
|
2
|
-
export declare const ROOT_FH: Uint8Array
|
|
5
|
+
export declare const ROOT_FH: Uint8Array<ArrayBuffer>;
|
|
3
6
|
export declare const enum FH_TYPE {
|
|
7
|
+
/** Root file handle. */
|
|
4
8
|
ROOT = 0,
|
|
9
|
+
/** Path file handle: the full path is encoded in the file handle. */
|
|
5
10
|
PATH = 1,
|
|
11
|
+
/** ID file handle: server stores the mapping between the ID and the file path. */
|
|
6
12
|
ID = 2
|
|
7
13
|
}
|
|
8
14
|
export declare const enum FH {
|
|
9
15
|
MAX_SIZE = 128
|
|
10
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Encodes a file path as a Type 1 file handle (path-based).
|
|
19
|
+
* Format: `[FH_TYPE.PATH, ...utf8PathBytes]`
|
|
20
|
+
*
|
|
21
|
+
* @returns The encoded file handle, or undefined if the path is too long.
|
|
22
|
+
*/
|
|
11
23
|
export declare const encodePathFh: (absolutePath: string) => Uint8Array | undefined;
|
|
12
24
|
export declare const decodePathFh: (fh: Uint8Array) => string | undefined;
|
|
13
25
|
export declare class FileHandleMapper {
|
|
26
|
+
/** Root directory for all file handles. */
|
|
14
27
|
protected readonly dir: string;
|
|
28
|
+
/** 16-bit unsigned int which identifies this server instance. */
|
|
15
29
|
protected readonly stamp: number;
|
|
30
|
+
/** Map from random ID (40 bits) to absolute file path for Type 2 file handles. */
|
|
16
31
|
protected idToPath: Map<number, string>;
|
|
17
32
|
protected pathToId: Map<string, Uint8Array>;
|
|
18
33
|
protected readonly maxFhTableSize = 100000;
|
|
19
|
-
constructor(stamp: number,
|
|
34
|
+
constructor(stamp: number,
|
|
35
|
+
/** Root directory for all file handles. */
|
|
36
|
+
dir: string);
|
|
37
|
+
/**
|
|
38
|
+
* Decodes a file handle to an absolute file path.
|
|
39
|
+
* Returns `undefined` if the file handle could not be decoded.
|
|
40
|
+
*/
|
|
20
41
|
decode(fh: Uint8Array): string;
|
|
42
|
+
/**
|
|
43
|
+
* Encodes a file path as a file handle. Uses Type 1 (path-based) if the path
|
|
44
|
+
* fits, otherwise uses Type 2 (ID-based).
|
|
45
|
+
*
|
|
46
|
+
* Type-2 Format:
|
|
47
|
+
*
|
|
48
|
+
* - 1 byte: FH_TYPE.ID
|
|
49
|
+
* - 2 bytes: boot stamp (server instance ID)
|
|
50
|
+
* - 5 bytes: random ID (unique per file handle)
|
|
51
|
+
*/
|
|
21
52
|
encode(path: string): Uint8Array;
|
|
53
|
+
/**
|
|
54
|
+
* Perform a basic quick validation of the file handle structure.
|
|
55
|
+
* This does not guarantee that the file handle is valid, only that
|
|
56
|
+
* it is likely to be well-formed.
|
|
57
|
+
*/
|
|
22
58
|
validate(fh: Uint8Array): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Gets the current file path from the operation context.
|
|
61
|
+
* @param ctx Operation context containing the current file handle (cfh).
|
|
62
|
+
* @returns The current file path.
|
|
63
|
+
*/
|
|
23
64
|
currentPath(ctx: Nfsv4OperationCtx): string;
|
|
65
|
+
/**
|
|
66
|
+
* Gets the saved file path from the operation context.
|
|
67
|
+
* @param ctx Operation context containing the saved file handle (sfh).
|
|
68
|
+
* @returns The saved file path.
|
|
69
|
+
*/
|
|
24
70
|
savedPath(ctx: Nfsv4OperationCtx): string;
|
|
71
|
+
/**
|
|
72
|
+
* Sets the current file handle in the operation context to the given path.
|
|
73
|
+
* @param ctx Operation context to update.
|
|
74
|
+
* @param path Absolute file path to set as the current file handle.
|
|
75
|
+
*/
|
|
25
76
|
setCfh(ctx: Nfsv4OperationCtx, path: string): void;
|
|
77
|
+
/**
|
|
78
|
+
* Removes a file handle mapping for the given path.
|
|
79
|
+
* This is used when a file is deleted or replaced.
|
|
80
|
+
* @param path The absolute file path to remove from the mapping.
|
|
81
|
+
*/
|
|
26
82
|
remove(path: string): void;
|
|
83
|
+
/**
|
|
84
|
+
* Updates the file handle mappings when a file is renamed.
|
|
85
|
+
* This ensures that existing file handles pointing to the old path
|
|
86
|
+
* continue to work after the rename operation.
|
|
87
|
+
* When renaming over an existing file, the destination file handle
|
|
88
|
+
* is removed from the cache since that file will be replaced.
|
|
89
|
+
* @param oldPath The old absolute file path.
|
|
90
|
+
* @param newPath The new absolute file path.
|
|
91
|
+
*/
|
|
27
92
|
rename(oldPath: string, newPath: string): void;
|
|
28
93
|
}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @module File handle (FH) operations for NFS v4 server.
|
|
4
|
+
*/
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.FileHandleMapper = exports.decodePathFh = exports.encodePathFh = exports.ROOT_FH = void 0;
|
|
4
7
|
const encode_1 = require("@jsonjoy.com/buffers/lib/utf8/encode");
|
|
5
8
|
const decodeUtf8_1 = require("@jsonjoy.com/buffers/lib/utf8/decodeUtf8");
|
|
6
9
|
const node_crypto_1 = require("node:crypto");
|
|
7
10
|
exports.ROOT_FH = new Uint8Array([0]);
|
|
11
|
+
/**
|
|
12
|
+
* Encodes a file path as a Type 1 file handle (path-based).
|
|
13
|
+
* Format: `[FH_TYPE.PATH, ...utf8PathBytes]`
|
|
14
|
+
*
|
|
15
|
+
* @returns The encoded file handle, or undefined if the path is too long.
|
|
16
|
+
*/
|
|
8
17
|
const encodePathFh = (absolutePath) => {
|
|
9
18
|
const utf8Length = Buffer.byteLength(absolutePath, 'utf8');
|
|
10
|
-
if (utf8Length + 1 > 128)
|
|
19
|
+
if (utf8Length + 1 > 128 /* FH.MAX_SIZE */)
|
|
11
20
|
return undefined;
|
|
12
21
|
const u8 = new Uint8Array(1 + utf8Length);
|
|
13
|
-
u8[0] = 1
|
|
22
|
+
u8[0] = 1 /* FH_TYPE.PATH */;
|
|
14
23
|
(0, encode_1.encode)(u8, absolutePath, 1, utf8Length);
|
|
15
24
|
return u8;
|
|
16
25
|
};
|
|
@@ -19,59 +28,78 @@ const decodePathFh = (fh) => {
|
|
|
19
28
|
const length = fh.length;
|
|
20
29
|
if (length < 2)
|
|
21
30
|
return undefined;
|
|
22
|
-
if (fh[0] !== 1)
|
|
31
|
+
if (fh[0] !== 1 /* FH_TYPE.PATH */)
|
|
23
32
|
return undefined;
|
|
24
33
|
return (0, decodeUtf8_1.decodeUtf8)(fh, 1, length - 1);
|
|
25
34
|
};
|
|
26
35
|
exports.decodePathFh = decodePathFh;
|
|
27
36
|
class FileHandleMapper {
|
|
28
|
-
constructor(stamp,
|
|
37
|
+
constructor(stamp,
|
|
38
|
+
/** Root directory for all file handles. */
|
|
39
|
+
dir) {
|
|
29
40
|
this.dir = dir;
|
|
41
|
+
/** Map from random ID (40 bits) to absolute file path for Type 2 file handles. */
|
|
30
42
|
this.idToPath = new Map();
|
|
31
43
|
this.pathToId = new Map();
|
|
32
44
|
this.maxFhTableSize = 100000;
|
|
33
45
|
this.stamp = stamp & 0xffff;
|
|
34
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Decodes a file handle to an absolute file path.
|
|
49
|
+
* Returns `undefined` if the file handle could not be decoded.
|
|
50
|
+
*/
|
|
35
51
|
decode(fh) {
|
|
36
52
|
const length = fh.length;
|
|
37
53
|
if (fh.length === 0)
|
|
38
54
|
return this.dir;
|
|
39
55
|
const type = fh[0];
|
|
40
|
-
if (type === 0)
|
|
56
|
+
if (type === 0 /* FH_TYPE.ROOT */)
|
|
41
57
|
return this.dir;
|
|
42
|
-
if (type === 1) {
|
|
58
|
+
if (type === 1 /* FH_TYPE.PATH */) {
|
|
43
59
|
try {
|
|
44
60
|
const path = (0, exports.decodePathFh)(fh);
|
|
45
61
|
if (!path)
|
|
46
|
-
throw 10001
|
|
62
|
+
throw 10001 /* Nfsv4Stat.NFS4ERR_BADHANDLE */;
|
|
47
63
|
return path;
|
|
48
64
|
}
|
|
49
65
|
catch {
|
|
50
|
-
throw 10001
|
|
66
|
+
throw 10001 /* Nfsv4Stat.NFS4ERR_BADHANDLE */;
|
|
51
67
|
}
|
|
52
68
|
}
|
|
53
|
-
if (type === 2) {
|
|
69
|
+
if (type === 2 /* FH_TYPE.ID */) {
|
|
54
70
|
if (length !== 8)
|
|
55
|
-
throw 10001
|
|
71
|
+
throw 10001 /* Nfsv4Stat.NFS4ERR_BADHANDLE */;
|
|
56
72
|
const stamp = (fh[1] << 8) | fh[2];
|
|
57
73
|
if (stamp !== this.stamp)
|
|
58
|
-
throw 10014
|
|
74
|
+
throw 10014 /* Nfsv4Stat.NFS4ERR_FHEXPIRED */;
|
|
59
75
|
const id = fh[3] * 0x100000000 + fh[4] * 0x1000000 + (fh[5] << 16) + (fh[6] << 8) + fh[7];
|
|
60
76
|
const path = this.idToPath.get(id);
|
|
61
77
|
if (!path)
|
|
62
|
-
throw 10014
|
|
78
|
+
throw 10014 /* Nfsv4Stat.NFS4ERR_FHEXPIRED */;
|
|
63
79
|
return path;
|
|
64
80
|
}
|
|
65
|
-
throw 10001
|
|
81
|
+
throw 10001 /* Nfsv4Stat.NFS4ERR_BADHANDLE */;
|
|
66
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Encodes a file path as a file handle. Uses Type 1 (path-based) if the path
|
|
85
|
+
* fits, otherwise uses Type 2 (ID-based).
|
|
86
|
+
*
|
|
87
|
+
* Type-2 Format:
|
|
88
|
+
*
|
|
89
|
+
* - 1 byte: FH_TYPE.ID
|
|
90
|
+
* - 2 bytes: boot stamp (server instance ID)
|
|
91
|
+
* - 5 bytes: random ID (unique per file handle)
|
|
92
|
+
*/
|
|
67
93
|
encode(path) {
|
|
68
94
|
if (path === this.dir)
|
|
69
95
|
return exports.ROOT_FH;
|
|
96
|
+
// let fh = encodePathFh(path);
|
|
97
|
+
// if (fh) return fh;
|
|
70
98
|
let fh = this.pathToId.get(path);
|
|
71
99
|
if (fh)
|
|
72
100
|
return fh;
|
|
73
101
|
fh = (0, node_crypto_1.randomBytes)(8);
|
|
74
|
-
fh[0] = 2
|
|
102
|
+
fh[0] = 2 /* FH_TYPE.ID */;
|
|
75
103
|
fh[1] = (this.stamp >> 8) & 0xff;
|
|
76
104
|
fh[2] = this.stamp & 0xff;
|
|
77
105
|
const id = fh[3] * 0x100000000 + fh[4] * 0x1000000 + (fh[5] << 16) + (fh[6] << 8) + fh[7];
|
|
@@ -90,52 +118,86 @@ class FileHandleMapper {
|
|
|
90
118
|
pathToId.set(path, fh);
|
|
91
119
|
return fh;
|
|
92
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Perform a basic quick validation of the file handle structure.
|
|
123
|
+
* This does not guarantee that the file handle is valid, only that
|
|
124
|
+
* it is likely to be well-formed.
|
|
125
|
+
*/
|
|
93
126
|
validate(fh) {
|
|
94
127
|
if (fh.length === 0)
|
|
95
128
|
return true;
|
|
96
129
|
const type = fh[0];
|
|
97
|
-
if (type === 0)
|
|
130
|
+
if (type === 0 /* FH_TYPE.ROOT */)
|
|
98
131
|
return true;
|
|
99
|
-
if (type === 1)
|
|
132
|
+
if (type === 1 /* FH_TYPE.PATH */)
|
|
100
133
|
return true;
|
|
101
|
-
if (type === 2)
|
|
134
|
+
if (type === 2 /* FH_TYPE.ID */)
|
|
102
135
|
return true;
|
|
103
136
|
return false;
|
|
104
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Gets the current file path from the operation context.
|
|
140
|
+
* @param ctx Operation context containing the current file handle (cfh).
|
|
141
|
+
* @returns The current file path.
|
|
142
|
+
*/
|
|
105
143
|
currentPath(ctx) {
|
|
106
144
|
const cfh = ctx.cfh;
|
|
107
145
|
if (!cfh)
|
|
108
|
-
throw 10020
|
|
146
|
+
throw 10020 /* Nfsv4Stat.NFS4ERR_NOFILEHANDLE */;
|
|
109
147
|
return this.decode(cfh);
|
|
110
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Gets the saved file path from the operation context.
|
|
151
|
+
* @param ctx Operation context containing the saved file handle (sfh).
|
|
152
|
+
* @returns The saved file path.
|
|
153
|
+
*/
|
|
111
154
|
savedPath(ctx) {
|
|
112
155
|
const sfh = ctx.sfh;
|
|
113
156
|
if (!sfh)
|
|
114
|
-
throw 10020
|
|
157
|
+
throw 10020 /* Nfsv4Stat.NFS4ERR_NOFILEHANDLE */;
|
|
115
158
|
return this.decode(sfh);
|
|
116
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Sets the current file handle in the operation context to the given path.
|
|
162
|
+
* @param ctx Operation context to update.
|
|
163
|
+
* @param path Absolute file path to set as the current file handle.
|
|
164
|
+
*/
|
|
117
165
|
setCfh(ctx, path) {
|
|
118
166
|
const newFh = this.encode(path);
|
|
119
167
|
ctx.cfh = newFh;
|
|
120
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Removes a file handle mapping for the given path.
|
|
171
|
+
* This is used when a file is deleted or replaced.
|
|
172
|
+
* @param path The absolute file path to remove from the mapping.
|
|
173
|
+
*/
|
|
121
174
|
remove(path) {
|
|
122
175
|
const fh = this.pathToId.get(path);
|
|
123
176
|
if (!fh)
|
|
124
177
|
return;
|
|
125
178
|
const type = fh[0];
|
|
126
|
-
if (type !== 2)
|
|
179
|
+
if (type !== 2 /* FH_TYPE.ID */)
|
|
127
180
|
return;
|
|
128
181
|
const id = fh[3] * 0x100000000 + fh[4] * 0x1000000 + (fh[5] << 16) + (fh[6] << 8) + fh[7];
|
|
129
182
|
this.pathToId.delete(path);
|
|
130
183
|
this.idToPath.delete(id);
|
|
131
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Updates the file handle mappings when a file is renamed.
|
|
187
|
+
* This ensures that existing file handles pointing to the old path
|
|
188
|
+
* continue to work after the rename operation.
|
|
189
|
+
* When renaming over an existing file, the destination file handle
|
|
190
|
+
* is removed from the cache since that file will be replaced.
|
|
191
|
+
* @param oldPath The old absolute file path.
|
|
192
|
+
* @param newPath The new absolute file path.
|
|
193
|
+
*/
|
|
132
194
|
rename(oldPath, newPath) {
|
|
133
195
|
this.remove(newPath);
|
|
134
196
|
const fh = this.pathToId.get(oldPath);
|
|
135
197
|
if (!fh)
|
|
136
198
|
return;
|
|
137
199
|
const type = fh[0];
|
|
138
|
-
if (type !== 2)
|
|
200
|
+
if (type !== 2 /* FH_TYPE.ID */)
|
|
139
201
|
return;
|
|
140
202
|
const id = fh[3] * 0x100000000 + fh[4] * 0x1000000 + (fh[5] << 16) + (fh[6] << 8) + fh[7];
|
|
141
203
|
this.pathToId.delete(oldPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fh.js","sourceRoot":"","sources":["../../../../../../src/nfs/v4/server/operations/node/fh.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"fh.js","sourceRoot":"","sources":["../../../../../../src/nfs/v4/server/operations/node/fh.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,13 @@ const isErrCode = (code, error) => !!error && typeof error === 'object' && error
|
|
|
5
5
|
exports.isErrCode = isErrCode;
|
|
6
6
|
const normalizeNodeFsError = (err, logger) => {
|
|
7
7
|
if ((0, exports.isErrCode)('ENOENT', err))
|
|
8
|
-
return 2
|
|
8
|
+
return 2 /* Nfsv4Stat.NFS4ERR_NOENT */;
|
|
9
9
|
if ((0, exports.isErrCode)('EACCES', err))
|
|
10
|
-
return 13
|
|
10
|
+
return 13 /* Nfsv4Stat.NFS4ERR_ACCESS */;
|
|
11
11
|
if ((0, exports.isErrCode)('EEXIST', err))
|
|
12
|
-
return 17
|
|
12
|
+
return 17 /* Nfsv4Stat.NFS4ERR_EXIST */;
|
|
13
13
|
logger.error('UNEXPECTED_FS_ERROR', err);
|
|
14
|
-
return 5
|
|
14
|
+
return 5 /* Nfsv4Stat.NFS4ERR_IO */;
|
|
15
15
|
};
|
|
16
16
|
exports.normalizeNodeFsError = normalizeNodeFsError;
|
|
17
17
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../../src/nfs/v4/server/operations/node/util.ts"],"names":[],"mappings":";;;AAGO,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,KAAc,EAAW,EAAE,CAClE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAAa,CAAC,IAAI,KAAK,IAAI,CAAC;AAD1D,QAAA,SAAS,aACiD;AAEhE,MAAM,oBAAoB,GAAG,CAAC,GAAY,EAAE,MAAc,EAAa,EAAE;IAC9E,IAAI,IAAA,iBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC;QAAE,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../../src/nfs/v4/server/operations/node/util.ts"],"names":[],"mappings":";;;AAGO,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,KAAc,EAAW,EAAE,CAClE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAAa,CAAC,IAAI,KAAK,IAAI,CAAC;AAD1D,QAAA,SAAS,aACiD;AAEhE,MAAM,oBAAoB,GAAG,CAAC,GAAY,EAAE,MAAc,EAAa,EAAE;IAC9E,IAAI,IAAA,iBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC;QAAE,uCAA+B;IAC7D,IAAI,IAAA,iBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC;QAAE,yCAAgC;IAC9D,IAAI,IAAA,iBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC;QAAE,wCAA+B;IAC7D,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IACzC,oCAA4B;AAC9B,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B"}
|
|
@@ -11,9 +11,9 @@ const toHex = (buffer) => {
|
|
|
11
11
|
exports.toHex = toHex;
|
|
12
12
|
const getProcName = (proc) => {
|
|
13
13
|
switch (proc) {
|
|
14
|
-
case 0
|
|
14
|
+
case 0 /* Nfsv4Proc.NULL */:
|
|
15
15
|
return 'NULL';
|
|
16
|
-
case 1
|
|
16
|
+
case 1 /* Nfsv4Proc.COMPOUND */:
|
|
17
17
|
return 'COMPOUND';
|
|
18
18
|
}
|
|
19
19
|
return 'UNKNOWN(' + proc + ')';
|
|
@@ -21,81 +21,81 @@ const getProcName = (proc) => {
|
|
|
21
21
|
exports.getProcName = getProcName;
|
|
22
22
|
const getOpName = (op) => {
|
|
23
23
|
switch (op) {
|
|
24
|
-
case 3
|
|
24
|
+
case 3 /* Nfsv4Op.ACCESS */:
|
|
25
25
|
return 'ACCESS';
|
|
26
|
-
case 4
|
|
26
|
+
case 4 /* Nfsv4Op.CLOSE */:
|
|
27
27
|
return 'CLOSE';
|
|
28
|
-
case 5
|
|
28
|
+
case 5 /* Nfsv4Op.COMMIT */:
|
|
29
29
|
return 'COMMIT';
|
|
30
|
-
case 6
|
|
30
|
+
case 6 /* Nfsv4Op.CREATE */:
|
|
31
31
|
return 'CREATE';
|
|
32
|
-
case 7
|
|
32
|
+
case 7 /* Nfsv4Op.DELEGPURGE */:
|
|
33
33
|
return 'DELEGPURGE';
|
|
34
|
-
case 8
|
|
34
|
+
case 8 /* Nfsv4Op.DELEGRETURN */:
|
|
35
35
|
return 'DELEGRETURN';
|
|
36
|
-
case 9
|
|
36
|
+
case 9 /* Nfsv4Op.GETATTR */:
|
|
37
37
|
return 'GETATTR';
|
|
38
|
-
case 10
|
|
38
|
+
case 10 /* Nfsv4Op.GETFH */:
|
|
39
39
|
return 'GETFH';
|
|
40
|
-
case 11
|
|
40
|
+
case 11 /* Nfsv4Op.LINK */:
|
|
41
41
|
return 'LINK';
|
|
42
|
-
case 12
|
|
42
|
+
case 12 /* Nfsv4Op.LOCK */:
|
|
43
43
|
return 'LOCK';
|
|
44
|
-
case 13
|
|
44
|
+
case 13 /* Nfsv4Op.LOCKT */:
|
|
45
45
|
return 'LOCKT';
|
|
46
|
-
case 14
|
|
46
|
+
case 14 /* Nfsv4Op.LOCKU */:
|
|
47
47
|
return 'LOCKU';
|
|
48
|
-
case 15
|
|
48
|
+
case 15 /* Nfsv4Op.LOOKUP */:
|
|
49
49
|
return 'LOOKUP';
|
|
50
|
-
case 16
|
|
50
|
+
case 16 /* Nfsv4Op.LOOKUPP */:
|
|
51
51
|
return 'LOOKUPP';
|
|
52
|
-
case 17
|
|
52
|
+
case 17 /* Nfsv4Op.NVERIFY */:
|
|
53
53
|
return 'NVERIFY';
|
|
54
|
-
case 18
|
|
54
|
+
case 18 /* Nfsv4Op.OPEN */:
|
|
55
55
|
return 'OPEN';
|
|
56
|
-
case 19
|
|
56
|
+
case 19 /* Nfsv4Op.OPENATTR */:
|
|
57
57
|
return 'OPENATTR';
|
|
58
|
-
case 20
|
|
58
|
+
case 20 /* Nfsv4Op.OPEN_CONFIRM */:
|
|
59
59
|
return 'OPEN_CONFIRM';
|
|
60
|
-
case 21
|
|
60
|
+
case 21 /* Nfsv4Op.OPEN_DOWNGRADE */:
|
|
61
61
|
return 'OPEN_DOWNGRADE';
|
|
62
|
-
case 22
|
|
62
|
+
case 22 /* Nfsv4Op.PUTFH */:
|
|
63
63
|
return 'PUTFH';
|
|
64
|
-
case 23
|
|
64
|
+
case 23 /* Nfsv4Op.PUTPUBFH */:
|
|
65
65
|
return 'PUTPUBFH';
|
|
66
|
-
case 24
|
|
66
|
+
case 24 /* Nfsv4Op.PUTROOTFH */:
|
|
67
67
|
return 'PUTROOTFH';
|
|
68
|
-
case 25
|
|
68
|
+
case 25 /* Nfsv4Op.READ */:
|
|
69
69
|
return 'READ';
|
|
70
|
-
case 26
|
|
70
|
+
case 26 /* Nfsv4Op.READDIR */:
|
|
71
71
|
return 'READDIR';
|
|
72
|
-
case 27
|
|
72
|
+
case 27 /* Nfsv4Op.READLINK */:
|
|
73
73
|
return 'READLINK';
|
|
74
|
-
case 28
|
|
74
|
+
case 28 /* Nfsv4Op.REMOVE */:
|
|
75
75
|
return 'REMOVE';
|
|
76
|
-
case 29
|
|
76
|
+
case 29 /* Nfsv4Op.RENAME */:
|
|
77
77
|
return 'RENAME';
|
|
78
|
-
case 30
|
|
78
|
+
case 30 /* Nfsv4Op.RENEW */:
|
|
79
79
|
return 'RENEW';
|
|
80
|
-
case 31
|
|
80
|
+
case 31 /* Nfsv4Op.RESTOREFH */:
|
|
81
81
|
return 'RESTOREFH';
|
|
82
|
-
case 32
|
|
82
|
+
case 32 /* Nfsv4Op.SAVEFH */:
|
|
83
83
|
return 'SAVEFH';
|
|
84
|
-
case 33
|
|
84
|
+
case 33 /* Nfsv4Op.SECINFO */:
|
|
85
85
|
return 'SECINFO';
|
|
86
|
-
case 34
|
|
86
|
+
case 34 /* Nfsv4Op.SETATTR */:
|
|
87
87
|
return 'SETATTR';
|
|
88
|
-
case 35
|
|
88
|
+
case 35 /* Nfsv4Op.SETCLIENTID */:
|
|
89
89
|
return 'SETCLIENTID';
|
|
90
|
-
case 36
|
|
90
|
+
case 36 /* Nfsv4Op.SETCLIENTID_CONFIRM */:
|
|
91
91
|
return 'SETCLIENTID_CONFIRM';
|
|
92
|
-
case 37
|
|
92
|
+
case 37 /* Nfsv4Op.VERIFY */:
|
|
93
93
|
return 'VERIFY';
|
|
94
|
-
case 38
|
|
94
|
+
case 38 /* Nfsv4Op.WRITE */:
|
|
95
95
|
return 'WRITE';
|
|
96
|
-
case 39
|
|
96
|
+
case 39 /* Nfsv4Op.RELEASE_LOCKOWNER */:
|
|
97
97
|
return 'RELEASE_LOCKOWNER';
|
|
98
|
-
case 10044
|
|
98
|
+
case 10044 /* Nfsv4Op.ILLEGAL */:
|
|
99
99
|
return 'ILLEGAL';
|
|
100
100
|
}
|
|
101
101
|
return 'UNKNOWN(' + op + ')';
|