Add a new getty/gettytab capability to generate an initial message dynamically.
This modification adds a new gettytab(5) option (iM) to specify a program to run that will generate the initial (banner) message that is displayed before the login prompt. Such a capability is useful when dynamic information is needed in the banner message that cannot be supplied by the set of % substitution sequences available in the "im" option. Reviewed by: vangyzen, wblock, manpages Approved by: vangyzen (mentor) MFC after: 1 week Relnotes: yes Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D12108
This commit is contained in:
parent
f526d86d75
commit
ff48be37b5
@ -28,7 +28,7 @@
|
|||||||
.\" from: @(#)gettytab.5 8.4 (Berkeley) 4/19/94
|
.\" from: @(#)gettytab.5 8.4 (Berkeley) 4/19/94
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\" "
|
.\" "
|
||||||
.Dd February 2, 2017
|
.Dd August 23, 2017
|
||||||
.Dt GETTYTAB 5
|
.Dt GETTYTAB 5
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -130,6 +130,8 @@ hangup line on last close
|
|||||||
.It "ig bool false ignore garbage characters in login name"
|
.It "ig bool false ignore garbage characters in login name"
|
||||||
.It "im str" Ta Dv NULL
|
.It "im str" Ta Dv NULL
|
||||||
.Ta No "initial (banner) message"
|
.Ta No "initial (banner) message"
|
||||||
|
.It "iM str" Ta Dv NULL
|
||||||
|
.Ta No "execute named file to generate initial (banner) message"
|
||||||
.It "in str" Ta So Li ^C
|
.It "in str" Ta So Li ^C
|
||||||
.Sc Ta No "interrupt character"
|
.Sc Ta No "interrupt character"
|
||||||
.It "is num unused input speed"
|
.It "is num unused input speed"
|
||||||
@ -146,7 +148,7 @@ hangup line on last close
|
|||||||
.It "mb bool false do flow control based on carrier"
|
.It "mb bool false do flow control based on carrier"
|
||||||
.It "nc bool false terminal does not supply carrier (set clocal)"
|
.It "nc bool false terminal does not supply carrier (set clocal)"
|
||||||
.It "nl bool false terminal has (or might have) a newline character"
|
.It "nl bool false terminal has (or might have) a newline character"
|
||||||
.It "np bool false terminal uses no parity (i.e. 8-bit characters)"
|
.It "np bool false terminal uses no parity (i.e., 8-bit characters)"
|
||||||
.It "nx str default next table (for auto speed selection)"
|
.It "nx str default next table (for auto speed selection)"
|
||||||
.It "o0 num unused tty output flags to write messages"
|
.It "o0 num unused tty output flags to write messages"
|
||||||
.It "o1 num unused tty output flags to read login name"
|
.It "o1 num unused tty output flags to read login name"
|
||||||
|
@ -88,6 +88,7 @@ struct gettyflags {
|
|||||||
#define AC gettystrs[28].value
|
#define AC gettystrs[28].value
|
||||||
#define AL gettystrs[29].value
|
#define AL gettystrs[29].value
|
||||||
#define DF gettystrs[30].value
|
#define DF gettystrs[30].value
|
||||||
|
#define IMP gettystrs[31].value
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Numeric definitions.
|
* Numeric definitions.
|
||||||
|
@ -82,6 +82,7 @@ struct gettystrs gettystrs[] = {
|
|||||||
{ "ac" }, /* modem answer-chat */
|
{ "ac" }, /* modem answer-chat */
|
||||||
{ "al" }, /* user to auto-login */
|
{ "al" }, /* user to auto-login */
|
||||||
{ "df", datefmt}, /* format for strftime() */
|
{ "df", datefmt}, /* format for strftime() */
|
||||||
|
{ "iM" }, /* initial message program */
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -324,6 +324,8 @@ main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
first_time = 0;
|
first_time = 0;
|
||||||
|
|
||||||
|
if (IMP && *IMP && !(PL && PP))
|
||||||
|
system(IMP);
|
||||||
if (IM && *IM && !(PL && PP))
|
if (IM && *IM && !(PL && PP))
|
||||||
putf(IM);
|
putf(IM);
|
||||||
if (setjmp(timeout)) {
|
if (setjmp(timeout)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user