Problem with TLI and signals
Jeppe Sommer
jeppe at iesd.auc.dk
Thu Mar 28 07:35:00 AEST 1991
I am experiencing a problem with using TLI on my SPARCstation that I
_suspect_ is connected to our upgrade from Sun OS 4.1 to 4.1.1.
6 months ago I implemented a number of C++ classes for high(er) level
network programming. This included an "activeServer" class which catches a
signal whenever an incomming connect indication arrives at the local TLI
endpoint.
To obtain this I use the ioctl I_SETSIG command to specify which events
should generate a signal (S_INPUT in this case). This worked fine under
4.1. But now ioctl I_SETSIG _hangs_ when called.
I suspect that the problem is not connected to my source code. The Network
Programmers Guide includes an example (Revision A, March 27, 1990, Chapter
9, pp. 235-241) that _did_ work earlier, but also here ioctl I_SETSIG
hangs.
In this example the ioctl I_SETSIG is used for catching incomming
_disconnect_ indications while I use it for _connect_ indications. The
problem, however, remains the same. The code in the Sun example goes like
this:
...
signal(SIGPOLL, connrelease);
if (ioctl(conn_fd, I_SETSIG, S_INPUT) < 0) {
perror("ioctl I_SETSIG failed");
exit(24);
}
...
conn_fd refers to a transport endpoint through which a connection is
accepted. Prior to the execution of the above code conn_fd is in state
T_DATAXFER which is what should be expected.
I have tried both my own and Sun's programs on 3 different Sparcs, two of
which I know were working before the upgrade.
So my questions are:
- Has anybody experienced these problems?
- Has anybody tried the demo's of the Network Programming Guide under
SunOS 4.1.1 with or without any luck?
- Any ideas of what the problem might be?
Any help would be very much appreciated.
Jeppe Sommer
Department of Mathematics & Computer Science
Aalborg University
Denmark
More information about the Comp.sys.sun
mailing list