X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=textclient%2Fclient_passwords.c;h=522ec882564c674f0de8f0b18bbd74eac4e3b0d6;hb=HEAD;hp=2337736989a6ec591693d850f0e43b81c093cd34;hpb=2dfd5bee542a9d635e380097e63c307bd6c27d65;p=citadel.git diff --git a/textclient/client_passwords.c b/textclient/client_passwords.c index 233773698..21b0906c7 100644 --- a/textclient/client_passwords.c +++ b/textclient/client_passwords.c @@ -1,17 +1,8 @@ -/* - * Functions which allow the client to remember usernames and passwords for - * various sites. - * - * Copyright (c) 1987-2016 by the citadel.org team - * - * This program is open source software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ +// Functions which allow the client to remember usernames and passwords for various sites. +// +// Copyright (c) 1987-2023 by the citadel.org team +// +// This program is open source software. Use, duplication, or disclosure is subject to the GNU General Public License version 3. #include "textclient.h" @@ -21,20 +12,15 @@ void determine_pwfilename(char *pwfile, size_t n) { struct passwd *p; p = getpwuid(getuid()); - if (p == NULL) strcpy(pwfile, ""); + if (p == NULL) + strcpy(pwfile, ""); snprintf(pwfile, n, PWFILENAME, p->pw_dir); } -/* - * Check the password file for a host/port match; if found, stuff the user - * name and password into the user/pass buffers - */ -void get_stored_password( - char *host, - char *port, - char *username, - char *password) { +// Check the password file for a host/port match; if found, stuff the user +// name and password into the user/pass buffers +void get_stored_password(char *host, char *port, char *username, char *password) { char pwfile[PATH_MAX]; FILE *fp; @@ -46,10 +32,13 @@ void get_stored_password( strcpy(password, ""); determine_pwfilename(pwfile, sizeof pwfile); - if (IsEmptyStr(pwfile)) return; + if (IsEmptyStr(pwfile)) + return; fp = fopen(pwfile, "r"); - if (fp == NULL) return; + if (fp == NULL) { + return; + } while (fgets(buf64, sizeof buf64, fp) != NULL) { CtdlDecodeBase64(buf, buf64, sizeof(buf64)); extract_token(hostbuf, buf, 0, '|', sizeof hostbuf); @@ -68,14 +57,8 @@ void get_stored_password( } -/* - * Set (or clear) stored passwords. - */ -void set_stored_password( - char *host, - char *port, - char *username, - char *password) { +// Set (or clear) stored passwords. +void set_stored_password(char *host, char *port, char *username, char *password) { char pwfile[PATH_MAX]; FILE *fp, *oldfp; @@ -84,13 +67,18 @@ void set_stored_password( char hostbuf[256], portbuf[256], ubuf[256], pbuf[256]; determine_pwfilename(pwfile, sizeof pwfile); - if (IsEmptyStr(pwfile)) return; + if (IsEmptyStr(pwfile)) + return; oldfp = fopen(pwfile, "r"); - if (oldfp == NULL) oldfp = fopen("/dev/null", "r"); + if (oldfp == NULL) { + oldfp = fopen("/dev/null", "r"); + } unlink(pwfile); fp = fopen(pwfile, "w"); - if (fp == NULL) fp = fopen("/dev/null", "w"); + if (fp == NULL) { + fp = fopen("/dev/null", "w"); + } while (fgets(buf64, sizeof buf64, oldfp) != NULL) { CtdlDecodeBase64(buf, buf64, sizeof(buf64)); extract_token(hostbuf, buf, 0, '|', sizeof hostbuf); @@ -98,18 +86,15 @@ void set_stored_password( extract_token(ubuf, buf, 2, '|', sizeof ubuf); extract_token(pbuf, buf, 3, '|', sizeof pbuf); - if ( (strcasecmp(hostbuf, host)) - || (strcasecmp(portbuf, port)) ) { - snprintf(buf, sizeof buf, "%s|%s|%s|%s|", - hostbuf, portbuf, ubuf, pbuf); - CtdlEncodeBase64(buf64, buf, strlen(buf), 0); + if ((strcasecmp(hostbuf, host)) || (strcasecmp(portbuf, port))) { + snprintf(buf, sizeof buf, "%s|%s|%s|%s|", hostbuf, portbuf, ubuf, pbuf); + CtdlEncodeBase64(buf64, buf, strlen(buf), BASE64_NO_LINEBREAKS); fprintf(fp, "%s\n", buf64); } } if (!IsEmptyStr(username)) { - snprintf(buf, sizeof buf, "%s|%s|%s|%s|", - host, port, username, password); - CtdlEncodeBase64(buf64, buf, strlen(buf), 0); + snprintf(buf, sizeof buf, "%s|%s|%s|%s|", host, port, username, password); + CtdlEncodeBase64(buf64, buf, strlen(buf), BASE64_NO_LINEBREAKS); fprintf(fp, "%s\n", buf64); } fclose(oldfp); @@ -118,14 +103,8 @@ void set_stored_password( } -/* - * Set the password if the user wants to, clear it otherwise - */ -void offer_to_remember_password(CtdlIPC *ipc, - char *host, - char *port, - char *username, - char *password) { +// Set the password if the user wants to, clear it otherwise +void offer_to_remember_password(CtdlIPC * ipc, char *host, char *port, char *username, char *password) { if (rc_remember_passwords) { if (boolprompt("Remember username/password for this site", 0)) {