svn commit: r211647 - projects/sv/usr.sbin/netdumpsrv

Attilio Rao attilio at FreeBSD.org
Sun Aug 22 21:25:22 UTC 2010


Author: attilio
Date: Sun Aug 22 21:25:21 2010
New Revision: 211647
URL: http://svn.freebsd.org/changeset/base/211647

Log:
  Style-cleanup for the main() function.

Modified:
  projects/sv/usr.sbin/netdumpsrv/netdump_server.c

Modified: projects/sv/usr.sbin/netdumpsrv/netdump_server.c
==============================================================================
--- projects/sv/usr.sbin/netdumpsrv/netdump_server.c	Sun Aug 22 21:18:21 2010	(r211646)
+++ projects/sv/usr.sbin/netdumpsrv/netdump_server.c	Sun Aug 22 21:25:21 2010	(r211647)
@@ -727,154 +727,151 @@ signal_shutdown(int sig)
     do_shutdown = 1;
 }
 
-int main(int argc, char **argv)
+int
+main(int argc, char **argv)
 {
-    struct stat statbuf;
-    struct sockaddr_in bindaddr;
-    struct sigaction sa;
-    int ch;
-
-    pfh = pidfile_open(NULL, 0600, NULL);
-    if (pfh == NULL) {
-        if (errno == EEXIST)
-            printf("Instance of netdump already running\n");
-        else
-            printf("Impossible to open the pid file\n");
-        exit(1);
-    }
-
-    while ((ch = getopt(argc, argv, "a:d:i:")) != -1) {
-	switch (ch) {
-	case 'a':
-		pflags |= PFLAGS_ABIND;
-		if (!inet_aton(optarg, &bindip)) {
-			pidfile_remove(pfh);
-			fprintf(stderr, "Invalid bind IP specified\n");
-			exit(1);
-		}
-		printf("Listening on IP %s\n", optarg);
-		break;
-	case 'd':
-		pflags |= PFLAGS_DDIR;
-		assert(dumpdir[0] == '\0');
-		strncpy(dumpdir, optarg, sizeof(dumpdir) - 1);
-		break;
-	case 'i':
-		pflags |= PFLAGS_SCRIPT;
-
-		/*
-		 * When suddently closing the process for an error,
-		 * it is unuseful to take care of handler_script deallocation
-		 * as long as the process will _exit(2) anyway.
-		 */
-		handler_script = strdup(optarg);
-		if (handler_script == NULL) {
-                	pidfile_remove(pfh);
-			perror("strdup()");
-			fprintf(stderr, "Unable to set script file\n");
-			exit(1);
-		}
-		if (access(handler_script, F_OK|X_OK)) {
+	struct stat statbuf;
+	struct sockaddr_in bindaddr;
+	struct sigaction sa;
+	int ch;
+
+	pfh = pidfile_open(NULL, 0600, NULL);
+	if (pfh == NULL) {
+		if (errno == EEXIST)
+			printf("Instance of netdump already running\n");
+		else
+			printf("Impossible to open the pid file\n");
+		exit(1);
+	}
+
+	while ((ch = getopt(argc, argv, "a:d:i:")) != -1) {
+		switch (ch) {
+		case 'a':
+			pflags |= PFLAGS_ABIND;
+			if (!inet_aton(optarg, &bindip)) {
+				pidfile_remove(pfh);
+				fprintf(stderr, "Invalid bind IP specified\n");
+				exit(1);
+			}
+			printf("Listening on IP %s\n", optarg);
+			break;
+		case 'd':
+			pflags |= PFLAGS_DDIR;
+			assert(dumpdir[0] == '\0');
+			strncpy(dumpdir, optarg, sizeof(dumpdir) - 1);
+			break;
+		case 'i':
+			pflags |= PFLAGS_SCRIPT;
+
+			/*
+			 * When suddenly closing the process for an error,
+			 * it is unuseful to take care of handler_script
+			 * deallocation as long as the process will _exit(2)
+			 * anyway.
+			 */
+			handler_script = strdup(optarg);
+			if (handler_script == NULL) {
+				pidfile_remove(pfh);
+				perror("strdup()");
+				fprintf(stderr, "Unable to set script file\n");
+				exit(1);
+			}
+			if (access(handler_script, F_OK | X_OK)) {
+				pidfile_remove(pfh);
+				perror("access()");
+				fprintf(stderr,
+				    "Unable to access script file\n");
+				exit(1);
+			}
+			break;
+		default:
 			pidfile_remove(pfh);
-			perror("access()");
-			fprintf(stderr, "Unable to access script file\n");
+			usage(argv[0]);
 			exit(1);
 		}
-		break;
-	default:
+	}
+	if ((pflags & PFLAGS_ABIND) == 0) {
+		bindip.s_addr = INADDR_ANY;
+		printf("Default: listening on all interfaces\n");
+	}
+	if ((pflags & PFLAGS_DDIR) == 0) {
+		strcpy(dumpdir, "/var/crash");
+		printf("Default: dumping on /var/crash/\n");
+	}
+
+	/* Further sanity checks on dump location. */
+	if (stat(dumpdir, &statbuf)) {
+		pidfile_remove(pfh);
+		perror("stat()");
+		fprintf(stderr, "Invalid dump location specified\n");
+		exit(1);
+	}
+	if ((statbuf.st_mode & S_IFMT) != S_IFDIR) {
 		pidfile_remove(pfh);
-		usage(argv[0]);
+		fprintf(stderr, "Dump location is not a directory\n");
 		exit(1);
 	}
-    }
-    if ((pflags & PFLAGS_ABIND) == 0) {
-	bindip.s_addr = INADDR_ANY;
-	printf("Default: listening on all interfaces\n");
-    }
-    if ((pflags & PFLAGS_DDIR) == 0) {
-	strcpy(dumpdir, "/var/crash");
-	printf("Default: dumping on /var/crash/\n");
-    }
-
-    /* Check dump location for sanity */
-    if (stat(dumpdir, &statbuf)) {
-        pidfile_remove(pfh);
-	perror("stat()");
-	fprintf(stderr, "Invalid dump location specified\n");
-	exit(1);
-    }
-    if ((statbuf.st_mode & S_IFMT) != S_IFDIR) {
-        pidfile_remove(pfh);
-	fprintf(stderr, "Dump location is not a directory\n");
-	exit(1);
-    }
-    if (access(dumpdir, F_OK|W_OK)) {
-	fprintf(stderr,
-	    "Warning: May be unable to write into dump location: %s\n",
-	    strerror(errno));
-    }
+	if (access(dumpdir, F_OK | W_OK)) {
+		fprintf(stderr,
+		    "Warning: May be unable to write into dump location: %s\n",
+		    strerror(errno));
+	}
 
-    if (daemon(0, 0) == -1) {
-	pidfile_remove(pfh);
-	perror("daemon()");
-	fprintf(stderr, "Impossible to demonize the process\n");
-	exit(1);
-    }
-    pidfile_write(pfh);
-
-    /* Set up the server socket */
-    if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
-    {
-        pidfile_remove(pfh);
-	LOGERR_PERROR("socket()");
-	exit(1);
-    }
-    bzero(&bindaddr, sizeof(bindaddr));
-    bindaddr.sin_len = sizeof(bindaddr);
-    bindaddr.sin_family = AF_INET;
-    bindaddr.sin_addr.s_addr = bindip.s_addr;
-    bindaddr.sin_port = htons(NETDUMP_PORT);
-    if (bind(sock, (struct sockaddr *)&bindaddr, sizeof(bindaddr)))
-    {
-        pidfile_remove(pfh);
-	close(sock);
-	LOGERR_PERROR("bind()");
-	exit(1);
-    }
-    if (fcntl(sock, F_SETFL, O_NONBLOCK) == -1) {
-        pidfile_remove(pfh);
-	close(sock);
-	LOGERR_PERROR("fcntl()");
-	exit(1);
-    }
-
-    /* Signal handlers */
-    bzero(&sa, sizeof(sa));
-    sa.sa_handler = signal_shutdown;
-    if (sigaction(SIGINT, &sa, NULL) || sigaction(SIGTERM, &sa, NULL))
-    {
-        pidfile_remove(pfh);
-	close(sock);
-	LOGERR_PERROR("sigaction(SIGINT | SIGTERM)");
-	exit(1);
-    }
-    bzero(&sa, sizeof(sa));
-    sa.sa_handler = SIG_IGN;
-    sa.sa_flags = SA_NOCLDWAIT;
-    if (sigaction(SIGCHLD, &sa, NULL))
-    {
-        pidfile_remove(pfh);
-	LOGERR_PERROR("sigaction(SIGCHLD)");
-	close(sock);
-	exit(1);
-    }
+	if (daemon(0, 0) == -1) {
+		pidfile_remove(pfh);
+		perror("daemon()");
+		fprintf(stderr, "Impossible to demonize the process\n");
+		exit(1);
+	}
+	pidfile_write(pfh);
 
-    LOGINFO("Waiting for clients.\n");
+	/* Set up the server socket. */
+	sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
+	if (sock == -1) {
+		pidfile_remove(pfh);
+		LOGERR_PERROR("socket()");
+		exit(1);
+	}
+	bzero(&bindaddr, sizeof(bindaddr));
+	bindaddr.sin_len = sizeof(bindaddr);
+	bindaddr.sin_family = AF_INET;
+	bindaddr.sin_addr.s_addr = bindip.s_addr;
+	bindaddr.sin_port = htons(NETDUMP_PORT);
+	if (bind(sock, (struct sockaddr *)&bindaddr, sizeof(bindaddr))) {
+		pidfile_remove(pfh);
+		close(sock);
+		LOGERR_PERROR("bind()");
+		exit(1);
+	}
+	if (fcntl(sock, F_SETFL, O_NONBLOCK) == -1) {
+		pidfile_remove(pfh);
+		close(sock);
+		LOGERR_PERROR("fcntl()");
+		exit(1);
+	}
 
-    do_shutdown=0;
-    eventloop();
+	/* Override some signal handlers. */
+	bzero(&sa, sizeof(sa));
+	sa.sa_handler = signal_shutdown;
+	if (sigaction(SIGINT, &sa, NULL) || sigaction(SIGTERM, &sa, NULL)) {
+		pidfile_remove(pfh);
+		close(sock);
+		LOGERR_PERROR("sigaction(SIGINT | SIGTERM)");
+		exit(1);
+	}
+	bzero(&sa, sizeof(sa));
+	sa.sa_handler = SIG_IGN;
+	sa.sa_flags = SA_NOCLDWAIT;
+	if (sigaction(SIGCHLD, &sa, NULL)) {
+		pidfile_remove(pfh);
+		LOGERR_PERROR("sigaction(SIGCHLD)");
+		close(sock);
+		exit(1);
+	}
 
-    pidfile_remove(pfh);
-    return 0;
-}
+	LOGINFO("Waiting for clients.\n");
+	eventloop();
 
+	pidfile_remove(pfh);
+	return (0);
+}


More information about the svn-src-projects mailing list