int main(int argc , char* argv[]) { int print_mask = 0xffffffff; if (argc > 1) { print_mask = strtol(argv[argc-1], NULL, 16); } if (print_mask == 0) print_mask = ((1<<UGW_NEIGHBOR_WLAN_INFO) | (1<<UGW_RADIO_INFO) | (1<<UGW_STA_AUTH_NOTIF)); printf("\n************print mask=[0x%X]\n", print_mask); char str[] = "hello world"; ugw_netlink_init(); printf("************sock_fd:%d.\n", ugw_netlink_sock); ugw_netlink_sendmsg(str, sizeof(str)); while (1) { ugw_netlink_data_t *report_data; int recv_len; ugw_netlink_recvmsg((void**)&report_data, &recv_len); if (-1 == msg_proc(report_data, recv_len, print_mask)) { continue; } usleep(100000); } ugw_netlink_destroy(); return 0; }
void *message_travel(void *arg) { struct message_t *msg; while(1) { sleep(argument.msgitv); if(head == NULL) continue; while((msg = message_delete())) { msg_proc((void *)msg->data, msg->len, msg->proto); message_free(msg); } sys_debug("Message travel pthreads (next %d second later)\n", argument.msgitv); } return NULL; }