mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-10 00:57:02 +02:00
MINOR: use DISGUISE() everywhere we deliberately want to ignore a result
It's more generic and versatile than the previous shut_your_big_mouth_gcc() that was used to silence annoying warnings as it's not limited to ignoring syscalls returns only. This allows us to get rid of the aforementioned function and the shut_your_big_mouth_gcc_int variable, that started to look ugly in multi-threaded environments.
This commit is contained in:
parent
15ed69fd3f
commit
2e8ab6b560
@ -1339,19 +1339,6 @@ void debug_hexdump(FILE *out, const char *pfx, const char *buf, unsigned int bas
|
|||||||
__attribute__((format(printf, 1, 2)))
|
__attribute__((format(printf, 1, 2)))
|
||||||
void calltrace(char *fmt, ...);
|
void calltrace(char *fmt, ...);
|
||||||
|
|
||||||
/* used from everywhere just to drain results we don't want to read and which
|
|
||||||
* recent versions of gcc increasingly and annoyingly complain about.
|
|
||||||
*/
|
|
||||||
extern int shut_your_big_mouth_gcc_int;
|
|
||||||
|
|
||||||
/* used from everywhere just to drain results we don't want to read and which
|
|
||||||
* recent versions of gcc increasingly and annoyingly complain about.
|
|
||||||
*/
|
|
||||||
static inline void shut_your_big_mouth_gcc(int r)
|
|
||||||
{
|
|
||||||
shut_your_big_mouth_gcc_int = r;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* same as strstr() but case-insensitive */
|
/* same as strstr() but case-insensitive */
|
||||||
const char *strnistr(const char *str1, int len_str1, const char *str2, int len_str2);
|
const char *strnistr(const char *str1, int len_str1, const char *str2, int len_str2);
|
||||||
|
|
||||||
|
@ -436,7 +436,7 @@ static inline void wake_thread(int tid)
|
|||||||
{
|
{
|
||||||
char c = 'c';
|
char c = 'c';
|
||||||
|
|
||||||
shut_your_big_mouth_gcc(write(poller_wr_pipe[tid], &c, 1));
|
DISGUISE(write(poller_wr_pipe[tid], &c, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -263,7 +263,7 @@ void ha_panic()
|
|||||||
chunk_reset(&trash);
|
chunk_reset(&trash);
|
||||||
chunk_appendf(&trash, "Thread %u is about to kill the process.\n", tid + 1);
|
chunk_appendf(&trash, "Thread %u is about to kill the process.\n", tid + 1);
|
||||||
ha_thread_dump_all_to_trash();
|
ha_thread_dump_all_to_trash();
|
||||||
shut_your_big_mouth_gcc(write(2, trash.area, trash.data));
|
DISGUISE(write(2, trash.area, trash.data));
|
||||||
for (;;)
|
for (;;)
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
@ -134,7 +134,7 @@ int frontend_accept(struct stream *s)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
shut_your_big_mouth_gcc(write(1, trash.area, trash.data));
|
DISGUISE(write(1, trash.area, trash.data));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fe->mode == PR_MODE_HTTP)
|
if (fe->mode == PR_MODE_HTTP)
|
||||||
|
@ -225,11 +225,6 @@ const struct linger nolinger = { .l_onoff = 1, .l_linger = 0 };
|
|||||||
char hostname[MAX_HOSTNAME_LEN];
|
char hostname[MAX_HOSTNAME_LEN];
|
||||||
char localpeer[MAX_HOSTNAME_LEN];
|
char localpeer[MAX_HOSTNAME_LEN];
|
||||||
|
|
||||||
/* used from everywhere just to drain results we don't want to read and which
|
|
||||||
* recent versions of gcc increasingly and annoyingly complain about.
|
|
||||||
*/
|
|
||||||
int shut_your_big_mouth_gcc_int = 0;
|
|
||||||
|
|
||||||
static char **next_argv = NULL;
|
static char **next_argv = NULL;
|
||||||
|
|
||||||
struct list proc_list = LIST_HEAD_INIT(proc_list);
|
struct list proc_list = LIST_HEAD_INIT(proc_list);
|
||||||
@ -3323,7 +3318,7 @@ int main(int argc, char **argv)
|
|||||||
char pidstr[100];
|
char pidstr[100];
|
||||||
snprintf(pidstr, sizeof(pidstr), "%d\n", (int)getpid());
|
snprintf(pidstr, sizeof(pidstr), "%d\n", (int)getpid());
|
||||||
if (pidfd >= 0)
|
if (pidfd >= 0)
|
||||||
shut_your_big_mouth_gcc(write(pidfd, pidstr, strlen(pidstr)));
|
DISGUISE(write(pidfd, pidstr, strlen(pidstr)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* the father launches the required number of processes */
|
/* the father launches the required number of processes */
|
||||||
@ -3344,7 +3339,7 @@ int main(int argc, char **argv)
|
|||||||
if (pidfd >= 0 && !(global.mode & MODE_MWORKER)) {
|
if (pidfd >= 0 && !(global.mode & MODE_MWORKER)) {
|
||||||
char pidstr[100];
|
char pidstr[100];
|
||||||
snprintf(pidstr, sizeof(pidstr), "%d\n", ret);
|
snprintf(pidstr, sizeof(pidstr), "%d\n", ret);
|
||||||
shut_your_big_mouth_gcc(write(pidfd, pidstr, strlen(pidstr)));
|
DISGUISE(write(pidfd, pidstr, strlen(pidstr)));
|
||||||
}
|
}
|
||||||
if (global.mode & MODE_MWORKER) {
|
if (global.mode & MODE_MWORKER) {
|
||||||
struct mworker_proc *child;
|
struct mworker_proc *child;
|
||||||
|
@ -4973,7 +4973,7 @@ static void http_debug_stline(const char *dir, struct stream *s, const struct ht
|
|||||||
chunk_memcat(&trash, HTX_SL_P3_PTR(sl), max);
|
chunk_memcat(&trash, HTX_SL_P3_PTR(sl), max);
|
||||||
trash.area[trash.data++] = '\n';
|
trash.area[trash.data++] = '\n';
|
||||||
|
|
||||||
shut_your_big_mouth_gcc(write(1, trash.area, trash.data));
|
DISGUISE(write(1, trash.area, trash.data));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -5000,7 +5000,7 @@ static void http_debug_hdr(const char *dir, struct stream *s, const struct ist n
|
|||||||
chunk_memcat(&trash, v.ptr, max);
|
chunk_memcat(&trash, v.ptr, max);
|
||||||
trash.area[trash.data++] = '\n';
|
trash.area[trash.data++] = '\n';
|
||||||
|
|
||||||
shut_your_big_mouth_gcc(write(1, trash.area, trash.data));
|
DISGUISE(write(1, trash.area, trash.data));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate a new HTTP transaction for stream <s> unless there is one already.
|
/* Allocate a new HTTP transaction for stream <s> unless there is one already.
|
||||||
|
@ -2300,7 +2300,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
|||||||
s->uniq_id, s->be->id,
|
s->uniq_id, s->be->id,
|
||||||
objt_cs(si_f->end) ? (unsigned short)objt_cs(si_f->end)->conn->handle.fd : -1,
|
objt_cs(si_f->end) ? (unsigned short)objt_cs(si_f->end)->conn->handle.fd : -1,
|
||||||
objt_cs(si_b->end) ? (unsigned short)objt_cs(si_b->end)->conn->handle.fd : -1);
|
objt_cs(si_b->end) ? (unsigned short)objt_cs(si_b->end)->conn->handle.fd : -1);
|
||||||
shut_your_big_mouth_gcc(write(1, trash.area, trash.data));
|
DISGUISE(write(1, trash.area, trash.data));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (si_f->state == SI_ST_CLO &&
|
if (si_f->state == SI_ST_CLO &&
|
||||||
@ -2309,7 +2309,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
|||||||
s->uniq_id, s->be->id,
|
s->uniq_id, s->be->id,
|
||||||
objt_cs(si_f->end) ? (unsigned short)objt_cs(si_f->end)->conn->handle.fd : -1,
|
objt_cs(si_f->end) ? (unsigned short)objt_cs(si_f->end)->conn->handle.fd : -1,
|
||||||
objt_cs(si_b->end) ? (unsigned short)objt_cs(si_b->end)->conn->handle.fd : -1);
|
objt_cs(si_b->end) ? (unsigned short)objt_cs(si_b->end)->conn->handle.fd : -1);
|
||||||
shut_your_big_mouth_gcc(write(1, trash.area, trash.data));
|
DISGUISE(write(1, trash.area, trash.data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2376,7 +2376,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
|||||||
s->uniq_id, s->be->id,
|
s->uniq_id, s->be->id,
|
||||||
objt_cs(si_f->end) ? (unsigned short)objt_cs(si_f->end)->conn->handle.fd : -1,
|
objt_cs(si_f->end) ? (unsigned short)objt_cs(si_f->end)->conn->handle.fd : -1,
|
||||||
objt_cs(si_b->end) ? (unsigned short)objt_cs(si_b->end)->conn->handle.fd : -1);
|
objt_cs(si_b->end) ? (unsigned short)objt_cs(si_b->end)->conn->handle.fd : -1);
|
||||||
shut_your_big_mouth_gcc(write(1, trash.area, trash.data));
|
DISGUISE(write(1, trash.area, trash.data));
|
||||||
}
|
}
|
||||||
|
|
||||||
s->logs.t_close = tv_ms_elapsed(&s->logs.tv_accept, &now);
|
s->logs.t_close = tv_ms_elapsed(&s->logs.tv_accept, &now);
|
||||||
|
Loading…
Reference in New Issue
Block a user