diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-08-07 05:41:06 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-08-07 05:41:06 +0800 |
commit | 7b7c297c8f5de70fb534643c28b2bd5851f08f90 (patch) | |
tree | 9a9941969ed39cc60444826306231ca6f080f439 /src/main.c | |
parent | e33d93c3666b941b39bf288f3888fccdbb28964c (diff) |
msc: Separate the BSC and MSC link completly...
Make the msc_conn responsible for creating the link to
the core network and reopening it, make the BTS code just
call the msc methods and the MSC will throw away data in
case it can not be forwarded.
This avoids a problem that we start a reconnect timer
while we have a connection in progress and then add the
same file descriptor twice. This is mostly a speculative
fix to the problem.
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 8 |
1 files changed, 2 insertions, 6 deletions
@@ -272,7 +272,6 @@ static void clear_connections(struct bsc_data *bsc) void bsc_resources_released(struct bsc_data *bsc) { bsc_del_timer(&bsc->reset_timeout); - msc_schedule_reconnect(bsc); } static void bsc_reset_timeout(void *_data) @@ -376,11 +375,8 @@ void bsc_link_down(struct link_data *data) /* clear pending messages from the MSC */ msc_clear_queue(data->bsc); - /* for the case the link is going down while we are trying to reset */ - if (data->bsc->msc_link_down) - msc_schedule_reconnect(data->bsc); - else if (was_up) - msc_send_reset(data->bsc); + /* If we have an A link send a reset to the MSC */ + msc_send_reset(data->bsc); } void bsc_link_up(struct link_data *data) |