+ sigaddset(&action.sa_mask, SIGHUP);
+ sigaddset(&action.sa_mask, SIGUSR1);
+#ifdef SERVERTEXT
+ sigaddset(&action.sa_mask, SIGUSR2);
+#endif
+ action.sa_flags = SA_RESTART;
+ if ( sigaction( SIGTERM, &action, NULL ) < 0 ) {
+ LOG(log_error, logtype_afpd, "afp_over_asp: sigaction: %s", strerror(errno) );
+ afp_asp_die(EXITERR_SYS);
+ }
+
+#ifdef SERVERTEXT
+ /* Added for server message support */
+ action.sa_handler = afp_asp_getmesg;
+ sigemptyset( &action.sa_mask );
+ sigaddset(&action.sa_mask, SIGTERM);
+ sigaddset(&action.sa_mask, SIGUSR1);
+ sigaddset(&action.sa_mask, SIGHUP);
+ action.sa_flags = SA_RESTART;
+ if ( sigaction( SIGUSR2, &action, NULL) < 0 ) {
+ LOG(log_error, logtype_afpd, "afp_over_asp: sigaction: %s", strerror(errno) );
+ afp_asp_die(EXITERR_SYS);
+ }
+#endif /* SERVERTEXT */
+
+ /* SIGUSR1 - set down in 5 minutes */
+ action.sa_handler = afp_asp_timedown;
+ sigemptyset( &action.sa_mask );
+ sigaddset(&action.sa_mask, SIGHUP);
+ sigaddset(&action.sa_mask, SIGTERM);
+#ifdef SERVERTEXT
+ sigaddset(&action.sa_mask, SIGUSR2);
+#endif