--- /dev/null
+--- getty_ps-2.0.7j/man/getty.1.hangup Sat Jun 10 13:28:58 2000
++++ getty_ps-2.0.7j/man/getty.1 Sat Jun 10 13:30:50 2000
+@@ -24,7 +24,9 @@
+ .B /etc/getty
+ [\-d
+ .I defaults_file]
+-[\-a] [\-h] [\-r
++[\-a] [\-h] [\-H
++.I hangupsecs]
++[\-r
+ .I delay]
+ [\-t
+ .I timeout]
+@@ -118,7 +120,12 @@
+ flag (or
+ .B HANGUP=NO
+ is specified in the defaults file), it will force a hangup on the line
+-by setting the speed to zero. Giving
++by setting the speed to zero. You can specify the amount of time
++to leave the line on-hook during a hangup by specifying the
++.B \-H
++flag followed by a number of seconds (or using
++.BI HANGUPSECS = hangupsecs
++in the defaults file). Giving
+ .B \-r
+ .I delay
+ on the command line (or using
+--- getty_ps-2.0.7j/main.c.hangup Sat Jun 10 13:23:59 2000
++++ getty_ps-2.0.7j/main.c Sat Jun 10 13:28:11 2000
+@@ -184,7 +184,7 @@
+ waitfor = (char *) NULL; /* no waitfor string */
+ Connect = (char *) NULL; /* no connect string */
+ defname = (char *) NULL; /* no defaults file */
+-
++ HangUpSecs = 2; /* # of seconds to hangup the line */
+ #ifdef ISSUE
+ issue = ISSUE; /* login banner */
+ #endif /* ISSUE */
+@@ -313,7 +313,7 @@
+ /* first, the command line
+ */
+
+- while((c = getopt(count, args, "RC:D:ac:d:hr:t:w:")) != EOF) {
++ while((c = getopt(count, args, "RC:D:ac:d:hr:t:w:H:")) != EOF) {
+ switch(c) {
+ #ifdef RBGETTY
+ case 'R':
+@@ -355,6 +355,9 @@
+ waitchar = TRUE;
+ waitfor = optarg;
+ break;
++ case 'H':
++ HangUpSecs = (unsigned) atoi(optarg);
++ break;
+ case '?':
+ exit_usage(2);
+ }
+@@ -432,6 +435,12 @@
+ NoHangUp = TRUE;
+ if((p = defvalue(def, "WAITCHAR")) && (strequal(p, "YES")))
+ waitchar = TRUE;
++ if((p = defvalue(def, "HANGUPSECS")))
++ HangUpSecs = (unsigned) atoi(p);
++ if (HangUpSecs < 2 || HangUpSecs > 600) {
++ logerr("Value for HANGUPSECS on %s should be between 2 and 600 secs", Device);
++ HangUpSecs = 2;
++ }
+ if((p = defvalue(def, "DELAY"))) delay = (unsigned) atoi(p);
+ if((p = defvalue(def, "TIMEOUT"))) TimeOut = atoi(p);
+ if((p = defvalue(def, "CONNECT"))) Connect = p;
+@@ -666,7 +675,7 @@
+ termio.c_cflag |= B0;
+ }
+ (void) ioctl(fd, TCSETSF, &termio);
+- if(! NoHangUp) sleep(2);
++ if(! NoHangUp) sleep(HangUpSecs);
+ gtab = gtabvalue(GtabId, G_FORCE);
+ settermio(&(gtab->itermio), INITIAL);
+ #ifndef GDB_FRIENDLY
+--- getty_ps-2.0.7j/extern.h.hangup Sat Jun 10 13:28:16 2000
++++ getty_ps-2.0.7j/extern.h Sat Jun 10 13:28:45 2000
+@@ -54,6 +54,7 @@
+ EXTERN char *SysName; /* nodename of system */
+ EXTERN int TimeOut; /* timeout value from command line */
+ EXTERN char *Version; /* value of VERSION */
++EXTERN int HangUpSecs; /* Number of seconds to hang up the line */
+
+ #ifdef WARNCASE
+ EXTERN boolean WarnCase; /* controls display of bad case message */