* src/login.c, man/login.1.xml: the username is not an optional
parameter of -f. Fix the getopt optstring, remove the parsing of username in the -f processing block, and remove unnecessary checks (username cannot be parsed twice anymore), better documentation of the synopsis.
This commit is contained in:
parent
c8d2175981
commit
d400af51fa
@ -10,6 +10,11 @@
|
|||||||
sections.
|
sections.
|
||||||
* src/login.c: Erase the username later since it it used for the
|
* src/login.c: Erase the username later since it it used for the
|
||||||
fake password check (in case of empty password).
|
fake password check (in case of empty password).
|
||||||
|
* src/login.c, man/login.1.xml: the username is not an optional
|
||||||
|
parameter of -f. Fix the getopt optstring, remove the parsing of
|
||||||
|
username in the -f processing block, and remove unnecessary checks
|
||||||
|
(username cannot be parsed twice anymore), better documentation of
|
||||||
|
the synopsis.
|
||||||
|
|
||||||
2008-09-20 Nicolas François <nicolas.francois@centraliens.net>
|
2008-09-20 Nicolas François <nicolas.francois@centraliens.net>
|
||||||
|
|
||||||
|
@ -50,20 +50,22 @@
|
|||||||
<refsynopsisdiv id='synopsis'>
|
<refsynopsisdiv id='synopsis'>
|
||||||
<cmdsynopsis>
|
<cmdsynopsis>
|
||||||
<command>login</command>
|
<command>login</command>
|
||||||
<arg choice='opt'>-p </arg>
|
<arg choice='opt'>-p</arg>
|
||||||
|
<arg choice='opt'>-h <replaceable>host</replaceable></arg>
|
||||||
<arg choice='opt'>
|
<arg choice='opt'>
|
||||||
<replaceable>username</replaceable></arg>
|
<replaceable>username</replaceable></arg>
|
||||||
<arg choice='opt' rep='repeat'> <replaceable>ENV=VAR</replaceable></arg>
|
<arg choice='opt' rep='repeat'> <replaceable>ENV=VAR</replaceable></arg>
|
||||||
</cmdsynopsis>
|
</cmdsynopsis>
|
||||||
<cmdsynopsis>
|
<cmdsynopsis>
|
||||||
<command>login</command>
|
<command>login</command>
|
||||||
<arg choice='opt'>-p </arg>
|
<arg choice='opt'>-p</arg>
|
||||||
<arg choice='opt'>-h <replaceable>host</replaceable></arg>
|
<arg choice='opt'>-h <replaceable>host</replaceable></arg>
|
||||||
<arg choice='opt'>-f <replaceable>username</replaceable></arg>
|
<arg choice='plain'>-f</arg>
|
||||||
|
<arg choice='plain'><replaceable>username</replaceable></arg>
|
||||||
</cmdsynopsis>
|
</cmdsynopsis>
|
||||||
<cmdsynopsis>
|
<cmdsynopsis>
|
||||||
<command>login</command>
|
<command>login</command>
|
||||||
<arg choice='opt'>-p </arg>
|
<arg choice='opt'>-p</arg>
|
||||||
<arg choice='plain'>-r <replaceable>host</replaceable></arg>
|
<arg choice='plain'>-r <replaceable>host</replaceable></arg>
|
||||||
</cmdsynopsis>
|
</cmdsynopsis>
|
||||||
</refsynopsisdiv>
|
</refsynopsisdiv>
|
||||||
@ -161,7 +163,12 @@
|
|||||||
<option>-f</option>
|
<option>-f</option>
|
||||||
</term>
|
</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Do not perform authentication, user is preauthenticated.
|
<para>
|
||||||
|
Do not perform authentication, user is preauthenticated.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Note: In that case, <replaceable>username</replaceable> is
|
||||||
|
mandatory.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
20
src/login.c
20
src/login.c
@ -265,27 +265,13 @@ static void process_flags (int argc, char *const *argv)
|
|||||||
/*
|
/*
|
||||||
* Process options.
|
* Process options.
|
||||||
*/
|
*/
|
||||||
while ((flag = getopt (argc, argv, "d:f::h:pr:")) != EOF) {
|
while ((flag = getopt (argc, argv, "d:fh:pr:")) != EOF) {
|
||||||
switch (flag) {
|
switch (flag) {
|
||||||
case 'd':
|
case 'd':
|
||||||
/* "-d device" ignored for compatibility */
|
/* "-d device" ignored for compatibility */
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
/*
|
|
||||||
* username must be a separate token
|
|
||||||
* (-f root, *not* -froot). --marekm
|
|
||||||
*
|
|
||||||
* if -f has an arg, use that, else use the
|
|
||||||
* normal user name passed after all options
|
|
||||||
* --benc
|
|
||||||
*/
|
|
||||||
if (optarg != NULL && optarg != argv[optind - 1]) {
|
|
||||||
usage ();
|
|
||||||
}
|
|
||||||
fflg = true;
|
fflg = true;
|
||||||
if (optarg) {
|
|
||||||
username = xstrdup (optarg);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
hflg = true;
|
hflg = true;
|
||||||
@ -330,10 +316,6 @@ static void process_flags (int argc, char *const *argv)
|
|||||||
* Get the user name.
|
* Get the user name.
|
||||||
*/
|
*/
|
||||||
if (optind < argc) {
|
if (optind < argc) {
|
||||||
if (rflg || (fflg && (NULL != username))) {
|
|
||||||
usage ();
|
|
||||||
}
|
|
||||||
|
|
||||||
username = xstrdup (argv[optind]);
|
username = xstrdup (argv[optind]);
|
||||||
strzero (argv[optind]);
|
strzero (argv[optind]);
|
||||||
++optind;
|
++optind;
|
||||||
|
Loading…
Reference in New Issue
Block a user