return NULL;
}
-void opkg_print_error_list (opkg_conf_t *conf)
-{
- if ( error_list ) {
- reverse_error_list(&error_list);
-
- printf ("Collected errors:\n");
- /* Here we print the errors collected and free the list */
- while (error_list != NULL) {
- printf (" * %s", error_list->errmsg);
- error_list = error_list->next;
-
- }
- free_error_list();
- }
-
-}
-
int opkg_cmd_exec(opkg_cmd_t *cmd, opkg_conf_t *conf, int argc, const char **argv, void *userdata)
{
int result;
result = (cmd->fun)(conf, argc, argv);
- if ( result != 0 && !error_list) {
- opkg_message(conf, OPKG_NOTICE, "An error ocurred, return value: %d.\n", result);
- }
-
- opkg_print_error_list (conf);
+ print_error_list();
+ free_error_list();
p_userdata = NULL;
return result;
}
- for (iter = conf->pkg_src_list.head; iter; iter = iter->next) {
+ for (iter = void_list_first(&conf->pkg_src_list); iter; iter = void_list_next(&conf->pkg_src_list, iter)) {
char *url, *list_file_name;
- src = iter->data;
+ src = (pkg_src_t *)iter->data;
if (src->extra_data) /* debian style? */
sprintf_alloc(&url, "%s/%s/%s", src->value, src->extra_data,
fclose (out);
unlink (tmp_file_name);
}
+ free(tmp_file_name);
} else
err = opkg_download(conf, url, list_file_name, NULL, NULL);
if (err) {
list_file_name);
}
free(url);
-
-#ifdef HAVE_GPGME
- /* download detached signitures to verify the package lists */
- /* get the url for the sig file */
- if (src->extra_data) /* debian style? */
- sprintf_alloc(&url, "%s/%s/%s", src->value, src->extra_data,
- "Packages.sig");
- else
- sprintf_alloc(&url, "%s/%s", src->value, "Packages.sig");
-
- /* create temporary file for it */
- char *tmp_file_name;
-
- sprintf_alloc (&tmp_file_name, "%s/%s", tmp, "Packages.sig");
-
- err = opkg_download(conf, url, tmp_file_name, NULL, NULL);
- if (err) {
- failures++;
- opkg_message (conf, OPKG_NOTICE, "Signature check failed\n");
- } else {
- int err;
- err = opkg_verify_file (conf, list_file_name, tmp_file_name);
- if (err == 0)
- opkg_message (conf, OPKG_NOTICE, "Signature check passed\n");
- else
- opkg_message (conf, OPKG_NOTICE, "Signature check failed\n");
- }
- unlink (tmp_file_name);
- free (tmp_file_name);
- free (url);
+#if defined(HAVE_GPGME) || defined(HAVE_OPENSSL)
+ if (conf->check_signature) {
+ /* download detached signitures to verify the package lists */
+ /* get the url for the sig file */
+ if (src->extra_data) /* debian style? */
+ sprintf_alloc(&url, "%s/%s/%s", src->value, src->extra_data,
+ "Packages.sig");
+ else
+ sprintf_alloc(&url, "%s/%s", src->value, "Packages.sig");
+
+ /* create temporary file for it */
+ char *tmp_file_name;
+
+ /* Put the signature in the right place */
+ sprintf_alloc (&tmp_file_name, "%s/%s.sig", lists_dir, src->name);
+
+ err = opkg_download(conf, url, tmp_file_name, NULL, NULL);
+ if (err) {
+ failures++;
+ opkg_message (conf, OPKG_NOTICE, "Signature check failed\n");
+ } else {
+ int err;
+ err = opkg_verify_file (conf, list_file_name, tmp_file_name);
+ if (err == 0)
+ opkg_message (conf, OPKG_NOTICE, "Signature check passed\n");
+ else
+ opkg_message (conf, OPKG_NOTICE, "Signature check failed\n");
+ }
+ /* We shouldn't unlink the signature ! */
+ // unlink (tmp_file_name);
+ free (tmp_file_name);
+ free (url);
+ }
#else
- opkg_message (conf, OPKG_NOTICE, "Signature check for %s skipped "
- "because GPG support was not enabled in this build\n", src->name);
+ // Do nothing
#endif
free(list_file_name);
}
}
free (path);
}
+ closedir(dir);
} else
perror (ctx->statedir);
dependents = abpkg->provided_by->pkgs;
l = 0;
if (dependents != NULL)
- while (dependents [l] != NULL && l < abpkg->provided_by->len) {
+ while (l < abpkg->provided_by->len && dependents[l] != NULL) {
opkg_message(conf, OPKG_INFO,
" Descending on pkg: %s\n",
dependents [l]->name);
}
}
+ pkg_vec_free(available);
+
return 0;
}
char *pkg_name = NULL;
char **pkg_fields = NULL;
int n_fields = 0;
- char *buff ;
+ char *buff = NULL;
if (argc > 0) {
pkg_name = argv[0];
We need to free it :) ( Thanks florian for seeing the error )
*/
free(buff);
+ buff = NULL;
}
if (conf->verbosity > 1) {
conffile_list_elt_t *iter;
- for (iter = pkg->conffiles.head; iter; iter = iter->next) {
- conffile_t *cf = iter->data;
+ for (iter = nv_pair_list_first(&pkg->conffiles); iter; iter = nv_pair_list_next(&pkg->conffiles, iter)) {
+ conffile_t *cf = (conffile_t *)iter->data;
int modified = conffile_has_been_modified(conf, cf);
opkg_message(conf, OPKG_NOTICE, "conffile=%s md5sum=%s modified=%d\n",
cf->name, cf->value, modified);
pkg_to_remove = pkg_hash_fetch_installed_by_name(&conf->pkg_hash, pkg->name );
}
- if (pkg == NULL) {
+ if (pkg_to_remove == NULL) {
opkg_message(conf, OPKG_ERROR, "Package %s is not installed.\n", pkg->name);
continue;
}
buff = realloc (buff, buff_len);
goto try_again;
}
- for (iter = installed_files->head; iter; iter = iter->next) {
+ for (iter = str_list_first(installed_files); iter; iter = str_list_next(installed_files, iter)) {
used_len += strlen (iter->data) + 1;
while (buff_len <= used_len) {
buff_len *= 2;
installed_files = pkg_get_installed_files(pkg);
- for (iter = installed_files->head; iter; iter = iter->next) {
- installed_file = iter->data;
+ for (iter = str_list_first(installed_files); iter; iter = str_list_next(installed_files, iter)) {
+ installed_file = (char *)iter->data;
if (fnmatch(argv[0], installed_file, 0)==0) {
if (opkg_cb_list) opkg_cb_list(pkg->name,
installed_file,
{
nv_pair_list_elt_t *l;
- l = conf->arch_list.head;
- while (l) {
- nv_pair_t *nv = l->data;
+ list_for_each_entry(l, &conf->arch_list.head, node) {
+ nv_pair_t *nv = (nv_pair_t *)l->data;
printf("arch %s %s\n", nv->name, nv->value);
- l = l->next;
}
return 0;
}