int *wfd;
unsigned werr; /* valid after WRK_Flush() */
struct iovec iov[MAX_IOVS];
- unsigned niov;
- size_t liov;
+ int niov;
+ ssize_t liov;
struct VCL_conf *vcl;
struct srcaddr *srcaddr;
void HSH_Init(void);
/* cache_http.c */
-const char *http_StatusMessage(int);
+const char *http_StatusMessage(unsigned);
void HTTP_Init(void);
void http_ClrHeader(struct http *to);
unsigned http_Write(struct worker *w, const struct http *hp, int resp);
socklen_t l;
struct sockaddr_storage addr_s;
struct sockaddr *addr;
- int i, j;
+ int i;
struct pollfd *pfd;
struct listen_sock *ls;
+ unsigned u;
(void)arg;
&tv_rcvtimeo, sizeof tv_rcvtimeo));
}
i = poll(pfd, heritage.nsocks, 1000);
- for (j = 0; j < heritage.nsocks; j++) {
- if (pfd[j].revents == 0)
+ for (u = 0; u < heritage.nsocks; u++) {
+ if (pfd[u].revents == 0)
continue;
VSL_stats->client_conn++;
l = sizeof addr_s;
addr = (void*)&addr_s;
- i = accept(pfd[j].fd, addr, &l);
+ i = accept(pfd[u].fd, addr, &l);
if (i < 0) {
if (errno != EAGAIN) {
- VSL(SLT_Debug, pfd[j].fd,
+ VSL(SLT_Debug, pfd[u].fd,
"Accept failed errno=%d", errno);
/* XXX: stats ? */
}
/*--------------------------------------------------------------------*/
static void
-vca_pollspace(int fd)
+vca_pollspace(unsigned fd)
{
struct pollfd *p;
unsigned u, v;
static void
vca_poll(int fd)
{
- vca_pollspace(fd);
+
+ assert(fd >= 0);
+ vca_pollspace((unsigned)fd);
pollfd[fd].fd = fd;
pollfd[fd].events = POLLIN;
}
static void
vca_unpoll(int fd)
{
- vca_pollspace(fd);
+
+ assert(fd >= 0);
+ vca_pollspace((unsigned)fd);
pollfd[fd].fd = -1;
pollfd[fd].events = 0;
}
for (n = 1; n < 5; n++) {
vc = ber_nextfd(sp);
if (vc == NULL) {
- usleep(100000 * n);
+ AZ(usleep(100000 * n));
continue;
}
assert(vc->fd >= 0);
break;
VTAILQ_REMOVE(&bs->connlist, vbe, list);
if (vbe->fd >= 0)
- close(vbe->fd);
+ AZ(close(vbe->fd));
free(vbe);
}
bstmp = bs;
for (n = 1; n < 5; n++) {
vc = brr_nextfd(sp);
if (vc == NULL) {
- usleep(100000 * n);
+ AZ(usleep(100000 * n));
continue;
}
assert(vc->fd >= 0);
break;
VTAILQ_REMOVE(&bs->connlist, vbe, list);
if (vbe->fd >= 0)
- close(vbe->fd);
+ AZ(close(vbe->fd));
free(vbe);
}
bstmp = bs;
{
int i;
unsigned char *p;
- off_t cl;
+ uintmax_t cll;
+ unsigned cl;
struct storage *st;
- cl = strtoumax(b, NULL, 0);
- if (cl == 0)
+ cll = strtoumax(b, NULL, 0);
+ if (cll == 0)
return (0);
+ cl = (unsigned)cll;
+ assert((uintmax_t)cl == cll); /* Protect against bogusly large values */
+
st = STV_alloc(sp, cl);
VTAILQ_INSERT_TAIL(&sp->obj->store, st, list);
st->len = cl;
int i;
char *q;
struct storage *st;
- unsigned u, v;
+ unsigned u, v, w;
char buf[20]; /* XXX: arbitrary */
char *bp, *be;
v = u;
/* Handle anything left in our buffer first */
- i = pdiff(q, bp);
- assert(i >= 0);
- if (i > v)
- i = v;
- if (i != 0) {
- memcpy(st->ptr + st->len, q, i);
- st->len += i;
- sp->obj->len += i;
- u -= i;
- v -= i;
- q += i;
+ w = pdiff(q, bp);
+ if (w > v)
+ w = v;
+ if (w != 0) {
+ memcpy(st->ptr + st->len, q, w);
+ st->len += w;
+ sp->obj->len += w;
+ u -= w;
+ v -= w;
+ q += w;
}
if (u == 0)
break;
struct http *hp, *hp2;
struct storage *st;
struct bereq *bereq;
- int len, mklen, is_head;
+ int mklen, is_head;
+ unsigned len;
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
CHECK_OBJ_NOTNULL(sp->wrk, WORKER_MAGIC);
}
static void
-WSLH(struct worker *w, enum httptag t, int fd, const struct http *hp, int hdr)
+WSLH(struct worker *w, enum httptag t, int fd, const struct http *hp, unsigned hdr)
{
WSLR(w, http2shmlog(hp, t), fd, hp->hd[hdr].b, hp->hd[hdr].e);
};
const char *
-http_StatusMessage(int status)
+http_StatusMessage(unsigned status)
{
struct http_msg *mp;
http_GetHdrField(const struct http *hp, const char *hdr, const char *field, char **ptr)
{
char *h;
- int fl;
+ unsigned fl;
if (!http_GetHdr(hp, hdr, &h))
return (0);
{
struct http *hp = sp->http;
char *p, *q;
- int i;
unsigned u;
if (!http_GetHdr(hp, H_Connection, &p)) {
for (q = p + 1; *q; q++)
if (*q == ',' || isspace(*q))
break;
- i = pdiff(p, q);
- if (i == 5 && !strncasecmp(p, "close", i))
+ u = pdiff(p, q);
+ if (u == 5 && !strncasecmp(p, "close", u))
sp->doclose = "Connection: close";
- u = http_findhdr(hp, i, p);
+ u = http_findhdr(hp, u, p);
if (u != 0)
hp->hdf[u] |= HDF_FILTER;
if (!*q)
http_Read(struct http *hp, int fd, void *p, unsigned len)
{
int i;
- int u;
+ unsigned u;
char *b = p;
u = 0;
hp->pl_s = hp->pl_e = NULL;
if (len > 0) {
i = read(fd, b, len);
- if (i < 0)
+ if (i < 0) /* XXX i == 0 ?? */
return (i);
u += i;
}
http_PutField(struct worker *w, int fd, struct http *to, int field, const char *string)
{
char *p;
- int l;
+ unsigned l;
CHECK_OBJ_NOTNULL(to, HTTP_MAGIC);
l = strlen(string);
unsigned
WRK_Flush(struct worker *w)
{
- int i;
+ ssize_t i;
CHECK_OBJ_NOTNULL(w, WORKER_MAGIC);
if (*w->wfd < 0 || w->niov == 0 || w->werr)
if (len == -1)
len = strlen(ptr);
if (w->niov == MAX_IOVS)
- WRK_Flush(w);
+ (void)WRK_Flush(w);
w->iov[w->niov].iov_base = (void*)(uintptr_t)ptr;
w->iov[w->niov].iov_len = len;
w->liov += len;
(void)priv;
while (1) {
wrk_addpools(params->wthread_pools);
- sleep(1);
+ AZ(sleep(1));
if (VSL_stats->n_wrk <= params->wthread_min)
continue;
now = TIM_real();
assert(1 == write(w->pipe[1], w, 1));
}
}
- INCOMPL();
}
/*--------------------------------------------------------------------*/
-emacro(740, VTAILQ_LAST) // Unusual pointer cast (incompatible indirect types)
-emacro((826), VTAILQ_PREV) // Suspicious pointer-to-pointer conversion (area too small)
-emacro((826), VTAILQ_LAST) // Suspicious pointer-to-pointer conversion (area too small)
+-emacro(506, VTAILQ_FOREACH_SAFE) // constant value boolean
-esym(534, sprintf) // Ignoring return value of function
-esym(534, asprintf) // Ignoring return value of function
/* Sockets from which to accept connections */
struct listen_sock_head socks;
- int nsocks;
+ unsigned nsocks;
/* Share memory log fd and size (incl header) */
int vsl_fd;
};
static struct evsig *ev_sigs;
-static unsigned ev_nsig;
+static int ev_nsig;
struct evbase {
unsigned magic;
csrc = VCC_Compile(sb, b, e);
if (csrc != NULL) {
if (C_flag)
- fputs(csrc, stdout);
+ (void)fputs(csrc, stdout);
vf = mgt_CallCc(csrc, sb);
if (C_flag && vf != NULL)
AZ(unlink(vf));
free(p);
return;
}
- mgt_vcc_add(av[2], vf);
+ (void)mgt_vcc_add(av[2], vf);
}
void
free(p);
return;
}
- mgt_vcc_add(av[2], vf);
+ (void)mgt_vcc_add(av[2], vf);
}
static struct vclprog *
static int
cmp_hash(const struct hash_slinger *s, const char *p, const char *q)
{
- if (strlen(s->name) != q - p)
+ if (strlen(s->name) != (q - p))
return (1);
- if (strncmp(s->name, p, q - p))
+ if (strncmp(s->name, p, (q - p)))
return (1);
return (0);
}
/* close the rest */
for (i = 5; i < getdtablesize(); i++)
- close(i);
+ (void)close(i);
pfd[0].fd = pipes[0][0];
pfd[0].events = POLLIN;