diff options
author | John Estabrook <jestabro@vyos.io> | 2024-07-30 08:27:49 -0500 |
---|---|---|
committer | Christian Breunig <christian@breunig.cc> | 2024-08-12 22:20:15 +0200 |
commit | a9024f302fd9657a0e6ef274cfc1dedccaf9d1a3 (patch) | |
tree | 799977bb6fe4b1dd297e5046e154119be655328b /src | |
parent | 37a012c95bdc5762bbc06d6468f455d610decfa0 (diff) | |
download | vyos-1x-a9024f302fd9657a0e6ef274cfc1dedccaf9d1a3.tar.gz vyos-1x-a9024f302fd9657a0e6ef274cfc1dedccaf9d1a3.zip |
configd: T6633: inject missing env vars for configfs utility
Diffstat (limited to 'src')
-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; } |