Overview
Comment: | Added a default time to psuedo entries |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: | ef5acff5c9392154b06dbf301b7e1711501e7083 |
User & Date: | rkeene on 2014-09-09 08:23:32 |
Other Links: | manifest | tags |
Context
2014-09-10
| ||
04:01 | Reduced redundant code check-in: 041086f3fb user: rkeene tags: trunk | |
2014-09-09
| ||
08:23 | Added a default time to psuedo entries check-in: ef5acff5c9 user: rkeene tags: trunk | |
08:19 | Updated to keep track of the upstream OS name and CPU check-in: ed608e7fee user: rkeene tags: trunk | |
Changes
Modified appfs.c from [4cd4495e1d] to [799a556739].
18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 674 675 676 677 678 679 680 681 682 683 684 685 686 687 ... 716 717 718 719 720 721 722 723 724 725 726 727 728 729 ... 737 738 739 740 741 742 743 744 745 746 747 748 749 750 ... 791 792 793 794 795 796 797 798 799 800 801 802 803 804 ... 853 854 855 856 857 858 859 860 861 862 863 864 865 866 .... 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 |
#define APPFS_DEBUG(x...) { fprintf(stderr, "[debug] %s:%i:%s: ", __FILE__, __LINE__, __func__); fprintf(stderr, x); fprintf(stderr, "\n"); } static pthread_key_t interpKey; struct appfs_thread_data { sqlite3 *db; const char *cachedir; }; struct appfs_thread_data globalThread; typedef enum { APPFS_OS_UNKNOWN, APPFS_OS_ALL, ................................................................................ if (_path[1] == '\0') { /* Request for the root directory */ sites = appfs_getsites(&sites_count); pathinfo->type = APPFS_PATHTYPE_DIRECTORY; pathinfo->typeinfo.dir.childcount = sites_count; pathinfo->hostname[0] = '\0'; if (children) { for (site = sites; site; site = site->_next) { node = (void *) ckalloc(sizeof(*node)); node->_next = *children; strcpy(node->name, site->name); *children = node; ................................................................................ return(-ENOENT); } if (packagename == NULL) { /* Request for a single hostname */ pathinfo->type = APPFS_PATHTYPE_DIRECTORY; pathinfo->typeinfo.dir.childcount = packages_count; if (children) { for (package = packages; package; package = package->_next) { node = (void *) ckalloc(sizeof(*node)); node->_next = *children; strcpy(node->name, package->name); *children = node; ................................................................................ return(0); } os_cpuArch = strchr(packagename, '/'); if (os_cpuArch == NULL) { /* Request for OS and CPU Arch for a specific package */ pathinfo->type = APPFS_PATHTYPE_DIRECTORY; os_cpuArch_count = 0; for (package = packages; package; package = package->_next) { if (strcmp(package->name, packagename) != 0) { APPFS_DEBUG("Skipping package named \"%s\", does not match requested package: \"%s\"", package->name, packagename); continue; ................................................................................ } os_val = appfs_convert_os_fromString(os); if (version == NULL) { /* Request for version list for a package on an OS/CPU */ pathinfo->type = APPFS_PATHTYPE_DIRECTORY; version_count = 0; for (package = packages; package; package = package->_next) { if (strcmp(package->name, packagename) != 0) { APPFS_DEBUG("Skipping package named \"%s\", does not match requested package: \"%s\"", package->name, packagename); continue; ................................................................................ return(-ENOENT); } APPFS_DEBUG(" ... which hash a hash of %s", package_hash); if (strcmp(path, "") == 0) { pathinfo->type = APPFS_PATHTYPE_DIRECTORY; } else { fileinfo_ret = appfs_getfileinfo(hostname, package_hash, path, pathinfo); if (fileinfo_ret != 0) { free(path_s); return(fileinfo_ret); } ................................................................................ int main(int argc, char **argv) { const char *cachedir = APPFS_CACHEDIR; char dbfilename[1024]; int pthread_ret, snprintf_ret, sqlite_ret; globalThread.cachedir = cachedir; pthread_ret = pthread_key_create(&interpKey, NULL); if (pthread_ret != 0) { fprintf(stderr, "Unable to create TSD key for Tcl. Aborting.\n"); return(1); } |
> > > > > > > |
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 ... 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 ... 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 ... 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 ... 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 .... 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 |
#define APPFS_DEBUG(x...) { fprintf(stderr, "[debug] %s:%i:%s: ", __FILE__, __LINE__, __func__); fprintf(stderr, x); fprintf(stderr, "\n"); } static pthread_key_t interpKey; struct appfs_thread_data { sqlite3 *db; const char *cachedir; time_t boottime; }; struct appfs_thread_data globalThread; typedef enum { APPFS_OS_UNKNOWN, APPFS_OS_ALL, ................................................................................ if (_path[1] == '\0') { /* Request for the root directory */ sites = appfs_getsites(&sites_count); pathinfo->type = APPFS_PATHTYPE_DIRECTORY; pathinfo->typeinfo.dir.childcount = sites_count; pathinfo->hostname[0] = '\0'; pathinfo->time = globalThread.boottime; if (children) { for (site = sites; site; site = site->_next) { node = (void *) ckalloc(sizeof(*node)); node->_next = *children; strcpy(node->name, site->name); *children = node; ................................................................................ return(-ENOENT); } if (packagename == NULL) { /* Request for a single hostname */ pathinfo->type = APPFS_PATHTYPE_DIRECTORY; pathinfo->typeinfo.dir.childcount = packages_count; pathinfo->time = globalThread.boottime; if (children) { for (package = packages; package; package = package->_next) { node = (void *) ckalloc(sizeof(*node)); node->_next = *children; strcpy(node->name, package->name); *children = node; ................................................................................ return(0); } os_cpuArch = strchr(packagename, '/'); if (os_cpuArch == NULL) { /* Request for OS and CPU Arch for a specific package */ pathinfo->type = APPFS_PATHTYPE_DIRECTORY; pathinfo->time = globalThread.boottime; os_cpuArch_count = 0; for (package = packages; package; package = package->_next) { if (strcmp(package->name, packagename) != 0) { APPFS_DEBUG("Skipping package named \"%s\", does not match requested package: \"%s\"", package->name, packagename); continue; ................................................................................ } os_val = appfs_convert_os_fromString(os); if (version == NULL) { /* Request for version list for a package on an OS/CPU */ pathinfo->type = APPFS_PATHTYPE_DIRECTORY; pathinfo->time = globalThread.boottime; version_count = 0; for (package = packages; package; package = package->_next) { if (strcmp(package->name, packagename) != 0) { APPFS_DEBUG("Skipping package named \"%s\", does not match requested package: \"%s\"", package->name, packagename); continue; ................................................................................ return(-ENOENT); } APPFS_DEBUG(" ... which hash a hash of %s", package_hash); if (strcmp(path, "") == 0) { pathinfo->type = APPFS_PATHTYPE_DIRECTORY; pathinfo->time = globalThread.boottime; } else { fileinfo_ret = appfs_getfileinfo(hostname, package_hash, path, pathinfo); if (fileinfo_ret != 0) { free(path_s); return(fileinfo_ret); } ................................................................................ int main(int argc, char **argv) { const char *cachedir = APPFS_CACHEDIR; char dbfilename[1024]; int pthread_ret, snprintf_ret, sqlite_ret; globalThread.cachedir = cachedir; globalThread.boottime = time(NULL); pthread_ret = pthread_key_create(&interpKey, NULL); if (pthread_ret != 0) { fprintf(stderr, "Unable to create TSD key for Tcl. Aborting.\n"); return(1); } |