RaulFaccio

Arquivo original lido

Jan 24th, 2017
609
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.       *****************************************************************                                                                                               *                                                             *                                                                                             *  MODULE NAME:  EZASO6CC - THIS IS A VERY SIMPLE IPV6 CLIENT *                                                                                             *                                                             *                                                                                             * Copyright:    Licensed Materials - Property of IBM           *                                                                                             *                                                             *                                                                                             *              "Restricted Materials of IBM"                   *                                                                                             *                                                             *                                                                                             *              5694-A01                                       *                                                                                             *                                                             *                                                                                             *              Copyright IBM Corp. 2002, 2008                 *                                                                                             *                                                             *                                                                                             *              US Government Users Restricted Rights -       *                                                                                             *              Use, duplication or disclosure restricted by   *                                                                                             *              GSA ADP Schedule Contract with IBM Corp.       *                                                                                             *                                                             *                                                                                             * Status:       CSV1R10                                         *                                                                                             *                                                             *                                                                                             *  LANGUAGE:  COBOL                                           *                                                                                             *                                                             *                                                                                              *****************************************************************                                                                                                                                                                                                                                                                Identification Division.                                                                                                                                       *========================*                                                                                                                                                                                                                                                                                                       Program-id. EZASO6CC.                                                                                                                                                                                                                                                                                                          *=====================*                                                                                                                                          Environment Division.                                                                                                                                          *=====================*                                                                                                                                                                                                                                                                                                         *==============*                                                                                                                                                 Data Division.                                                                                                                                                 *==============*                                                                                                                                                                                                                                                                                                                 Working-storage Section.                                                                                                                                       *---------------------------------------------------------------*                                                                                               * Socket interface function codes                               *                                                                                              *---------------------------------------------------------------*                                                                                                01  soket-functions.                                                                                                                                                02 soket-accept          pic x(16) value 'ACCEPT          '.                                                                                                    02 soket-bind            pic x(16) value 'BIND            '.                                                                                                    02 soket-close           pic x(16) value 'CLOSE           '.                                                                                                    02 soket-connect         pic x(16) value 'CONNECT         '.                                                                                                    02 soket-fcntl           pic x(16) value 'FCNTL           '.                                                                                                    02 soket-freeaddrinfo    pic x(16) value 'FREEADDRINFO    '.                                                                                                    02 soket-getaddrinfo     pic x(16) value 'GETADDRINFO     '.                                                                                                    02 soket-getclientid     pic x(16) value 'GETCLIENTID     '.                                                                                                    02 soket-gethostbyaddr   pic x(16) value 'GETHOSTBYADDR   '.                                                                                                    02 soket-gethostbyname   pic x(16) value 'GETHOSTBYNAME   '.                                                                                                    02 soket-gethostid       pic x(16) value 'GETHOSTID       '.                                                                                                    02 soket-gethostname     pic x(16) value 'GETHOSTNAME     '.                                                                                                    02 soket-getnameinfo     pic x(16) value 'GETNAMEINFO     '.                                                                                                    02 soket-getpeername     pic x(16) value 'GETPEERNAME     '.                                                                                                    02 soket-getsockname     pic x(16) value 'GETSOCKNAME     '.                                                                                                    02 soket-getsockopt      pic x(16) value 'GETSOCKOPT      '.                                                                                                    02 soket-givesocket      pic x(16) value 'GIVESOCKET      '.                                                                                                    02 soket-initapi         pic x(16) value 'INITAPI         '.                                                                                                    02 soket-ioctl           pic x(16) value 'IOCTL           '.                                                                                                    02 soket-listen          pic x(16) value 'LISTEN          '.                                                                                                    02 soket-ntop            pic x(16) value 'NTOP            '.                                                                                                    02 soket-pton            pic x(16) value 'PTON            '.                                                                                                    02 soket-read            pic x(16) value 'READ            '.                                                                                                    02 soket-recv            pic x(16) value 'RECV            '.                                                                                                    02 soket-recvfrom        pic x(16) value 'RECVFROM        '.                                                                                                    02 soket-select          pic x(16) value 'SELECT          '.                                                                                                    02 soket-send            pic x(16) value 'SEND            '.                                                                                                    02 soket-sendto          pic x(16) value 'SENDTO          '.                                                                                                    02 soket-setsockopt      pic x(16) value 'SETSOCKOPT      '.                                                                                                    02 soket-shutdown        pic x(16) value 'SHUTDOWN        '.                                                                                                    02 soket-socket          pic x(16) value 'SOCKET          '.                                                                                                    02 soket-takesocket      pic x(16) value 'TAKESOCKET      '.                                                                                                    02 soket-termapi         pic x(16) value 'TERMAPI         '.                                                                                                    02 soket-write           pic x(16) value 'WRITE           '.                                                                                               *---------------------------------------------------------------*                                                                                               * Work variables                                               *                                                                                              *---------------------------------------------------------------*                                                                                                01  errno                          pic 9(8) binary value zero.                                                                                                  01  retcode                        pic s9(8) binary value zero.                                                                                                 01  index-counter                  pic 9(8) binary value zero.                                                                                                  01  buffer-element.                                                                                                                                                 05  buffer-element-nbr         pic 9(5).                                                                                                                        05  filler                     pic x(3) value space.                                                                                                        01  server-ipaddr-dotted           pic x(15) value space.                                                                                                       01  client-ipaddr-dotted           pic x(15) value space.                                                                                                       01  close-server                   pic 9(8) Binary value zero.                                                                                                      88  close-server-down          value 1.                                                                                                                     01  Connect-Flag                   pic x value space.                                                                                                               88 CONNECTED                         value 'Y'.                                                                                                             01  Client-Server-Flag             pic x value space.                                                                                                               88 CLIENTS                           value 'C'.                                                                                                                 88 SERVERS                           value 'S'.                                                                                                             01  Terminate-Options              pic x value space.                                                                                                               88 Opened-API                        value 'A'.                                                                                                                 88 Opened-Socket                     value 'S'.                                                                                                             01  timer-accum                    pic 9(8) Binary value zero.                                                                                                  01  timer-interval                 pic 9(8) Binary value 2000.                                                                                                  01  Cur-time.                                                                                                                                                       02  Hour                       pic 9(2).                                                                                                                        02  Minute                     pic 9(2).                                                                                                                        02  Second                     pic 9(2).                                                                                                                        02  Hund-Sec                   pic 9(2).                                                                                                                    77  Failure                        Pic S9(8) comp.                                                                                                             *---------------------------------------------------------------*                                                                                               * Variables used for the INITAPI call                           *                                                                                              *---------------------------------------------------------------*                                                                                                01  maxsoc-fwd                     pic 9(8) Binary.                                                                                                             01  maxsoc-rdf redefines maxsoc-fwd.                                                                                                                                02 filler                      pic x(2).                                                                                                                        02 maxsoc                      pic 9(4) Binary.                                                                                                             01  initapi-ident.                                                                                                                                                  05  tcpname                    pic x(8) Value 'TCPCS  '.                                                                                                        05  asname                     pic x(8) Value space.                                                                                                        01  subtask                        pic x(8) value 'EZSO6CC'.                                                                                                    01  maxsno                         pic 9(8) Binary Value 1.                                                                                                    *---------------------------------------------------------------*                                                                                               * Variables used by the SHUTDOWN Call                           *                                                                                              *---------------------------------------------------------------*                                                                                                01  how                            pic 9(8) Binary.                                                                                                            *---------------------------------------------------------------*                                                                                               * Variables returned by the GETCLIENTID Call                   *                                                                                              *---------------------------------------------------------------*                                                                                                01  clientid.                                                                                                                                                       05  clientid-domain            pic 9(8) Binary value 19.                                                                                                        05  clientid-name              pic x(8) value space.                                                                                                            05  clientid-task              pic x(8) value space.                                                                                                            05  filler                     pic x(20) value low-value.                                                                                                  *---------------------------------------------------------------*                                                                                               * Variables returned by the GETNAMEINFO Call                   *                                                                                              *---------------------------------------------------------------*                                                                                                01  name-len                       pic 9(8) binary.                                                                                                             01  host-name                      pic x(255).                                                                                                                  01  host-name-len                  pic 9(8) binary.                                                                                                             01  service-name                   pic x(32).                                                                                                                   01  service-name-len               pic 9(8) binary.                                                                                                             01  name-info-flags                pic 9(8) binary value 0.                                                                                                     01  ni-nofqdn                      pic 9(8) binary value 1.                                                                                                     01  ni-numerichost                 pic 9(8) binary value 2.                                                                                                     01  ni-namereqd                    pic 9(8) binary value 4.                                                                                                     01  ni-numericserver               pic 9(8) binary value 8.                                                                                                     01  ni-dgram                       pic 9(8) binary value 16.                                                                                                   *---------------------------------------------------------------*                                                                                               * Variables used for the SOCKET call                           *                                                                                              *---------------------------------------------------------------*                                                                                                01  AF-INET                        pic 9(8) Binary Value 2.                                                                                                     01  AF-INET6                       pic 9(8) Binary Value 19.                                                                                                    01  SOCK-STREAM                    pic 9(8) Binary Value 1.                                                                                                     01  SOCK-DATAGRAM                  pic 9(8) Binary Value 2.                                                                                                     01  SOCK-RAW                       pic 9(8) Binary Value 3.                                                                                                     01  IPPROTO-IP                     pic 9(8) Binary Value zero.                                                                                                  01  IPPROTO-TCP                    pic 9(8) Binary Value 6.                                                                                                     01  IPPROTO-UDP                    pic 9(8) Binary Value 17.                                                                                                    01  IPPROTO-IPV6                   pic 9(8) Binary Value 41.                                                                                                    01  socket-descriptor              pic 9(4) Binary Value zero.                                                                                                 *---------------------------------------------------------------*                                                                                               * Server socket address structure                               *                                                                                              *---------------------------------------------------------------*                                                                                                01  server-socket-address.                                                                                                                                          05  server-afinet              pic 9(4) Binary Value 19.                                                                                                        05  server-port                pic 9(4) Binary Value 1031.                                                                                                      05  server-flowinfo            pic 9(8) Binary Value zero.                                                                                                      05  server-ipaddr.                                                                                                                                                  10 filler                  pic 9(16) Binary Value 0.                                                                                                            10 filler                  pic 9(16) Binary Value 0.                                                                                                        05  server-scopeid             pic 9(8) Binary Value zero.                                                                                                  01  NBYTE                  PIC 9(8)  COMP value 80.                                                                                                             01  BUF                    PIC X(80).                                                                                                                          *---------------------------------------------------------------*                                                                                               * Variables used by the BIND Call                               *                                                                                              *---------------------------------------------------------------*                                                                                                01  client-socket-address.                                                                                                                                          05  client-family              pic 9(4) Binary Value 19.                                                                                                        05  client-port                pic 9(4) Binary Value 1032.                                                                                                      05  client-flowinfo            pic 9(8) Binary Value 0.                                                                                                         05  client-ipaddr.                                                                                                                                                  10 filler                  pic 9(16) Binary Value 0.                                                                                                            10 filler                  pic 9(16) Binary Value 0.                                                                                                        05  client-scopeid             pic 9(8) Binary Value 0.                                                                                                    *---------------------------------------------------------------*                                                                                               * Buffer and length fields for send operation                   *                                                                                              *---------------------------------------------------------------*                                                                                                01  send-request-length            pic 9(8) Binary value zero.                                                                                                  01  send-buffer.                                                                                                                                                    05  send-buffer-total          pic x(4000) value space.                                                                                                         05  closedown-message redefines send-buffer-total.                                                                                                                  10  closedown-id           pic x(8).                                                                                                                            10  filler                 pic x(3992).                                                                                                                     05  send-buffer-seq redefines send-buffer-total                                                                                                                                                pic x(8) occurs 500 times.                                                                                                  *---------------------------------------------------------------*                                                                                               * Variables used for the NTOP/PTON call                         *                                                                                              *---------------------------------------------------------------*                                                                                                01  IN6ADDR-ANY                    pic x(45)                                                                                                                                            value '::'.                                                                                                                             01  IN6ADDR-LOOPBACK               pic x(45)                                                                                                                                            value '::1'.                                                                                                                            01  presentable-addr               pic x(45) value spaces.                                                                                                      01  presentable-addr-len           pic 9(4) Binary value 45.                                                                                                    01  numeric-addr.                                                                                                                                                   05 filler                      pic 9(16) Binary Value 0.                                                                                                        05 filler                      pic 9(16) Binary Value 0.                                                                                                   *---------------------------------------------------------------*                                                                                               * Buffer and length fields for recv operation                   *                                                                                              *---------------------------------------------------------------*                                                                                                01  read-request-length            pic 9(8) Binary value zero.                                                                                                  01  read-buffer                    pic x(4000) value space.                                                                                                    *---------------------------------------------------------------*                                                                                               * Other fields for send and reccfrom operation                 *                                                                                              *---------------------------------------------------------------*                                                                                                01  send-flag                      pic 9(8) Binary value zero.                                                                                                  01  recv-flag                      pic 9(8) Binary value zero.                                                                                                 *---------------------------------------------------------------*                                                                                               * Error message for socket interface errors                     *                                                                                              *---------------------------------------------------------------*                                                                                                01  ezaerror-msg.                                                                                                                                                   05  filler                     pic x(9) Value 'Function='.                                                                                                      05  ezaerror-function          pic x(16) Value space.                                                                                                           05  filler                     pic x value ' '.                                                                                                                 05  filler                     pic x(8) Value 'Retcode='.                                                                                                       05  ezaerror-retcode           pic ---99.                                                                                                                       05  filler                     pic x value ' '.                                                                                                                 05  filler                     pic x(9) Value 'Errorno='.                                                                                                       05  ezaerror-errno             pic zzz99.                                                                                                                       05  filler                     pic x value ' '.                                                                                                                 05  ezaerror-text              pic x(50) value ' '.                                                                                                                                                                                                                                                                         Linkage Section.                                                                                                                                               *================                                                                                                                                                                                                                                                                                                               *=============================================*                                                                                                                  Procedure Division.                                                                                                                                            *=============================================*                                                                                                                                                                                                                                                                                 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*                                                                                                   *         P R O C E D U R E    C O N T R O L S           *                                                                                                   *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*                                                                                                                                                                                                                                                                          Perform Initialize-API     thru   Initialize-API-Exit.                                                                                                          Perform Get-Client-ID      thru   Get-Client-ID-Exit.                                                                                                           Perform Sockets-Descriptor thru   Sockets-Descriptor-Exit.                                                                                                      Perform Presentation-To-Numeric thru                                                                                                                                                     Presentation-To-Numeric-Exit.                                                                                                          Perform CONNECT-Socket     thru   CONNECT-Socket-Exit.                                                                                                          Perform Numeric-TO-Presentation thru                                                                                                                                                     Numeric-To-Presentation-Exit.                                                                                                          Perform Get-Name-Information thru                                                                                                                                                        Get-Name-Information-Exit.                                                                                                             Perform Write-Message      thru   Write-Message-Exit.                                                                                                           Perform Shutdown-Send      thru   Shutdown-Send-Exit.                                                                                                           Perform Read-Message       thru   Read-Message-Exit.                                                                                                            Perform Shutdown-Receive   thru   Shutdown-Receive-Exit.                                                                                                        Perform Close-Socket       thru   Exit-Now.                                                                                                                                                                                                                                                                               *---------------------------------------------------------------*                                                                                               * Initialize socket API                                         *                                                                                              *---------------------------------------------------------------*                                                                                                Initialize-API.                                                                                                                                                     Move soket-initapi to ezaerror-function.                                                                                                                        Call 'EZASOKET' using soket-initapi maxsoc initapi-ident                                                                                                                              subtask maxsno errno retcode.                                                                                                             Move 'Initapi failed' to ezaerror-text.                                                                                                                         If retcode < 0 move 12 to failure.                                                                                                                              Perform Return-Code-Check  thru Return-Code-Exit.                                                                                                               Move 'A' to Terminate-Options.                                                                                                                              Initialize-API-Exit.                                                                                                                                                Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Let us see the client-id                                     *                                                                                              *---------------------------------------------------------------*                                                                                                Get-Client-ID.                                                                                                                                                       Move soket-getclientid to ezaerror-function.                                                                                                                    Call 'EZASOKET' using soket-getclientid clientid errno                                                                                                                                retcode.                                                                                                                                  Display 'Our client ID = ' clientid-name ' ' clientid-task.                                                                                                     Move 'Getclientid failed' to ezaerror-text.                                                                                                                     If retcode < 0 move 24 to failure.                                                                                                                              Perform Return-Code-Check thru Return-Code-Exit.                                                                                                                Move 'C' to client-server-flag.                                                                                                                            Get-Client-ID-Exit.                                                                                                                                                 Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Get us a stream socket descriptor                             *                                                                                              *---------------------------------------------------------------*                                                                                                Sockets-Descriptor.                                                                                                                                                  Move soket-socket to ezaerror-function.                                                                                                                         Call 'EZASOKET' using soket-socket AF-INET6 SOCK-STREAM                                                                                                             IPPROTO-IP errno retcode.                                                                                                                                   Move 'Socket call failed' to ezaerror-text.                                                                                                                     If retcode < 0 move 60 to failure.                                                                                                                              Perform Return-Code-Check thru Return-Code-Exit.                                                                                                                Move 'S' to Terminate-Options.                                                                                                                                  Move retcode to socket-descriptor.                                                                                                                         Sockets-Descriptor-Exit.                                                                                                                                            Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Use PTON to create an IP address to bind to.                 *                                                                                              *---------------------------------------------------------------*                                                                                                Presentation-To-Numeric.                                                                                                                                             move soket-pton to ezaerror-function.                                                                                                                           move IN6ADDR-LOOPBACK to presentable-addr.                                                                                                                      Call 'EZASOKET' using soket-pton AF-INET6                                                                                                                          presentable-addr presentable-addr-len                                                                                                                           numeric-addr                                                                                                                                                    errno retcode.                                                                                                                                               Move 'PTON call failed' to ezaerror-text.                                                                                                                       If retcode < 0  move 24 to failure.                                                                                                                             Perform Return-Code-Check thru Return-Code-Exit.                                                                                                                move numeric-addr to server-ipaddr.                                                                                                                        Presentation-To-Numeric-Exit.                                                                                                                                       Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * CONNECT                                                       *                                                                                              *---------------------------------------------------------------*                                                                                                Connect-Socket.                                                                                                                                                      Move space to Connect-Flag.                                                                                                                                     Move zeros to errno retcode.                                                                                                                                    move soket-connect to ezaerror-function.                                                                                                                        CALL 'EZASOKET' USING SOKET-CONNECT socket-descriptor                                                                                                                             server-socket-address errno retcode.                                                                                                          Move 'Connection call failed' to ezaerror-text.                                                                                                                 If retcode < 0  move 24 to failure.                                                                                                                             Perform Return-Code-Check thru Return-Code-Exit.                                                                                                                If retcode = 0  Move 'Y' to Connect-Flag.                                                                                                                  Connect-Socket-Exit.                                                                                                                                                Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Use NTOP to display the IP address.                           *                                                                                              *---------------------------------------------------------------*                                                                                                Numeric-To-Presentation.                                                                                                                                            move soket-ntop to ezaerror-function.                                                                                                                           move server-ipaddr to numeric-addr.                                                                                                                             move soket-ntop to ezaerror-function.                                                                                                                           Call 'EZASOKET' using soket-ntop AF-INET6                                                                                                                          numeric-addr                                                                                                                                                    presentable-addr presentable-addr-len                                                                                                                           errno retcode.                                                                                                                                               Display 'Presentable address = ' presentable-addr.                                                                                                              Move 'NTOP call failed' to ezaerror-text.                                                                                                                       If retcode < 0  move 24 to failure.                                                                                                                             Perform Return-Code-Check thru Return-Code-Exit.                                                                                                            Numeric-TO-Presentation-Exit.                                                                                                                                       Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Use GETNAMEINFO to get the host and service names             *                                                                                              *---------------------------------------------------------------*                                                                                                Get-Name-Information.                                                                                                                                               move 28 to name-len.                                                                                                                                            move 255 to host-name-len.                                                                                                                                      move 32 to service-name-len.                                                                                                                                    move ni-namereqd to name-info-flags.                                                                                                                            move soket-getnameinfo to ezaerror-function.                                                                                                                    Call 'EZASOKET' using soket-getnameinfo                                                                                                                            server-socket-address name-len                                                                                                                                  host-name host-name-len                                                                                                                                         service-name service-name-len                                                                                                                                   name-info-flags                                                                                                                                                 errno retcode.                                                                                                                                               Display 'Host name = ' host-name.                                                                                                                               Display 'Service = ' service-name.                                                                                                                              Move 'Getaddrinfo call failed' to ezaerror-text.                                                                                                                If retcode < 0  move 24 to failure.                                                                                                                             Perform Return-Code-Check thru Return-Code-Exit.                                                                                                            Get-Name-Information-Exit.                                                                                                                                          Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Write a message to the server                                 *                                                                                              *---------------------------------------------------------------*                                                                                                Write-Message.                                                                                                                                                       Move soket-write to ezaerror-function.                                                                                                                          Move 'Message from EZASO6CC' to buf.                                                                                                                            Call 'EZASOKET' using soket-write socket-descriptor                                                                                                                 nbyte buf                                                                                                                                                       errno retcode.                                                                                                                                              Move 'Write call failed' to ezaerror-text.                                                                                                                      If retcode < 0 move 84 to failure.                                                                                                                              Perform Return-Code-Check thru Return-Code-Exit.                                                                                                           Write-Message-Exit.                                                                                                                                                 Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Shutdown to pipe                                             *                                                                                              *---------------------------------------------------------------*                                                                                                Shutdown-Send.                                                                                                                                                       Move soket-shutdown to ezaerror-function.                                                                                                                       move 1 to how.                                                                                                                                                  Call 'EZASOKET' using soket-shutdown socket-descriptor                                                                                                              how                                                                                                                                                             errno retcode.                                                                                                                                              Move 'Shutdown call failed' to ezaerror-text.                                                                                                                   If retcode < 0 move 99 to failure.                                                                                                                              Perform Return-Code-Check thru Return-Code-Exit.                                                                                                           Shutdown-Send-Exit.                                                                                                                                                 Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Read a message from the server.                               *                                                                                              *---------------------------------------------------------------*                                                                                                Read-Message.                                                                                                                                                        Move soket-read to ezaerror-function.                                                                                                                           Move spaces to buf.                                                                                                                                             Call 'EZASOKET' using soket-read socket-descriptor                                                                                                                    nbyte buf                                                                                                                                                       errno retcode.                                                                                                                                            If retcode < 0                                                                                                                                                     Move 'Read call failed' to ezaerror-text                                                                                                                        move 120 to failure                                                                                                                                             Perform Return-Code-Check thru Return-Code-Exit.                                                                                                        Read-Message-Exit.                                                                                                                                                  Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Shutdown receive pipe                                         *                                                                                              *---------------------------------------------------------------*                                                                                                Shutdown-Receive.                                                                                                                                                    Move soket-shutdown to ezaerror-function.                                                                                                                       move 0 to how.                                                                                                                                                  Call 'EZASOKET' using soket-shutdown socket-descriptor                                                                                                              how                                                                                                                                                             errno retcode.                                                                                                                                              Move 'Shutdown call failed' to ezaerror-text.                                                                                                                   If retcode < 0 move 99 to failure.                                                                                                                              Perform Return-Code-Check thru Return-Code-Exit.                                                                                                           Shutdown-Receive-Exit.                                                                                                                                              Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Close socket                                                 *                                                                                              *---------------------------------------------------------------*                                                                                                Close-Socket.                                                                                                                                                         Move soket-close to ezaerror-function.                                                                                                                          Call 'EZASOKET' using soket-close socket-descriptor                                                                                                                                   errno retcode.                                                                                                                            Move 'Close call failed' to ezaerror-text.                                                                                                                      If retcode < 0 move 132 to failure                                                                                                                                 perform write-ezaerror-msg thru                                                                                                                                         write-ezaerror-msg-exit.                                                                                                                             Accept Cur-Time from TIME.                                                                                                                                      Display Cur-Time ' EZASO6CC: ' ezaerror-function                                                                                                                             ' RETCODE=' RETCODE ' ERRNO= ' ERRNO.                                                                                                        Close-Socket-Exit.                                                                                                                                                  Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Terminate socket API                                         *                                                                                              *---------------------------------------------------------------*                                                                                                exit-term-api.                                                                                                                                                      ACCEPT cur-time from TIME.                                                                                                                                      Display cur-time '  EZASO6CC:  TERMAPI '                                                                                                                                ' RETCODE= ' RETCODE ' ERRNO= ' ERRNO.                                                                                                                  Call 'EZASOKET' using soket-termapi.                                                                                                                                                                                                                                                                                       *---------------------------------------------------------------*                                                                                               * Terminate program                                             *                                                                                              *---------------------------------------------------------------*                                                                                                exit-now.                                                                                                                                                           Move failure to return-code.                                                                                                                                    Goback.                                                                                                                                                                                                                                                                                                                    *---------------------------------------------------------------*                                                                                               * Subroutine.                                                   *                                                                                             * -----------                                                   *                                                                                             * Write out an error message                                   *                                                                                              *---------------------------------------------------------------*                                                                                                write-ezaerror-msg.                                                                                                                                                 Move errno to ezaerror-errno.                                                                                                                                   Move retcode to ezaerror-retcode.                                                                                                                               Display ezaerror-msg.                                                                                                                                       write-ezaerror-msg-exit.                                                                                                                                            Exit.                                                                                                                                                                                                                                                                                                                      *---------------------------------------------------------------*                                                                                               * Check Return Code after each Socket Call                     *                                                                                              *---------------------------------------------------------------*                                                                                                Return-Code-Check.                                                                                                                                                   Accept Cur-Time from TIME.                                                                                                                                      Display Cur-Time ' EZASO6CC: ' ezaerror-function                                                                                                                                      ' RETCODE=' RETCODE ' ERRNO= ' ERRNO.                                                                                                     IF RETCODE < 0                                                                                                                                                     Perform Write-ezaerror-msg thru write-ezaerror-msg-exit                                                                                                         Move zeros to errno retcode                                                                                                                                     IF Opened-Socket Go to Close-Socket                                                                                                                             ELSE IF Opened-API Go to exit-term-api                                                                                                                               ELSE Go to exit-now.                                                                                                                                    Move zeros to errno retcode.                                                                                                                               Return-Code-Exit.                                                                                                                                                   Exit.
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×