diff options
author | John Estabrook <jestabro@vyos.io> | 2024-07-30 08:27:49 -0500 |
---|---|---|
committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2024-08-13 00:46:39 +0000 |
commit | a55e35470a4b76cab4193e287235f8c6900b6a58 (patch) | |
tree | c4a59402eb5fd44e1ec934d1492b169dc2ab7edb | |
parent | c50c55b93027d9000fa4fd966197402c1422ed3f (diff) | |
download | vyos-1x-mergify/bp/circinus/pr-3937.tar.gz vyos-1x-mergify/bp/circinus/pr-3937.zip |
configd: T6633: inject missing env vars for configfs utilitymergify/bp/circinus/pr-3937
(cherry picked from commit a9024f302fd9657a0e6ef274cfc1dedccaf9d1a3)
-rwxr-xr-x | src/services/vyos-configd | 10 | ||||
-rw-r--r-- | src/shim/vyshim.c | 24 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/services/vyos-configd b/src/services/vyos-configd index 69ee15bf1..d797e90cf 100755 --- a/src/services/vyos-configd +++ b/src/services/vyos-configd @@ -182,6 +182,12 @@ def initialization(socket): sudo_user_string = socket.recv().decode("utf-8", "ignore") resp = "sudo_user" socket.send(resp.encode()) + temp_config_dir_string = socket.recv().decode("utf-8", "ignore") + resp = "temp_config_dir" + socket.send(resp.encode()) + changes_only_dir_string = socket.recv().decode("utf-8", "ignore") + resp = "changes_only_dir" + socket.send(resp.encode()) logger.debug(f"config session pid is {pid_string}") logger.debug(f"config session sudo_user is {sudo_user_string}") @@ -198,6 +204,10 @@ def initialization(socket): session_mode = 'a' os.environ['SUDO_USER'] = sudo_user_string + if temp_config_dir_string: + os.environ['VYATTA_TEMP_CONFIG_DIR'] = temp_config_dir_string + if changes_only_dir_string: + os.environ['VYATTA_CHANGES_ONLY_DIR'] = changes_only_dir_string try: configsource = ConfigSourceString(running_config_text=active_string, diff --git a/src/shim/vyshim.c b/src/shim/vyshim.c index 4d836127d..a78f62a7b 100644 --- a/src/shim/vyshim.c +++ b/src/shim/vyshim.c @@ -185,6 +185,20 @@ int initialization(void* Requester) } debug_print("sudo_user is %s\n", sudo_user); + char *temp_config_dir = getenv("VYATTA_TEMP_CONFIG_DIR"); + if (!temp_config_dir) { + char none[] = ""; + temp_config_dir = none; + } + debug_print("temp_config_dir is %s\n", temp_config_dir); + + char *changes_only_dir = getenv("VYATTA_CHANGES_ONLY_DIR"); + if (!changes_only_dir) { + char none[] = ""; + changes_only_dir = none; + } + debug_print("changes_only_dir is %s\n", changes_only_dir); + debug_print("Sending init announcement\n"); char *init_announce = mkjson(MKJSON_OBJ, 1, MKJSON_STRING, "type", "init"); @@ -252,6 +266,16 @@ int initialization(void* Requester) zmq_recv(Requester, buffer, 16, 0); debug_print("Received sudo_user receipt\n"); + debug_print("Sending config session temp_config_dir\n"); + zmq_send(Requester, temp_config_dir, strlen(temp_config_dir), 0); + zmq_recv(Requester, buffer, 16, 0); + debug_print("Received temp_config_dir receipt\n"); + + debug_print("Sending config session changes_only_dir\n"); + zmq_send(Requester, changes_only_dir, strlen(changes_only_dir), 0); + zmq_recv(Requester, buffer, 16, 0); + debug_print("Received changes_only_dir receipt\n"); + return 0; } |