#include <netinet/in.h>
#include <unistd.h>
#include <libgen.h>
+#include <signal.h>
#include <trbnet.h>
#include <trberror.h>
/* ------ MAIN ---------------------------------------------------------- */
+static void sigHandler(int sig)
+{
+ if (sig == SIGPIPE) {
+ return;
+ }
+ fprintf(stderr, "caught signal: %d\n");
+}
+
void usage(const char *progName)
{
fprintf(stdout, "Usage: %s [-h] [-f]\n", progName);
}
}
- pmap_unset(TRBNETRPCPROG, TRBNETRPCVERS);
-
- transp = svcudp_create(RPC_ANYSOCK);
- if (transp == NULL) {
- fprintf(stderr, "%s", "cannot create udp service.");
- exit(EXIT_FAILURE);
- }
- if (!svc_register
- (transp, TRBNETRPCPROG, TRBNETRPCVERS, trbnetrpcprog_1, IPPROTO_UDP)) {
- fprintf(stderr, "%s",
- "unable to register (TRBNETRPCPROG, TRBNETRPCVERS, udp).");
- exit(EXIT_FAILURE);
+ if (signal(SIGPIPE, sigHandler) == SIG_ERR) {
+ fprintf(stderr, "error setting SignalHandler for SIP_PIPE");
+ abort();
}
+
+ pmap_unset(TRBNETRPCPROG, TRBNETRPCVERS);
transp = svctcp_create(RPC_ANYSOCK, 0, 0);
if (transp == NULL) {