X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fgetpass.c;h=3fd4528ea90fc525c624a7866912303e25e136a8;hp=865a6c93b0abf6f7b4b2833660c5dc34cf00053e;hb=e1b2a81e2b5f77605973a47734a895cd3e83b73c;hpb=a485ed478abbd599d8c9aab48934e7a26733ecb1 diff --git a/sbr/getpass.c b/sbr/getpass.c index 865a6c9..3fd4528 100644 --- a/sbr/getpass.c +++ b/sbr/getpass.c @@ -1,44 +1,46 @@ /* - * Portions of this code are Copyright (c) 1988, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ +** Portions of this code are Copyright (c) 1988, 1993 +** The Regents of the University of California. All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions +** are met: +** 1. Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** 3. All advertising materials mentioning features or use of this software +** must display the following acknowledgement: +** This product includes software developed by the University of +** California, Berkeley and its contributors. +** 4. Neither the name of the University nor the names of its contributors +** may be used to endorse or promote products derived from this software +** without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +** SUCH DAMAGE. +*/ #include #include #include /* for isatty() */ #include "h/mh.h" /* for adios() */ -/* We don't use MAX_PASS here because the maximum password length on a remote - POP daemon will have nothing to do with the length on our OS. 256 is - arbitrary but hopefully big enough to accomodate everyone. */ +/* +** We don't use MAX_PASS here because the maximum password length on a remote +** POP daemon will have nothing to do with the length on our OS. 256 is +** arbitrary but hopefully big enough to accomodate everyone. +*/ #define MAX_PASSWORD_LEN 256 #ifndef TCSANOW @@ -55,20 +57,21 @@ nmh_getpass(const char *prompt) static char buf[MAX_PASSWORD_LEN + 1]; int istty = isatty(fileno(stdin)); - /* Find if stdin is connect to a terminal. If so, read directly from - * the terminal, and turn off echo. Otherwise read from stdin. - */ + /* + ** Find if stdin is connect to a terminal. If so, read directly from + ** the terminal, and turn off echo. Otherwise read from stdin. + */ if (!istty || !(fout = fin = fopen("/dev/tty", "w+"))) { fout = stderr; fin = stdin; } else { /* Reading directly from terminal here */ - (void)tcgetattr(fileno(fin), &oterm); + tcgetattr(fileno(fin), &oterm); term = oterm; /* Save original info */ term.c_lflag &= ~ECHO; - (void)fputs(prompt, fout); + fputs(prompt, fout); rewind(fout); /* implied flush */ - (void)tcsetattr(fileno(fin), TCSANOW, &term); + tcsetattr(fileno(fin), TCSANOW, &term); } for (p = buf; (ch = getc(fin)) != EOF && ch != '\n' && @@ -77,10 +80,10 @@ nmh_getpass(const char *prompt) *p = '\0'; if (istty) { - (void)tcsetattr(fileno(fin), TCSANOW, &oterm); + tcsetattr(fileno(fin), TCSANOW, &oterm); rewind(fout); - (void)fputc('\n', fout); - (void)fclose(fin); + fputc('\n', fout); + fclose(fin); } return buf; }