1.4.x_branch (#1)

Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
2024-07-19 13:03:13 +00:00
parent b0e9f13cbc
commit 80d7ae3516
24 changed files with 2747 additions and 2740 deletions

5
.vim/coc-settings.json Normal file
View File

@@ -0,0 +1,5 @@
{
"cSpell.words": [
"winfsp"
]
}

View File

@@ -1,6 +1,6 @@
{ {
"name": "@blockstorage/repertory-js", "name": "@blockstorage/repertory-js",
"version": "1.4.0-r1", "version": "2.0.0-r1",
"description": "A Node.js module for interfacing with Repertory's remote mount API", "description": "A Node.js module for interfacing with Repertory's remote mount API",
"author": "scott.e.graves@protonmail.com", "author": "scott.e.graves@protonmail.com",
"license": "MIT", "license": "MIT",

View File

@@ -18,6 +18,7 @@ export default class connection {
connected = false; connected = false;
host_or_ip = ''; host_or_ip = '';
nonce = '';
password = ''; password = '';
port = 20000; port = 20000;
reject; reject;
@@ -41,7 +42,9 @@ export default class connection {
console.log(err); console.log(err);
return reject(err); return reject(err);
} }
return resolve();
this.reject = reject;
this.resolve = resolve;
} }
); );
}); });
@@ -90,6 +93,7 @@ export default class connection {
response response
.decrypt() .decrypt()
.then(() => { .then(() => {
this.nonce = response.decode_utf8();
const { resolve } = complete(); const { resolve } = complete();
if (resolve) { if (resolve) {
resolve(response); resolve(response);
@@ -156,6 +160,7 @@ export default class connection {
packet.encode_top_utf8(constants.instance_id); packet.encode_top_utf8(constants.instance_id);
packet.encode_top_ui32(0); // Service flags packet.encode_top_ui32(0); // Service flags
packet.encode_top_utf8(constants.get_version()); packet.encode_top_utf8(constants.get_version());
packet.encode_top_utf8(nonce);
await packet.encrypt(); await packet.encrypt();
packet.encode_top_ui32(packet.buffer.length); packet.encode_top_ui32(packet.buffer.length);
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {

View File

@@ -10,7 +10,7 @@ const _snapshot_directory = async (conn, remote_path) => {
request.encode_utf8(remote_path); request.encode_utf8(remote_path);
const response = await conn.send( const response = await conn.send(
'::RemoteJSONCreateDirectorySnapshot', '::json_create_directory_snapshot',
request request
); );
response.decode_ui32(); // Service flags response.decode_ui32(); // Service flags
@@ -25,7 +25,7 @@ const _snapshot_directory = async (conn, remote_path) => {
released = true; released = true;
const request = new packet(); const request = new packet();
request.encode_ui64(data.handle); request.encode_ui64(data.handle);
await conn.send('::RemoteJSONReleaseDirectorySnapshot', request); await conn.send('::json_release_directory_snapshot', request);
} }
}; };
@@ -38,7 +38,7 @@ const _snapshot_directory = async (conn, remote_path) => {
request.encode_ui32(page); request.encode_ui32(page);
const response = await conn.send( const response = await conn.send(
'::RemoteJSONReadDirectorySnapshot', '::json_read_directory_snapshot',
request request
); );
response.decode_ui32(); // Service flags response.decode_ui32(); // Service flags
@@ -83,7 +83,7 @@ export const close_file = async (
request.encode_ui64(handle); request.encode_ui64(handle);
const response = await conn.send( const response = await conn.send(
'::RemoteFUSERelease', '::fuse_release',
request, request,
optional_thread_id optional_thread_id
); );
@@ -101,7 +101,7 @@ export const create_directory = async (conn, remote_path) => {
request.encode_utf8(remote_path); request.encode_utf8(remote_path);
request.encode_ui16((7 << 6) | (5 << 3)); request.encode_ui16((7 << 6) | (5 << 3));
const response = await conn.send('::RemoteFUSEMkdir', request); const response = await conn.send('::fuse_mkdir', request);
response.decode_ui32(); // Service flags response.decode_ui32(); // Service flags
return response.decode_i32(); return response.decode_i32();
@@ -122,7 +122,7 @@ export const create_or_open_file = async (
request.encode_ui32(2 | 4); // Read-Write, Create request.encode_ui32(2 | 4); // Read-Write, Create
const response = await conn.send( const response = await conn.send(
'::RemoteFUSECreate', '::fuse_create',
request, request,
optional_thread_id optional_thread_id
); );
@@ -144,7 +144,7 @@ export const remove_file = async (conn, remote_path) => {
const request = new packet(); const request = new packet();
request.encode_utf8(remote_path); request.encode_utf8(remote_path);
const response = await conn.send('::RemoteFUSEUnlink', request); const response = await conn.send('::fuse_unlink', request);
response.decode_ui32(); // Service flags response.decode_ui32(); // Service flags
return response.decode_i32(); return response.decode_i32();
@@ -256,10 +256,7 @@ export const download_file = async (
export const get_drive_information = async (conn) => { export const get_drive_information = async (conn) => {
try { try {
const response = await conn.send( const response = await conn.send('::winfsp_get_volume_info', new packet());
'::RemoteWinFSPGetVolumeInfo',
new packet()
);
response.decode_ui32(); // Service flags response.decode_ui32(); // Service flags
const result = response.decode_i32(); const result = response.decode_i32();
@@ -295,7 +292,7 @@ export const get_file_attributes = async (
request.encode_ui32(0); request.encode_ui32(0);
const response = await conn.send( const response = await conn.send(
'::RemoteFUSEFgetattr', '::fuse_fgetattr',
request, request,
optional_thread_id optional_thread_id
); );
@@ -324,7 +321,7 @@ export const get_file_attributes2 = async (
request.encode_ui32(0); request.encode_ui32(0);
const response = await conn.send( const response = await conn.send(
'::RemoteFUSEGetattr', '::fuse_getattr',
request, request,
optional_thread_id optional_thread_id
); );
@@ -365,7 +362,7 @@ export const open_file = async (conn, remote_path, optional_thread_id) => {
request.encode_ui32(2); // Read-Write request.encode_ui32(2); // Read-Write
const response = await conn.send( const response = await conn.send(
'::RemoteFUSEOpen', '::fuse_open',
request, request,
optional_thread_id optional_thread_id
); );
@@ -397,7 +394,7 @@ export const read_file = async (
request.encode_ui64(handle); request.encode_ui64(handle);
const response = await conn.send( const response = await conn.send(
'::RemoteFUSERead', '::fuse_read',
request, request,
optional_thread_id optional_thread_id
); );
@@ -418,7 +415,7 @@ export const remove_directory = async (conn, remote_path) => {
const request = new packet(); const request = new packet();
request.encode_utf8(remote_path); request.encode_utf8(remote_path);
const response = await conn.send('::RemoteFUSERmdir', request); const response = await conn.send('::fuse_rmdir', request);
response.decode_ui32(); // Service flags response.decode_ui32(); // Service flags
return response.decode_i32(); return response.decode_i32();
@@ -443,7 +440,7 @@ export const truncate_file = async (
request.encode_ui64(handle); request.encode_ui64(handle);
const response = await conn.send( const response = await conn.send(
'::RemoteFUSEFtruncate', '::fuse_ftruncate',
request, request,
optional_thread_id optional_thread_id
); );
@@ -596,7 +593,7 @@ export const write_base64_file = async (
request.encode_ui64(handle); request.encode_ui64(handle);
const response = await conn.send( const response = await conn.send(
'::RemoteFUSEWriteBase64', '::fuse_write_base64',
request, request,
optional_thread_id optional_thread_id
); );
@@ -629,7 +626,7 @@ export const write_file = async (
request.encode_ui64(handle); request.encode_ui64(handle);
const response = await conn.send( const response = await conn.send(
'::RemoteFUSEWrite', '::fuse_write',
request, request,
optional_thread_id optional_thread_id
); );