diff options
author | Nikita Slyusarev <nslus@yandex-team.com> | 2022-02-10 16:46:52 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:46:52 +0300 |
commit | cd77cecfc03a3eaf87816af28a33067c4f0cdb59 (patch) | |
tree | 1308e0bae862d52e0020d881fe758080437fe389 /contrib/libs/curl/lib/netrc.c | |
parent | cdae02d225fb5b3afbb28990e79a7ac6c9125327 (diff) | |
download | ydb-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.c | 194 |
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 |