};
-static sig_atomic_t gotsig = 0;
+static volatile sig_atomic_t gotsig = 0;
static void sig_handler( int signum ){
gotsig = signum;
int c;
char confpath[PATH_MAX];
- signal( SIGINT, sig_handler );
- signal( SIGTERM, sig_handler );
- signal( SIGHUP, sig_handler );
+ signal( SIGHUP, sig_handler ); // 1
+ signal( SIGINT, sig_handler ); // 2
+ signal( SIGQUIT, sig_handler ); // 3
+ signal( SIGABRT, sig_handler ); // 6
+ signal( SIGTERM, sig_handler ); // 15
+ signal( SIGPIPE, SIG_IGN ); // better safe than sorry
cfg.user = strdup( getenv( "USER" ) ? getenv( "USER" ) : "" );
cfg.pass = strdup( getenv( "PASS" ) ? getenv( "PASS" ) : "" );