#include <libbb/libbb.h>
-struct errlist* error_list;
-
struct _opkg_t
{
args_t *args;
new = opkg_package_new ();
-#define sstrdup(x) (x) ? strdup (x) : NULL;
-
- new->name = sstrdup (old->name);
+ new->name = xstrdup(old->name);
new->version = pkg_version_str_alloc (old);
- new->architecture = sstrdup (old->architecture);
+ new->architecture = xstrdup(old->architecture);
if (old->src)
- new->repository = sstrdup (old->src->name);
- new->description = sstrdup (old->description);
- new->tags = sstrdup (old->tags);
- new->url = sstrdup (old->url);
-
-#undef sstrdup
+ new->repository = xstrdup(old->src->name);
+ new->description = xstrdup(old->description);
+ new->tags = xstrdup(old->tags);
+ new->url = xstrdup(old->url);
new->size = (old->size) ? atoi (old->size) : 0;
new->installed = (old->state_status == SS_INSTALLED);
opkg_package_t *p;
- p = calloc (1, sizeof (opkg_package_t));
+ p = xcalloc(1, sizeof (opkg_package_t));
return p;
}
opkg_t *opkg;
int err;
- opkg = calloc (1, sizeof (opkg_t));
+ opkg = xcalloc(1, sizeof (opkg_t));
- opkg->args = calloc (1, sizeof (args_t));
- err = args_init (opkg->args);
- if (err)
- {
- free (opkg->args);
- free (opkg);
- return NULL;
- }
+ opkg->args = xcalloc(1, sizeof (args_t));
+ args_init (opkg->args);
- opkg->conf = calloc (1, sizeof (opkg_conf_t));
+ opkg->conf = xcalloc(1, sizeof (opkg_conf_t));
err = opkg_conf_init (opkg->conf, opkg->args);
if (err)
{
{
opkg_assert (opkg != NULL);
+#ifdef HAVE_CURL
+ opkg_curl_cleanup();
+#endif
opkg_conf_deinit (opkg->conf);
args_deinit (opkg->args);
free (opkg->options);
if (c->offline_root)
{
if (a->offline_root) free (a->offline_root);
- a->offline_root = strdup (c->offline_root);
+ a->offline_root = xstrdup(c->offline_root);
}
if (c->offline_root_pre_script_cmd)
{
if (a->offline_root_pre_script_cmd) free (a->offline_root_pre_script_cmd);
- a->offline_root_pre_script_cmd = strdup (c->offline_root_pre_script_cmd);
+ a->offline_root_pre_script_cmd = xstrdup(c->offline_root_pre_script_cmd);
}
if (c->offline_root_post_script_cmd)
{
if (a->offline_root_post_script_cmd) free (a->offline_root_post_script_cmd);
- a->offline_root_post_script_cmd = strdup (c->offline_root_post_script_cmd);
+ a->offline_root_post_script_cmd = xstrdup(c->offline_root_post_script_cmd);
}
if (c->cache) {
if (a->cache)
free (a->cache);
- a->cache = strdup(c->cache);
+ a->cache = xstrdup(c->cache);
}
/* throw away old opkg_conf and start again */
return;
case OPKG_OPT_TYPE_STRING:
- *((char **)value) = strdup (options[i].value);
+ *((char **)value) = xstrdup(options[i].value);
return;
}
return;
case OPKG_OPT_TYPE_STRING:
- *((char **)options[i].value) = strdup (value);
+ *((char **)options[i].value) = xstrdup(value);
return;
}
if (err)
{
opkg_package_free (pdata.package);
- switch (err)
- {
- case OPKG_INSTALL_ERR_NOT_TRUSTED: return OPKG_GPG_ERROR;
- case OPKG_INSTALL_ERR_DOWNLOAD: return OPKG_DOWNLOAD_FAILED;
- case OPKG_INSTALL_ERR_DEPENDENCIES:
- case OPKG_INSTALL_ERR_CONFLICTS: return OPKG_DEPENDENCIES_FAILED;
- case OPKG_INSTALL_ERR_ALREADY_INSTALLED: return OPKG_PACKAGE_ALREADY_INSTALLED;
- case OPKG_INSTALL_ERR_SIGNATURE: return OPKG_GPG_ERROR;
- case OPKG_INSTALL_ERR_MD5: return OPKG_MD5_ERROR;
- case OPKG_INSTALL_ERR_SHA256: return OPKG_SHA256_ERROR;
- default: return OPKG_UNKNOWN_ERROR;
- }
+ return OPKG_UNKNOWN_ERROR;
}
progress (pdata, 75);
/* opkg_upgrade_pkg returns the error codes of opkg_install_pkg */
if (err)
{
-
opkg_package_free (pdata.package);
- switch (err)
- {
- case OPKG_INSTALL_ERR_NOT_TRUSTED: return OPKG_GPG_ERROR;
- case OPKG_INSTALL_ERR_DOWNLOAD: return OPKG_DOWNLOAD_FAILED;
- case OPKG_INSTALL_ERR_DEPENDENCIES:
- case OPKG_INSTALL_ERR_CONFLICTS: return OPKG_DEPENDENCIES_FAILED;
- case OPKG_INSTALL_ERR_ALREADY_INSTALLED: return OPKG_PACKAGE_ALREADY_INSTALLED;
- case OPKG_INSTALL_ERR_SIGNATURE: return OPKG_GPG_ERROR;
- case OPKG_INSTALL_ERR_MD5: return OPKG_MD5_ERROR;
- case OPKG_INSTALL_ERR_SHA256: return OPKG_SHA256_ERROR;
- default: return OPKG_UNKNOWN_ERROR;
- }
+ return OPKG_UNKNOWN_ERROR;
}
progress (pdata, 75);
}
}
- tmp = strdup ("/tmp/opkg.XXXXXX");
-
- if (mkdtemp (tmp) == NULL)
- {
+ sprintf_alloc(&tmp, "%s/update-XXXXXX", opkg->conf->tmp_dir);
+ if (mkdtemp (tmp) == NULL) {
/* XXX: Error: could not create temporary file name */
free (lists_dir);
free (tmp);
}
free (url);
-#ifdef HAVE_GPGME
+#if defined(HAVE_GPGME) || defined(HAVE_OPENSSL)
if ( opkg->conf->check_signature ) {
char *sig_file_name;
/* download detached signitures to verify the package lists */
{
if (strstr(((pkg_src_t *)iter->data)->value, "://") &&
index(strstr(((pkg_src_t *)iter->data)->value, "://") + 3, '/'))
- stmp = strndup(((pkg_src_t *)iter->data)->value,
+ stmp = xstrndup(((pkg_src_t *)iter->data)->value,
(index(strstr(((pkg_src_t *)iter->data)->value, "://") + 3, '/') - ((pkg_src_t *)iter->data)->value)*sizeof(char));
else
- stmp = strdup(((pkg_src_t *)iter->data)->value);
+ stmp = xstrdup(((pkg_src_t *)iter->data)->value);
for (iter1 = str_list_first(src); iter1; iter1 = str_list_next(src, iter1))
{
ret++;
}
str_list_elt_deinit(iter1);
- free(iter1);
}
free(src);
return ret;