Fixes for QNX, mostly related to sscanf().
/*
- * $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
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)
{
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) {
/*
- * $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
void
_db_print(const char *format,...)
{
+#if defined(__QNX__)
+ va_list eargs;
+#endif
va_list args;
#else
void
#ifdef __STDC__
va_start(args, format);
+#if defined(__QNX__)
+ va_start(eargs, format);
+#endif
#else
va_start(args);
format = va_arg(args, const char *);
}
#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);
}
/*
- * $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
#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)
{
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]);
}
/* 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], "<dir>")) {
p->type = 'd';
/*
- * $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
(*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) {
/*
- * $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
*
#define assert(X) ((void)0)
#endif
+#if defined(__QNX__)
+#include <unix.h>
+#endif
+
/*
* We require poll.h before using poll(). If the symbols used
* by poll() are defined elsewhere, we will need to make this