diff options
Diffstat (limited to 'apps/apps.c')
| -rw-r--r-- | apps/apps.c | 46 | 
1 files changed, 43 insertions, 3 deletions
| diff --git a/apps/apps.c b/apps/apps.c index b1dd97038f7d..9fdc3e0097c5 100644 --- a/apps/apps.c +++ b/apps/apps.c @@ -215,7 +215,8 @@ int args_from_file(char *file, int *argc, char **argv[])      if (arg != NULL)          OPENSSL_free(arg);      arg = (char **)OPENSSL_malloc(sizeof(char *) * (i * 2)); - +    if (arg == NULL) +        return 0;      *argv = arg;      num = 0;      p = buf; @@ -2374,6 +2375,8 @@ int args_verify(char ***pargs, int *pargc,          flags |= X509_V_FLAG_PARTIAL_CHAIN;      else if (!strcmp(arg, "-no_alt_chains"))          flags |= X509_V_FLAG_NO_ALT_CHAINS; +    else if (!strcmp(arg, "-allow_proxy_certs")) +        flags |= X509_V_FLAG_ALLOW_PROXY_CERTS;      else          return 0; @@ -3195,6 +3198,36 @@ int app_isdir(const char *name)  #endif  /* raw_read|write section */ +#if defined(__VMS) +# include "vms_term_sock.h" +static int stdin_sock = -1; + +static void close_stdin_sock(void) +{ +    TerminalSocket (TERM_SOCK_DELETE, &stdin_sock); +} + +int fileno_stdin(void) +{ +    if (stdin_sock == -1) { +        TerminalSocket(TERM_SOCK_CREATE, &stdin_sock); +        atexit(close_stdin_sock); +    } + +    return stdin_sock; +} +#else +int fileno_stdin(void) +{ +    return fileno(stdin); +} +#endif + +int fileno_stdout(void) +{ +    return fileno(stdout); +} +  #if defined(_WIN32) && defined(STD_INPUT_HANDLE)  int raw_read_stdin(void *buf, int siz)  { @@ -3204,10 +3237,17 @@ int raw_read_stdin(void *buf, int siz)      else          return (-1);  } +#elif defined(__VMS) +#include <sys/socket.h> + +int raw_read_stdin(void *buf, int siz) +{ +    return recv(fileno_stdin(), buf, siz, 0); +}  #else  int raw_read_stdin(void *buf, int siz)  { -    return read(fileno(stdin), buf, siz); +    return read(fileno_stdin(), buf, siz);  }  #endif @@ -3223,6 +3263,6 @@ int raw_write_stdout(const void *buf, int siz)  #else  int raw_write_stdout(const void *buf, int siz)  { -    return write(fileno(stdout), buf, siz); +    return write(fileno_stdout(), buf, siz);  }  #endif | 
