1 /* 2 ============================================================================ 3 Name : IP232Test.c 4 Author : Jim Brain 5 Version : 6 Copyright : Your copyright notice 7 Description : Hello World in C, Ansi-style 8 ============================================================================ 9 */ 10 11 #include // for recv... 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include // for read... 20 21 #include "dce.h" 22 #include "debug.h" 23 #include "util.h" 24 #include "ip.h" 25 26 void *ip_thread(void *arg) { 27 28 fd_set readfs; 29 int max_fd = 0; 30 int res = 0; 31 unsigned char buf[256]; 32 dce_config *data = (dce_config *)arg; 33 int rc; 34 35 36 LOG_ENTER(); 37 while(TRUE) { 38 FD_ZERO(&readfs); 39 FD_SET(data->ifd, &readfs); 40 max_fd=MAX(max_fd, data->ifd); 41 max_fd++; 42 rc = select(max_fd, &readfs, NULL, NULL, NULL); 43 if(rc == -1) { 44 ELOG(LOG_FATAL, "Select returned error"); 45 exit(-1); 46 } else { 47 // we got data 48 if (FD_ISSET(data->ifd, &readfs)) { // socket 49 LOG(LOG_DEBUG, "Data available on socket"); 50 res = dce_read(data, buf, sizeof(buf)); 51 LOG(LOG_DEBUG, "Read %d bytes from socket", res); 52 buf[res] = 0; 53 //if(!res) { 54 // ELOG(LOG_FATAL, "Lost connection"); 55 // exit(-1); 56 //} 57 //parse_ip_data(cfg, buf, res); 58 } 59 } 60 } 61 LOG_EXIT(); 62 } 63 64 void send_cmd(int sd, unsigned char cmd) { 65 unsigned char buf[2]; 66 67 buf[0] = 255; 68 buf[1] = cmd; 69 ip_write(sd, buf, 2); 70 71 } 72 73 int main(int argc, char *argv[]) { 74 dce_config data; 75 76 char address[] = "localhost:25232"; 77 //unsigned char text[] = "atdtdilbert\x0d"; 78 79 log_init(); 80 dce_init_config(&data); 81 82 printf("IP232 Test Program\n"); 83 84 log_set_level(LOG_ALL); 85 log_set_trace_flags(255); 86 87 data.ofd = ip_connect(address); 88 if(data.ofd > -1) { 89 data.ifd = data.ofd; 90 data.is_connected = TRUE; 91 spawn_thread(ip_thread, (void *)&data, "IP"); 92 //dce_write(&data, text, strlen((char *)text)); 93 // add in more text here. 94 while(1); 95 } 96 97 98 return EXIT_SUCCESS; 99 }