]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/netrc.cc
do not hang on piped input in PipedFileFdPrivate
[apt.git] / apt-pkg / contrib / netrc.cc
index b3d30fd4af5466ef3732099b87061fb5f3d01019..8840de72cb581c346bc251c0e2369c2af7b5a4ce 100644 (file)
 
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/strutl.h>
-#include <apt-pkg/error.h>
-#include <apt-pkg/fileutl.h>
 
 #include <iostream>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <stddef.h>
 #include <pwd.h>
 
 #include "netrc.h"
@@ -50,14 +49,10 @@ static int parsenetrc_string (char *host, std::string &login, std::string &passw
   FILE *file;
   int retcode = 1;
   int specific_login = (login.empty() == false);
-  char *home = NULL;
   bool netrc_alloc = false;
 
-  int state_our_login = false;  /* With specific_login,
-                                   found *our* login name */
-
   if (!netrcfile) {
-    home = getenv ("HOME"); /* portable environment reader */
+    char const * home = getenv ("HOME"); /* portable environment reader */
 
     if (!home) {
       struct passwd *pw;
@@ -86,6 +81,8 @@ static int parsenetrc_string (char *host, std::string &login, std::string &passw
     int 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 */
 
     while (!done && getline(&netrcbuffer, &netrcbuffer_size, file) != -1) {
       tok = strtok_r (netrcbuffer, " \t\n", &tok_buf);
@@ -119,7 +116,7 @@ static int parsenetrc_string (char *host, std::string &login, std::string &passw
             state = NOTHING;
           break;
         case HOSTVALID:
-          /* we are now parsing sub-keywords concerning "our" host */
+          /* we are now parsing sub-keywords regarding "our" host */
           if (state_login) {
             if (specific_login)
               state_our_login = !strcasecmp (login.c_str(), tok);
@@ -188,7 +185,7 @@ void maybe_add_auth (URI &Uri, string NetRCFile)
       // if host did not work, try Host+Path next, this will trigger
       // a lookup uri.startswith(host) in the netrc file parser (because
       // of the "/"
-      char *hostpath = strdup(string(Uri.Host+Uri.Path).c_str());
+      char *hostpath = strdup((Uri.Host + Uri.Path).c_str());
       if (hostpath && parsenetrc_string(hostpath, login, password, netrcfile) == 0)
       {
         if (_config->FindB("Debug::Acquire::netrc", false) == true)