diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ipcpd/unicast/dt.c | 17 | ||||
| -rw-r--r-- | src/ipcpd/unicast/fa.c | 6 | 
2 files changed, 13 insertions, 10 deletions
| diff --git a/src/ipcpd/unicast/dt.c b/src/ipcpd/unicast/dt.c index 38fb51f3..9f15e2da 100644 --- a/src/ipcpd/unicast/dt.c +++ b/src/ipcpd/unicast/dt.c @@ -58,8 +58,9 @@  #include <inttypes.h>  #include <assert.h> -#define QOS_BLOCK_LEN 672 -#define STAT_FILE_LEN (189 + QOS_BLOCK_LEN * QOS_CUBE_MAX) +#define QOS_BLOCK_LEN   672 +#define RIB_FILE_STRLEN (189 + QOS_BLOCK_LEN * QOS_CUBE_MAX) +#define RIB_NAME_STRLEN 256  #ifndef CLOCK_REALTIME_COARSE  #define CLOCK_REALTIME_COARSE CLOCK_REALTIME @@ -192,7 +193,7 @@ static int dt_rib_read(const char * path,          /* NOTE: we may need stronger checks. */          fd = atoi(path); -        if (len < STAT_FILE_LEN) +        if (len < RIB_FILE_STRLEN)                  return 0;          buf[0] = '\0'; @@ -261,7 +262,7 @@ static int dt_rib_read(const char * path,          pthread_mutex_unlock(&dt.stat[fd].lock); -        return STAT_FILE_LEN; +        return RIB_FILE_STRLEN;  #else          (void) path;          (void) buf; @@ -339,7 +340,7 @@ static int dt_rib_getattr(const char *      path,          pthread_mutex_lock(&dt.stat[fd].lock);          if (dt.stat[fd].stamp != -1) { -                attr->size  = STAT_FILE_LEN; +                attr->size  = RIB_FILE_STRLEN;                  attr->mtime = dt.stat[fd].stamp;          } else {                  attr->size  = 0; @@ -561,7 +562,7 @@ int dt_init(enum pol_routing pr,  {          int              i;          int              j; -        char             dtstr[256]; +        char             dtstr[RIB_NAME_STRLEN + 1];          int              pp;          struct conn_info info; @@ -676,9 +677,11 @@ int dt_init(enum pol_routing pr,  void dt_fini(void)  { +        char dtstr[RIB_NAME_STRLEN + 1];          int i; -        rib_unreg(DT); +        sprintf(dtstr, "%s.%" PRIu64, DT, ipcpi.dt_addr); +        rib_unreg(dtstr);  #ifdef IPCP_FLOW_STATS          for (i = 0; i < PROG_MAX_FLOWS; ++i)                  pthread_mutex_destroy(&dt.stat[i].lock); diff --git a/src/ipcpd/unicast/fa.c b/src/ipcpd/unicast/fa.c index 428b5af7..de9ca83d 100644 --- a/src/ipcpd/unicast/fa.c +++ b/src/ipcpd/unicast/fa.c @@ -591,7 +591,6 @@ static void * fa_handle_packet(void * o)  int fa_init(void)  {          pthread_condattr_t cattr; -        char               fastr[256];          if (pthread_rwlock_init(&fa.flows_lock, NULL))                  goto fail_rwlock; @@ -612,8 +611,7 @@ int fa_init(void)          list_head_init(&fa.cmds); -        sprintf(fastr, "%s", FA); -        if (rib_reg(fastr, &r_ops)) +        if (rib_reg(FA, &r_ops))                  goto fail_rib_reg;          fa.eid = dt_reg_comp(&fa, &fa_post_packet, FA); @@ -637,6 +635,8 @@ int fa_init(void)  void fa_fini(void)  { +        rib_unreg(FA); +          pthread_cond_destroy(&fa.cond);;          pthread_mutex_destroy(&fa.mtx);          pthread_rwlock_destroy(&fa.flows_lock); | 
