Overview
Comment: | Updated to indicate only that packaged files are writable |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
97e72202db38a1a483bb34a06b96de16 |
User & Date: | rkeene on 2014-11-06 02:49:28 |
Other Links: | manifest | tags |
Context
2014-11-06
| ||
03:05 | Updated to use package name instead of hash for looking up extra files check-in: 98449bcf3e user: rkeene tags: trunk | |
02:49 | Updated to indicate only that packaged files are writable check-in: 97e72202db user: rkeene tags: trunk | |
2014-11-05
| ||
21:41 | Fixed cleanup issue which was causing excessive lookups check-in: cc5a68a6de user: rkeene tags: trunk | |
Changes
Modified appfsd.c from [72840611b5] to [430cff4a7a].
︙ | ︙ | |||
52 53 54 55 56 57 58 59 60 61 62 63 64 65 | char name[256]; }; struct appfs_pathinfo { appfs_pathtype_t type; time_t time; char hostname[256]; unsigned long long inode; union { struct { int childcount; } dir; struct { int executable; | > | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | char name[256]; }; struct appfs_pathinfo { appfs_pathtype_t type; time_t time; char hostname[256]; int packaged; unsigned long long inode; union { struct { int childcount; } dir; struct { int executable; |
︙ | ︙ | |||
742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 | char *hostname, *packagename, *os_cpuArch, *os, *cpuArch, *version; char *path, *path_s; char *package_hash; char *sql; int files_count; int fileinfo_ret, retval; if (children) { *children = NULL; } if (_path == NULL) { return(-ENOENT); } if (_path[0] != '/') { return(-ENOENT); } if (_path[1] == '\0') { /* Request for the root directory */ pathinfo->hostname[0] = '\0'; pathinfo->inode = 1; sql = sqlite3_mprintf("SELECT DISTINCT hostname FROM packages;"); | > > > > > | 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 | char *hostname, *packagename, *os_cpuArch, *os, *cpuArch, *version; char *path, *path_s; char *package_hash; char *sql; int files_count; int fileinfo_ret, retval; /* Initialize return */ if (children) { *children = NULL; } /* Verify that this is a valid request */ if (_path == NULL) { return(-ENOENT); } if (_path[0] != '/') { return(-ENOENT); } /* Note that this is not a "real" directory from a package */ pathinfo->packaged = 0; if (_path[1] == '\0') { /* Request for the root directory */ pathinfo->hostname[0] = '\0'; pathinfo->inode = 1; sql = sqlite3_mprintf("SELECT DISTINCT hostname FROM packages;"); |
︙ | ︙ | |||
874 875 876 877 878 879 880 881 882 883 884 885 886 887 | path = ""; } else { *path = '\0'; path++; } /* Request for a file in a specific package */ APPFS_DEBUG("Requesting information for hostname = %s, package = %s, os = %s, cpuArch = %s, version = %s, path = %s", hostname, packagename, os, cpuArch, version, path ); package_hash = appfs_lookup_package_hash(hostname, packagename, os, cpuArch, version); if (package_hash == NULL) { free(path_s); | > | 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 | path = ""; } else { *path = '\0'; path++; } /* Request for a file in a specific package */ pathinfo->packaged = 1; APPFS_DEBUG("Requesting information for hostname = %s, package = %s, os = %s, cpuArch = %s, version = %s, path = %s", hostname, packagename, os, cpuArch, version, path ); package_hash = appfs_lookup_package_hash(hostname, packagename, os, cpuArch, version); if (package_hash == NULL) { free(path_s); |
︙ | ︙ | |||
993 994 995 996 997 998 999 | break; case APPFS_PATHTYPE_INVALID: res = -EIO; break; } | > | | > | 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 | break; case APPFS_PATHTYPE_INVALID: res = -EIO; break; } if (pathinfo.packaged) { if (globalThread.options.writable) { stbuf->st_mode |= 0222; } } return res; } static int appfs_fuse_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi) { struct appfs_pathinfo pathinfo; |
︙ | ︙ |