From c919dc66a30e94826672be28ba844a6e27df2bd5 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 26 Oct 2012 17:35:22 +0200 Subject: [PATCH] CLEANUP: remove trashlen trashlen is a copy of global.tune.bufsize, so let's stop using it as a duplicate, fall back to the original bufsize, it's less confusing this way. --- include/types/global.h | 1 - src/acl.c | 2 +- src/cfgparse.c | 9 ++++----- src/checks.c | 10 +++++----- src/connection.c | 4 ++-- src/dumpstats.c | 22 +++++++++++----------- src/haproxy.c | 10 +++++----- src/peers.c | 24 ++++++++++++------------ src/proto_http.c | 14 +++++++------- src/session.c | 2 +- src/ssl_sock.c | 4 ++-- src/stream_interface.c | 2 +- 12 files changed, 51 insertions(+), 53 deletions(-) diff --git a/include/types/global.h b/include/types/global.h index d7c6cfd477..3da65f515f 100644 --- a/include/types/global.h +++ b/include/types/global.h @@ -132,7 +132,6 @@ extern int actconn; /* # of active sessions */ extern int listeners; extern int jobs; /* # of active jobs */ extern char *trash; -extern int trashlen; extern char *swap_buffer; extern int nb_oldpids; /* contains the number of old pids found */ extern const int zero; diff --git a/src/acl.c b/src/acl.c index ef9630c89d..30a6d2d3d9 100644 --- a/src/acl.c +++ b/src/acl.c @@ -1308,7 +1308,7 @@ static int acl_read_patterns_from_file( struct acl_keyword *aclkw, opaque = 0; pattern = NULL; args[1] = ""; - while (fgets(trash, trashlen, file) != NULL) { + while (fgets(trash, global.tune.bufsize, file) != NULL) { line++; c = trash; diff --git a/src/cfgparse.c b/src/cfgparse.c index c6138fd72b..971371d18a 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -582,8 +582,7 @@ int cfg_parse_global(const char *file, int linenum, char **args, int kwm) global.tune.bufsize = atol(args[1]); if (global.tune.maxrewrite >= global.tune.bufsize / 2) global.tune.maxrewrite = global.tune.bufsize / 2; - trashlen = global.tune.bufsize; - trash = realloc(trash, trashlen); + trash = realloc(trash, global.tune.bufsize); } else if (!strcmp(args[0], "tune.maxrewrite")) { if (*(args[1]) == 0) { @@ -1102,7 +1101,7 @@ int cfg_parse_global(const char *file, int linenum, char **args, int kwm) continue; if (strcmp(kwl->kw[index].kw, args[0]) == 0) { /* prepare error message just in case */ - snprintf(trash, trashlen, + snprintf(trash, global.tune.bufsize, "error near '%s' in '%s' section", args[0], "global"); rc = kwl->kw[index].parse(args, CFG_GLOBAL, NULL, NULL, file, linenum, &errmsg); if (rc < 0) { @@ -2929,7 +2928,7 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm) goto out; } - expr = sample_parse_expr(args, &myidx, trash, trashlen); + expr = sample_parse_expr(args, &myidx, trash, global.tune.bufsize); if (!expr) { Alert("parsing [%s:%d] : '%s': %s\n", file, linenum, args[0], trash); err_code |= ERR_ALERT | ERR_FATAL; @@ -5306,7 +5305,7 @@ stats_error_parsing: continue; if (strcmp(kwl->kw[index].kw, args[0]) == 0) { /* prepare error message just in case */ - snprintf(trash, trashlen, + snprintf(trash, global.tune.bufsize, "error near '%s' in %s section", args[0], cursection); rc = kwl->kw[index].parse(args, CFG_LISTEN, curproxy, &defproxy, file, linenum, &errmsg); if (rc < 0) { diff --git a/src/checks.c b/src/checks.c index 326ffde5b4..0c385cae57 100644 --- a/src/checks.c +++ b/src/checks.c @@ -238,7 +238,7 @@ static void set_server_check_status(struct server *s, short status, char *desc) int health, rise, fall, state; - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); /* FIXME begin: calculate local version of the health/rise/fall/state */ health = s->health; @@ -418,7 +418,7 @@ void set_server_down(struct server *s) */ xferred = redistribute_pending(s); - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); if (s->state & SRV_MAINTAIN) { chunk_printf(&msg, @@ -510,7 +510,7 @@ void set_server_up(struct server *s) { */ xferred = check_for_pending(s); - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); if (old_state & SRV_MAINTAIN) { chunk_printf(&msg, @@ -557,7 +557,7 @@ static void set_server_disabled(struct server *s) { */ xferred = redistribute_pending(s); - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); chunk_printf(&msg, "Load-balancing on %sServer %s/%s is disabled", @@ -594,7 +594,7 @@ static void set_server_enabled(struct server *s) { */ xferred = check_for_pending(s); - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); chunk_printf(&msg, "Load-balancing on %sServer %s/%s is enabled again", diff --git a/src/connection.c b/src/connection.c index 08b53ae3e3..310e0da3a4 100644 --- a/src/connection.c +++ b/src/connection.c @@ -280,7 +280,7 @@ int conn_recv_proxy(struct connection *conn, int flag) goto fail; do { - len = recv(conn->t.sock.fd, trash, trashlen, MSG_PEEK); + len = recv(conn->t.sock.fd, trash, global.tune.bufsize, MSG_PEEK); if (len < 0) { if (errno == EINTR) continue; @@ -548,7 +548,7 @@ int conn_local_send_proxy(struct connection *conn, unsigned int flag) if (!(conn->flags & CO_FL_ADDR_TO_SET)) goto out_error; - len = make_proxy_line(trash, trashlen, &conn->addr.from, &conn->addr.to); + len = make_proxy_line(trash, global.tune.bufsize, &conn->addr.from, &conn->addr.to); if (!len) goto out_error; diff --git a/src/dumpstats.c b/src/dumpstats.c index d0f0345db5..21517becba 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -599,7 +599,7 @@ static void stats_sock_table_key_request(struct stream_interface *si, char **arg case STAT_CLI_O_TAB: if (!ts) return; - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); if (!stats_dump_table_head_to_buffer(&msg, si, px, px)) return; stats_dump_table_entry_to_buffer(&msg, si, px, ts); @@ -1026,7 +1026,7 @@ static int stats_sock_parse_request(struct stream_interface *si, char *line) } /* return server's effective weight at the moment */ - snprintf(trash, trashlen, "%d (initial %d)\n", sv->uweight, sv->iweight); + snprintf(trash, global.tune.bufsize, "%d (initial %d)\n", sv->uweight, sv->iweight); bi_putstr(si->ib, trash); return 1; } @@ -1495,7 +1495,7 @@ static void cli_io_handler(struct stream_interface *si) if (buffer_almost_full(si->ib->buf)) break; - reql = bo_getline(si->ob, trash, trashlen); + reql = bo_getline(si->ob, trash, global.tune.bufsize); if (reql <= 0) { /* closed or EOL not found */ if (reql == 0) break; @@ -1668,7 +1668,7 @@ static int stats_dump_raw_to_buffer(struct stream_interface *si) struct chunk msg; unsigned int up; - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); switch (si->conn.xprt_st) { case STAT_ST_INIT: @@ -1784,7 +1784,7 @@ static int stats_http_redir(struct stream_interface *si, struct uri_auth *uri) struct session *s = si->conn.xprt_ctx; struct chunk msg; - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); switch (si->conn.xprt_st) { case STAT_ST_INIT: @@ -1888,7 +1888,7 @@ static int stats_dump_http(struct stream_interface *si, struct uri_auth *uri) struct chunk msg; unsigned int up; - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); switch (si->conn.xprt_st) { case STAT_ST_INIT: @@ -2258,7 +2258,7 @@ static int stats_dump_proxy(struct stream_interface *si, struct proxy *px, struc struct listener *l; struct chunk msg; - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); switch (si->applet.ctx.stats.px_st) { case STAT_PX_ST_INIT: @@ -3315,7 +3315,7 @@ static int stats_dump_full_sess_to_buffer(struct stream_interface *si) extern const char *monthname[12]; char pn[INET6_ADDRSTRLEN]; - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); sess = si->applet.ctx.sess.target; if (si->applet.ctx.sess.section > 0 && si->applet.ctx.sess.uid != sess->uniq_id) { @@ -3569,7 +3569,7 @@ static int stats_dump_sess_to_buffer(struct stream_interface *si) return 1; } - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); switch (si->conn.xprt_st) { case STAT_ST_INIT: @@ -3790,7 +3790,7 @@ static int stats_table_request(struct stream_interface *si, bool show) return 1; } - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); while (si->conn.xprt_st != STAT_ST_FIN) { switch (si->conn.xprt_st) { @@ -3985,7 +3985,7 @@ static int stats_dump_errors_to_buffer(struct stream_interface *si) if (unlikely(si->ib->flags & (CF_WRITE_ERROR|CF_SHUTW))) return 1; - chunk_init(&msg, trash, trashlen); + chunk_init(&msg, trash, global.tune.bufsize); if (!si->applet.ctx.errors.px) { /* the function had not been called yet, let's prepare the diff --git a/src/haproxy.c b/src/haproxy.c index 74c1e5b68e..6d00438bb7 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -345,7 +345,7 @@ void sig_dump_state(struct sig_handler *sh) send_log(p, LOG_NOTICE, "SIGHUP received, dumping servers states for proxy %s.\n", p->id); while (s) { - snprintf(trash, trashlen, + snprintf(trash, global.tune.bufsize, "SIGHUP: Server %s/%s is %s. Conn: %d act, %d pend, %lld tot.", p->id, s->id, (s->state & SRV_RUNNING) ? "UP" : "DOWN", @@ -357,18 +357,18 @@ void sig_dump_state(struct sig_handler *sh) /* FIXME: those info are a bit outdated. We should be able to distinguish between FE and BE. */ if (!p->srv) { - snprintf(trash, trashlen, + snprintf(trash, global.tune.bufsize, "SIGHUP: Proxy %s has no servers. Conn: act(FE+BE): %d+%d, %d pend (%d unass), tot(FE+BE): %lld+%lld.", p->id, p->feconn, p->beconn, p->totpend, p->nbpend, p->fe_counters.cum_conn, p->be_counters.cum_conn); } else if (p->srv_act == 0) { - snprintf(trash, trashlen, + snprintf(trash, global.tune.bufsize, "SIGHUP: Proxy %s %s ! Conn: act(FE+BE): %d+%d, %d pend (%d unass), tot(FE+BE): %lld+%lld.", p->id, (p->srv_bck) ? "is running on backup servers" : "has no server available", p->feconn, p->beconn, p->totpend, p->nbpend, p->fe_counters.cum_conn, p->be_counters.cum_conn); } else { - snprintf(trash, trashlen, + snprintf(trash, global.tune.bufsize, "SIGHUP: Proxy %s has %d active servers and %d backup servers available." " Conn: act(FE+BE): %d+%d, %d pend (%d unass), tot(FE+BE): %lld+%lld.", p->id, p->srv_act, p->srv_bck, @@ -402,7 +402,7 @@ void init(int argc, char **argv) char *progname; char *change_dir = NULL; - trash = malloc(trashlen); + trash = malloc(global.tune.bufsize); /* NB: POSIX does not make it mandatory for gethostname() to NULL-terminate * the string in case of truncation, and at least FreeBSD appears not to do diff --git a/src/peers.c b/src/peers.c index 2cf0e524f1..05baa02f88 100644 --- a/src/peers.c +++ b/src/peers.c @@ -230,7 +230,7 @@ switchstate: si->applet.st0 = PEER_SESSION_GETVERSION; /* fall through */ case PEER_SESSION_GETVERSION: - reql = bo_getline(si->ob, trash, trashlen); + reql = bo_getline(si->ob, trash, global.tune.bufsize); if (reql <= 0) { /* closed or EOL not found */ if (reql == 0) goto out; @@ -261,7 +261,7 @@ switchstate: si->applet.st0 = PEER_SESSION_GETHOST; /* fall through */ case PEER_SESSION_GETHOST: - reql = bo_getline(si->ob, trash, trashlen); + reql = bo_getline(si->ob, trash, global.tune.bufsize); if (reql <= 0) { /* closed or EOL not found */ if (reql == 0) goto out; @@ -291,7 +291,7 @@ switchstate: case PEER_SESSION_GETPEER: { struct peer *curpeer; char *p; - reql = bo_getline(si->ob, trash, trashlen); + reql = bo_getline(si->ob, trash, global.tune.bufsize); if (reql <= 0) { /* closed or EOL not found */ if (reql == 0) goto out; @@ -344,7 +344,7 @@ switchstate: size_t key_size; char *p; - reql = bo_getline(si->ob, trash, trashlen); + reql = bo_getline(si->ob, trash, global.tune.bufsize); if (reql <= 0) { /* closed or EOL not found */ if (reql == 0) goto out; @@ -445,7 +445,7 @@ switchstate: case PEER_SESSION_SENDSUCCESS:{ struct peer_session *ps = (struct peer_session *)si->conn.xprt_ctx; - repl = snprintf(trash, trashlen, "%d\n", PEER_SESSION_SUCCESSCODE); + repl = snprintf(trash, global.tune.bufsize, "%d\n", PEER_SESSION_SUCCESSCODE); repl = bi_putblk(si->ib, trash, repl); if (repl <= 0) { if (repl == -1) @@ -496,7 +496,7 @@ switchstate: struct peer_session *ps = (struct peer_session *)si->conn.xprt_ctx; /* Send headers */ - repl = snprintf(trash, trashlen, + repl = snprintf(trash, global.tune.bufsize, PEER_SESSION_PROTO_NAME " 1.0\n%s\n%s %d\n%s %lu %d\n", ps->peer->id, localpeer, @@ -505,7 +505,7 @@ switchstate: ps->table->table->type, (int)ps->table->table->key_size); - if (repl >= trashlen) { + if (repl >= global.tune.bufsize) { si->applet.st0 = PEER_SESSION_END; goto switchstate; } @@ -528,7 +528,7 @@ switchstate: if (si->ib->flags & CF_WRITE_PARTIAL) ps->statuscode = PEER_SESSION_CONNECTEDCODE; - reql = bo_getline(si->ob, trash, trashlen); + reql = bo_getline(si->ob, trash, global.tune.bufsize); if (reql <= 0) { /* closed or EOL not found */ if (reql == 0) goto out; @@ -903,7 +903,7 @@ incomplete: } ts = eb32_entry(eb, struct stksess, upd); - msglen = peer_prepare_datamsg(ts, ps, trash, trashlen); + msglen = peer_prepare_datamsg(ts, ps, trash, global.tune.bufsize); if (msglen) { /* message to buffer */ repl = bi_putblk(si->ib, trash, msglen); @@ -937,7 +937,7 @@ incomplete: } ts = eb32_entry(eb, struct stksess, upd); - msglen = peer_prepare_datamsg(ts, ps, trash, trashlen); + msglen = peer_prepare_datamsg(ts, ps, trash, global.tune.bufsize); if (msglen) { /* message to buffer */ repl = bi_putblk(si->ib, trash, msglen); @@ -995,7 +995,7 @@ incomplete: } ts = eb32_entry(eb, struct stksess, upd); - msglen = peer_prepare_datamsg(ts, ps, trash, trashlen); + msglen = peer_prepare_datamsg(ts, ps, trash, global.tune.bufsize); if (msglen) { /* message to buffer */ repl = bi_putblk(si->ib, trash, msglen); @@ -1015,7 +1015,7 @@ incomplete: goto out; } case PEER_SESSION_EXIT: - repl = snprintf(trash, trashlen, "%d\n", si->applet.st1); + repl = snprintf(trash, global.tune.bufsize, "%d\n", si->applet.st1); if (bi_putblk(si->ib, trash, repl) == -1) goto out; diff --git a/src/proto_http.c b/src/proto_http.c index 00340d7639..817ef8c4d0 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -391,14 +391,14 @@ const char http_is_ver_token[256] = { static void http_silent_debug(int line, struct session *s) { int size = 0; - size += snprintf(trash + size, trashlen - size, + size += snprintf(trash + size, global.tune.bufsize - size, "[%04d] req: p=%d(%d) s=%d bf=%08x an=%08x data=%p size=%d l=%d w=%p r=%p o=%p sm=%d fw=%ld tf=%08x\n", line, s->si[0].state, s->si[0].fd, s->txn.req.msg_state, s->req->flags, s->req->analysers, s->req->buf->data, s->req->buf->size, s->req->l, s->req->w, s->req->r, s->req->buf->p, s->req->buf->o, s->req->to_forward, s->txn.flags); write(-1, trash, size); size = 0; - size += snprintf(trash + size, trashlen - size, + size += snprintf(trash + size, global.tune.bufsize - size, " %04d rep: p=%d(%d) s=%d bf=%08x an=%08x data=%p size=%d l=%d w=%p r=%p o=%p sm=%d fw=%ld\n", line, s->si[1].state, s->si[1].fd, s->txn.rsp.msg_state, s->rep->flags, s->rep->analysers, @@ -769,7 +769,7 @@ void perform_http_redirect(struct session *s, struct stream_interface *si) /* 1: create the response header */ rdr.len = strlen(HTTP_302); rdr.str = trash; - rdr.size = trashlen; + rdr.size = global.tune.bufsize; memcpy(rdr.str, HTTP_302, rdr.len); srv = target_srv(&s->target); @@ -3099,7 +3099,7 @@ int http_process_req_common(struct session *s, struct channel *req, int an_bit, realm = do_stats?STATS_DEFAULT_REALM:px->id; sprintf(trash, (txn->flags & TX_USE_PX_CONN) ? HTTP_407_fmt : HTTP_401_fmt, realm); - chunk_initlen(&msg, trash, trashlen, strlen(trash)); + chunk_initlen(&msg, trash, global.tune.bufsize, strlen(trash)); txn->status = 401; stream_int_retnclose(req->prod, &msg); /* on 401 we still count one error, because normal browsing @@ -3207,7 +3207,7 @@ int http_process_req_common(struct session *s, struct channel *req, int an_bit, } if (ret) { - struct chunk rdr = { .str = trash, .size = trashlen, .len = 0 }; + struct chunk rdr = { .str = trash, .size = global.tune.bufsize, .len = 0 }; const char *msg_fmt; /* build redirect message */ @@ -3950,7 +3950,7 @@ int http_send_name_header(struct http_txn *txn, struct proxy* be, const char* sr hdr_val += hdr_name_len; *hdr_val++ = ':'; *hdr_val++ = ' '; - hdr_val += strlcpy2(hdr_val, srv_name, trash + trashlen - hdr_val); + hdr_val += strlcpy2(hdr_val, srv_name, trash + global.tune.bufsize - hdr_val); http_header_add_tail2(&txn->req, &txn->hdr_idx, trash, hdr_val - trash); if (old_o) { @@ -7654,7 +7654,7 @@ void debug_hdr(const char *dir, struct session *t, const char *start, const char if (start[max] == '\r' || start[max] == '\n') break; - UBOUND(max, trashlen - len - 3); + UBOUND(max, global.tune.bufsize - len - 3); len += strlcpy2(trash + len, start, max + 1); trash[len++] = '\n'; if (write(1, trash, len) < 0) /* shut gcc warning */; diff --git a/src/session.c b/src/session.c index f148cb8c20..1ac0cadcf1 100644 --- a/src/session.c +++ b/src/session.c @@ -152,7 +152,7 @@ int session_accept(struct listener *l, int cfd, struct sockaddr_storage *addr) * - HEALTH mode without HTTP check => just send "OK" * - TCP mode from monitoring address => just close */ - recv(cfd, trash, trashlen, MSG_DONTWAIT); + recv(cfd, trash, global.tune.bufsize, MSG_DONTWAIT); if (p->mode == PR_MODE_HTTP || (p->mode == PR_MODE_HEALTH && (p->options2 & PR_O2_CHK_ANY) == PR_O2_HTTP_CHK)) send(cfd, "HTTP/1.0 200 OK\r\n\r\n", 19, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_MORE); diff --git a/src/ssl_sock.c b/src/ssl_sock.c index 330f47a9ad..1c2c72db0a 100644 --- a/src/ssl_sock.c +++ b/src/ssl_sock.c @@ -173,7 +173,7 @@ static int ssl_sock_switchctx_cbk(SSL *ssl, int *al, struct bind_conf *s) if (!servername) return SSL_TLSEXT_ERR_NOACK; - for (i = 0; i < trashlen; i++) { + for (i = 0; i < global.tune.bufsize; i++) { if (!servername[i]) break; trash[i] = tolower(servername[i]); @@ -887,7 +887,7 @@ int ssl_sock_handshake(struct connection *conn, unsigned int flag) * TCP sockets. We first try to drain possibly pending * data to avoid this as much as possible. */ - ret = recv(conn->t.sock.fd, trash, trashlen, MSG_NOSIGNAL|MSG_DONTWAIT); + ret = recv(conn->t.sock.fd, trash, global.tune.bufsize, MSG_NOSIGNAL|MSG_DONTWAIT); goto out_error; } } diff --git a/src/stream_interface.c b/src/stream_interface.c index c74f453618..b3b095a0a9 100644 --- a/src/stream_interface.c +++ b/src/stream_interface.c @@ -507,7 +507,7 @@ int conn_si_send_proxy(struct connection *conn, unsigned int flag) * (which is recomputed every time since it's constant). If * it is positive, it means we have to send from the start. */ - ret = make_proxy_line(trash, trashlen, &si->ob->prod->conn.addr.from, &si->ob->prod->conn.addr.to); + ret = make_proxy_line(trash, global.tune.bufsize, &si->ob->prod->conn.addr.from, &si->ob->prod->conn.addr.to); if (!ret) goto out_error; -- 2.39.5