diff options
Diffstat (limited to 'src/ipcpd/local')
| -rw-r--r-- | src/ipcpd/local/main.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/src/ipcpd/local/main.c b/src/ipcpd/local/main.c index 4a0ad683..6357487f 100644 --- a/src/ipcpd/local/main.c +++ b/src/ipcpd/local/main.c @@ -341,7 +341,6 @@ static int ipcp_local_name_unreg(char * name)  static int ipcp_local_flow_alloc(pid_t         n_pid,                                   int           port_id,                                   char *        dst_name, -                                 char *        src_ap_name,                                   char *        src_ae_name,                                   enum qos_cube qos)  { @@ -350,9 +349,9 @@ static int ipcp_local_flow_alloc(pid_t         n_pid,          struct shm_ap_rbuff * rb; -        LOG_INFO("Allocating flow from %s to %s.", src_ap_name, dst_name); +        LOG_INFO("Allocating flow to %s.", dst_name); -        if (dst_name == NULL || src_ap_name == NULL || src_ae_name == NULL) +        if (dst_name == NULL || src_ae_name == NULL)                  return -1;          /* This ipcpd has all QoS */ @@ -387,7 +386,6 @@ static int ipcp_local_flow_alloc(pid_t         n_pid,          /* reply to IRM */          port_id = ipcp_flow_req_arr(getpid(),                                      dst_name, -                                    src_ap_name,                                      src_ae_name);          if (port_id < 0) { @@ -521,7 +519,9 @@ static int ipcp_local_flow_dealloc(int port_id)          bmp_release(_ap_instance->fds, fd); -        _ap_instance->in_out[_ap_instance->in_out[fd]] = -1; +        if (_ap_instance->in_out[fd] != -1) +                _ap_instance->in_out[_ap_instance->in_out[fd]] = -1; +          _ap_instance->in_out[fd] = -1;          _ap_instance->flows[fd].state   = FLOW_NULL;  | 
