From: wessels <> Date: Tue, 6 Jan 1998 04:44:39 +0000 (+0000) Subject: From: "Jean-Claude MICHOT" X-Git-Tag: SQUID_3_0_PRE1~4252 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=75e5a32e85a041be70e9f8433522afcfcfcd4094;p=thirdparty%2Fsquid.git From: "Jean-Claude MICHOT" Fixes for QNX, mostly related to sscanf(). --- diff --git a/src/acl.cc b/src/acl.cc index 40ed184e6b..04038bc406 100644 --- a/src/acl.cc +++ b/src/acl.cc @@ -1,6 +1,6 @@ /* - * $Id: acl.cc,v 1.127 1998/01/02 23:39:54 wessels Exp $ + * $Id: acl.cc,v 1.128 1998/01/05 21:44:39 wessels Exp $ * * DEBUG: section 28 Access Control * AUTHOR: Duane Wessels @@ -304,6 +304,12 @@ decode_addr(const char *asc, struct in_addr *addr, struct in_addr *mask) return 1; } + +#define SCAN_ACL1 "%[0123456789.]-%[0123456789.]/%[0123456789.]" +#define SCAN_ACL2 "%[0123456789.]-%[0123456789.]" +#define SCAN_ACL3 "%[0123456789.]/%[0123456789.]" +#define SCAN_ACL4 "%[0123456789.]" + static struct _acl_ip_data * aclParseIpData(const char *t) { @@ -318,13 +324,13 @@ aclParseIpData(const char *t) q->mask.s_addr = 0; return q; } - if (sscanf(t, "%[0-9.]-%[0-9.]/%[0-9.]", addr1, addr2, mask) == 3) { + if (sscanf(t, SCAN_ACL1, addr1, addr2, mask) == 3) { (void) 0; - } else if (sscanf(t, "%[0-9.]-%[0-9.]", addr1, addr2) == 2) { + } else if (sscanf(t, SCAN_ACL2, addr1, addr2) == 2) { mask[0] = '\0'; - } else if (sscanf(t, "%[0-9.]/%[0-9.]", addr1, mask) == 2) { + } else if (sscanf(t, SCAN_ACL3, addr1, mask) == 2) { addr2[0] = '\0'; - } else if (sscanf(t, "%[0-9.]", addr1) == 1) { + } else if (sscanf(t, SCAN_ACL4, addr1) == 1) { addr2[0] = '\0'; mask[0] = '\0'; } else if (sscanf(t, "%[^/]/%s", addr1, mask) == 2) { diff --git a/src/debug.cc b/src/debug.cc index 32fd107e4b..b05ccb3131 100644 --- a/src/debug.cc +++ b/src/debug.cc @@ -1,6 +1,6 @@ /* - * $Id: debug.cc,v 1.54 1997/10/30 00:51:03 wessels Exp $ + * $Id: debug.cc,v 1.55 1998/01/05 21:44:40 wessels Exp $ * * DEBUG: section 0 Debug Routines * AUTHOR: Harvest Derived @@ -113,6 +113,9 @@ static char *accessLogTime(time_t); void _db_print(const char *format,...) { +#if defined(__QNX__) + va_list eargs; +#endif va_list args; #else void @@ -129,6 +132,9 @@ _db_print(va_alist) #ifdef __STDC__ va_start(args, format); +#if defined(__QNX__) + va_start(eargs, format); +#endif #else va_start(args); format = va_arg(args, const char *); @@ -149,11 +155,23 @@ _db_print(va_alist) } #endif /* HAVE_SYSLOG */ /* write to log file */ +#if defined(__QNX__) + vfprintf(debug_log, f, eargs); +#else vfprintf(debug_log, f, args); +#endif if (!Config.onoff.buffered_logs) fflush(debug_log); - if (opt_debug_stderr && debug_log != stderr) + if (opt_debug_stderr && debug_log != stderr) { +#if defined(__QNX__) + vfprintf(stderr, f, eargs); +#else vfprintf(stderr, f, args); +#endif + } +#if defined(__QNX__) + va_end(eargs); +#endif va_end(args); } diff --git a/src/ftp.cc b/src/ftp.cc index b269a66f5c..d4122dcda7 100644 --- a/src/ftp.cc +++ b/src/ftp.cc @@ -1,6 +1,6 @@ /* - * $Id: ftp.cc,v 1.183 1997/12/31 20:32:32 wessels Exp $ + * $Id: ftp.cc,v 1.184 1998/01/05 21:44:41 wessels Exp $ * * DEBUG: section 9 File Transfer Protocol (FTP) * AUTHOR: Harvest Derived @@ -355,6 +355,11 @@ ftpListPartsFree(ftpListParts ** parts) #define MAX_TOKENS 64 +#define SCAN_FTP1 "%[0123456789]" +#define SCAN_FTP2 "%[0123456789:]" +#define SCAN_FTP3 "%[0123456789]-%[0123456789]-%[0123456789]" +#define SCAN_FTP4 "%[0123456789]:%[0123456789]%[AaPp]%[Mm]" + static ftpListParts * ftpListParseParts(const char *buf, int flags) { @@ -382,11 +387,11 @@ ftpListParseParts(const char *buf, int flags) for (i = 3; i < n_tokens - 3; i++) { if (!is_month(tokens[i])) /* Month */ continue; - if (!sscanf(tokens[i - 1], "%[0-9]", sbuf)) /* Size */ + if (!sscanf(tokens[i - 1], SCAN_FTP1, sbuf)) /* Size */ continue; - if (!sscanf(tokens[i + 1], "%[0-9]", sbuf)) /* Day */ + if (!sscanf(tokens[i + 1], SCAN_FTP1, sbuf)) /* Day */ continue; - if (!sscanf(tokens[i + 2], "%[0-9:]", sbuf)) /* Yr | hh:mm */ + if (!sscanf(tokens[i + 2], SCAN_FTP2, sbuf)) /* Yr | hh:mm */ continue; p->type = *tokens[0]; p->size = atoi(tokens[i - 1]); @@ -417,9 +422,9 @@ ftpListParseParts(const char *buf, int flags) } /* try it as a DOS listing */ if (n_tokens > 3 && p->name == NULL && - sscanf(tokens[0], "%[0-9]-%[0-9]-%[0-9]", sbuf, sbuf, sbuf) == 3 && + sscanf(tokens[0], SCAN_FTP3, sbuf, sbuf, sbuf) == 3 && /* 04-05-70 */ - sscanf(tokens[1], "%[0-9]:%[0-9]%[AaPp]%[Mm]", sbuf, sbuf, sbuf, sbuf) == 4) { + sscanf(tokens[1], SCAN_FTP4, sbuf, sbuf, sbuf, sbuf) == 4) { /* 09:33PM */ if (!strcasecmp(tokens[2], "")) { p->type = 'd'; diff --git a/src/gopher.cc b/src/gopher.cc index fc9379c1d4..29dd070306 100644 --- a/src/gopher.cc +++ b/src/gopher.cc @@ -1,6 +1,6 @@ /* - * $Id: gopher.cc,v 1.116 1997/12/04 23:06:45 wessels Exp $ + * $Id: gopher.cc,v 1.117 1998/01/05 21:44:42 wessels Exp $ * * DEBUG: section 10 Gopher * AUTHOR: Harvest Derived @@ -273,8 +273,13 @@ gopher_url_parser(const char *url, char *host, int *port, char *type_id, char *r (*port) = 0; (*type_id) = 0; - t = sscanf(url, "%[a-zA-Z]://%[^/]/%c%s", proto, hostbuf, - type_id, request); + t = sscanf(url, +#if defined(__QNX__) + "%[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]://%[^/]/%c%s", +#else + "%[a-zA-Z]://%[^/]/%c%s", +#endif + proto, hostbuf, type_id, request); if ((t < 2) || strcasecmp(proto, "gopher")) { return -1; } else if (t == 2) { diff --git a/src/squid.h b/src/squid.h index 8086350c69..91486b1757 100644 --- a/src/squid.h +++ b/src/squid.h @@ -1,6 +1,6 @@ /* - * $Id: squid.h,v 1.150 1998/01/05 21:18:14 wessels Exp $ + * $Id: squid.h,v 1.151 1998/01/05 21:44:42 wessels Exp $ * * AUTHOR: Duane Wessels * @@ -170,6 +170,10 @@ #define assert(X) ((void)0) #endif +#if defined(__QNX__) +#include +#endif + /* * We require poll.h before using poll(). If the symbols used * by poll() are defined elsewhere, we will need to make this