12 #include <sys/socket.h>
13 #include <netinet/in.h>
19 accept(int fd, void *a, int *alen)
24 char file[8+Ctlsize+1];
27 r = _sock_findrock(fd, 0);
48 /* get control file name from listener process */
49 n = read(fd, name, sizeof(name)-1);
53 cfd = open(name, O_RDWR);
57 nfd = _sock_data(cfd, net, r->domain, r->stype, r->protocol, &nr);
61 if(write(fd, "OK", 2) < 0){
65 _sock_ingetaddr(nr, &nr->raddr, 0, "remote");
74 /* read path to new connection */
75 n = read(fd, name, sizeof(name) - 1);
82 /* open new connection */
83 _sock_srvname(file, name);
84 nfd = open(file, O_RDWR);
88 /* confirm opening on new connection */
89 if(write(nfd, name, strlen(name)) > 0)
95 nr = _sock_newrock(nfd);
100 nr->domain = r->domain;
101 nr->stype = r->stype;
102 nr->protocol = r->protocol;
111 getpeername(nfd, a, alen);