#include <stdio.h>
#include <unistd.h>
+#include <libgen.h>
#include "opkg_download.h"
#include "opkg_message.h"
char *tmp_file_location;
opkg_msg(NOTICE,"Downloading %s.\n", src);
-
+
if (str_starts_with(src, "file:")) {
const char *file_src = src + 5;
opkg_msg(INFO, "Copying %s to %s...", file_src, dest_file_name);
opkg_msg(ERROR, "Failed to download %s: %s.\n",
src, curl_easy_strerror(res));
free(tmp_file_location);
- return res;
+ return -1;
}
}
if (res) {
opkg_msg(ERROR, "Failed to download %s, wget returned %d.\n", src, res);
free(tmp_file_location);
- return res;
+ return -1;
}
}
#endif
goto out1;
}
+ if(!file_is_dir(conf->cache)){
+ opkg_msg(ERROR, "%s is not a directory.\n",
+ conf->cache);
+ err = 1;
+ goto out1;
+ }
+
for (p = cache_name; *p; p++)
if (*p == '/')
*p = ','; /* looks nicer than | or # */
sprintf_alloc(&url, "%s/%s", pkg->src->value, pkg->filename);
- /* XXX: BUG: The pkg->filename might be something like
+ /* The pkg->filename might be something like
"../../foo.opk". While this is correct, and exactly what we
want to use to construct url above, here we actually need to
use just the filename part, without any directory. */
}
/*
- * Downloads file from url, installs in package database, return package name.
+ * Downloads file from url, installs in package database, return package name.
*/
int
opkg_prepare_url_for_install(const char *url, char **namep)
pkg->dest = conf->default_dest;
pkg->state_want = SW_INSTALL;
pkg->state_flag |= SF_PREFER;
- hash_insert_pkg(pkg, 1);
+ hash_insert_pkg(pkg, 1);
if (namep) {
*namep = pkg->name;
gpgme_verify_result_t result;
gpgme_signature_t s;
char *trusted_path = NULL;
-
+
err = gpgme_new (&ctx);
if (err)
return -1;
sprintf_alloc(&trusted_path, "%s/%s", conf->offline_root, "/etc/opkg/trusted.gpg");
- err = gpgme_data_new_from_file (&key, trusted_path, 1);
+ err = gpgme_data_new_from_file (&key, trusted_path, 1);
free (trusted_path);
if (err)
{
}
gpgme_data_release (key);
- err = gpgme_data_new_from_file (&sig, sig_file, 1);
+ err = gpgme_data_new_from_file (&sig, sig_file, 1);
if (err)
{
gpgme_release (ctx);
return -1;
}
- err = gpgme_data_new_from_file (&text, text_file, 1);
+ err = gpgme_data_new_from_file (&text, text_file, 1);
if (err)
{
gpgme_data_release (sig);