home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sources.misc
- subject: v09i058: siotools patch 2
- from: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
- Reply-To: wht%n4hgf@gatech.edu (Warren Tucker)
-
- Posting-number: Volume 9, Issue 58
- Submitted-by: wht%n4hgf@gatech.edu (Warren Tucker)
- Archive-name: siotools/patch02
-
- I appreciate the mail I've recceived on uusnap and siomon... and the
- bug report and suggestions. I've gotten 1 clue about hacking this to
- work with ISC i386: The "standard" async port tty structure array is
- named 'asy_tty' and the count of items in the array is in 'num_asy'.
- Whereas SCO maintains one array of tty structures for all tty devices,
- whether single 0x3f8/0x2f8 standard ports or multi-port expansion
- boards, this seems not to be the case with ISC. More than one kmem
- read will be necessary to read asy_tty and ???_tty [ ... and ??2_tty
- ... ] into an aggregate array. Another mechanism will be needed to
- map array indices to /dev/ttynames. I would appreciate hearing of any
- work you might do.
- -----------------------------------------------------------------------
- Warren Tucker, Mountain Park, Georgia ...!gatech!kd4nc!n4hgf!wht
-
- --------------- cut here --------------
- :
- # This is a shell archive (shar 3.04)
- # made 12/07/1989 08:32 UTC by gatech!kd4nc!n4hgf!wht
- # Source directory /u4/src/uusnap/x
- #
- # siotools v09i044/v09i45 Patch 2
- # uusnap bug fix and changes described in the enclosed file
- # Just unshar in the siotools source directory and type 'sh PATCH.2'
- #
- echo "x - extracting PATCH.2 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > PATCH.2 &&
- X:
- X#----------------------------------------------------------------------
- X# siotools v09i044/v09i45 Patch 2 -- affects uusnap only
- X# 1. Fix race condition with status update vs. tty->no-tty transition
- X# 2. Increase number of displayable connections
- X# 3. document ESC as quit key
- X#----------------------------------------------------------------------
- X#+:EDITS:
- X#:12-07-1989-03:26-wht-creation
- X
- Xsed -e 's/^P//' << DIFF_EOF | patch
- XP*** uusnap161.c
- XP--- uusnap.c
- XP**************
- XP*** 1,5
- XP! /* CHK=0x5B7C */
- XP! char *revision = "1.61";
- XP /*+-------------------------------------------------------------------------
- XP uusnap.c - display UUCP communications status for HDB systems
- XP ...gatech!kd4nc!n4hgf!wht
- XP--- 1,5 -----
- XP! /* CHK=0xD9CC */
- XP! char *revision = "1.62";
- XP /*+-------------------------------------------------------------------------
- XP uusnap.c - display UUCP communications status for HDB systems
- XP ...gatech!kd4nc!n4hgf!wht
- XP**************
- XP*** 32,37
- XP
- XP --------------------------------------------------------------------------*/
- XP /*+:EDITS:*/
- XP /*:12-04-1989-16:45-wht-add detail in full */
- XP /*:12-01-1989-16:53-wht-XENIX 286 work: no beep()! */
- XP /*:11-30-1989-17:48-wht-complete rewrite to add detail status */
- XP--- 32,38 -----
- XP
- XP --------------------------------------------------------------------------*/
- XP /*+:EDITS:*/
- XP+ /*:12-07-1989-03:10-wht-make changes per email suggestions */
- XP /*:12-04-1989-16:45-wht-add detail in full */
- XP /*:12-01-1989-16:53-wht-XENIX 286 work: no beep()! */
- XP /*:11-30-1989-17:48-wht-complete rewrite to add detail status */
- XP**************
- XP*** 92,98
- XP char *LOCKDIR = "/usr/spool/uucp/LCK..";
- XP char *WORKDIR = "/usr/spool/uucp/";
- XP char *SPOOLDIR = "/usr/spool/uucp";
- XP- char *LOGFILE = "/tmp/uuexp.log";
- XP
- XP #define MAX_SYSTEMS (LINES - FIRSTSYS_Y - 6)
- XP #define WAITSECS_ACTIVE 1 /* sleep secs between samples when talking */
- XP--- 93,98 -----
- XP char *LOCKDIR = "/usr/spool/uucp/LCK..";
- XP char *WORKDIR = "/usr/spool/uucp/";
- XP char *SPOOLDIR = "/usr/spool/uucp";
- XP
- XP #define MAX_SYSTEMS (LINES - FIRSTSYS_Y - 4)
- XP #define WAITSECS_ACTIVE 1 /* sleep secs between samples when talking */
- XP**************
- XP*** 94,100
- XP char *SPOOLDIR = "/usr/spool/uucp";
- XP char *LOGFILE = "/tmp/uuexp.log";
- XP
- XP! #define MAX_SYSTEMS (LINES - FIRSTSYS_Y - 6)
- XP #define WAITSECS_ACTIVE 1 /* sleep secs between samples when talking */
- XP #define WAITSECS_IDLE 7 /* sleep secs between samples when not talking */
- XP
- XP--- 94,100 -----
- XP char *WORKDIR = "/usr/spool/uucp/";
- XP char *SPOOLDIR = "/usr/spool/uucp";
- XP
- XP! #define MAX_SYSTEMS (LINES - FIRSTSYS_Y - 4)
- XP #define WAITSECS_ACTIVE 1 /* sleep secs between samples when talking */
- XP #define WAITSECS_IDLE 7 /* sleep secs between samples when not talking */
- XP
- XP**************
- XP*** 354,360
- XP if(stdscr)
- XP {
- XP standend();
- XP! move(LINES - 4,0);
- XP clrtobot();
- XP refresh();
- XP echo();
- XP--- 354,360 -----
- XP if(stdscr)
- XP {
- XP standend();
- XP! move(LINES - 2,0);
- XP clrtobot();
- XP refresh();
- XP echo();
- XP**************
- XP*** 408,414
- XP cmd_line(text)
- XP char *text;
- XP {
- XP! move(LINES - 4,0);
- XP clrtoeol();
- XP
- XP if(!text)
- XP--- 408,414 -----
- XP cmd_line(text)
- XP char *text;
- XP {
- XP! move(LINES - 2,0);
- XP clrtoeol();
- XP
- XP if(!text)
- XP**************
- XP*** 413,419
- XP
- XP if(!text)
- XP addstr(
- XP! "type 'q' to quit, 'd' for detail, SPACE to update immediately");
- XP else
- XP addstr(text);
- XP
- XP--- 413,419 -----
- XP
- XP if(!text)
- XP addstr(
- XP! "type ESC/'q' to quit, 'd' for detail, SPACE to update immediately");
- XP else
- XP addstr(text);
- XP
- XP**************
- XP*** 607,613
- XP {
- XP register int x;
- XP register int y;
- XP! register unsigned int itmp;
- XP char s8[8];
- XP
- XP getyx(stdscr,y,x);
- XP--- 607,613 -----
- XP {
- XP register int x;
- XP register int y;
- XP! register unsigned itmp;
- XP char s8[8];
- XP
- XP clrtoeol();
- XP**************
- XP*** 610,615
- XP register unsigned int itmp;
- XP char s8[8];
- XP
- XP getyx(stdscr,y,x);
- XP move(y,TX + x);
- XP addch((sionum < 8) ? '1' : '2');
- XP--- 610,616 -----
- XP register unsigned itmp;
- XP char s8[8];
- XP
- XP+ clrtoeol();
- XP getyx(stdscr,y,x);
- XP move(y,TX + x);
- XP addch((sionum < 8) ? '1' : '2');
- XP**************
- XP*** 682,687
- XP int y,x;
- XP int sysdetail;
- XP int ttnum;
- XP char *sysname;
- XP char *cptr;
- XP
- XP--- 683,689 -----
- XP int y,x;
- XP int sysdetail;
- XP int ttnum;
- XP+ int have_tty = 0;
- XP char *sysname;
- XP char *cptr;
- XP
- XP**************
- XP*** 689,694
- XP "tty raw can out speed state iflag oflag cflag lflag pgrp";
- XP static char *hyphens =
- XP "--- --- --- ----- ----- ----- ------ ------ ------ ------ -----";
- XP
- XP
- XP cmd_line("display detail on system #: __");
- XP--- 691,702 -----
- XP "tty raw can out speed state iflag oflag cflag lflag pgrp";
- XP static char *hyphens =
- XP "--- --- --- ----- ----- ----- ------ ------ ------ ------ -----";
- XP+ static char *press_any_key =
- XP+ "press any key to return to main display ";
- XP+ static char *state1 =
- XP+ "State: W waiting for open to complete O open C carrier on";
- XP+ static char *state2 =
- XP+ " S stopped by XOFF D delay timeout in progress ";
- XP
- XP cmd_line("display detail on system #: __");
- XP getyx(stdscr,y,x);
- XP**************
- XP*** 690,696
- XP static char *hyphens =
- XP "--- --- --- ----- ----- ----- ------ ------ ------ ------ -----";
- XP
- XP-
- XP cmd_line("display detail on system #: __");
- XP getyx(stdscr,y,x);
- XP move(y,x - 2);
- XP--- 698,703 -----
- XP static char *state2 =
- XP " S stopped by XOFF D delay timeout in progress ";
- XP
- XP cmd_line("display detail on system #: __");
- XP getyx(stdscr,y,x);
- XP move(y,x - 2);
- XP**************
- XP*** 708,714
- XP return;
- XP }
- XP
- XP- cmd_line("press any key to return to main display ");
- XP sysname = sysnames + (sysdetail << 4);
- XP y = FIRSTSYS_Y;
- XP move(y,0);
- XP--- 715,720 -----
- XP return;
- XP }
- XP
- XP sysname = sysnames + (sysdetail << 4);
- XP y = FIRSTSYS_Y;
- XP move(y,0);
- XP**************
- XP*** 713,718
- XP y = FIRSTSYS_Y;
- XP move(y,0);
- XP clrtobot();
- XP
- XP move(y+4,0);
- XP addstr(header);
- XP--- 719,725 -----
- XP y = FIRSTSYS_Y;
- XP move(y,0);
- XP clrtobot();
- XP+ cmd_line(press_any_key);
- XP
- XP while(1)
- XP {
- XP**************
- XP*** 714,731
- XP move(y,0);
- XP clrtobot();
- XP
- XP- move(y+4,0);
- XP- addstr(header);
- XP- move(y+5,0);
- XP- addstr(hyphens);
- XP- move(y+8,0);
- XP- addstr(
- XP- "State: W waiting for open to complete O open C carrier on");
- XP- move(y+9,0);
- XP- addstr(
- XP- " S stopped by XOFF D delay timeout in progress ");
- XP-
- XP-
- XP while(1)
- XP {
- XP display_tod(); /* display time and get 'secs_now' */
- XP--- 721,726 -----
- XP clrtobot();
- XP cmd_line(press_any_key);
- XP
- XP while(1)
- XP {
- XP display_tod(); /* display time and get 'secs_now' */
- XP**************
- XP*** 736,741
- XP printw("cannot get status for %s",sysname);
- XP standend();
- XP clrtobot();
- XP goto DETAIL_SLEEP;
- XP }
- XP
- XP--- 731,737 -----
- XP printw("cannot get status for %s",sysname);
- XP standend();
- XP clrtobot();
- XP+ cmd_line(press_any_key);
- XP goto DETAIL_SLEEP;
- XP }
- XP
- XP**************
- XP*** 742,748
- XP /* 00000 */
- XP /* 01234 */
- XP /* ttyxx */
- XP! move(y+6,0);
- XP if(locked_tty[0] && ((locked_tty[3] == '1') || (locked_tty[3] == '2')))
- XP {
- XP ttnum = ((locked_tty[3] - '1') * 8) + ((locked_tty[4] & 7) - 1);
- XP--- 738,744 -----
- XP /* 00000 */
- XP /* 01234 */
- XP /* ttyxx */
- XP! move(y+5,0);
- XP if(locked_tty[0] && ((locked_tty[3] == '1') || (locked_tty[3] == '2')))
- XP {
- XP ttnum = ((locked_tty[3] - '1') * 8) + ((locked_tty[4] & 7) - 1);
- XP**************
- XP*** 752,758
- XP addstr(cptr);
- XP addstr(": ");
- XP addstr(locked_tty);
- XP- cmd_line("press any key to return to main display ");
- XP standend();
- XP refresh();
- XP getch();
- XP--- 748,753 -----
- XP addstr(cptr);
- XP addstr(": ");
- XP addstr(locked_tty);
- XP standend();
- XP refresh();
- XP getch();
- XP**************
- XP*** 758,764
- XP getch();
- XP goto DETAIL_EXIT;
- XP }
- XP! clrtoeol();
- XP display_tty(ttnum,&sio[0]);
- XP wintty_template(stdscr,y+11,0,1);
- XP wintty(stdscr,y+11,0,&sio[0]);
- XP--- 753,771 -----
- XP getch();
- XP goto DETAIL_EXIT;
- XP }
- XP! if(!have_tty)
- XP! {
- XP! move(y+3,0);
- XP! addstr(header);
- XP! move(y+4,0);
- XP! addstr(hyphens);
- XP! move(y+7,0);
- XP! addstr(state1);
- XP! move(y+8,0);
- XP! addstr(state2);
- XP! }
- XP! have_tty = 1;
- XP! move(y+5,0);
- XP display_tty(ttnum,&sio[0]);
- XP wintty_template(stdscr,y+10,0,1);
- XP wintty(stdscr,y+10,0,&sio[0]);
- XP**************
- XP*** 760,768
- XP }
- XP clrtoeol();
- XP display_tty(ttnum,&sio[0]);
- XP! wintty_template(stdscr,y+11,0,1);
- XP! wintty(stdscr,y+11,0,&sio[0]);
- XP! move(y+11,0);
- XP }
- XP else
- XP {
- XP--- 767,775 -----
- XP have_tty = 1;
- XP move(y+5,0);
- XP display_tty(ttnum,&sio[0]);
- XP! wintty_template(stdscr,y+10,0,1);
- XP! wintty(stdscr,y+10,0,&sio[0]);
- XP! move(y+10,0);
- XP }
- XP else
- XP {
- XP**************
- XP*** 766,771
- XP }
- XP else
- XP {
- XP printw(" no tty or non-async connection");
- XP clrtoeol();
- XP wintty_template(stdscr,y+11,0,0);
- XP--- 773,781 -----
- XP }
- XP else
- XP {
- XP+ move(y+3,0);
- XP+ clrtobot();
- XP+ move(y+5,0);
- XP printw(" no tty or non-async connection");
- XP cmd_line(press_any_key);
- XP have_tty = 0;
- XP**************
- XP*** 767,774
- XP else
- XP {
- XP printw(" no tty or non-async connection");
- XP! clrtoeol();
- XP! wintty_template(stdscr,y+11,0,0);
- XP }
- XP
- XP DETAIL_SLEEP:
- XP--- 777,786 -----
- XP clrtobot();
- XP move(y+5,0);
- XP printw(" no tty or non-async connection");
- XP! cmd_line(press_any_key);
- XP! have_tty = 0;
- XP! wintty_template(stdscr,y+10,0,0);
- XP! move(LINES - 2,0);
- XP }
- XP
- XP DETAIL_SLEEP:
- XP**************
- XP*** 886,892
- XP bye(255);
- XP }
- XP display_delta_y = systems = 0;
- XP- move(LINES - 4,0);
- XP move(FIRSTSYS_Y,0);
- XP while(dp = dir_read(stat_dp))
- XP {
- XP--- 898,903 -----
- XP bye(255);
- XP }
- XP display_delta_y = systems = 0;
- XP move(FIRSTSYS_Y,0);
- XP while(dp = dir_read(stat_dp))
- XP {
- XP**************
- XP*** 903,916
- XP display_status(systems,sysname,display_delta_y + FIRSTSYS_Y,linebuf);
- XP display_delta_y++;
- XP }
- XP- move(display_delta_y + FIRSTSYS_Y,0);
- XP- clrtoeol();
- XP- display_delta_y++;
- XP- move(display_delta_y + FIRSTSYS_Y,0);
- XP- addstr("UUCP connections active: ");
- XP- utoda(s32,2,systems);
- XP- addstr(s32);
- XP- display_delta_y++;
- XP while(display_delta_y < MAX_SYSTEMS)
- XP {
- XP move(display_delta_y++ + FIRSTSYS_Y,0);
- XP--- 914,919 -----
- XP display_status(systems,sysname,display_delta_y + FIRSTSYS_Y,linebuf);
- XP display_delta_y++;
- XP }
- XP while(display_delta_y < MAX_SYSTEMS)
- XP {
- XP move(display_delta_y++ + FIRSTSYS_Y,0);
- XP**************
- XP*** 918,924
- XP }
- XP
- XP dir_close(stat_dp);
- XP! move(LINES - 4,0);
- XP refresh();
- XP
- XP #if defined(M_UNIX)
- XP--- 921,927 -----
- XP }
- XP
- XP dir_close(stat_dp);
- XP! move(LINES - 2,0);
- XP refresh();
- XP
- XP #if defined(M_UNIX)
- XDIFF_EOF
- Xexit 0
- SHAR_EOF
- chmod 0755 PATCH.2 || echo "restore of PATCH.2 fails"
- exit 0
-
-
-