Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Make jobs automatically close any open db connections
Marin Atanasov Nikolov committed 14 years ago
commit 39193fc04ba14a7cf131e26012813411d79666b3
parent 2cc4ec833f6d30a36eabe7e63bdbc9717ec1dbcc
3 files changed +17 -4
modified libpkg/pkg_jobs.c
@@ -70,6 +70,7 @@ pkg_jobs_free_entry(struct pkg_jobs_entry *j)
	while (!STAILQ_EMPTY(&j->jobs)) {
		p = STAILQ_FIRST(&j->jobs);
		STAILQ_REMOVE_HEAD(&j->jobs, next);
+
		pkgdb_close(j->db);
		pkg_free(p);
	}

modified libpkg/pkg_private.h
@@ -90,7 +90,7 @@ struct pkg_jobs {
		pkg_jobs_t type;
		unsigned int resolved :1;
		STAILQ_ENTRY(pkg_jobs_entry) next;
-
	};
+
	} j;

	STAILQ_HEAD(jobs_multi, pkg_jobs_entry) multi;
};
@@ -110,12 +110,11 @@ struct pkg_repos {
		char *url;
		unsigned int line;
		STAILQ_ENTRY(pkg_repos_entry) entries;
-
	};
+
	} r;

	STAILQ_HEAD(repos, pkg_repos_entry) nodes;
};

-

int pkg_open2(struct pkg **p, struct archive **a, struct archive_entry **ae, const char *path);
void pkg_freecategories(struct pkg *pkg);
void pkg_freedeps(struct pkg *pkg);
modified libpkg/pkg_repo.c
@@ -160,9 +160,22 @@ pkg_repos_add(struct pkg_repos *repos, struct pkg_repos_entry *re)
int
pkg_repos_add_in_pkg(struct pkg *pkg, struct pkg_repos_entry *re)
{
+
	struct pkg_repos_entry *newre;
+

	assert(pkg != NULL && re != NULL);

-
	STAILQ_INSERT_TAIL(&pkg->repos, re, entries);
+
	if ((newre = calloc(1, sizeof(struct pkg_repos_entry))) == NULL) {
+
		EMIT_ERRNO("calloc", "pkg_repos_entry");
+
		return (EPKG_FATAL);
+
	}
+

+
	newre->name = strdup(re->name);
+
	newre->url  = strdup(re->url);
+
	newre->line = re->line;
+

+
	assert (newre->name != NULL && newre->url != NULL);
+

+
	STAILQ_INSERT_TAIL(&pkg->repos, newre, entries);

	return (EPKG_OK);
}