summaryrefslogtreecommitdiff
path: root/src/lib/dev.c
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2021-07-05 21:09:50 +0200
committerSander Vrijders <sander@ouroboros.rocks>2021-07-10 16:35:01 +0200
commit7613c50332469146838cdc524ecee40b3f379322 (patch)
tree0e2528838ca18d4bcbb21a2fc1a5c2580064eb58 /src/lib/dev.c
parent7c0c62706f2ae9821dc779db268a28ef986730fe (diff)
downloadouroboros-7613c50332469146838cdc524ecee40b3f379322.tar.gz
ouroboros-7613c50332469146838cdc524ecee40b3f379322.zip
lib: Don't initialize process RIB for IPCPs
This will skip rib_init() at __init() for IPCPs (or at least, processes that have "ipcpd" in the executable name). The previous code tried to unmount the generic mount and then remount under the ipcp name, but it often failed because fuse_mount() is asynchronous and the mount was not up at the time of the unmount() call. Renaming the mount instead of unmounting failed for the same reason. This is a better fix for now. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/lib/dev.c')
-rw-r--r--src/lib/dev.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/dev.c b/src/lib/dev.c
index fbbc096d..723e3350 100644
--- a/src/lib/dev.c
+++ b/src/lib/dev.c
@@ -443,9 +443,11 @@ static void init(int argc,
goto fail_timerwheel;
#if defined PROC_FLOW_STATS
- sprintf(procstr, "proc.%d", getpid());
- /* Don't bail, it just won't show metrics */
- rib_init(procstr);
+ if (strstr(argv[0], "ipcpd") == NULL) {
+ sprintf(procstr, "proc.%d", getpid());
+ /* Don't bail on fail, it just won't show metrics */
+ rib_init(procstr);
+ }
#endif
return;