V10/cmd/backup.old/rx.c
#include <ipc.h>
rx(mach, service, retry, traffic, ifd, ofd)
char *mach, *service, *retry, *traffic;
int *ifd, *ofd;
{
int fd;
char buf[256];
if((fd = ipcopen(ipcpath(mach, "dk", service), traffic)) >= 0){
success:
*ifd = fd;
*ofd = dup(fd);
return(0);
}
if(retry){
if((fd = ipcopen(ipcpath(mach, "dk", retry), traffic)) < 0){
sprint(buf, "service %s on machine %s failed: %s", retry, mach, errstr);
perror(buf);
return(1);
}
read(fd, buf, 1);
close(fd);
}
if((fd = ipcopen(ipcpath(mach, "dk", service), traffic)) >= 0)
goto success;
sprint(buf, "service %s on machine %s failed: %s", service, mach, errstr);
perror(buf);
return(1);
}