| 1524 | } |
| 1525 | |
| 1526 | CSockLink* CDestLinks::GetSockLink() |
| 1527 | { |
| 1528 | CSockLink* link = NULL; |
| 1529 | if (_curr_link < _max_links) |
| 1530 | { |
| 1531 | link = CNetMgr::Instance()->AllocSockLink(); |
| 1532 | if (NULL == link) |
| 1533 | { |
| 1534 | MTLOG_ERROR("alloc sock link failed, error"); |
| 1535 | return NULL; |
| 1536 | } |
| 1537 | link->SetParentsPtr(this); |
| 1538 | link->SetProtoType(_proto_type); |
| 1539 | TAILQ_INSERT_TAIL(&_sock_list, link, _link_entry); |
| 1540 | _curr_link++; |
| 1541 | } |
| 1542 | else |
| 1543 | { |
| 1544 | link = TAILQ_FIRST(&_sock_list); |
| 1545 | TAILQ_REMOVE(&_sock_list, link, _link_entry); |
| 1546 | TAILQ_INSERT_TAIL(&_sock_list, link, _link_entry); |
| 1547 | } |
| 1548 | |
| 1549 | return link; |
| 1550 | } |
| 1551 | |
| 1552 | void CDestLinks::timer_notify() |
| 1553 | { |
no test coverage detected