void qspn_init(u_char levels) { /* register the qspn/tracer's ops in the pkt_op_table */ add_pkt_op(TRACER_PKT, SKT_TCP, ntk_tcp_port, tracer_pkt_recv); add_pkt_op(TRACER_PKT_CONNECT, SKT_TCP, ntk_tcp_port, tracer_pkt_recv); add_pkt_op(QSPN_CLOSE, SKT_TCP, ntk_tcp_port, qspn_close); add_pkt_op(QSPN_OPEN, SKT_TCP, ntk_tcp_port, qspn_open); /* * Alloc the qspn stuff */ qspn_b=xmalloc(sizeof(struct qspn_buffer *)*levels); qspn_send_mutex=xmalloc(sizeof(int)*levels); me.cur_qspn_id=xmalloc(sizeof(int)*levels); me.cur_qspn_time=xmalloc(sizeof(struct timeval)*levels); qspn_reset(levels); }
void first_init_radar(void) { max_radar_wait = MAX_RADAR_WAIT; pthread_attr_init(&radar_qspn_send_t_attr); pthread_attr_setdetachstate(&radar_qspn_send_t_attr, PTHREAD_CREATE_DETACHED); /* register the radar's ops in the pkt_op_table */ add_pkt_op(ECHO_ME, SKT_BCAST, ntk_udp_radar_port, radard); add_pkt_op(ECHO_REPLY, SKT_UDP, ntk_udp_radar_port, radar_recv_reply); rlist = (struct rnode_list *) clist_init(&rlist_counter); alwd_rnodes = (struct allowed_rnode *) clist_init(&alwd_rnodes_counter); radar_daemon_ctl = 0; init_radar(); }