Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fix constraint events so they are in parity with original usage.
Will Andrews committed 14 years ago
commit 458231849260cca61f6adf078af3fabeb9c15ed3
parent ca94325
2 files changed +16 -9
modified libpkg/pkg_event.c
@@ -18,7 +18,6 @@ pkg_event_argument_check(pkg_event_t ev, int argc)
	case PKG_EVENT_INVALID_DB_STATE:
	case PKG_EVENT_MALLOC_FAILED:
	case PKG_EVENT_UNKNOWN_SCRIPT:
-
	case PKG_EVENT_SQLITE_CONSTRAINT:
	case PKG_EVENT_SQLITE_ERROR:
		assert(argc == 1);
		break;
@@ -31,6 +30,7 @@ pkg_event_argument_check(pkg_event_t ev, int argc)
	case PKG_EVENT_PARSE_ERROR:
	case PKG_EVENT_REPO_KEY_UNAVAIL:
	case PKG_EVENT_REPO_KEY_UNUSABLE:
+
	case PKG_EVENT_SQLITE_CONSTRAINT:
		assert(argc == 2);
		break;
	case PKG_EVENT_CREATEDB_FAILED_ERRNO:
@@ -109,8 +109,7 @@ libpkg_handle_event(pkg_event_t ev, void **argv)
		pkg_error_set(EPKG_FATAL, "RSA key %s unusable: %s", argv[0], argv[1]);
		break;
	case PKG_EVENT_SQLITE_CONSTRAINT:
-
		/* XXX: this is not specific enough - see original usage */
-
		pkg_error_set(EPKG_FATAL, "constraint violation: %s", argv[0]);
+
		pkg_error_set(EPKG_FATAL, "constraint violation on %s: %s", argv[0], argv[1]);
		break;
	case PKG_EVENT_SQLITE_ERROR:
		pkg_error_set(EPKG_FATAL, "sqlite: %s", argv[0]);
modified libpkg/pkgdb.c
@@ -928,7 +928,8 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg)

	if ((ret = sqlite3_step(stmt_pkg)) != SQLITE_DONE) {
		if ( ret == SQLITE_CONSTRAINT) {
-
			pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT, /*argc*/1, pkg);
+
			pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT, /*argc*/2,
+
			    "pkg", pkg_get(pkg, PKG_ORIGIN));
			retcode = EPKG_FATAL;
		} else
			retcode = ERROR_SQLITE(s);
@@ -971,7 +972,8 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg)

		if ((ret = sqlite3_step(stmt_dep)) != SQLITE_DONE) {
			if ( ret == SQLITE_CONSTRAINT) {
-
				pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT, /*argc*/1,dep);
+
				pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT,
+
				    /*argc*/2, "deps", pkg_dep_origin(dep));
				retcode = EPKG_FATAL;
			} else
				retcode = ERROR_SQLITE(s);
@@ -996,7 +998,9 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg)

		if ((ret = sqlite3_step(stmt_conflict)) != SQLITE_DONE) {
			if ( ret == SQLITE_CONSTRAINT) {
-
				pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT, /*argc*/1, conflict);
+
				pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT,
+
				    /*argc*/2, "conflicts",
+
				    pkg_conflict_glob(conflict));
				retcode = EPKG_FATAL;
			} else
				retcode = ERROR_SQLITE(s);
@@ -1023,7 +1027,8 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg)

		if ((ret = sqlite3_step(stmt_file)) != SQLITE_DONE) {
			if (ret == SQLITE_CONSTRAINT) {
-
				pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT, /*argc*/1, file);
+
				pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT,
+
				    /*argc*/2, "path", pkg_file_path(file));
				retcode = EPKG_FATAL;
			} else
				retcode = ERROR_SQLITE(s);
@@ -1047,7 +1052,8 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg)
			
		if ((ret = sqlite3_step(stmt_dirs)) != SQLITE_DONE) {
			if ( ret == SQLITE_CONSTRAINT) {
-
				pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT, /*argc*/1, dir);
+
				pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT,
+
				    /*argc*/2, "dirs", pkg_dir_path(dir));
				retcode = EPKG_FATAL;
			} else
				retcode = ERROR_SQLITE(s);
@@ -1072,7 +1078,9 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg)

		if (sqlite3_step(stmt_script) != SQLITE_DONE) {
			if ( ret == SQLITE_CONSTRAINT) {
-
				pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT, /*argc*/1, script);
+
				pkg_emit_event(PKG_EVENT_SQLITE_CONSTRAINT,
+
				    /*argc*/2, "scripts",
+
				    pkg_script_data(script));
				retcode = EPKG_FATAL;
			} else
				retcode = ERROR_SQLITE(s);