Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add "-family ipv6" and "-family ipv4" options to althttpd.c to force it to use one or the other internet protocol version. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
734d42b432ff140934b38ca718737128 |
User & Date: | drh 2012-07-07 10:45:26.619 |
Context
2012-07-09
| ||
17:55 | Get althttpd to compile and run on linux by adding #include <errno.h>. (check-in: ac91a2d606 user: drh tags: trunk) | |
2012-07-07
| ||
10:45 | Add "-family ipv6" and "-family ipv4" options to althttpd.c to force it to use one or the other internet protocol version. (check-in: 734d42b432 user: drh tags: trunk) | |
05:47 | In althttpd.c add process tracing, commented out. (check-in: 2a6b5e40c5 user: drh tags: trunk) | |
Changes
Changes to misc/althttpd.c.
︙ | ︙ | |||
144 145 146 147 148 149 150 151 152 153 154 155 156 157 | static time_t beginTime; /* Time when this process starts */ static int closeConnection = 0; /* True to send Connection: close in reply */ static int nRequest = 0; /* Number of requests processed */ static int omitLog = 0; /* Do not make logfile entries if true */ static int useHttps = 0; /* True to use HTTPS: instead of HTTP: */ static char *zHttp = "http"; /* http or https */ static int useTimeout = 1; /* True to use times */ /* ** Change every space or unprintable character in the zAgent[] string ** into an _. ** ** If the user agent string contains certain prohibited string, then ** exit immediately. | > > | 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | static time_t beginTime; /* Time when this process starts */ static int closeConnection = 0; /* True to send Connection: close in reply */ static int nRequest = 0; /* Number of requests processed */ static int omitLog = 0; /* Do not make logfile entries if true */ static int useHttps = 0; /* True to use HTTPS: instead of HTTP: */ static char *zHttp = "http"; /* http or https */ static int useTimeout = 1; /* True to use times */ static int ipv6Only = 0; /* Use IPv6 only */ static int ipv4Only = 0; /* Use IPv4 only */ /* ** Change every space or unprintable character in the zAgent[] string ** into an _. ** ** If the user agent string contains certain prohibited string, then ** exit immediately. |
︙ | ︙ | |||
1502 1503 1504 1505 1506 1507 1508 | struct addrinfo sHints; /* Address hints */ struct addrinfo *pAddrs, *p; /* */ int rc; /* Result code */ int i, n; int maxFd = -1; memset(&sHints, 0, sizeof(sHints)); | > | > > > > > > > > > > > > > > > | 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 | struct addrinfo sHints; /* Address hints */ struct addrinfo *pAddrs, *p; /* */ int rc; /* Result code */ int i, n; int maxFd = -1; memset(&sHints, 0, sizeof(sHints)); if( ipv4Only ){ sHints.ai_family = PF_INET; /*printf("ipv4 only\n");*/ }else if( ipv6Only ){ sHints.ai_family = PF_INET6; /*printf("ipv6 only\n");*/ }else{ sHints.ai_family = PF_UNSPEC; } sHints.ai_socktype = SOCK_STREAM; sHints.ai_flags = AI_PASSIVE; sHints.ai_protocol = 0; rc = getaddrinfo(localOnly ? "localhost": 0, zPort, &sHints, &pAddrs); if( rc ){ fprintf(stderr, "could not get addr info: %s", rc!=EAI_SYSTEM ? gai_strerror(rc) : strerror(errno)); return 1; } for(n=0, p=pAddrs; n<sizeof(listener)/sizeof(listener[0]) && p!=0; p=p->ai_next){ listener[n] = socket(p->ai_family, p->ai_socktype, p->ai_protocol); if( listener[n]>=0 ){ /* if we can't terminate nicely, at least allow the socket to be reused */ setsockopt(listener[n], SOL_SOCKET, SO_REUSEADDR,&opt, sizeof(opt)); #if defined(IPV6_V6ONLY) if( p->ai_family==AF_INET6 ){ int v6only = 1; setsockopt(listener[n], IPPROTO_IPV6, IPV6_V6ONLY, &v6only, sizeof(v6only)); } #endif if( bind(listener[n], p->ai_addr, p->ai_addrlen)<0 ){ printf("bind failed: %s\n", strerror(errno)); close(listener[n]); continue; } if( listen(listener[n], 20)<0 ){ |
︙ | ︙ | |||
1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 | }else if( strcmp(z,"-logfile")==0 ){ zLogFile = zArg; }else if( strcmp(z,"-https")==0 ){ useHttps = atoi(zArg); zHttp = useHttps ? "http" : "https"; }else if( strcmp(z, "-port")==0 ){ zPort = zArg; }else if( strcmp(z, "-jail")==0 ){ if( atoi(zArg)==0 ){ useChrootJail = 0; } }else if( strcmp(z, "-debug")==0 ){ if( atoi(zArg) ){ useTimeout = 0; | > > > > > > > > | 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 | }else if( strcmp(z,"-logfile")==0 ){ zLogFile = zArg; }else if( strcmp(z,"-https")==0 ){ useHttps = atoi(zArg); zHttp = useHttps ? "http" : "https"; }else if( strcmp(z, "-port")==0 ){ zPort = zArg; }else if( strcmp(z, "-family")==0 ){ if( strcmp(zArg, "ipv4")==0 ){ ipv4Only = 1; }else if( strcmp(zArg, "ipv6")==0 ){ ipv6Only = 1; }else{ Malfunction(__LINE__, "unknown IP protocol: [%s]", zArg); } }else if( strcmp(z, "-jail")==0 ){ if( atoi(zArg)==0 ){ useChrootJail = 0; } }else if( strcmp(z, "-debug")==0 ){ if( atoi(zArg) ){ useTimeout = 0; |
︙ | ︙ |