to github
[svn42.git] / serial_console / usocket.c
index afc5dea..c87b265 100644 (file)
@@ -1,40 +1,5 @@
 #include "usocket.h"
 
-
-int set_tty_raw(int fd, struct termios *termios_prev)
-{
-  struct termios tmio;
-  
-  int ret = tcgetattr(fd, &tmio);
-  if(ret) {
-    fprintf(stderr, "Error on tcgetattr(): %s\n", strerror(errno));
-    return ret;
-  }
-  
-  memcpy(termios_prev, &tmio,sizeof(struct termios));
-  
-  cfmakeraw(&tmio);
-  
-  ret = tcsetattr(fd, TCSANOW, &tmio);
-  if(ret) {
-    fprintf(stderr, "Error on tcsetattr(): %s\n", strerror(errno));
-    return ret;
-  }  
-  
-  fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK);
-  
-  return 0;
-}
-
-int restore_tty(int fd, struct termios  *termios_prev)
-{
-  int ret = tcsetattr(fd, TCSANOW, termios_prev);
-  if(ret) {
-    fprintf(stderr, "Error on tcsetattr(): %s\n", strerror(errno));
-  }
-  return ret;
-}
-
 void  connect_terminal(int fd)
 {
   if (fd < 3)
@@ -56,7 +21,7 @@ void  connect_terminal(int fd)
         //~ printf("%d:%s\n",num_byte,buffer);
         write(STDOUT_FILENO,buffer,num_byte);
       }
-      if (num_byte == 0 || (num_byte <0 && errno != EAGAIN))
+      if (num_byte < 1)
         return;
     }    
     if (stdin_valid_fd && FD_ISSET(STDIN_FILENO,&fds_r))
@@ -72,7 +37,10 @@ void  connect_terminal(int fd)
         if (quit_on_eof_)
           return;
         else
+        {
           stdin_valid_fd=0;
+          FD_CLR(STDIN_FILENO,&fds_r);
+        }
       }
     }
     
@@ -101,7 +69,7 @@ int establish_socket_connection(const char* path)
   int len = SUN_LEN(&local);
   int ret = connect(fd, (struct sockaddr*) &local, len);
   if(ret) {
-    fprintf(stderr, "unable to bind to '%s': %s\n", local.sun_path, strerror(errno));
+    fprintf(stderr, "unable to connect to '%s': %s\n", local.sun_path, strerror(errno));
     return -1;
   }
   
@@ -114,7 +82,7 @@ int main(int argc, char* argv[])
   int ret = 0;
   int socket_fd = 0;
   char *socket_file;
-  //~ struct termios tmio_prev;
+  
   if (argc > 1)
     socket_file = argv[1];
   else
@@ -126,17 +94,10 @@ int main(int argc, char* argv[])
     quit_on_eof_=0;
   
   socket_fd = establish_socket_connection(socket_file);
-  if(socket_fd)
+  if(socket_fd > 0)
   {
-    //~ 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
   {