From: kuwa@nff.ncl.omron.co.jp (KUWARI Seiji)
Subject: Re: Xsi-xwnmo-p6-not-moved
Organization: Computer Systems Lab., OMRON Corporation, Kyoto, Japan
Distribution: fj
Date: Wed, 16 Sep 1992 00:35:31 GMT

$B7,M}!w%*%`%m%s$G$9!#(J

In article <KAIYA.92Sep14162112@rui.cs.titech.ac.jp> kaiya@cs.titech.ac.jp (Haruhiko Kaiya) writes:

 |$BEl9)Bg$N3$C+$G$9(J.
 |
 |X11/contrib/im/Xsi/Xwnmo $B$r(J patch level 6 $B$G:n$C$?$N$G$9$,(J,
 |$B$A$c$s$HF0$-$^$;$s(J.
 |
 |$B6qBNE*$K$O(J,$B%/%i%$%"%s%H$rF0$+$9$H(J,xwnmo$B$,Mn$A$F$7(J$B$^$$$^$9(J.
 |
 |$BCN?M$+$iJ9$$$F(J,patch level 5 $B$K$b$G$7$F(J,
 |
 | ($BCfN,(J)
 |
 |$B$rEv$F$F(J,$B:n$C$?$i(J,$B$&$^$/$f$-(J$B$^$7$?(J.
 |patch 6 $B$G$O(J,$B$3$l$NBP1~$O$7$F$$$J$$$N$G$7$g$&$+(J.?.

$BBP1~$7$F$$$^$9!#Mn$A$k$N$O!"JL$N860x$G$9(J$B!#(J
$B$=$l$O!"0JA0$KLZB<!w2#2OEE5!$5$s$+$i;XE&$,$"$C$?ItJ,$G$7$g$&!#(J
$BLZB<!w2#2OEE5!$5$s$N;XE&$r$b$&0lEY0z(J$BMQ$5$;$F$b$i$C$F!"(Jpatch-7
$B$^$G$N$H$j$"$($:%Q%C%A$rAw$j$^$9!#A02s!"LZB<!w2#2OEE5!$5$s$X$N(J
follow$B$G$O!"(Jpatch$B$r$D$1$:$K=P$7$F$7$^$C$?$h$&$J$N$G!#(J

 |do_socket.c$B$N0J2<$N(J = -1;$B$NItJ,$r:o=|$7$FF0:n$9$k$h$&$K$O(J$B$J$C(J
 |$B$?$N$G$9$,!D!#$3$NItJ,$O(Jp6$B$GJQ99$5$l$?2U=j$G$9!#(J
 |
 |   524      if (sock_tst(ready_socks, accept_blk[SERVER_ACPT].sd)) {
 |   525          sock_clr(ready_socks, accept_blk[SERVER_ACPT].sd);
 |   526          /*
 |   527          cur_cblk = NULL;
 |   528          cur_sock = -1;
 |   529          */
 |   530          return(XEVENT_TYPE);
 |   531      } else {
 |   532          if (sock_tst(ready_socks, cur_sock)) {

-------------------------------------------------------------------
*** ./contrib/im/Xsi/Xwnmo/xwnmo/do_socket.c.SV	Wed Sep 16 09:30:39 1992
--- ./contrib/im/Xsi/Xwnmo/xwnmo/do_socket.c	Wed Sep 16 09:33:46 1992
***************
*** 1,5 ****
  /*
!  * $Id: do_socket.c,v 1.9 1992/07/29 08:43:24 proj Exp $
   */
  /*
   * Copyright 1989, 1990, 1991, 1992 by OMRON Corporation
--- 1,5 ----
  /*
!  * $Id: do_socket.c,v 1.14 1992/08/31 02:28:28 proj Exp $
   */
  /*
   * Copyright 1989, 1990, 1991, 1992 by OMRON Corporation
***************
*** 224,229 ****
--- 224,230 ----
      dummy2_socks = (int *)Malloc(sel_w * sizeof(int));
      sel_width = sel_w * sizeof(int);
      sel_bwidth = sel_width * 8;
+     bzero(ready_socks, sel_width);
  
      max_client = NOFILE - MAX_ACCEPT;
      cblk = (struct cmblk *)Malloc(max_client * sizeof(struct cmblk));
***************
*** 451,456 ****
--- 452,460 ----
  		    }
  		    cur_cblk = &cblk[i];
  		    cur_cblk->use = 1;
+ #if defined(XJPLIB) && defined(XJPLIB_DIRECT)
+ 		    cur_cblk->xjp = 0;
+ #endif	/* defined(XJPLIB) && defined(XJPLIB_DIRECT) */
  		    cur_sock = cur_cblk->sd;
  		    sock_set(all_socks, cur_sock);
  		    new_cl_sock(cur_cblk);
***************
*** 470,475 ****
--- 474,482 ----
  		}
  		cur_cblk = &cblk[i];
  		cur_cblk->use = 1;
+ #if defined(XJPLIB) && defined(XJPLIB_DIRECT)
+ 		cur_cblk->xjp = 0;
+ #endif	/* defined(XJPLIB) && defined(XJPLIB_DIRECT) */
  		cur_sock = cur_cblk->sd;
  		sock_set(all_socks, cur_sock);
  		new_cl_sock(cur_cblk);
***************
*** 488,499 ****
      int n, ret;
      extern int select();
  
!     bcopy(all_socks, ready_socks, sel_width);
!     bzero(dummy1_socks, sel_width);
!     bzero(dummy2_socks, sel_width);
  
!     n = select(nofile, ready_socks, dummy1_socks, dummy2_socks, 
! 	       (struct timeval *)NULL);
  #ifdef	UNIXCONN
      if (accept_blk[UNIX_ACPT].sd != -1) {
  	if (sock_tst(ready_socks, accept_blk[UNIX_ACPT].sd)) {
--- 495,508 ----
      int n, ret;
      extern int select();
  
!     if (!*ready_socks) {
! 	bcopy(all_socks, ready_socks, sel_width);
! 	bzero(dummy1_socks, sel_width);
! 	bzero(dummy2_socks, sel_width);
  
! 	n = select(nofile, ready_socks, dummy1_socks, dummy2_socks, 
! 		   (struct timeval *)NULL);
!     }
  #ifdef	UNIXCONN
      if (accept_blk[UNIX_ACPT].sd != -1) {
  	if (sock_tst(ready_socks, accept_blk[UNIX_ACPT].sd)) {
***************
*** 516,522 ****
  	}
      }
  #if defined(XJPLIB) && defined(XJPLIB_DIRECT)
!     if (ret = XJp_wait_for_socket()) return(ret);
  #endif	/* defined(XJPLIB) && defined(XJPLIB_DIRECT) */
  #endif	/* TCPCONN */
      if (sock_tst(ready_socks, accept_blk[SERVER_ACPT].sd)) {
--- 525,531 ----
  	}
      }
  #if defined(XJPLIB) && defined(XJPLIB_DIRECT)
!     if (ret = XJp_wait_for_socket()) return(0);
  #endif	/* defined(XJPLIB) && defined(XJPLIB_DIRECT) */
  #endif	/* TCPCONN */
      if (sock_tst(ready_socks, accept_blk[SERVER_ACPT].sd)) {
***************
*** 525,531 ****
  	cur_sock = -1;
  	return(XEVENT_TYPE);
      } else {
! 	if (sock_tst(ready_socks, cur_sock)) {
  	    sock_clr(ready_socks, cur_sock);
  #if defined(XJPLIB) && defined(XJPLIB_DIRECT)
  	    if (cur_cblk && cur_cblk->xjp) return(XJP_DIRECT_TYPE);
--- 534,540 ----
  	cur_sock = -1;
  	return(XEVENT_TYPE);
      } else {
! 	if (cur_sock != -1 && sock_tst(ready_socks, cur_sock)) {
  	    sock_clr(ready_socks, cur_sock);
  #if defined(XJPLIB) && defined(XJPLIB_DIRECT)
  	    if (cur_cblk && cur_cblk->xjp) return(XJP_DIRECT_TYPE);
***************
*** 566,571 ****
--- 575,581 ----
  	    else
  #endif	/* defined(XJPLIB) && defined(XJPLIB_DIRECT) */
  	    destroy_for_sock(cblk[i].sd);
+ 	    if (cur_sock == fd) cur_sock = -1;
  	    return;
  	}
      }

--
-----------------------------------------------------------------------
 Seiji Kuwari (kuwa@nff.ncl.omron.co.jp)
 OMRON Corporation		
				Phone: +81-75-951-5111 (ext. 3689)
-----------------------------------------------------------------------