#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)
//~ 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))
if (quit_on_eof_)
return;
else
+ {
stdin_valid_fd=0;
+ FD_CLR(STDIN_FILENO,&fds_r);
+ }
}
}
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;
}
int ret = 0;
int socket_fd = 0;
char *socket_file;
- //~ struct termios tmio_prev;
+
if (argc > 1)
socket_file = argv[1];
else
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
{