remove existing smc socket on start (RHEL-40673)
Resolves: RHEL-40673
This commit is contained in:
parent
ecefd36fc8
commit
41bff0bbb4
133
synce4l-smc.patch
Normal file
133
synce4l-smc.patch
Normal file
@ -0,0 +1,133 @@
|
||||
commit 6edb7f5a974c8a80f68c7b82b1bde1c1b37b75bb
|
||||
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
Date: Wed Jun 5 12:55:29 2024 +0200
|
||||
|
||||
Change default smc_socket_path to /run/synce4l_socket
|
||||
|
||||
System services should use /run for sockets and other runtime files.
|
||||
|
||||
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
|
||||
diff --git a/README.md b/README.md
|
||||
index 87623a9..c1c1d73 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -125,7 +125,7 @@ related to a running synce4l instance.
|
||||
| `logging_level` | `6` | `0-7` | Minimum log level required to appear in a log. |
|
||||
| `message_tag` | None | string | Tag reported in a log. |
|
||||
| `poll_interval_msec` | 20 | 0-500 | Sleep time between subsequent SyncE clock polls |
|
||||
-| `smc_socket_path` | `/tmp/synce4l_socket` | string | Full path to socket file for external application communication |
|
||||
+| `smc_socket_path` | `/run/synce4l_socket` | string | Full path to socket file for external application communication |
|
||||
| `use_syslog` | `1` | `0`, `1` | Set to 1 if `syslog` should be used. |
|
||||
| `verbose` | `0` | `0`, `1` | Set to 1 to log extra information. |
|
||||
|
||||
@@ -200,7 +200,7 @@ logging_level 7
|
||||
use_syslog 0
|
||||
verbose 1
|
||||
message_tag [synce4l]
|
||||
-smc_socket_path /tmp/synce4l_socket
|
||||
+smc_socket_path /run/synce4l_socket
|
||||
|
||||
[<synce1>]
|
||||
network_option 1
|
||||
@@ -239,7 +239,7 @@ logging_level 7
|
||||
use_syslog 0
|
||||
verbose 1
|
||||
message_tag [synce4l]
|
||||
-smc_socket_path /tmp/synce4l_socket
|
||||
+smc_socket_path /run/synce4l_socket
|
||||
|
||||
[<synce1>]
|
||||
network_option 1
|
||||
diff --git a/config.c b/config.c
|
||||
index bb438a6..274c2d3 100644
|
||||
--- a/config.c
|
||||
+++ b/config.c
|
||||
@@ -180,7 +180,7 @@ struct config_item config_tab_synce[] = {
|
||||
GLOB_ITEM_STR("message_tag", NULL),
|
||||
GLOB_ITEM_INT("poll_interval_msec", 20, CLOCK_POLL_INTERVAL_MIN,
|
||||
CLOCK_POLL_INTERVAL_MAX),
|
||||
- GLOB_ITEM_STR("smc_socket_path", "/tmp/synce4l_socket"),
|
||||
+ GLOB_ITEM_STR("smc_socket_path", "/run/synce4l_socket"),
|
||||
GLOB_ITEM_INT("use_syslog", 1, 0, 1),
|
||||
GLOB_ITEM_STR("userDescription", ""),
|
||||
GLOB_ITEM_INT("verbose", 0, 0, 1),
|
||||
diff --git a/configs/synce4l.cfg b/configs/synce4l.cfg
|
||||
index ca12e9f..de92bd1 100644
|
||||
--- a/configs/synce4l.cfg
|
||||
+++ b/configs/synce4l.cfg
|
||||
@@ -7,7 +7,7 @@ logging_level 7
|
||||
use_syslog 0
|
||||
verbose 1
|
||||
message_tag [synce4l]
|
||||
-smc_socket_path /tmp/synce4l_socket
|
||||
+smc_socket_path /run/synce4l_socket
|
||||
|
||||
|
||||
#
|
||||
diff --git a/configs/synce4l_dpll.cfg b/configs/synce4l_dpll.cfg
|
||||
index b814266..db4bd88 100644
|
||||
--- a/configs/synce4l_dpll.cfg
|
||||
+++ b/configs/synce4l_dpll.cfg
|
||||
@@ -7,7 +7,7 @@ logging_level 6
|
||||
use_syslog 0
|
||||
verbose 1
|
||||
message_tag [synce4l]
|
||||
-smc_socket_path /tmp/synce4l_socket
|
||||
+smc_socket_path /run/synce4l_socket
|
||||
|
||||
|
||||
#
|
||||
|
||||
commit 2f50c7a8b98d99220108abb0163696dcfed77635
|
||||
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
Date: Wed Jun 5 13:05:18 2024 +0200
|
||||
|
||||
Check smc_socket_path length
|
||||
|
||||
Exit with an error message if the configured socket path is too long to
|
||||
be bound as a Unix domain socket.
|
||||
|
||||
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
|
||||
diff --git a/synce_manager.c b/synce_manager.c
|
||||
index 598ef7e..a42b823 100644
|
||||
--- a/synce_manager.c
|
||||
+++ b/synce_manager.c
|
||||
@@ -256,6 +256,10 @@ static void *synce_manager_server_thread(void *arg)
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
+ if (strlen(synce_clock_get_socket_path(clk)) >= sizeof(server.sun_path)) {
|
||||
+ pr_err("%s smc_socket_path is too long", __func__);
|
||||
+ exit(EXIT_FAILURE);
|
||||
+ }
|
||||
server.sun_family = AF_UNIX;
|
||||
snprintf(server.sun_path, sizeof(server.sun_path), "%s",
|
||||
synce_clock_get_socket_path(clk));
|
||||
|
||||
commit b5a9ad4f0aa1fb98e4ac060c91a08d82fe66e7d2
|
||||
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
Date: Wed Jun 5 13:07:04 2024 +0200
|
||||
|
||||
Unlink smc_socket_path before binding
|
||||
|
||||
Remove the Unix domain socket if it already exists (e.g. previous
|
||||
synce4l instance didn't exit cleanly) to avoid failing in the bind()
|
||||
call.
|
||||
|
||||
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
|
||||
diff --git a/synce_manager.c b/synce_manager.c
|
||||
index a42b823..6baf18c 100644
|
||||
--- a/synce_manager.c
|
||||
+++ b/synce_manager.c
|
||||
@@ -264,6 +264,8 @@ static void *synce_manager_server_thread(void *arg)
|
||||
snprintf(server.sun_path, sizeof(server.sun_path), "%s",
|
||||
synce_clock_get_socket_path(clk));
|
||||
|
||||
+ unlink(server.sun_path);
|
||||
+
|
||||
if (bind(server_fd, (struct sockaddr *)&server, sizeof(server)) < 0) {
|
||||
pr_err("%s Bind failed", __func__);
|
||||
exit(EXIT_FAILURE);
|
@ -10,6 +10,8 @@ Source1: synce4l.service
|
||||
|
||||
# Fix compiler warnings to avoid build failures with -Werror
|
||||
Patch1: synce4l-ccwarns.patch
|
||||
# Change default smc socket path and remove existing socket on start
|
||||
Patch2: synce4l-smc.patch
|
||||
|
||||
BuildRequires: gcc make systemd
|
||||
BuildRequires: libnl3-devel
|
||||
@ -24,13 +26,12 @@ supported hardware by processing Ethernet Synchronization Messaging Channel
|
||||
(NIC).
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
%autosetup -p1
|
||||
|
||||
sed \
|
||||
-e 's|^\(logging_level *\)[0-7]|\16|' \
|
||||
-e 's|^\(use_syslog *\)[01]|\11|' \
|
||||
-e 's|^\(verbose *\)[01]|\10|' \
|
||||
-e 's|^\(smc_socket_path *\)/tmp|\1/run|' \
|
||||
< configs/synce4l_dpll.cfg > synce4l.conf
|
||||
touch -r configs/synce4l_dpll.cfg synce4l.conf
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user