Commit fb7a6e34 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

added --random-file and --egd-file to the command line client

parent cc99e3f7
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -8,6 +8,13 @@


Daniel (12 March 2001)
- Added CURLOPT_RANDOM_FILE and CURLOPT_EGDSOCKET to libcurl for seeding the
  SSL random engine. The random seeding support was also brought to the curl
  client with the new options --random-file <file> and --egd-file <file>. I
  need some people to really test this to know they work as supposed. Remember
  that libcurl now informs (if verbose is on) if the random seed is considered
  weak (HTTPS connections).

- Made the chunked transfer-encoding engine detected bad formatted data length
  and return error if so (we can't possibly extract sensible data if this is
  the case). Added a test case that detects this. Number 36. Now there are 60
+44 −22
Original line number Diff line number Diff line
@@ -295,7 +295,9 @@ static void help(void)
       " -3/--sslv3         Force usage of SSLv3 (H)");
  puts(" -#/--progress-bar  Display transfer progress as a progress bar\n"
       "    --crlf          Convert LF to CRLF in upload. Useful for MVS (OS/390)\n"
       "    --stderr <file> Where to redirect stderr. - means stdout.");
       "    --stderr <file> Where to redirect stderr. - means stdout.\n"
       "    --random-file <file> File to use for reading random data from (SSL)\n"
       "    --egd-file <file> EGD socket path for random data (SSL)");
}

struct LongShort {
@@ -305,6 +307,8 @@ struct LongShort {
};

struct Configurable {
  char *random_file;
  char *egd_file;
  char *useragent;
  char *cookie;
  bool use_resume;
@@ -524,6 +528,8 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
    {"7", "interface",   TRUE},
    {"6", "krb4",        TRUE},
    {"5", "url",         TRUE},
    {"5a", "random-file", TRUE},
    {"5b", "egd-file",   TRUE},

    {"2", "sslv2",       FALSE},
    {"3", "sslv3",       FALSE},
@@ -673,7 +679,14 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
      GetStr(&config->krb4level, nextarg);
      break;
    case '5':
      /* the URL! */
      switch(subletter) {
      case 'a': /* random-file */
        GetStr(&config->random_file, nextarg);
        break;
      case 'b': /* egd-file */
        GetStr(&config->egd_file, nextarg);
        break;
      default: /* the URL! */
        {
          struct getout *url;
          if(config->url_get || (config->url_get=config->url_list)) {
@@ -698,6 +711,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
            url->flags |= GETOUT_URL;
          }
        }
      }
      break;
    case '#': /* added 19990617 larsa */
      config->progressmode ^= CURL_PROGRESS_BAR;
@@ -1367,6 +1381,10 @@ void progressbarinit(struct ProgressData *bar)

void free_config_fields(struct Configurable *config)
{
  if(config->random_file)
    free(config->random_file);
  if(config->egd_file)
    free(config->egd_file);
  if(config->userpwd)
    free(config->userpwd);
  if(config->postfields)
@@ -1820,6 +1838,10 @@ operate(struct Configurable *config, int argc, char *argv[])
      /* new in libcurl 7.6.2: */
      curl_easy_setopt(curl, CURLOPT_TELNETOPTIONS, config->telnet_options);

      /* new in libcurl 7.7: */
      curl_easy_setopt(curl, CURLOPT_RANDOM_FILE, config->random_file);
      curl_easy_setopt(curl, CURLOPT_EGDSOCKET, config->egd_file);
      
      res = curl_easy_perform(curl);
        
      if(config->writeout) {