int main(int argc, const char *argv[]) { if(connect_to_kernel()) { printf("[ERROR] Can't connect to kernel control socket!\n"); exit(1); } print_menu(); while(1) { main_menu(); } return 0; }
int main(int argc, char **argv) { int status; char str[100]; char input[2]; long interval = 0; int i = 0; struct tw_pkt* tmp = NULL; pthread_t p; h = ipq_create_handle(0, PF_INET); status = ipq_set_mode(h, IPQ_COPY_PACKET, BUFSIZE); if(status < 0){ die(); } memset(str, 0, 100); memset(input, 0, 2); pre.tv_sec = now.tv_sec = 0; pre.tv_usec = now.tv_usec = 0; my_pkt_head.count = 0; my_pkt_head.head = my_pkt_head.end = NULL; printf("input a string\n"); fgets(str, 100, stdin); // memcpy(str, argv[1], 100); encode(str, 100); input[0] = 1; connect_to_kernel(input); printf("start to send information...\n"); do{ struct tw_pkt* tmp = malloc(sizeof(struct tw_pkt)); memset(tmp->buf, 0, BUFSIZE); tmp->pre = tmp->next = NULL; status = ipq_read(h, tmp->buf, BUFSIZE, 0); if(status < 0){ die(); } switch (ipq_message_type(tmp->buf)) { case NLMSG_ERROR:{ fprintf(stderr, "Received error message %d ", ipq_get_msgerr(tmp->buf)); break; } case IPQM_PACKET:{ ipq_packet_msg_t *m = ipq_get_packet(tmp->buf); printf("%ld packet_id rcv \n", m->packet_id); enqueue(tmp); i++; if(i == 2){ pthread_create(&p, NULL, tw_send, NULL); } break; } default:{ fprintf(stderr, "Unknown message type! "); break; } } } while (1); input[0] = 2; connect_to_kernel(input); ipq_destroy_handle(h); return 0; }