Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: <3A50DFB1.66C2616E@mindspring.com> Date: Mon, 01 Jan 2001 11:51:14 -0800 From: Anthony & Yinkwan Reply-To: hips AT mindspring DOT com X-Mailer: Mozilla 4.76 (Macintosh; U; PPC) X-Accept-Language: en,zh MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: rlogin, SIGWINCH and TIOCPKT_WINDOW with Solaris server References: <3A50310D DOT 5D39E567 AT mindspring DOT com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Further investigation, based on the Cygwin source, Stevens' book and truss'ing the Solaris rlogin client, leads me to believe that the rlogind should be using the MSG_OOB flag to send the TIOCPKT_WINDOW control byte to the client ... the child process on the client-side should receive a SIGURG signal from the system prompting it to do the out-of-band processing that results in a SIGUSR1 being sent to the parent process on the client-side which initiates the window change management. I'm certain that the Cygwin rlogin client is not receiving a SIGURG from which you can deduce that it's either not being initiated at the server side, or not being generated by the client system. When I truss the Solaris rlogin client I get the following interesting stuff : 554: getpid() = 554 [550] 554: ioctl(4, FIOSETOWN, 0xEFFFFA84) = 0 554: kill(554, SIGURG) = 0 554: Received signal #21, SIGURG [caught] 554: siginfo: SIGURG pid=554 uid=0 554: poll(0xEFFFC5C0, 1, 0) = 1 554: ioctl(4, 0x40047307, 0xEFFFF630) = 0 554: recv(4, "80", 1, 1) = 1 554: kill(550, SIGUSR1) = 0 550: Received signal #16, SIGUSR1, in read() [caught] 550: siginfo: SIGUSR1 pid=554 uid=0 554: setcontext(0xEFFFF780) 550: read(0, 0xEFFFFAAF, 1) Err#4 EINTR ... unless I'm reading things incorrectly, this indicates that the client-side child process sends a SIGURG to itself (3rd line) ! I added the kill to the Cygwin code as follows : SN8981335729 # diff rlogin.c rlogin.c.orig 843,845d842 < < kill(getpid(),SIGURG); < ... et voila, things work ! ... is it a hack, or does it make sense ? Anthony. Anthony & Yinkwan wrote: > > Hmmm ... I'm running the Cygwin rlogin client in an xterm and logging > into a remote Solaris 2.6 server ... I would dearly like even the > initial window size to be properly propagated to the remote server, not > to mention subsequent changes to the xterm window size, but it seems > that the expected TIOCPKT_WINDOW indicator is not being sent by the > server when the session is established ... does anyone have any idea why ? > > By the way, if I manually send a SIGUSR1 signal to the parent process, > or a SIGURG to the client everything works ... I think it looks like a > Solaris server-side issue ! > > I'm off to celebrate New Year now, so I suspect I'll have to wait for > next year for an answer on this ! > > Thanks, > > Anthony. > > -- > Want to unsubscribe from this list? > Check out: http://cygwin.com/ml/#unsubscribe-simple -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple