Skip to content

Commit a8813fc

Browse files
committed
evcom upgrade - ignore sigpipe. remove error output.
1 parent a73998d commit a8813fc

File tree

5 files changed

+16
-4
lines changed

5 files changed

+16
-4
lines changed

deps/evcom/evcom.c

+10
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
#include <errno.h>
3333
#include <string.h> /* memset */
3434

35+
#include <signal.h>
36+
3537
#include <netinet/tcp.h> /* TCP_NODELAY */
3638
#include <sys/types.h>
3739
#include <sys/socket.h> /* shutdown */
@@ -135,6 +137,14 @@ evcom_buf_new (const char *base, size_t len)
135137
return buf;
136138
}
137139

140+
void evcom_ignore_sigpipe (void)
141+
{
142+
struct sigaction sa;
143+
bzero(&sa, sizeof(sa));
144+
sa.sa_handler = SIG_IGN;
145+
sigaction(SIGPIPE, &sa, NULL);
146+
}
147+
138148
static int
139149
close_asap (evcom_descriptor *d)
140150
{

deps/evcom/evcom.h

+3
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@ typedef struct evcom_server {
159159
(*on_connection)(struct evcom_server *, struct sockaddr *remote_addr);
160160
} evcom_server;
161161

162+
/* Highly recommended to ignore SIGPIPE! */
163+
void evcom_ignore_sigpipe (void);
164+
162165
void evcom_reader_init (evcom_reader*);
163166
void evcom_reader_set (evcom_reader*, int fd);
164167
void evcom_reader_attach (EV_P_ evcom_reader*);

deps/evcom/test/test.c

+2
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,8 @@ main (void)
776776
fprintf(stderr, "sizeof(evcom_reader): %d\n", (int)sizeof(evcom_reader));
777777
fprintf(stderr, "sizeof(evcom_writer): %d\n", (int)sizeof(evcom_writer));
778778

779+
evcom_ignore_sigpipe();
780+
779781
#if EVCOM_HAVE_GNUTLS
780782
gnutls_global_init();
781783

src/net.h

-4
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@ class Connection : public EventEmitter {
9595

9696
connection->OnClose();
9797

98-
if (s->errorno) {
99-
printf("socket died: %s\n", strerror(s->errorno));
100-
}
101-
10298
assert(connection->attached_);
10399

104100
connection->Detach();

src/node.cc

+1
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,7 @@ ParseArgs (int *argc, char **argv)
318318
int
319319
main (int argc, char *argv[])
320320
{
321+
evcom_ignore_sigpipe();
321322
ev_default_loop(EVFLAG_AUTO); // initialize the default ev loop.
322323

323324
// start eio thread pool

0 commit comments

Comments
 (0)