-4
#include <stdio.h>
    #include <string.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <sys/types.h>
    #include <netdb.h>
    #include <fcntl.h>
    #include <poll.h>
    
    
    #define _GNU_SOURCE
    
    
    #define http 80
    
    extern int sockvrsn, socktyp, sockprtcl;
    
    extern int clisocket;
    
    extern socklen_t clisockaddrinfsze;
    
    extern const struct sockaddr *clisockaddrinf;
    
    int cliprogram(int cliprogramend)
    {
    
    int clisockmde = AI_PASSIVE|AI_ADDRCONFIG|AI_CANONNAME;
    
    
    char *cliaddrnfoiphost = NULL;
    
    const struct addrinfo *cliaddrnfoinfr = NULL;
    
    struct addrinfo cliaddrnfo{
                  cliaddrnfo.ai_flags = clisockmde;
                  cliaddrnfo.ai_family = sockvrsn;
                  cliaddrnfo.ai_socktype = socktyp;
                  cliaddrnfo.ai_protocol = sockprtcl;
                  cliaddrnfo.ai_addrlen = clisockaddrinfsze;
                  cliaddrnfo.ai_addr = clisockaddrinf;
                  cliaddrnfo.ai_canonname = cliaddrnfoiphost;
                  cliaddrnfo.ai_next = cliaddrnfoinfr;
                  memset(&cliaddrnfo, 0, sizeof(cliaddrnfo));
              };
    
    
    
    
    const struct addrinfo *restrict cliaddrnfoinf = cliaddrnfo;
    
    struct addrinfo ** restrict cliaddrnfoinfret = clisockaddrinfr;
    
    const char *restrict getaddrinfoclistng = "http";
    
    
              int getaddrinfoinst = getaddrinfo(NULL, getaddrinfoclistng, cliaddrnfoinf, cliaddrnfoinfret);
    {
    
    
    struct addrinfo *cliaddrnfoinfretnl = cliaddrnfoinfret;
    
    void freeaddrinfo(cliaddrnfoinfretnl);
    {
    
     int sockvrsn = AF_INET;
    
     int socktyp = SOCK_STREAM;
    
     int sockprtcl = IPPROTO_TCP;
    
           int static clisocket = socket(sockvrsn, socktyp, sockprtcl);
           {
    
          sa_family_t clisockaddrvrsn = sockvrsn;
    
          in_port_t clisockaddrport = htons(80); // http port tcp/ip //
    
          sa_family_t clisockipaddrvrsn = sockvrsn;
    
          char clisockipaddrstrng[clisockipaddrstrng+1] = NULL;
    
          int clisockipaddrstrngsze = sizeof(clisockipaddrstrng);
    
          struct sockaddr clisockipaddr{
                     clisockipaddr.sa_family = clisockipaddrvrsn;      /* Address family */
                     clisockipaddr.sa_data = clisockipaddrstrng[clisockipaddrstrng+1]
                     memset(&clisockipaddr, 0, sizeof(clisockipaddr));
                 };
    
    
    
                 const char *clisockipaddrhst2nt = htonl(clisockipaddrstrng[clisockipaddrstrng+1]);
    
                  in_addr_t clisockipaddrnt = inet_addr(clisockipaddrhst2nt);
    
                 struct in_addr clisockip{
                     clisockip.s_addr = clisockipaddrnt;
                     memset(&clisockip, 0, sizeof(clisockip));
                 }
    
    
    struct sockaddr_in clisockaddr{
               clisockaddr.sin_family = clisockaddrvrsn;    /* AF_INET */
               clisockaddr.sin_port = clisockaddrport;       /* Port number */
               clisockaddr.sin_addr.s_addr = clisockipaddrnt;
               memset(&clisockaddr, 0, sizeof(clisockaddr));
    
           };
    
    
    
    
           int clisetsockoptstng = SO_DONTROUTE|SO_KEEPALIVE|SO_LINGER|SO_OOBINLINE|SO_REUSEADDR;
    
           const void *clisetsockoptstnginf = clisetsockoptstng
    
           socklen_t clisetsockoptstnginfsze = sizeof(clisetsockoptinf);
    
           int clisetsockopt setsockopt(clisocket, sockprtcl, clisetsockopt, clisetsockoptstnginf, clisetsockoptstnginfsze);
    {
           int cligetsockoptstng = SO_DONTROUTE|SO_KEEPALIVE|SO_LINGER|SO_OOBINLINE|SO_REUSEADDR;
    
           void *restrict cligetsockoptstnginf = cligetsockoptstng;
    
           socklen_t *restrict cligetsockoptstnginfsze = sizeof(cligetsockoptstnginf)
    
           int cligetsockopt = getsockopt(clisocket, sockprtcl, cligetsockoptstng, cligetsockoptstnginf, cligetsockoptstnginfsze);
    {
    
    
           struct sockaddr *restrict clisockaddrinfr = clisockaddrinf;
    
           socklen_t *restrict clisockaddrinfrsze = sizeof(clisockaddrinfr);
    
             int cligetsockinstnme = getsockname(clisocket, clisockaddrinfr, clisockaddrinfrsze);
    {
    
    const struct sockaddr *clisockaddrinf = clisockaddr;
    
    socklen_t clisockaddrinfsze = sizeof(clisockaddrinf);
    
           int static clisockcnct = connect(clisocket, clisockaddrinf, clisockaddrinfsze);
    {
    
    
            int fcntlopt = O_NONBLOCK
    
            int fcntlmde = 1;
    
            int clifilecntrliop = fcntl(clisocket, fcntlopt, fcntlmde);
    {
    
    
            struct pollfd *clipolliopfdinf = clipolliopfd;
    
            nfds_t clipolliopfd[1] = {0};
    
            int clipolltimeout = 0;
    
                   int clipolliop = poll(clipolliopfdinf, clipolliopfd[1], clipolltimeout;
    {
                   short clipollioprd = POLLIN|POLLPRI|POLLRDHUP;
    
                   short clipolliopwr = POLLOUT|POLLPRI|POLLHUP;
    
    
    
                   struct pollfd clipolliopfd {
                                  clipolliopfd.fd = clisocket;         /* file descriptor */
                                  clipolliopfd.events = clipollioprd;     /* requested events */
                                  clipolliopfd.revents = clipolliopwr;
                                  memset(&clipolliopfd, 0, sizeof(clipolliopfd));
                              };
    
                              const void clisendbtndx[clisendbtndxsze];
    
                              size_t clisendbtndxsze = sizeof(clisendbtndx);
    
                              int clisendflgs = MSG_CONFIRM|MSG_DONTROUTE|MSG_DONTWAIT|MSG_OOB;
    
                              ssize_t clisendbt = send(clisocket, clisendbtndx[clisendbtndxsze] clisendbtndxsze, clisendflgs);
    {
    
                              void clirecvbtndx[clirecvbtndxsze];
    
                              size_t clirecvbtndxsze = sizeof(clirecvbtndx);
    
                              int clirecvflags = MSG_DONTWAIT|MSG_OOB|MSG_PEEK;
    
                              ssize_t clirecvbt = recv(clisocket, clirecvbtndx[clirecvbtndxsze], clirecvbtndxsze, clirecvflags);
    {
    
    
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    
    cliprogramend = 0;
    
    return cliprogramend;
    
    
    
    
    }


#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <netdb.h>
#include <fcntl.h>
#include <poll.h>
#include <unistd.h>
#include <sys/wait.h>


#include"client-connect.c"

#define _GNU_SOURCE


#define http 80

extern int sockvrsn2, socktyp2, sockprtcl2;

extern int srvsocket;

extern socklen_t srvsockaddrinfsze;

extern const struct sockaddr *srvsockaddrinf;

int main(int argc, char *argv[])
{

const struct sockaddr *restrict gtmmenfosockaddr = srvsockaddr;

socklen_t gtmmenfosockaddrsze = sizeof(gtmmenfosockaddr);

char hostnmeip[hostnmeipsze+1] = NULL;

socklen_t hostnmeipsze = sizeof(hostnmeip);

char servportip[servportipsze+1] = NULL;

socklen_t servportipsze = sizeof(servportip);

int servdmnapiflgs = NI_NUMERICHOST|NI_NUMERICSERV;

int servdmnapi = getnameinfo(gtmmenfosockaddr, gtmmenfosockaddrsze, hostnmeip[hostnmeipsze+1], hostnmeipsze, servportip[servportipsze+1], servportipsze, int flags);
{
const char *restrict hostnmeipstrng = hostnmeip[hostnmeipsze+1];

const char *restrict servportipstrng = servportip[servportipsze+1];


int srvdmnservproxyip = printf("proxy-server-name %s : %s proxy-server-port\n", string1, string2);







    int srvsockmde = AI_NUMERICHOST|AI_NUMERICSERV|AI_ADDRCONFIG|AI_CANONNAME;



    char *srvaddrnfoiphost = NULL;

    const struct addrinfo *srvaddrnfoinfr = NULL;

    struct addrinfo srvaddrnfo{
                  srvaddrnfo.ai_flags = srvsockmde;
                  srvaddrnfo.ai_family = sockvrsn2;
                  srvaddrnfo.ai_socktype = socktyp2;
                  srcaddrnfo.ai_protocol = sockprtcl2;
                  srvaddrnfo.ai_addrlen = srvsockaddrinfsze;
                  srvaddrnfo.ai_addr = srvsockaddrinf;
                  srvaddrnfo.ai_canonname = srvaddrnfoiphost;
                  srvaddrnfo.ai_next = srvaddrnfoinfr;
                  memset(&srvaddrnfo, 0, sizeof(srvaddrnfo));
              };



              const struct addrinfo *restrict srvaddrnfoinf2 = srvaddrnfo;

              struct addrinfo ** restrict srvaddrnfoinfret = srvsockaddrinfr;

              const char *restrict getaddrinfoclistng2 = "http";


                        int getaddrinfoinst2 = getaddrinfo(NULL, getaddrinfoclistng2, srvaddrnfoinf, srvaddrnfoinfret);
{


struct addrinfo *srvaddrnfoinfretnl = srvaddrnfoinfret;

void freeaddrinfo(srvaddrnfoinfretnl);
{

    int sockvrsn2 = AF_INET;

    int socktyp2 = SOCK_STREAM;

    int sockprtcl2 = IPPROTO_TCP;

    int static srvsocket = socket(sockvrsn2, socktyp2, sockprtcl2);
{



    sa_family_t srvsockaddrvrsn = sockvrsn2;

    in_port_t srvsockaddrport = htons(80); // http port tcp/ip //

    sa_family_t srvsockipaddrvrsn = sockvrsn2;

    char srvsockipaddrstrng[srvsockipaddrstrng+1] = NULL;

    int srvsockipaddrstrngsze = sizeof(srvsockipaddrstrng);

    struct sockaddr srvsockipaddr{
               srvsockipaddr.sa_family = srvsockipaddrvrsn;      /* Address family */
               srvsockipaddr.sa_data = srvsockipaddrstrng[srvsockipaddrstrng+1]
               memset(&srvsockipaddr, 0, sizeof(srvsockipaddr));
           };


           const char *srvsockipaddrhst2nt = htonl(srvsockipaddrstrng[srvsockipaddrstrng+1]);

           in_addr_t srvsockipaddrnt = inet_addr(srvsockipaddrhst2nt);

           struct in_addr srvsockip{
               srvsockip.s_addr = srvsockipaddrnt;
               memset(&srvsockip, 0, sizeof(srvsockip));
           }


struct sockaddr_in srvsockaddr{
         srvsockaddr.sin_family = srvsockaddrvrsn;    /* AF_INET */
         srvsockaddr.sin_port = srvsockaddrport;       /* Port number */
         srvsockaddr.sin_addr.s_addr = INADDR_ANY;
         memset(&srvsockaddr, 0, sizeof(srvsockaddr));


         int srvsetsockoptstng = SO_DONTROUTE|SO_KEEPALIVE|SO_LINGER|SO_OOBINLINE|SO_ACCEPTCONN|SO_REUSEPORT;

         const void *srvsetsockoptstnginf = srvsetsockoptstng

         socklen_t srvsetsockoptstnginfsze = sizeof(srvsetsockoptinf);

         int srvsetsockopt setsockopt(srvsocket, sockprtcl2, srvsetsockopt, srvsetsockoptstnginf, srvsetsockoptstnginfsze);
  {
         int srvgetsockoptstng = SO_DONTROUTE|SO_KEEPALIVE|SO_LINGER|SO_OOBINLINE|SO_ACCEPTCONN|SO_REUSEPORT;

         void *restrict srvgetsockoptstnginf = srvgetsockoptstng;

         socklen_t *restrict srvgetsockoptstnginfsze = sizeof(srvgetsockoptstnginf)

         int srvgetsockopt = getsockopt(srvsocket, sockprtcl2, srvgetsockoptstng, srvgetsockoptstnginf, srvgetsockoptstnginfsze);
  {
          int srvpndlstnlog = SOMAXCONN;

           int static srvpndlstn = listen(servsocket, SOMAXCONN);
{

           const struct sockaddr *srvsockaddrinf = srvsockaddr;

           socklen_t srvsockaddrinfsze = sizeof(srvsockaddrinf);



           int static servapicnct = bind(srvsocket, srvsockaddrinf, srvsockaddrinfsze);
{
          struct sockaddr *_Nullable restrict accptsrvsockaddr = srvsockaddr

          socklen_t *_Nullable restrict accptsrvsockaddrlen = sizeof(accptsrvsockaddr);

           int static srvacptcnct0 = accept(servsocket, accptsrvsockaddr, accptsrvsockaddrlen);
{
           pid_t ipsappfd;

           ipsappfd = fork();

           while(ipsappfd <= 300){

               int *_Nullable isappfdwtst = 0;

               int isappfdwtopt = WNOHANG;

                      pid_t isappfdwt = waitpid(isappfd, isappfdwtst, isappfdwtopt);

                      return 0;


           }



           int fcntlopt2 = O_NONBLOCK

           int fcntlmde2 = 1;

           int srvfilecntrliop = fcntl(srvsocket, fcntlopt2, fcntlmde2);
   {


           struct pollfd *srvpolliopfdinf = srvpolliopfd;

           nfds_t srvpolliopfd[1] = {0};

           int srvpolltimeout = 0;

                  int srvpolliop = poll(srvpolliopfdinf, srvpolliopfd[1], srvpolltimeout;
   {
                  short srvpollioprd = POLLIN|POLLPRI|POLLRDHUP;

                  short srvpolliopwr = POLLOUT|POLLPRI|POLLHUP;



                  struct pollfd srvpolliopfd {
                                 srvpolliopfd.fd = srvsocket;         /* file descriptor */
                                 srvpolliopfd.events = srvpollioprd;     /* requested events */
                                 srvpolliopfd.revents = srvpolliopwr;
                                 memset(&srvpolliopfd, 0, sizeof(srvpolliopfd));
                             };

                             const void srvsendbtndx[srvsendbtndxsze];

                             size_t srvsendbtndxsze = sizeof(srvsendbtndx);

                             int srvsendflgs = MSG_CONFIRM|MSG_DONTROUTE|MSG_DONTWAIT|MSG_OOB;

                             ssize_t srvsendbt = send(srvsocket, srvsendbtndx[srvsendbtndxsze] srvsendbtndxsze, srvsendflgs);
   {

                             void srvrecvbtndx[srvrecvbtndxsze];

                             size_t srvrecvbtndxsze = sizeof(srvrecvbtndx);

                             int srvrecvflags = MSG_DONTWAIT|MSG_OOB|MSG_PEEK;

                             ssize_t srvrecvbt = recv(clisocket, clirecvbtndx[clirecvbtndxsze], clirecvbtndxsze, clirecvflags);
{



}
}
}
}
}
}
}
}
}
}
}
}
}

return 0;

}

Ive written this code correctly for experimental purposes and gcc compiler throws errors regardless of the linux api syntax rules defined concisely. Machine Compatible programs are obsolete and no longer required for most applications to work correctly. Seems programs work anymore offline or in different Cloud computing development environments and that low level programming no longer works as the assembly.

Can this compile gcc linux console app correctly? The errors the compiler produced are non revisable and highly unrecommended

3
  • 2
    It's unclear what you're trying to ask. If your question is about compilation failures then please edit the question to present the exact text of those messages. If GCC rejects your program then it is virtually certain that either the program is wrong or your compilation command(s) are wrong. Commented 9 hours ago
  • 1
    This code is riddled with syntax errors. The inconsistent indentation doesn't help either. Commented 8 hours ago
  • 1
    #define _GNU_SOURCE needs to come before any includes. See man7.org/linux/man-pages/man7/feature_test_macros.7.html Commented 5 hours ago

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.