diff options
| author | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-12-06 14:50:52 +0100 | 
|---|---|---|
| committer | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-12-06 14:51:37 +0100 | 
| commit | a4031fa3d1eb63c1ff83ba37e5e89d6b1a7d5d04 (patch) | |
| tree | 841b7c48c047afc1ad2bc44999158e0bdf657a9e /src/ipcpd/normal/pol | |
| parent | 82ae7959d21c654fe9fd14de504f47d18b1ebcfc (diff) | |
| download | ouroboros-a4031fa3d1eb63c1ff83ba37e5e89d6b1a7d5d04.tar.gz ouroboros-a4031fa3d1eb63c1ff83ba37e5e89d6b1a7d5d04.zip | |
ipcpd: normal: Fix errors on IPCP shutdown
This fixes several bad cleanups in the normal IPCP when it is shutting
down.
Diffstat (limited to 'src/ipcpd/normal/pol')
| -rw-r--r-- | src/ipcpd/normal/pol/flat.c | 18 | 
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; | 
