Xref: utzoo comp.sys.apollo:7527 comp.protocols.time.ntp:209 Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!apple!usc!zaphod.mps.ohio-state.edu!rpi!uupsi!sunic!ugle.unit.no!hanche From: hanche@imf.unit.no (Harald Hanche-Olsen) Newsgroups: comp.sys.apollo,comp.protocols.time.ntp Subject: XNTPD on an Apollo? Message-ID: Date: 28 Dec 90 23:13:24 GMT Sender: news@ugle.unit.no Organization: The Norwegian Institute of Technology, Trondheim, Norway. Lines: 35 I have been trying to port xntpd to the Apollo, and have run into trouble. What xntpd does is open a bunch of UDP sockets, and set them up to send an IO signal whenever input arrives by saying fcntl(fd, F_SETOWN, getpid()) Then the program happily goes to sleep with a sigpause(), knowing that it will be woken up when there is work to do. However, tha man page for fcntl says NOTES Presently, Domain/OS BSD does not implement the following cmds: F_GETOWN [...] F_SETOWN Set the process or process group to receive SIGIO and SIGURG signals; process groups are specified by supplying arg as negative; otherwise, arg is interpreted as a process ID. so the daemon just sleeps forever in the sigpause() call. I have verified that, if I try to contact the xntpd via ntpq, it times out - but if I send xntpd an IO signal (kill -IO ...) before ntpq times out, I do get the expected response. Has anyone managed to get around this and port xntpd to the Apollo? Or if not, any suggestions? I'd rather not have to restructure the whole program to make this work... I tried substituting the call fcntl(fd, F_SETFL, FASYNC) for the above call, but to no avail. From reading the man page, it is not clear to me whether or not it ought to. - Harald Hanche-Olsen Division of Mathematical Sciences The Norwegian Institute of Technology N-7034 Trondheim, NORWAY