X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=serial_console%2Fusocket.c;h=4a6df80241193056e9316d72313ff16d36e53b6f;hb=ce1b09ccbf486f669ab693f5c32d3d06e71f6167;hp=7008090b48b69040ca170fd6ba61286fc3172eea;hpb=b339ede7f462ec30fd9a0487b50949a63801be9b;p=svn42.git diff --git a/serial_console/usocket.c b/serial_console/usocket.c index 7008090..4a6df80 100644 --- a/serial_console/usocket.c +++ b/serial_console/usocket.c @@ -65,6 +65,8 @@ void connect_terminal(int fd) send(fd,buffer,num_byte,0); } if (num_byte <0 && errno != EAGAIN) + return; + if (quit_on_eof_ && num_byte == 0) return; } @@ -104,35 +106,34 @@ int main(int argc, char* argv[]) { int ret = 0; int socket_fd = 0; + char *socket_file; //~ struct termios tmio_prev; if (argc > 0) - socket_file_ = argv[1]; + socket_file = argv[1]; + else + socket_file = default_socket_file_; - for(;;) + if (argc > 1) + quit_on_eof_=0; + + socket_fd = establish_socket_connection(socket_file); + if(socket_fd) { - socket_fd = establish_socket_connection(socket_file_); - if(socket_fd < 0) - ret = 2; - else { - //~ ret = set_tty_raw(STDIN_FILENO,&tmio_prev); - //~ if (ret) - //~ break; - fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK); - connect_terminal(socket_fd); - - //~ ret = restore_tty(STDIN_FILENO,&tmio_prev); - //~ if (ret) - //~ break; - } - if (ret == 2) { - fprintf(stderr, "%s error, trying to reopen in 5 seconds..\n", socket_file_); - if(socket_fd > 0) - shutdown(socket_fd,SHUT_RDWR); - sleep(5); - } - else - break; + //~ ret = set_tty_raw(STDIN_FILENO,&tmio_prev); + //~ if (ret) + //~ break; + fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK); + connect_terminal(socket_fd); + + //~ ret = restore_tty(STDIN_FILENO,&tmio_prev); + //~ if (ret) + //~ break; + } + else + { + fprintf(stderr, "%s error, aborting..\n", socket_file); + ret=2; } if(socket_fd > 0)