summaryrefslogtreecommitdiff
path: root/src/ipcpd/normal/pol/flat.c
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2016-12-06 14:31:49 +0000
committerdimitri staessens <[email protected]>2016-12-06 14:31:49 +0000
commit3068c438767fe54a1cced215e6df379a5c7ea8bf (patch)
tree841b7c48c047afc1ad2bc44999158e0bdf657a9e /src/ipcpd/normal/pol/flat.c
parent82ae7959d21c654fe9fd14de504f47d18b1ebcfc (diff)
parenta4031fa3d1eb63c1ff83ba37e5e89d6b1a7d5d04 (diff)
downloadouroboros-3068c438767fe54a1cced215e6df379a5c7ea8bf.tar.gz
ouroboros-3068c438767fe54a1cced215e6df379a5c7ea8bf.zip
Merged in sandervrijders/ouroboros/be-fix-normal-shutdown (pull request #320)
ipcpd: normal: Fix errors on IPCP shutdown
Diffstat (limited to 'src/ipcpd/normal/pol/flat.c')
-rw-r--r--src/ipcpd/normal/pol/flat.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/ipcpd/normal/pol/flat.c b/src/ipcpd/normal/pol/flat.c
index 06958222..7d489dd5 100644
--- a/src/ipcpd/normal/pol/flat.c
+++ b/src/ipcpd/normal/pol/flat.c
@@ -163,15 +163,17 @@ int flat_init(void)
return -1;
}
- if (ro_create(name, &rattr, NULL, 0)) {
- LOG_ERR("Could not create RO.");
- pathname_destroy(name);
- pthread_cond_destroy(&flat.cond);
- pthread_mutex_destroy(&flat.lock);
- ro_unsubscribe(flat.sid);
- return -1;
+ if (!ro_exists(name)) {
+ rattr.enrol_sync = true;
+ if (ro_create(name, &rattr, NULL, 0)) {
+ LOG_ERR("Could not create RO.");
+ pathname_destroy(name);
+ pthread_cond_destroy(&flat.cond);
+ pthread_mutex_destroy(&flat.lock);
+ ro_unsubscribe(flat.sid);
+ return -1;
+ }
}
-
pathname_destroy(name);
return 0;