summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/be_package.c
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-03-24 04:56:54 +0100
committerDan McGee <dan@archlinux.org>2011-03-24 04:56:54 +0100
commit9a3325a56db87cc8c6336225162daefcd190208f (patch)
treeb0c4b0b25aeb98719050fda363e4a96f9819d7d1 /lib/libalpm/be_package.c
parented6fda2f98bdcde56a67e43a6bcf644c549892a2 (diff)
downloadpacman-9a3325a56db87cc8c6336225162daefcd190208f.tar.gz
pacman-9a3325a56db87cc8c6336225162daefcd190208f.tar.xz
Refactor signature loading code into common function
We can use this for both standalone package signatures as well as standalone database signatures. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/be_package.c')
-rw-r--r--lib/libalpm/be_package.c32
1 files changed, 3 insertions, 29 deletions
diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c
index e8d26aa7..e86bffe6 100644
--- a/lib/libalpm/be_package.c
+++ b/lib/libalpm/be_package.c
@@ -254,6 +254,7 @@ static pmpkg_t *pkg_load(const char *pkgfile, int full)
/* attempt to stat the package file, ensure it exists */
if(stat(pkgfile, &st) == 0) {
char *pgpfile;
+ int ret;
newpkg = _alpm_pkg_new();
if(newpkg == NULL) {
@@ -265,35 +266,8 @@ static pmpkg_t *pkg_load(const char *pkgfile, int full)
/* look around for a PGP signature file; load if available */
MALLOC(pgpfile, strlen(pkgfile) + 5, RET_ERR(PM_ERR_MEMORY, NULL));
sprintf(pgpfile, "%s.sig", pkgfile);
- if(access(pgpfile, R_OK) == 0) {
- FILE *f;
- long bytes;
- size_t bytes_read;
- f = fopen(pgpfile, "rb");
- fseek(f, 0L, SEEK_END);
- bytes = ftell(f);
- fseek(f, 0L, SEEK_SET);
- /* don't read the file in if it is obviously not the size of a sig */
- if(bytes == 72) {
- CALLOC(newpkg->pgpsig.rawdata, bytes, sizeof(char),
- RET_ERR(PM_ERR_MEMORY, NULL));
- bytes_read = fread(newpkg->pgpsig.rawdata, sizeof(char), bytes, f);
- if(bytes_read == (size_t)bytes) {
- newpkg->pgpsig.rawlen = bytes;
- _alpm_log(PM_LOG_DEBUG,
- "loaded package .sig file, location %s\n", pgpfile);
- } else {
- _alpm_log(PM_LOG_WARNING, _("Failed reading PGP signature file for %s"),
- pkgfile);
- }
- } else {
- _alpm_log(PM_LOG_WARNING, _("PGP signature file for %s was abnormal"
- " (had length %ld), skipping\n"), pkgfile, bytes);
- }
- fclose(f);
- } else {
- _alpm_log(PM_LOG_DEBUG, "no package signature file found\n");
- }
+ /* TODO: do something with ret value */
+ ret = _alpm_load_signature(pgpfile, &(newpkg->pgpsig));
FREE(pgpfile);
} else {
/* couldn't stat the pkgfile, return an error */