1 /* Copyright 2005 Renzo Davoli VDE-2
2 * Licensed under the GPLv2
4 * Minimal terminal emulator on a UNIX stream socket
11 #include "compat/poll.h"
12 #include <sys/socket.h>
22 int main(int argc
,char *argv
[])
24 struct sockaddr_un sun
;
27 static struct pollfd pfd
[]={
28 {STDIN_FILENO
,POLLIN
| POLLHUP
,0},
29 {STDIN_FILENO
,POLLIN
| POLLHUP
,0}};
30 static int fileout
[]={STDOUT_FILENO
,STDOUT_FILENO
};
31 sun
.sun_family
=PF_UNIX
;
32 snprintf(sun
.sun_path
,sizeof(sun
.sun_path
),"%s",argv
[1]);
33 if((fd
=socket(PF_UNIX
,SOCK_STREAM
,0))<0) {
34 perror("Socket opening error");
37 if ((rv
=connect(fd
,(struct sockaddr
*)(&sun
),sizeof(sun
))) < 0) {
38 perror("Socket connecting error");
41 pfd
[1].fd
=fileout
[0]=fd
;
43 int m
,i
,n
=poll(pfd
,2,-1);
45 if(pfd
[i
].revents
& POLLHUP
)
47 if(pfd
[i
].revents
& POLLIN
) {
49 if((m
=read(pfd
[i
].fd
,buf
,BUFSIZE
)) == 0)
51 write(fileout
[i
],buf
,m
);