1.4.x_branch (#1)
Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
5
.vim/coc-settings.json
Normal file
5
.vim/coc-settings.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"cSpell.words": [
|
||||||
|
"winfsp"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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",
|
||||||
|
|||||||
@@ -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) => {
|
||||||
|
|||||||
@@ -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
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user