aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/curl/lib/netrc.c
diff options
context:
space:
mode:
authorNikita Slyusarev <nslus@yandex-team.com>2022-02-10 16:46:52 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:46:52 +0300
commitcd77cecfc03a3eaf87816af28a33067c4f0cdb59 (patch)
tree1308e0bae862d52e0020d881fe758080437fe389 /contrib/libs/curl/lib/netrc.c
parentcdae02d225fb5b3afbb28990e79a7ac6c9125327 (diff)
downloadydb-cd77cecfc03a3eaf87816af28a33067c4f0cdb59.tar.gz
Restoring authorship annotation for Nikita Slyusarev <nslus@yandex-team.com>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/curl/lib/netrc.c')
-rw-r--r--contrib/libs/curl/lib/netrc.c194
1 files changed, 97 insertions, 97 deletions
diff --git a/contrib/libs/curl/lib/netrc.c b/contrib/libs/curl/lib/netrc.c
index 13610bb070..f50b76a3ee 100644
--- a/contrib/libs/curl/lib/netrc.c
+++ b/contrib/libs/curl/lib/netrc.c
@@ -1,65 +1,65 @@
-/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
* are also available at https://curl.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ***************************************************************************/
-
-#include "curl_setup.h"
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+
+#include "curl_setup.h"
#ifndef CURL_DISABLE_NETRC
-
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-
-#include <curl/curl.h>
-#include "netrc.h"
+
+#ifdef HAVE_PWD_H
+#include <pwd.h>
+#endif
+
+#include <curl/curl.h>
+#include "netrc.h"
#include "strtok.h"
#include "strcase.h"
-
+
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
-#include "curl_memory.h"
-#include "memdebug.h"
-
-/* Get user and password from .netrc when given a machine name */
-
-enum host_lookup_state {
- NOTHING,
- HOSTFOUND, /* the 'machine' keyword was found */
- HOSTVALID /* this is "our" machine! */
-};
-
+#include "curl_memory.h"
+#include "memdebug.h"
+
+/* Get user and password from .netrc when given a machine name */
+
+enum host_lookup_state {
+ NOTHING,
+ HOSTFOUND, /* the 'machine' keyword was found */
+ HOSTVALID /* this is "our" machine! */
+};
+
#define NETRC_FILE_MISSING 1
#define NETRC_FAILED -1
#define NETRC_SUCCESS 0
-/*
+/*
* Returns zero on success.
- */
+ */
static int parsenetrc(const char *host,
char **loginp,
char **passwordp,
bool *login_changed,
bool *password_changed,
char *netrcfile)
-{
- FILE *file;
+{
+ FILE *file;
int retcode = NETRC_FILE_MISSING;
char *login = *loginp;
char *password = *passwordp;
@@ -67,64 +67,64 @@ static int parsenetrc(const char *host,
bool login_alloc = FALSE;
bool password_alloc = FALSE;
enum host_lookup_state state = NOTHING;
-
+
char state_login = 0; /* Found a login keyword */
char state_password = 0; /* Found a password keyword */
int state_our_login = FALSE; /* With specific_login, found *our* login
name */
-
+
DEBUGASSERT(netrcfile);
-
+
file = fopen(netrcfile, FOPEN_READTEXT);
- if(file) {
- char *tok;
- char *tok_buf;
+ if(file) {
+ char *tok;
+ char *tok_buf;
bool done = FALSE;
char netrcbuffer[4096];
- int netrcbuffsize = (int)sizeof(netrcbuffer);
-
- while(!done && fgets(netrcbuffer, netrcbuffsize, file)) {
+ int netrcbuffsize = (int)sizeof(netrcbuffer);
+
+ while(!done && fgets(netrcbuffer, netrcbuffsize, file)) {
tok = strtok_r(netrcbuffer, " \t\n", &tok_buf);
if(tok && *tok == '#')
/* treat an initial hash as a comment line */
continue;
while(tok) {
-
+
if((login && *login) && (password && *password)) {
done = TRUE;
- break;
- }
-
- switch(state) {
- case NOTHING:
+ break;
+ }
+
+ switch(state) {
+ case NOTHING:
if(strcasecompare("machine", tok)) {
- /* the next tok is the machine name, this is in itself the
- delimiter that starts the stuff entered for this machine,
- after this we need to search for 'login' and
- 'password'. */
+ /* the next tok is the machine name, this is in itself the
+ delimiter that starts the stuff entered for this machine,
+ after this we need to search for 'login' and
+ 'password'. */
state = HOSTFOUND;
- }
+ }
else if(strcasecompare("default", tok)) {
state = HOSTVALID;
retcode = NETRC_SUCCESS; /* we did find our host */
}
- break;
- case HOSTFOUND:
+ break;
+ case HOSTFOUND:
if(strcasecompare(host, tok)) {
- /* and yes, this is our host! */
+ /* and yes, this is our host! */
state = HOSTVALID;
retcode = NETRC_SUCCESS; /* we did find our host */
- }
- else
- /* not our host */
+ }
+ else
+ /* not our host */
state = NOTHING;
- break;
- case HOSTVALID:
- /* we are now parsing sub-keywords concerning "our" host */
- if(state_login) {
- if(specific_login) {
+ break;
+ case HOSTVALID:
+ /* we are now parsing sub-keywords concerning "our" host */
+ if(state_login) {
+ if(specific_login) {
state_our_login = strcasecompare(login, tok);
- }
+ }
else if(!login || strcmp(login, tok)) {
if(login_alloc) {
free(login);
@@ -136,10 +136,10 @@ static int parsenetrc(const char *host,
goto out;
}
login_alloc = TRUE;
- }
+ }
state_login = 0;
- }
- else if(state_password) {
+ }
+ else if(state_password) {
if((state_our_login || !specific_login)
&& (!password || strcmp(password, tok))) {
if(password_alloc) {
@@ -152,25 +152,25 @@ static int parsenetrc(const char *host,
goto out;
}
password_alloc = TRUE;
- }
+ }
state_password = 0;
- }
+ }
else if(strcasecompare("login", tok))
state_login = 1;
else if(strcasecompare("password", tok))
state_password = 1;
else if(strcasecompare("machine", tok)) {
- /* ok, there's machine here go => */
- state = HOSTFOUND;
- state_our_login = FALSE;
- }
- break;
- } /* switch (state) */
-
- tok = strtok_r(NULL, " \t\n", &tok_buf);
- } /* while(tok) */
- } /* while fgets() */
-
+ /* ok, there's machine here go => */
+ state = HOSTFOUND;
+ state_our_login = FALSE;
+ }
+ break;
+ } /* switch (state) */
+
+ tok = strtok_r(NULL, " \t\n", &tok_buf);
+ } /* while(tok) */
+ } /* while fgets() */
+
out:
if(!retcode) {
/* success */
@@ -195,11 +195,11 @@ static int parsenetrc(const char *host,
if(password_alloc)
free(password);
}
- fclose(file);
- }
-
- return retcode;
-}
+ fclose(file);
+ }
+
+ return retcode;
+}
/*
* @unittest: 1304