Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fix execl of services, while here, try to start daemon at the end of installation
Baptiste Daroussin committed 14 years ago
commit 5fc90674c37ef236a0c562a3d63aa25a34fadc64
parent 7439e2c
3 files changed +13 -13
modified libpkg/pkg_add.c
@@ -91,6 +91,7 @@ pkg_add(struct pkgdb *db, const char *path, int flags)
	struct pkg_dep *dep = NULL;
	struct utsname u;
	bool extract = true;
+
	bool handle_rc = false;
	char dpath[MAXPATHLEN + 1];
	const char *basedir;
	const char *ext;
@@ -231,6 +232,15 @@ pkg_add(struct pkgdb *db, const char *path, int flags)
	else
		pkg_script_run(pkg, PKG_SCRIPT_POST_INSTALL);

+
	/*
+
	 * start the different related services if the users do want that
+
	 * and that the service is running
+
	 */
+

+
	pkg_config_bool(PKG_CONFIG_HANDLE_RC_SCRIPTS, &handle_rc);
+
	if (handle_rc)
+
		pkg_start_rc_scripts(pkg);
+

	cleanup_reg:
	if ((flags & PKG_ADD_UPGRADE) == 0)
		pkgdb_register_finale(db, retcode);
modified libpkg/pkgdb.c
@@ -1272,8 +1272,6 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg, int complete)
	int retcode = EPKG_FATAL;
	int64_t package_id;

-
	bool handle_rc = false;
-

	const char sql_begin[] = "BEGIN;";
	const char sql_mtree[] = "INSERT OR IGNORE INTO mtree(content) VALUES(?1);";
	const char sql_dirs[] = "INSERT OR IGNORE INTO directories(path) VALUES(?1);";
@@ -1718,14 +1716,6 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg, int complete)
	if (stmt_users != NULL)
		sqlite3_finalize(stmt_users);

-
	/*
-
	 * start the different related services if the users do want that
-
	 * and that the service is running
-
	 */
-
	pkg_config_bool(PKG_CONFIG_HANDLE_RC_SCRIPTS, &handle_rc);
-
	if (handle_rc)
-
		pkg_start_rc_scripts(pkg);
-

	return (retcode);
}

modified libpkg/rcscripts.c
@@ -90,7 +90,7 @@ rc_stop(const char *rc_file)
			fd = open("/dev/null", O_WRONLY);
			dup2(fd, STDERR_FILENO);
			dup2(fd, STDOUT_FILENO);
-
			execl("/usr/sbin/service", rc_file, "onestatus", (char *)NULL);
+
			execl("/usr/sbin/service", "service", rc_file, "onestatus", (char *)NULL);
			_exit(1);
			/* NOT REACHED */
		default:
@@ -111,7 +111,7 @@ rc_stop(const char *rc_file)
			return (-1);
		case 0:
			/* child */
-
			execl("/usr/sbin/service", rc_file, "forcestop", (char *)NULL);
+
			execl("/usr/sbin/service", "service", rc_file, "forcestop", (char *)NULL);
			_exit(1);
			/* NOT REACHED */
		default:
@@ -141,7 +141,7 @@ rc_start(const char *rc_file)
			return (-1);
		case 0:
			/* child */
-
			execl("/usr/sbin/service", rc_file, "quietstart", (char *)NULL);
+
			execl("/usr/sbin/service", "service", rc_file, "quietstart", (char *)NULL);
			_exit(1);
			/* NOT REACHED */
		default: