static void event_new_fd(rad_listen_t *this)
{
char buffer[1024];
- listen_socket_t *sock;
+ listen_socket_t *sock = NULL;
ASSERT_MASTER;
if (this->type != RAD_LISTEN_DETAIL) {
sock = this->data;
rad_assert(sock != NULL);
+ } else {
+ rad_assert(!this->send_coa);
}
if (this->status == RAD_LISTEN_STATUS_INIT) {
*/
case RAD_LISTEN_PROXY:
#ifdef WITH_TCP
+ rad_assert(sock != NULL);
rad_assert((sock->proto == IPPROTO_UDP) || (sock->home != NULL));
/*
#endif
) {
home_server_t *home;
+ sock = this->data;
home = sock->home;
if (!home || !home->limit.max_connections) {
if (!spawn_flag) {
ASSERT_MASTER;
- if (this->type != RAD_LISTEN_DETAIL && sock->ev) {
- sock = this->data;
+ if (this->type != RAD_LISTEN_DETAIL && sock && sock->ev) {
fr_event_delete(el, &sock->ev);
}
listen_free(&this);