From b50826727e77f2736fc2cf5b4a4f646ee0d67182 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Wed, 14 Sep 2016 20:54:30 +0200 Subject: [PATCH] Reformat to fit OpenSSL source code standards Reviewed-by: Andy Polyakov Reviewed-by: Rich Salz --- apps/s_client.c | 46 +-- apps/s_server.c | 69 ++-- apps/vms_term_sock.c | 882 +++++++++++++++++++++---------------------- apps/vms_term_sock.h | 10 +- 4 files changed, 493 insertions(+), 514 deletions(-) diff --git a/apps/s_client.c b/apps/s_client.c index 8b4e1f5ce8..c87451ff3f 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -748,10 +748,10 @@ int MAIN(int argc, char **argv) int crl_download = 0; STACK_OF(X509_CRL) *crls = NULL; int prot_opt = 0, no_prot_opt = 0; -#if defined(OPENSSL_SYS_VMS) +#if defined(OPENSSL_SYS_VMS) int stdin_sock; TerminalSocket(TERM_SOCK_CREATE, &stdin_sock); -#endif +#endif meth = SSLv23_client_method(); @@ -1569,12 +1569,12 @@ int MAIN(int argc, char **argv) SSL_set_connect_state(con); /* ok, lets connect */ -#if defined(OPENSSL_SYS_VMS) +#if defined(OPENSSL_SYS_VMS) if (stdin_sock > SSL_get_fd(con)) width = stdin_sock + 1; else width = SSL_get_fd(con) + 1; -#else +#else width = SSL_get_fd(con) + 1; #endif read_tty = 1; @@ -1927,7 +1927,7 @@ int MAIN(int argc, char **argv) goto shut; } } -#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_BEOS_R5) || defined(OPENSSL_SYS_VMS) +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_BEOS_R5) || defined(OPENSSL_SYS_VMS) /* Assume Windows/DOS/BeOS can always write */ else if (!ssl_pending && write_tty) #else @@ -2028,25 +2028,20 @@ int MAIN(int argc, char **argv) else if (_kbhit()) #elif defined(OPENSSL_SYS_BEOS_R5) else if (stdin_set) +#elif defined(OPENSSL_SYS_VMS) + else if (FD_ISSET(stdin_sock, &readfds)) #else - -#if defined(OPENSSL_SYS_VMS) - else if (FD_ISSET(stdin_sock,&readfds)) -#else - else if (FD_ISSET(fileno(stdin),&readfds)) -#endif - + else if (FD_ISSET(fileno(stdin), &readfds)) #endif { if (crlf) { int j, lf_num; +#if defined(OPENSSL_SYS_VMS) + i = recv(stdin_sock, cbuf, BUFSIZZ / 2, 0); +#else i = raw_read_stdin(cbuf, BUFSIZZ / 2); - #if defined(OPENSSL_SYS_VMS) - i = recv(stdin_sock, cbuf, BUFSIZZ/2, 0); - #else - i = raw_read_stdin(cbuf, BUFSIZZ/2); - #endif +#endif lf_num = 0; /* both loops are skipped when i <= 0 */ @@ -2062,14 +2057,13 @@ int MAIN(int argc, char **argv) } } assert(lf_num == 0); - } else - { - #if defined(OPENSSL_SYS_VMS) - i = recv(stdin_sock, cbuf, BUFSIZZ, 0); - #else - i = raw_read_stdin(cbuf, BUFSIZZ); - #endif - } + } else { +#if defined(OPENSSL_SYS_VMS) + i = recv(stdin_sock, cbuf, BUFSIZZ, 0); +#else + i = raw_read_stdin(cbuf, BUFSIZZ); +#endif + } if ((!c_ign_eof) && ((i <= 0) || (cbuf[0] == 'Q'))) { BIO_printf(bio_err, "DONE\n"); ret = 0; @@ -2163,7 +2157,7 @@ int MAIN(int argc, char **argv) BIO_free(bio_c_msg); bio_c_msg = NULL; } -#if defined(OPENSSL_SYS_VMS) +#if defined(OPENSSL_SYS_VMS) TerminalSocket(TERM_SOCK_DELETE, &stdin_sock); #endif apps_shutdown(); diff --git a/apps/s_server.c b/apps/s_server.c index f0a94d61e1..b641c0f73b 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -2192,9 +2192,9 @@ static int sv_body(char *hostname, int s, int stype, unsigned char *context) #else struct timeval *timeoutp; #endif -#if defined(OPENSSL_SYS_VMS) - int stdin_sock; - TerminalSocket (TERM_SOCK_CREATE, &stdin_sock); +#if defined(OPENSSL_SYS_VMS) + int stdin_sock; + TerminalSocket (TERM_SOCK_CREATE, &stdin_sock); #endif if ((buf = OPENSSL_malloc(bufsize)) == NULL) { @@ -2317,13 +2317,13 @@ static int sv_body(char *hostname, int s, int stype, unsigned char *context) #endif -#if defined(OPENSSL_SYS_VMS) - if (stdin_sock > s) - width = stdin_sock + 1; - else - width=s+1; -#else - width=s+1; +#if defined(OPENSSL_SYS_VMS) + if (stdin_sock > s) + width = stdin_sock + 1; + else + width = s + 1; +#else + width = s + 1; #endif for (;;) { int read_from_terminal; @@ -2335,11 +2335,11 @@ static int sv_body(char *hostname, int s, int stype, unsigned char *context) if (!read_from_sslcon) { FD_ZERO(&readfds); #if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_NETWARE) && !defined(OPENSSL_SYS_BEOS_R5) - # if defined(OPENSSL_SYS_VMS) - openssl_fdset(stdin_sock,&readfds); - # else - openssl_fdset(stdin),&readfds); - #endif +# if defined(OPENSSL_SYS_VMS) + openssl_fdset(stdin_sock, &readfds); +# else + openssl_fdset(fileno(stdin), &readfds); +# endif #endif openssl_fdset(s, &readfds); /* @@ -2390,11 +2390,11 @@ static int sv_body(char *hostname, int s, int stype, unsigned char *context) if (i <= 0) continue; -#if defined(OPENSSL_SYS_VMS) - if (FD_ISSET(stdin_sock,&readfds)) -#else - if (FD_ISSET(fileno(stdin),&readfds)) -#endif +# if defined(OPENSSL_SYS_VMS) + if (FD_ISSET(stdin_sock, &readfds)) +# else + if (FD_ISSET(fileno(stdin), &readfds)) +# endif read_from_terminal = 1; #endif if (FD_ISSET(s, &readfds)) @@ -2404,12 +2404,12 @@ static int sv_body(char *hostname, int s, int stype, unsigned char *context) if (s_crlf) { int j, lf_num; - #if defined(OPENSSL_SYS_VMS) - i=recv(stdin_sock, buf, bufsize/2, 0); - #else - i = raw_read_stdin(buf, bufsize / 2) - #endif - lf_num = 0; +#if defined(OPENSSL_SYS_VMS) + i=recv(stdin_sock, buf, bufsize / 2, 0); +#else + i = raw_read_stdin(buf, bufsize / 2); +#endif + lf_num = 0; /* both loops are skipped when i <= 0 */ for (j = 0; j < i; j++) if (buf[j] == '\n') @@ -2423,12 +2423,13 @@ static int sv_body(char *hostname, int s, int stype, unsigned char *context) } } assert(lf_num == 0); - } else -#if defined(OPENSSL_SYS_VMS) - i=recv(stdin_sock,buf,bufsize, 0); + } else { +#if defined(OPENSSL_SYS_VMS) + i = recv(stdin_sock, buf, bufsize, 0); #else - i = raw_read_stdin(buf, bufsize); -#endif + i = raw_read_stdin(buf, bufsize); +#endif + } if (!s_quiet && !s_brief) { if ((i <= 0) || (buf[0] == 'Q')) { BIO_printf(bio_s_out, "DONE\n"); @@ -2509,7 +2510,7 @@ static int sv_body(char *hostname, int s, int stype, unsigned char *context) srp_callback_parm.user = SRP_VBASE_get1_by_user(srp_callback_parm.vb, srp_callback_parm.login); - if (srp_callback_parm.user) + if (srp_callback_parm.user) BIO_printf(bio_s_out, "LOOKUP done %s\n", srp_callback_parm.user->info); else @@ -2618,8 +2619,8 @@ static int sv_body(char *hostname, int s, int stype, unsigned char *context) } if (ret >= 0) BIO_printf(bio_s_out, "ACCEPT\n"); -#if defined(OPENSSL_SYS_VMS) - TerminalSocket (TERM_SOCK_DELETE, &stdin_sock); +#if defined(OPENSSL_SYS_VMS) + TerminalSocket (TERM_SOCK_DELETE, &stdin_sock); #endif return (ret); } diff --git a/apps/vms_term_sock.c b/apps/vms_term_sock.c index 9d06778cc2..a7d87ff361 100755 --- a/apps/vms_term_sock.c +++ b/apps/vms_term_sock.c @@ -7,39 +7,39 @@ * https://www.openssl.org/source/license.html */ -#ifdef __VMS -#define OPENSSL_SYS_VMS -#pragma message disable DOLLARID +#ifdef __VMS +# define OPENSSL_SYS_VMS +# pragma message disable DOLLARID -#include +# include -#if !defined(_POSIX_C_SOURCE) && defined(OPENSSL_SYS_VMS) +# if !defined(_POSIX_C_SOURCE) && defined(OPENSSL_SYS_VMS) /* * On VMS, you need to define this to get the declaration of fileno(). The * value 2 is to make sure no function defined in POSIX-2 is left undefined. */ -# define _POSIX_C_SOURCE 2 -#endif - -#include - -#undef _POSIX_C_SOURCE - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef __alpha -#include -#else -typedef struct _iosb { /* Copied from IOSBDEF.H for Alpha */ -#pragma __nomember_alignment +# define _POSIX_C_SOURCE 2 +# endif + +# include + +# undef _POSIX_C_SOURCE + +# include +# include +# include +# include +# include +# include +# include +# include +# include +# ifdef __alpha +# include +# else +typedef struct _iosb { /* Copied from IOSBDEF.H for Alpha */ +# pragma __nomember_alignment __union { __struct { unsigned short int iosb$w_status; /* Final I/O status */ @@ -49,52 +49,52 @@ typedef struct _iosb { /* Copied from IOSBDEF.H for Alpha */ __union { unsigned int iosb$l_dev_depend; /* 32-bit device dependent info */ unsigned int iosb$l_pid; /* 32-bit pid */ - } iosb$r_l; - } iosb$r_bcnt_16; + } iosb$r_l; + } iosb$r_bcnt_16; __struct { /* 32-bit byte count variant */ unsigned int iosb$l_bcnt; /* 32-bit byte count (unaligned) */ unsigned short int iosb$w_dev_depend_high; /* 16-bit device dependent info */ - } iosb$r_bcnt_32; - } iosb$r_devdepend; - } iosb$r_io_64; + } iosb$r_bcnt_32; + } iosb$r_devdepend; + } iosb$r_io_64; __struct { __union { unsigned int iosb$l_getxxi_status; /* Final GETxxI status */ unsigned int iosb$l_reg_status; /* Final $Registry status */ - } iosb$r_l_status; + } iosb$r_l_status; unsigned int iosb$l_reserved; /* Reserved field */ - } iosb$r_get_64; - } iosb$r_io_get; - } IOSB; - -#if !defined(__VAXC) -#define iosb$w_status iosb$r_io_get.iosb$r_io_64.iosb$w_status -#define iosb$w_bcnt iosb$r_io_get.iosb$r_io_64.iosb$r_devdepend.iosb$r_bcnt_16.iosb$w_bcnt -#define iosb$r_l iosb$r_io_get.iosb$r_io_64.iosb$r_devdepend.iosb$r_bcnt_16.iosb$r_l -#define iosb$l_dev_depend iosb$r_l.iosb$l_dev_depend -#define iosb$l_pid iosb$r_l.iosb$l_pid -#define iosb$l_bcnt iosb$r_io_get.iosb$r_io_64.iosb$r_devdepend.iosb$r_bcnt_32.iosb$l_bcnt -#define iosb$w_dev_depend_high iosb$r_io_get.iosb$r_io_64.iosb$r_devdepend.iosb$r_bcnt_32.iosb$w_dev_depend_high -#define iosb$l_getxxi_status iosb$r_io_get.iosb$r_get_64.iosb$r_l_status.iosb$l_getxxi_status -#define iosb$l_reg_status iosb$r_io_get.iosb$r_get_64.iosb$r_l_status.iosb$l_reg_status -#endif /* #if !defined(__VAXC) */ - -#endif /* End of IOSBDEF */ - -#include -#include -#include -#include -#include -#include - -#include "vms_term_sock.h" - -#ifdef __alpha + } iosb$r_get_64; + } iosb$r_io_get; +} IOSB; + +# if !defined(__VAXC) +# define iosb$w_status iosb$r_io_get.iosb$r_io_64.iosb$w_status +# define iosb$w_bcnt iosb$r_io_get.iosb$r_io_64.iosb$r_devdepend.iosb$r_bcnt_16.iosb$w_bcnt +# define iosb$r_l iosb$r_io_get.iosb$r_io_64.iosb$r_devdepend.iosb$r_bcnt_16.iosb$r_l +# define iosb$l_dev_depend iosb$r_l.iosb$l_dev_depend +# define iosb$l_pid iosb$r_l.iosb$l_pid +# define iosb$l_bcnt iosb$r_io_get.iosb$r_io_64.iosb$r_devdepend.iosb$r_bcnt_32.iosb$l_bcnt +# define iosb$w_dev_depend_high iosb$r_io_get.iosb$r_io_64.iosb$r_devdepend.iosb$r_bcnt_32.iosb$w_dev_depend_high +# define iosb$l_getxxi_status iosb$r_io_get.iosb$r_get_64.iosb$r_l_status.iosb$l_getxxi_status +# define iosb$l_reg_status iosb$r_io_get.iosb$r_get_64.iosb$r_l_status.iosb$l_reg_status +# endif /* #if !defined(__VAXC) */ + +# endif /* End of IOSBDEF */ + +# include +# include +# include +# include +# include +# include + +# include "vms_term_sock.h" + +# ifdef __alpha static struct _iosb TerminalDeviceIosb; -#else +# else IOSB TerminalDeviceIosb; -#endif +# endif static char TerminalDeviceBuff[255 + 2]; static int TerminalSocketPair[2] = {0, 0}; @@ -108,7 +108,7 @@ static void LogMessage (char *, ...); /* ** Socket Pair Timeout Value (must be 0-59 seconds) */ -#define SOCKET_PAIR_TIMEOUT_VALUE 20 +# define SOCKET_PAIR_TIMEOUT_VALUE 20 /* ** Socket Pair Timeout Block which is passed to timeout AST @@ -116,391 +116,372 @@ static void LogMessage (char *, ...); typedef struct _SocketPairTimeoutBlock { unsigned short SockChan1; unsigned short SockChan2; - } SPTB; +} SPTB; -#ifdef TERM_SOCK_TEST +# ifdef TERM_SOCK_TEST /*----------------------------------------------------------------------------*/ /* */ /*----------------------------------------------------------------------------*/ int main (int argc, char *argv[], char *envp[]) { -char TermBuff[80]; -int TermSock, - status, - len; - -LogMessage ("Enter 'q' or 'Q' to quit ..."); -while (strcasecmp (TermBuff, "Q")) - { - /* - ** Create the terminal socket - */ - status = TerminalSocket (TERM_SOCK_CREATE, &TermSock); - if (status != TERM_SOCK_SUCCESS) - exit (1); - - /* - ** Process the terminal input - */ - LogMessage ("Waiting on terminal I/O ...\n"); - len = recv (TermSock, TermBuff, sizeof (TermBuff), 0) ; - TermBuff[len] = '\0'; - LogMessage ("Received terminal I/O [%s]", TermBuff); - - /* - ** Delete the terminal socket - */ - status = TerminalSocket (TERM_SOCK_DELETE, &TermSock); - if (status != TERM_SOCK_SUCCESS) - exit (1); + char TermBuff[80]; + int TermSock, + status, + len; + + LogMessage ("Enter 'q' or 'Q' to quit ..."); + while (strcasecmp (TermBuff, "Q")) { + /* + ** Create the terminal socket + */ + status = TerminalSocket (TERM_SOCK_CREATE, &TermSock); + if (status != TERM_SOCK_SUCCESS) + exit (1); + + /* + ** Process the terminal input + */ + LogMessage ("Waiting on terminal I/O ...\n"); + len = recv (TermSock, TermBuff, sizeof (TermBuff), 0) ; + TermBuff[len] = '\0'; + LogMessage ("Received terminal I/O [%s]", TermBuff); + + /* + ** Delete the terminal socket + */ + status = TerminalSocket (TERM_SOCK_DELETE, &TermSock); + if (status != TERM_SOCK_SUCCESS) + exit (1); } -return 1; + return 1; } -#endif +# endif /*----------------------------------------------------------------------------*/ /* */ /*----------------------------------------------------------------------------*/ int TerminalSocket (int FunctionCode, int *ReturnSocket) { -int status; -$DESCRIPTOR (TerminalDeviceDesc, "SYS$COMMAND"); + int status; + $DESCRIPTOR (TerminalDeviceDesc, "SYS$COMMAND"); -/* -** Process the requested function code -*/ -switch (FunctionCode) - { - case TERM_SOCK_CREATE: - /* - ** Create a socket pair - */ - status = CreateSocketPair (AF_INET, SOCK_STREAM, 0, TerminalSocketPair); - if (status == -1) - { - LogMessage ("TerminalSocket: CreateSocketPair () - %08X", status); - if (TerminalSocketPair[0]) - close (TerminalSocketPair[0]); - if (TerminalSocketPair[1]) - close (TerminalSocketPair[1]); - return (TERM_SOCK_FAILURE); - } - - /* - ** Assign a channel to the terminal device - */ - status = sys$assign (&TerminalDeviceDesc, - &TerminalDeviceChan, - 0, 0, 0); - if (! (status & 1)) - { - LogMessage ("TerminalSocket: SYS$ASSIGN () - %08X", status); - close (TerminalSocketPair[0]); - close (TerminalSocketPair[1]); - return (TERM_SOCK_FAILURE); - } - - /* - ** Queue an async IO to the terminal device - */ - status = sys$qio (EFN$C_ENF, - TerminalDeviceChan, - IO$_READVBLK, - &TerminalDeviceIosb, - TerminalDeviceAst, - 0, - TerminalDeviceBuff, - sizeof (TerminalDeviceBuff) - 2, - 0, 0, 0, 0); - if (! (status & 1)) - { - LogMessage ("TerminalSocket: SYS$QIO () - %08X", status); - close (TerminalSocketPair[0]); - close (TerminalSocketPair[1]); - return (TERM_SOCK_FAILURE); - } - - /* - ** Return the input side of the socket pair - */ - *ReturnSocket = TerminalSocketPair[1]; + /* + ** Process the requested function code + */ + switch (FunctionCode) { + case TERM_SOCK_CREATE: + /* + ** Create a socket pair + */ + status = CreateSocketPair (AF_INET, SOCK_STREAM, 0, TerminalSocketPair); + if (status == -1) { + LogMessage ("TerminalSocket: CreateSocketPair () - %08X", status); + if (TerminalSocketPair[0]) + close (TerminalSocketPair[0]); + if (TerminalSocketPair[1]) + close (TerminalSocketPair[1]); + return (TERM_SOCK_FAILURE); + } + + /* + ** Assign a channel to the terminal device + */ + status = sys$assign (&TerminalDeviceDesc, + &TerminalDeviceChan, + 0, 0, 0); + if (! (status & 1)) { + LogMessage ("TerminalSocket: SYS$ASSIGN () - %08X", status); + close (TerminalSocketPair[0]); + close (TerminalSocketPair[1]); + return (TERM_SOCK_FAILURE); + } + + /* + ** Queue an async IO to the terminal device + */ + status = sys$qio (EFN$C_ENF, + TerminalDeviceChan, + IO$_READVBLK, + &TerminalDeviceIosb, + TerminalDeviceAst, + 0, + TerminalDeviceBuff, + sizeof (TerminalDeviceBuff) - 2, + 0, 0, 0, 0); + if (! (status & 1)) { + LogMessage ("TerminalSocket: SYS$QIO () - %08X", status); + close (TerminalSocketPair[0]); + close (TerminalSocketPair[1]); + return (TERM_SOCK_FAILURE); + } + + /* + ** Return the input side of the socket pair + */ + *ReturnSocket = TerminalSocketPair[1]; break; - case TERM_SOCK_DELETE: - /* - ** Cancel any pending IO on the terminal channel - */ - status = sys$cancel (TerminalDeviceChan); - if (! (status & 1)) - { - LogMessage ("TerminalSocket: SYS$CANCEL () - %08X", status); - close (TerminalSocketPair[0]); - close (TerminalSocketPair[1]); - return (TERM_SOCK_FAILURE); - } - - /* + case TERM_SOCK_DELETE: + /* + ** Cancel any pending IO on the terminal channel + */ + status = sys$cancel (TerminalDeviceChan); + if (! (status & 1)) { + LogMessage ("TerminalSocket: SYS$CANCEL () - %08X", status); + close (TerminalSocketPair[0]); + close (TerminalSocketPair[1]); + return (TERM_SOCK_FAILURE); + } + + /* ** Deassign the terminal channel */ - status = sys$dassgn (TerminalDeviceChan); - if (! (status & 1)) - { - LogMessage ("TerminalSocket: SYS$DASSGN () - %08X", status); - close (TerminalSocketPair[0]); - close (TerminalSocketPair[1]); - return (TERM_SOCK_FAILURE); - } - - /* - ** Close the terminal socket pair - */ - close (TerminalSocketPair[0]); - close (TerminalSocketPair[1]); + status = sys$dassgn (TerminalDeviceChan); + if (! (status & 1)) { + LogMessage ("TerminalSocket: SYS$DASSGN () - %08X", status); + close (TerminalSocketPair[0]); + close (TerminalSocketPair[1]); + return (TERM_SOCK_FAILURE); + } - /* + /* + ** Close the terminal socket pair + */ + close (TerminalSocketPair[0]); + close (TerminalSocketPair[1]); + + /* ** Return the initialized socket */ - *ReturnSocket = 0; - break; + *ReturnSocket = 0; + break; default: - /* + /* ** Invalid function code */ - LogMessage ("TerminalSocket: Invalid Function Code - %d", FunctionCode); - return (TERM_SOCK_FAILURE); - break; - } + LogMessage ("TerminalSocket: Invalid Function Code - %d", FunctionCode); + return (TERM_SOCK_FAILURE); + break; + } -/* -** Return success -*/ -return (TERM_SOCK_SUCCESS); + /* + ** Return success + */ + return (TERM_SOCK_SUCCESS); } /*----------------------------------------------------------------------------*/ /* */ /*----------------------------------------------------------------------------*/ -static int CreateSocketPair ( - int SocketFamily, - int SocketType, - int SocketProtocol, - int *SocketPair) +static int CreateSocketPair (int SocketFamily, + int SocketType, + int SocketProtocol, + int *SocketPair) { -struct dsc$descriptor AscTimeDesc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, NULL}; -static const char* LocalHostAddr = {"127.0.0.1"}; -unsigned short TcpAcceptChan = 0, - TcpDeviceChan = 0; -unsigned long BinTimeBuff[2]; -struct sockaddr_in sin; -char AscTimeBuff[32]; -short LocalHostPort; -int status; -unsigned int slen; - -#ifdef __alpha -struct _iosb iosb; -#else -IOSB iosb; -#endif + struct dsc$descriptor AscTimeDesc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, NULL}; + static const char* LocalHostAddr = {"127.0.0.1"}; + unsigned short TcpAcceptChan = 0, + TcpDeviceChan = 0; + unsigned long BinTimeBuff[2]; + struct sockaddr_in sin; + char AscTimeBuff[32]; + short LocalHostPort; + int status; + unsigned int slen; + +# ifdef __alpha + struct _iosb iosb; +# else + IOSB iosb; +# endif + + int SockDesc1 = 0, + SockDesc2 = 0; + SPTB sptb; + $DESCRIPTOR (TcpDeviceDesc, "TCPIP$DEVICE"); -int SockDesc1 = 0, - SockDesc2 = 0; -SPTB sptb; -$DESCRIPTOR (TcpDeviceDesc, "TCPIP$DEVICE"); - -/* -** Create a socket -*/ -SockDesc1 = socket (SocketFamily, SocketType, 0); -if (SockDesc1 < 0) - { - LogMessage ("CreateSocketPair: socket () - %d", errno); - return (-1); + /* + ** Create a socket + */ + SockDesc1 = socket (SocketFamily, SocketType, 0); + if (SockDesc1 < 0) { + LogMessage ("CreateSocketPair: socket () - %d", errno); + return (-1); } -/* -** Initialize the socket information -*/ -slen = sizeof (sin); -memset ((char *) &sin, 0, slen); -sin.sin_family = SocketFamily; -sin.sin_addr.s_addr = inet_addr (LocalHostAddr); -sin.sin_port = 0; + /* + ** Initialize the socket information + */ + slen = sizeof (sin); + memset ((char *) &sin, 0, slen); + sin.sin_family = SocketFamily; + sin.sin_addr.s_addr = inet_addr (LocalHostAddr); + sin.sin_port = 0; -/* -** Bind the socket to the local IP -*/ -status = bind (SockDesc1, (struct sockaddr *) &sin, slen); -if (status < 0) - { - LogMessage ("CreateSocketPair: bind () - %d", errno); - close (SockDesc1); - return (-1); + /* + ** Bind the socket to the local IP + */ + status = bind (SockDesc1, (struct sockaddr *) &sin, slen); + if (status < 0) { + LogMessage ("CreateSocketPair: bind () - %d", errno); + close (SockDesc1); + return (-1); } -/* -** Get the socket name so we can save the port number -*/ -status = getsockname (SockDesc1, (struct sockaddr *) &sin, &slen); -if (status < 0) - { - LogMessage ("CreateSocketPair: getsockname () - %d", errno); - close (SockDesc1); - return (-1); - } -else - LocalHostPort = sin.sin_port; + /* + ** Get the socket name so we can save the port number + */ + status = getsockname (SockDesc1, (struct sockaddr *) &sin, &slen); + if (status < 0) { + LogMessage ("CreateSocketPair: getsockname () - %d", errno); + close (SockDesc1); + return (-1); + } else + LocalHostPort = sin.sin_port; -/* -** Setup a listen for the socket -*/ -listen (SockDesc1, 5); + /* + ** Setup a listen for the socket + */ + listen (SockDesc1, 5); -/* -** Get the binary (64-bit) time of the specified timeout value -*/ -sprintf (AscTimeBuff, "0 0:0:%02d.00", SOCKET_PAIR_TIMEOUT_VALUE); -AscTimeDesc.dsc$w_length = strlen (AscTimeBuff); -AscTimeDesc.dsc$a_pointer = AscTimeBuff; -status = sys$bintim (&AscTimeDesc, BinTimeBuff); -if (! (status & 1)) - { - LogMessage ("CreateSocketPair: SYS$BINTIM () - %08X", status); - close (SockDesc1); - return (-1); + /* + ** Get the binary (64-bit) time of the specified timeout value + */ + sprintf (AscTimeBuff, "0 0:0:%02d.00", SOCKET_PAIR_TIMEOUT_VALUE); + AscTimeDesc.dsc$w_length = strlen (AscTimeBuff); + AscTimeDesc.dsc$a_pointer = AscTimeBuff; + status = sys$bintim (&AscTimeDesc, BinTimeBuff); + if (! (status & 1)) { + LogMessage ("CreateSocketPair: SYS$BINTIM () - %08X", status); + close (SockDesc1); + return (-1); } -/* -** Assign another channel to the TCP/IP device for the accept. -** This is the channel that ends up being connected to. -*/ -status = sys$assign (&TcpDeviceDesc, &TcpDeviceChan, 0, 0, 0); -if (! (status & 1)) - { - LogMessage ("CreateSocketPair: SYS$ASSIGN () - %08X", status); - close (SockDesc1); - return (-1); + /* + ** Assign another channel to the TCP/IP device for the accept. + ** This is the channel that ends up being connected to. + */ + status = sys$assign (&TcpDeviceDesc, &TcpDeviceChan, 0, 0, 0); + if (! (status & 1)) { + LogMessage ("CreateSocketPair: SYS$ASSIGN () - %08X", status); + close (SockDesc1); + return (-1); } -/* -** Get the channel of the first socket for the accept -*/ -TcpAcceptChan = decc$get_sdc (SockDesc1); + /* + ** Get the channel of the first socket for the accept + */ + TcpAcceptChan = decc$get_sdc (SockDesc1); -/* -** Perform the accept using $QIO so we can do this asynchronously -*/ -status = sys$qio (EFN$C_ENF, - TcpAcceptChan, - IO$_ACCESS | IO$M_ACCEPT, - &iosb, - 0, 0, 0, 0, 0, - &TcpDeviceChan, - 0, 0); -if (! (status & 1)) - { - LogMessage ("CreateSocketPair: SYS$QIO () - %08X", status); - close (SockDesc1); - sys$dassgn (TcpDeviceChan); - return (-1); + /* + ** Perform the accept using $QIO so we can do this asynchronously + */ + status = sys$qio (EFN$C_ENF, + TcpAcceptChan, + IO$_ACCESS | IO$M_ACCEPT, + &iosb, + 0, 0, 0, 0, 0, + &TcpDeviceChan, + 0, 0); + if (! (status & 1)) { + LogMessage ("CreateSocketPair: SYS$QIO () - %08X", status); + close (SockDesc1); + sys$dassgn (TcpDeviceChan); + return (-1); } -/* -** Create the second socket to do the connect -*/ -SockDesc2 = socket (SocketFamily, SocketType, 0); -if (SockDesc2 < 0) - { - LogMessage ("CreateSocketPair: socket () - %d", errno); - sys$cancel (TcpAcceptChan); - close (SockDesc1); - sys$dassgn (TcpDeviceChan); - return (-1) ; - } + /* + ** Create the second socket to do the connect + */ + SockDesc2 = socket (SocketFamily, SocketType, 0); + if (SockDesc2 < 0) { + LogMessage ("CreateSocketPair: socket () - %d", errno); + sys$cancel (TcpAcceptChan); + close (SockDesc1); + sys$dassgn (TcpDeviceChan); + return (-1) ; + } -/* -** Setup the Socket Pair Timeout Block -*/ -sptb.SockChan1 = TcpAcceptChan; -sptb.SockChan2 = decc$get_sdc (SockDesc2); + /* + ** Setup the Socket Pair Timeout Block + */ + sptb.SockChan1 = TcpAcceptChan; + sptb.SockChan2 = decc$get_sdc (SockDesc2); -/* -** Before we block on the connect, set a timer that can cancel I/O on our two -** sockets if it never connects. -*/ -status = sys$setimr (EFN$C_ENF, - BinTimeBuff, - SocketPairTimeoutAst, - &sptb, - 0); -if (! (status & 1)) - { - LogMessage ("CreateSocketPair: SYS$SETIMR () - %08X", status); - sys$cancel (TcpAcceptChan); - close (SockDesc1); - close (SockDesc2); - sys$dassgn (TcpDeviceChan); - return (-1); + /* + ** Before we block on the connect, set a timer that can cancel I/O on our + ** two sockets if it never connects. + */ + status = sys$setimr (EFN$C_ENF, + BinTimeBuff, + SocketPairTimeoutAst, + &sptb, + 0); + if (! (status & 1)) { + LogMessage ("CreateSocketPair: SYS$SETIMR () - %08X", status); + sys$cancel (TcpAcceptChan); + close (SockDesc1); + close (SockDesc2); + sys$dassgn (TcpDeviceChan); + return (-1); } -/* -** Now issue the connect -*/ -memset ((char *) &sin, 0, sizeof (sin)) ; -sin.sin_family = SocketFamily; -sin.sin_addr.s_addr = inet_addr (LocalHostAddr) ; -sin.sin_port = LocalHostPort ; - -status = connect (SockDesc2, (struct sockaddr *) &sin, sizeof (sin)); -if (status < 0 ) - { - LogMessage ("CreateSocketPair: connect () - %d", errno); - sys$cantim (&sptb, 0); - sys$cancel (TcpAcceptChan); - close (SockDesc1); - close (SockDesc2); - sys$dassgn (TcpDeviceChan); - return (-1); + /* + ** Now issue the connect + */ + memset ((char *) &sin, 0, sizeof (sin)) ; + sin.sin_family = SocketFamily; + sin.sin_addr.s_addr = inet_addr (LocalHostAddr) ; + sin.sin_port = LocalHostPort ; + + status = connect (SockDesc2, (struct sockaddr *) &sin, sizeof (sin)); + if (status < 0 ) { + LogMessage ("CreateSocketPair: connect () - %d", errno); + sys$cantim (&sptb, 0); + sys$cancel (TcpAcceptChan); + close (SockDesc1); + close (SockDesc2); + sys$dassgn (TcpDeviceChan); + return (-1); } -/* -** Wait for the asynch $QIO to finish. Note that if the I/O was aborted -** (SS$_ABORT), then we probably canceled it from the AST routine - so log a -** timeout. -*/ -status = sys$synch (EFN$C_ENF, &iosb); -if (! (iosb.iosb$w_status & 1)) - { - if (iosb.iosb$w_status == SS$_ABORT) - LogMessage ("CreateSocketPair: SYS$QIO(iosb) timeout"); - else - { - LogMessage ("CreateSocketPair: SYS$QIO(iosb) - %d", iosb.iosb$w_status); - sys$cantim (&sptb, 0); + /* + ** Wait for the asynch $QIO to finish. Note that if the I/O was aborted + ** (SS$_ABORT), then we probably canceled it from the AST routine - so log + ** a timeout. + */ + status = sys$synch (EFN$C_ENF, &iosb); + if (! (iosb.iosb$w_status & 1)) { + if (iosb.iosb$w_status == SS$_ABORT) + LogMessage ("CreateSocketPair: SYS$QIO(iosb) timeout"); + else { + LogMessage ("CreateSocketPair: SYS$QIO(iosb) - %d", + iosb.iosb$w_status); + sys$cantim (&sptb, 0); } - close (SockDesc1); - close (SockDesc2); - sys$dassgn (TcpDeviceChan); - return (-1); + close (SockDesc1); + close (SockDesc2); + sys$dassgn (TcpDeviceChan); + return (-1); } -/* -** Here we're successfully connected, so cancel the timer, convert the I/O -** channel to a socket fd, close the listener socket and return the connected -** pair. -*/ -sys$cantim (&sptb, 0); + /* + ** Here we're successfully connected, so cancel the timer, convert the + ** I/O channel to a socket fd, close the listener socket and return the + ** connected pair. + */ + sys$cantim (&sptb, 0); -close (SockDesc1) ; -SocketPair[0] = SockDesc2 ; -SocketPair[1] = socket_fd (TcpDeviceChan); + close (SockDesc1) ; + SocketPair[0] = SockDesc2 ; + SocketPair[1] = socket_fd (TcpDeviceChan); -return (0) ; + return (0) ; } @@ -509,12 +490,12 @@ return (0) ; /*----------------------------------------------------------------------------*/ static void SocketPairTimeoutAst (int astparm) { -SPTB *sptb = (SPTB *) astparm; + SPTB *sptb = (SPTB *) astparm; -sys$cancel (sptb->SockChan2); /* Cancel the connect() */ -sys$cancel (sptb->SockChan1); /* Cancel the accept() */ + sys$cancel (sptb->SockChan2); /* Cancel the connect() */ + sys$cancel (sptb->SockChan1); /* Cancel the accept() */ -return; + return; } @@ -523,36 +504,37 @@ return; /*----------------------------------------------------------------------------*/ static int TerminalDeviceAst (int astparm) { -int status; + int status; -/* -** Terminate the terminal buffer -*/ -TerminalDeviceBuff[TerminalDeviceIosb.iosb$w_bcnt] = '\0'; -strcat (TerminalDeviceBuff, "\n"); + /* + ** Terminate the terminal buffer + */ + TerminalDeviceBuff[TerminalDeviceIosb.iosb$w_bcnt] = '\0'; + strcat (TerminalDeviceBuff, "\n"); -/* -** Send the data read from the terminal device throught the socket pair -*/ -send (TerminalSocketPair[0], TerminalDeviceBuff, TerminalDeviceIosb.iosb$w_bcnt + 1, 0); + /* + ** Send the data read from the terminal device throught the socket pair + */ + send (TerminalSocketPair[0], TerminalDeviceBuff, + TerminalDeviceIosb.iosb$w_bcnt + 1, 0); -/* -** Queue another async IO to the terminal device -*/ -status = sys$qio (EFN$C_ENF, - TerminalDeviceChan, - IO$_READVBLK, - &TerminalDeviceIosb, - TerminalDeviceAst, - 0, - TerminalDeviceBuff, - sizeof (TerminalDeviceBuff) - 1, - 0, 0, 0, 0); + /* + ** Queue another async IO to the terminal device + */ + status = sys$qio (EFN$C_ENF, + TerminalDeviceChan, + IO$_READVBLK, + &TerminalDeviceIosb, + TerminalDeviceAst, + 0, + TerminalDeviceBuff, + sizeof (TerminalDeviceBuff) - 1, + 0, 0, 0, 0); -/* -** Return status -*/ -return status; + /* + ** Return status + */ + return status; } @@ -561,46 +543,48 @@ return status; /*----------------------------------------------------------------------------*/ static void LogMessage (char *msg, ...) { -char *Month[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; -static unsigned int pid = 0; -va_list args; -time_t CurTime; -struct tm *LocTime; -char MsgBuff[256]; + char *Month[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; + static unsigned int pid = 0; + va_list args; + time_t CurTime; + struct tm *LocTime; + char MsgBuff[256]; -/* -** Get the process pid -*/ -if (pid == 0) - pid = getpid (); + /* + ** Get the process pid + */ + if (pid == 0) + pid = getpid (); -/* -** Convert the current time into local time -*/ -CurTime = time (NULL); -LocTime = localtime (&CurTime); + /* + ** Convert the current time into local time + */ + CurTime = time (NULL); + LocTime = localtime (&CurTime); -/* -** Format the message buffer -*/ -sprintf (MsgBuff, "%02d-%s-%04d %02d:%02d:%02d [%08X] %s\n", - LocTime->tm_mday, Month[LocTime->tm_mon], (LocTime->tm_year + 1900), - LocTime->tm_hour, LocTime->tm_min, LocTime->tm_sec, pid, msg); + /* + ** Format the message buffer + */ + sprintf (MsgBuff, "%02d-%s-%04d %02d:%02d:%02d [%08X] %s\n", + LocTime->tm_mday, Month[LocTime->tm_mon], + (LocTime->tm_year + 1900), LocTime->tm_hour, LocTime->tm_min, + LocTime->tm_sec, pid, msg); -/* -** Get any variable arguments and add them to the print of the message buffer -*/ -va_start (args, msg); -vfprintf (stderr, MsgBuff, args); -va_end (args); + /* + ** Get any variable arguments and add them to the print of the message + ** buffer + */ + va_start (args, msg); + vfprintf (stderr, MsgBuff, args); + va_end (args); -/* -** Flush standard error output -*/ -fsync (fileno (stderr)); + /* + ** Flush standard error output + */ + fsync (fileno (stderr)); -return; + return; } #endif diff --git a/apps/vms_term_sock.h b/apps/vms_term_sock.h index 778e2f93e3..662fa0adaf 100755 --- a/apps/vms_term_sock.h +++ b/apps/vms_term_sock.h @@ -8,19 +8,19 @@ */ #ifndef TERM_SOCK_H -#define TERM_SOCK_H +# define TERM_SOCK_H /* ** Terminal Socket Function Codes */ -#define TERM_SOCK_CREATE 1 -#define TERM_SOCK_DELETE 2 +# define TERM_SOCK_CREATE 1 +# define TERM_SOCK_DELETE 2 /* ** Terminal Socket Status Codes */ -#define TERM_SOCK_FAILURE 0 -#define TERM_SOCK_SUCCESS 1 +# define TERM_SOCK_FAILURE 0 +# define TERM_SOCK_SUCCESS 1 /* ** Terminal Socket Prototype -- 2.25.1