#include "config.h"
+#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>
#include <libgen.h>
if (file_exists(cache_location))
opkg_msg(NOTICE, "Copying %s.\n", cache_location);
else {
- err = opkg_download(src, cache_location, cb, data);
+ err = opkg_download(src, cache_location, cb, data, 0);
if (err) {
(void) unlink(cache_location);
goto out2;
hash_insert_pkg(pkg, 1);
if (namep) {
- *namep = pkg->name;
+ *namep = xstrdup(pkg->name);
}
return 0;
}
int
opkg_verify_file (char *text_file, char *sig_file)
{
-#if defined HAVE_GPGME
+#if defined HAVE_USIGN
+ int status = -1;
+ int pid;
+
+ if (conf->check_signature == 0 )
+ return 0;
+
+ pid = fork();
+ if (pid < 0)
+ return -1;
+
+ if (!pid) {
+ execl("/usr/sbin/opkg-key", "opkg-key", "verify", sig_file, text_file, NULL);
+ exit(255);
+ }
+
+ waitpid(pid, &status, 0);
+ if (!WIFEXITED(status) || WEXITSTATUS(status))
+ return -1;
+
+ return 0;
+#elif defined HAVE_GPGME
if (conf->check_signature == 0 )
return 0;
int status = -1;