catalinux / rgfs (public) (License: GPLv3) (since 2020-11-11) (hash sha1)
Allows mapping of RocketGit storage area into a local directory
List of commits:
Subject Hash Author Date (UTC)
Seems that fuse cannot return any value on read, so adapt to dyn alloc memory 787716468c47f979da048d266a6e0acb569345ab Catalin(ux) M. BOIE 2021-10-24 09:01:56
More debugging 44259f8be40bc2aa8220ed1f76d51e3f54ea5595 Catalin(ux) M. BOIE 2021-10-24 08:30:33
spec: replaced usrbindir with bindir c34fbb313f831714894e528a483db700cdac4e5b Catalin(ux) M. BOIE 2021-10-21 16:38:26
Removed Changelog file from spec because it will not be generated when the rpm is 9dcc332cc2c2c737ec75a86ea620bdcc057c8087 Catalin(ux) M. BOIE 2021-10-21 16:34:15
duilder fixes 6cd9e85084a5989a13fcda3c4d18677df997d423 Catalin(ux) M. BOIE 2021-10-21 15:57:44
Cosmetic 720c239954a7b4bb69dee90993aac588f0e6436a Catalin(ux) M. BOIE 2021-10-21 15:16:35
Sometimes we incorrectly returned 0 instead of the error 8bab245be8f6e2026162d9f7fccf27053f47626e Catalin(ux) M. BOIE 2021-03-29 06:27:54
Do not reconnect if server closed the connection gracefully a06c7349c2bdcedf01e5c54d8e05d3a08c8164b1 Catalin(ux) M. BOIE 2021-02-26 07:51:33
Raised the buffer for readdir 8e9eca1d99e23588c6912db1e122e1846d2f6d29 Catalin(ux) M. BOIE 2021-02-08 05:33:16
Simplify a little bit how code looks (mostly cosmetic) 39a144be4687167a8fbd876b874b276fd079cccd Catalin(ux) M. BOIE 2021-02-02 16:43:40
Do not send not useful variables bf2db44bf15cca4570440ee2eb551d9da7ef8290 Catalin(ux) M. BOIE 2021-02-02 16:35:00
Use RGFS_* environemnt to pass variables to the server 34fad328e3b424d4e50549dd30060e2150a05b07 Catalin(ux) M. BOIE 2021-02-02 16:08:39
Send env variable ce941b5564cb7601d6930b32688f083e22bbb67c Catalin(ux) M. BOIE 2021-01-30 10:51:31
Prevent a fd leak e439ecaf5fde8a53c969eadc3b32ec4558e16406 Catalin(ux) M. BOIE 2021-01-19 06:40:17
More debug b95edceb2abff793c9d2a19d62b6c1de8aa328bb Catalin(ux) M. BOIE 2021-01-16 11:53:51
Send first the name and after that the version b68e3cb967aa6a3edf5b64ac9b66c6fa67a1f990 Catalin(ux) M. BOIE 2021-01-16 10:21:57
Simplified variables sent 0f37c2cd6342c8be0f4615c8fe8979d1bb9cce8d Catalin(ux) M. BOIE 2021-01-14 04:48:11
Added job_id variable 9ab34e796d0f5494d97d1b9f9fff52e6a9f27e8c Catalin(ux) M. BOIE 2020-12-04 17:30:10
Create a function to send generic vars and use it 97fa7f7a9f4af7c9e7bf3579d1437dfc59c29825 Catalin(ux) M. BOIE 2020-11-30 17:45:17
Wrong lenght passed c642d9387496543f4fb824fad6cd2590328d83b4 Catalin(ux) M. BOIE 2020-11-30 17:33:08
Commit 787716468c47f979da048d266a6e0acb569345ab - Seems that fuse cannot return any value on read, so adapt to dyn alloc memory
Author: Catalin(ux) M. BOIE
Author date (UTC): 2021-10-24 09:01
Committer name: Catalin(ux) M. BOIE
Committer date (UTC): 2021-10-24 09:01
Parent(s): 44259f8be40bc2aa8220ed1f76d51e3f54ea5595
Signer:
Signing key:
Signing status: N
Tree: 58ac7f179cb9f51ecd2a942d075bc580a4394323
File Lines added Lines deleted
rgfs.c 16 15
File rgfs.c changed (mode: 100644) (index b93d051..de28b26)
... ... static int rgfs_recv_hl(const char *op, void *buf, size_t buf_size)
415 415 while (1) { while (1) {
416 416 xlog(" Waiting for data (off=%d to_read=%u)\n", off, to_read); xlog(" Waiting for data (off=%d to_read=%u)\n", off, to_read);
417 417 if (off == buf_size) { if (off == buf_size) {
418 xlog("Buffer is too small!\n");
418 xlog(" Buffer is too small!\n");
419 419 exit(EXIT_FAILURE); exit(EXIT_FAILURE);
420 420 } }
421 421 r = rgfs_recv(buf + off, buf_size - off); r = rgfs_recv(buf + off, buf_size - off);
 
... ... static int rgfs_recv_hl(const char *op, void *buf, size_t buf_size)
427 427 off += r; off += r;
428 428 if ((to_read == 0) && (off >= 4)) { if ((to_read == 0) && (off >= 4)) {
429 429 to_read = be32toh(*(uint32_t *) buf); to_read = be32toh(*(uint32_t *) buf);
430 xlog("to_read=%u\n", to_read);
430 xlog(" to_read=%u\n", to_read);
431 431 } }
432 432
433 433 if (rgfs_debug > 10) { if (rgfs_debug > 10) {
 
... ... static int rgfs_recv_hl(const char *op, void *buf, size_t buf_size)
441 441 } }
442 442
443 443 if (off == 4 + to_read) { if (off == 4 + to_read) {
444 xlog(" Readed 4 + %u; return %lu\n", to_read, off);
444 xlog(" Readed 4 + %u; return %lu\n", to_read, off);
445 445 return off; return off;
446 446 } }
447 447 } }
 
... ... static int rgfs_fuse_read(const char *path, char *out, size_t size,
599 599 off_t offset, struct fuse_file_info *fi) off_t offset, struct fuse_file_info *fi)
600 600 { {
601 601 int r, err = 0, i; int r, err = 0, i;
602 unsigned char buf[16 * 4096], cmd; // TODO: size is 65536, so, just use size + 1 + 4
603 uint16_t path_len, len;
602 unsigned char *buf, cmd;
603 uint16_t path_len, len, min;
604 604 uint64_t u64; uint64_t u64;
605 605
606 606 (void) fi; (void) fi;
607 607 xlog("read: path=%s size=%zu offset=%zd\n", xlog("read: path=%s size=%zu offset=%zd\n",
608 608 path, size, offset); path, size, offset);
609 609
610 path_len = strlen(path);
611 len = 1 + 2 + 8 + 8 + path_len;
612 min = 4 + 1 + size;
613 if (min < len)
614 min = len;
615
610 616 // Limit how much data we request to the server // Limit how much data we request to the server
611 617 // 4 + 1 is the answer's header. // 4 + 1 is the answer's header.
612 if (size > sizeof(buf) - 4 - 1) {
613 size = sizeof(buf) - 4 - 1;
614 xlog(" truncated size to %zu\n", size);
615 }
616
617 path_len = strlen(path);
618 len = 1 + 2 + 8 + 8;
619 if (path_len > sizeof(buf) - len) {
620 xlog(" buffer too small\n");
618 buf = malloc(min);
619 if (!buf) {
620 xlog(" cannot alloc memory!\n");
621 621 return -EIO; return -EIO;
622 622 } }
623 len += path_len;
624 623
625 624 i = 0; i = 0;
626 625 buf[i++] = 0x04; buf[i++] = 0x04;
 
... ... static int rgfs_fuse_read(const char *path, char *out, size_t size,
645 644 } }
646 645 } }
647 646
647 free(buf);
648
648 649 xlog(" returning %d\n", err); xlog(" returning %d\n", err);
649 650
650 651 return err; return err;
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/catalinux/rgfs

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/catalinux/rgfs

Clone this repository using git:
git clone git://git.rocketgit.com/user/catalinux/rgfs

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main