------------------------------------------------------------------------
r16211 | vda | 2006-09-23 22:10:03 -0400 (Sat, 23 Sep 2006) | 2 lines
Changed paths:
   M /trunk/busybox/loginutils/vlock.c

vlock: make message shorter

 ------------------------------------------------------------------------

Index: loginutils/vlock.c
===================================================================
--- loginutils/vlock.c	(revision 16210)
+++ loginutils/vlock.c	(revision 16211)
@@ -108,7 +108,7 @@
 	tcsetattr(STDIN_FILENO, TCSANOW, &term);
 
 	do {
-		printf("Virtual Console%s locked. Enter %s's password to unlock\n", (o_lock_all) ? "s" : "", pw->pw_name);
+		printf("Virtual Console%s locked by %s.\n", (o_lock_all) ? "s" : "", pw->pw_name);
 		if (correct_password(pw)) {
 			break;
 		}

 ------------------------------------------------------------------------
r16210 | vda | 2006-09-23 21:01:01 -0400 (Sat, 23 Sep 2006) | 2 lines
Changed paths:
   M /trunk/busybox/util-linux/mount.c

mount: fix breakage from recent changes (spurious -ro mounts)

 ------------------------------------------------------------------------

Index: util-linux/mount.c
===================================================================
--- util-linux/mount.c	(revision 16209)
+++ util-linux/mount.c	(revision 16210)
@@ -9,10 +9,6 @@
  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
-/* todo:
- * bb_getopt_ulflags();
- */
-
 /* Design notes: There is no spec for mount.  Remind me to write one.
 
    mount_main() calls singlemount() which calls mount_it_now().
@@ -1427,7 +1423,7 @@
 
 int mount_main(int argc, char **argv)
 {
-	enum { OPT_ALL = 0x8 };
+	enum { OPT_ALL = 0x10 };
 
 	char *cmdopts = xstrdup(""), *fstype=0, *storage_path=0;
 	char *opt_o;
@@ -1445,24 +1441,20 @@
 			append_mount_options(&cmdopts,argv[i]+2);
 		} else argv[j++] = argv[i];
 	}
+	argv[j] = 0;
 	argc = j;
 
 	// Parse remaining options
 
-	opt = bb_getopt_ulflags(argc, argv, "o:t:rwavnf", &opt_o, &fstype);
-	if (opt & 1) // -o
-		append_mount_options(&cmdopts, opt_o);
-	//if (opt & 1) // -t
-	if (opt & 2) // -r
-		append_mount_options(&cmdopts, "ro");
-	if (opt & 4) // -w
-		append_mount_options(&cmdopts, "rw");
-	//if (opt & 8) // -a
-	if (opt & 0x10) // -n
-		USE_FEATURE_MTAB_SUPPORT(useMtab = FALSE);
-	if (opt & 0x20) // -f
-		USE_FEATURE_MTAB_SUPPORT(fakeIt = FALSE);
-	//if (opt & 0x40) // ignore -v
+	opt = bb_getopt_ulflags(argc, argv, "o:t:rwanfv", &opt_o, &fstype);
+	if (opt & 0x1) append_mount_options(&cmdopts, opt_o); // -o
+	//if (opt & 0x2) // -t
+	if (opt & 0x4) append_mount_options(&cmdopts, "ro"); // -r
+	if (opt & 0x8) append_mount_options(&cmdopts, "rw"); // -w
+	//if (opt & 0x10) // -a
+	if (opt & 0x20) USE_FEATURE_MTAB_SUPPORT(useMtab = FALSE); // -n
+	if (opt & 0x40) USE_FEATURE_MTAB_SUPPORT(fakeIt = FALSE); // -f
+	//if (opt & 0x80) // -v: ignore
 	argv += optind;
 	argc -= optind;
 

 ------------------------------------------------------------------------
r16209 | landley | 2006-09-23 15:56:21 -0400 (Sat, 23 Sep 2006) | 3 lines
Changed paths:
   M /trunk/busybox/coreutils/uudecode.c

Another attempt at untangling the logic so the compiler can follow it and not
generate pointless warnings.

 ------------------------------------------------------------------------

Index: coreutils/uudecode.c
===================================================================
--- coreutils/uudecode.c	(revision 16208)
+++ coreutils/uudecode.c	(revision 16209)
@@ -142,41 +142,40 @@
 	/* Search for the start of the encoding */
 	while ((line = bb_get_chomped_line_from_file(src_stream)) != NULL) {
 		int (*decode_fn_ptr)(FILE * src, FILE * dst);
-		char *line_ptr = NULL;
-
+		char *line_ptr;
+		FILE *dst_stream;
+		int mode;
+		int ret;
+		
 		if (strncmp(line, "begin-base64 ", 13) == 0) {
 			line_ptr = line + 13;
 			decode_fn_ptr = read_base64;
 		} else if (strncmp(line, "begin ", 6) == 0) {
 			line_ptr = line + 6;
 			decode_fn_ptr = read_stduu;
+		} else {
+			free(line);
+			continue;
 		}
 
-		if (line_ptr) {
-			FILE *dst_stream;
-			int mode;
-			int ret;
-
-			mode = strtoul(line_ptr, NULL, 8);
-			if (outname == NULL) {
-				outname = strchr(line_ptr, ' ');
-				if ((outname == NULL) || (*outname == '\0')) {
-					break;
-				}
-				outname++;
+		mode = strtoul(line_ptr, NULL, 8);
+		if (outname == NULL) {
+			outname = strchr(line_ptr, ' ');
+			if ((outname == NULL) || (*outname == '\0')) {
+				break;
 			}
-			if (strcmp(outname, "-") == 0) {
-				dst_stream = stdout;
-			} else {
-				dst_stream = xfopen(outname, "w");
-				chmod(outname, mode & (S_IRWXU | S_IRWXG | S_IRWXO));
-			}
-			free(line);
-			ret = decode_fn_ptr(src_stream, dst_stream);
-			bb_fclose_nonstdin(src_stream);
-			return(ret);
+			outname++;
 		}
+		if (strcmp(outname, "-") == 0) {
+			dst_stream = stdout;
+		} else {
+			dst_stream = xfopen(outname, "w");
+			chmod(outname, mode & (S_IRWXU | S_IRWXG | S_IRWXO));
+		}
 		free(line);
+		ret = decode_fn_ptr(src_stream, dst_stream);
+		bb_fclose_nonstdin(src_stream);
+		return(ret);
 	}
 	bb_error_msg_and_die("No `begin' line");
 }

 ------------------------------------------------------------------------
r16208 | vda | 2006-09-23 13:49:09 -0400 (Sat, 23 Sep 2006) | 3 lines
Changed paths:
   M /trunk/busybox/libbb/xconnect.c
   M /trunk/busybox/networking/wget.c

wget: fix bug where wget creates null file if there is no remote one.
add O_LARGEFILE support (not run tested :).

 ------------------------------------------------------------------------

Index: networking/wget.c
===================================================================
--- networking/wget.c	(revision 16207)
+++ networking/wget.c	(revision 16208)
@@ -9,7 +9,6 @@
 #include "busybox.h"
 #include 
 
-
 struct host_info {
 	char *host;
 	int port;
@@ -39,14 +38,6 @@
 static void progressmeter(int flag) {}
 #endif
 
-static void close_and_delete_outfile(FILE* output, char *fname_out, int do_continue)
-{
-	if (output != stdout && do_continue == 0) {
-		fclose(output);
-		unlink(fname_out);
-	}
-}
-
 /* Read NMEMB elements of SIZE bytes into PTR from STREAM.  Returns the
  * number of elements read, and a short count if an eof or non-interrupt
  * error is encountered.  */
@@ -62,21 +53,6 @@
 	return ret;
 }
 
-/* Write NMEMB elements of SIZE bytes from PTR to STREAM.  Returns the
- * number of elements written, and a short count if an eof or non-interrupt
- * error is encountered.  */
-static size_t safe_fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream)
-{
-	size_t ret = 0;
-
-	do {
-		clearerr(stream);
-		ret += fwrite((char *)ptr + (ret * size), size, nmemb - ret, stream);
-	} while (ret < nmemb && ferror(stream) && errno == EINTR);
-
-	return ret;
-}
-
 /* Read a line or SIZE - 1 bytes into S, whichever is less, from STREAM.
  * Returns S, or NULL if an eof or non-interrupt error is encountered.  */
 static char *safe_fgets(char *s, int size, FILE *stream)
@@ -91,11 +67,6 @@
 	return ret;
 }
 
-#define close_delete_and_die(s...) { \
-	close_and_delete_outfile(output, fname_out, do_continue); \
-	bb_error_msg_and_die(s); }
-
-
 #ifdef CONFIG_FEATURE_WGET_AUTHENTICATION
 /*
  *  Base64-encode character string and return the string.
@@ -138,7 +109,6 @@
 	char *proxy = 0;
 	char *dir_prefix=NULL;
 	char *s, buf[512];
-	struct stat sbuf;
 	char extra_headers[1024];
 	char *extra_headers_ptr = extra_headers;
 	int extra_headers_left = sizeof(extra_headers);
@@ -150,9 +120,9 @@
 	FILE *dfp = NULL;		/* socket to ftp server (data)	    */
 	char *fname_out = NULL;		/* where to direct output (-O)	    */
 	int do_continue = 0;		/* continue a prev transfer (-c)    */
-	long beg_range = 0L;		/*   range at which continue begins */
+	off64_t beg_range = 0;		/*   range at which continue begins */
 	int got_clen = 0;		/* got content-length: from server  */
-	FILE *output;			/* socket to web server		    */
+	int output_fd = -1;
 	int quiet_flag = FALSE;		/* Be verry, verry quiet...	    */
 	int use_proxy = 1;		/* Use proxies if env vars are set  */
 	char *proxy_flag = "on";	/* Use proxies if env vars are set  */
@@ -221,7 +191,7 @@
 #endif
 				bb_get_last_path_component(target.path);
 		}
-		if (fname_out == NULL || strlen(fname_out) < 1) {
+		if (!fname_out || !fname_out[0]) {
 			fname_out =
 #ifdef CONFIG_FEATURE_WGET_STATUSBAR
 				curfile =
@@ -238,29 +208,24 @@
 	if (do_continue && !fname_out)
 		bb_error_msg_and_die("cannot specify continue (-c) without a filename (-O)");
 
-
 	/*
-	 * Open the output file stream.
+	 * Determine where to start transfer.
 	 */
-	if (strcmp(fname_out, "-") == 0) {
-		output = stdout;
+	if (!strcmp(fname_out, "-")) {
+		output_fd = 1;
 		quiet_flag = TRUE;
-	} else {
-		output = xfopen(fname_out, (do_continue ? "a" : "w"));
+		do_continue = 0;
+	} else if (do_continue) {
+		output_fd = open(fname_out, O_WRONLY|O_LARGEFILE);
+		if (output_fd >= 0) {
+			beg_range = lseek64(output_fd, 0, SEEK_END);
+			if (beg_range == (off64_t)-1)
+				bb_perror_msg_and_die("lseek64");
+		}
+		/* File doesn't exist. We do not create file here yet.
+		   We are not sure it exists on remove side */
 	}
 
-	/*
-	 * Determine where to start transfer.
-	 */
-	if (do_continue) {
-		if (fstat(fileno(output), &sbuf) < 0)
-			bb_perror_msg_and_die("fstat");
-		if (sbuf.st_size > 0)
-			beg_range = sbuf.st_size;
-		else
-			do_continue = 0;
-	}
-
 	/* We want to do exactly _one_ DNS lookup, since some
 	 * sites (i.e. ftp.us.debian.org) use round-robin DNS
 	 * and we want to connect to only one IP... */
@@ -279,7 +244,7 @@
 			got_clen = chunked = 0;
 
 			if (!--try)
-				close_delete_and_die("too many redirections");
+				bb_error_msg_and_die("too many redirections");
 
 			/*
 			 * Open socket to http server
@@ -317,8 +282,8 @@
 			}
 #endif
 
-			if (do_continue)
-				fprintf(sfp, "Range: bytes=%ld-\r\n", beg_range);
+			if (beg_range)
+				fprintf(sfp, "Range: bytes=%lld-\r\n", (long long)beg_range);
 			if(extra_headers_left < sizeof(extra_headers))
 				fputs(extra_headers,sfp);
 			fprintf(sfp,"Connection: close\r\n\r\n");
@@ -328,7 +293,7 @@
 			*/
 read_response:
 			if (fgets(buf, sizeof(buf), sfp) == NULL)
-				close_delete_and_die("no response from server");
+				bb_error_msg_and_die("no response from server");
 
 			for (s = buf ; *s != '\0' && !isspace(*s) ; ++s)
 				;
@@ -340,9 +305,6 @@
 					while (gethdr(buf, sizeof(buf), sfp, &n) != NULL);
 					goto read_response;
 				case 200:
-					if (do_continue && output != stdout)
-						output = freopen(fname_out, "w", output);
-					do_continue = 0;
 					break;
 				case 300:	/* redirection */
 				case 301:
@@ -350,12 +312,12 @@
 				case 303:
 					break;
 				case 206:
-					if (do_continue)
+					if (beg_range)
 						break;
 					/*FALLTHRU*/
 				default:
 					chomp(buf);
-					close_delete_and_die("server returned error %d: %s", atoi(s), buf);
+					bb_error_msg_and_die("server returned error %d: %s", atoi(s), buf);
 			}
 
 			/*
@@ -365,7 +327,7 @@
 				if (strcasecmp(buf, "content-length") == 0) {
 					unsigned long value;
 					if (safe_strtoul(s, &value)) {
-						close_delete_and_die("content-length %s is garbage", s);
+						bb_error_msg_and_die("content-length %s is garbage", s);
 					}
 					filesize = value;
 					got_clen = 1;
@@ -375,7 +337,7 @@
 					if (strcasecmp(s, "chunked") == 0) {
 						chunked = got_clen = 1;
 					} else {
-						close_delete_and_die("server wants to do %s transfer encoding", s);
+						bb_error_msg_and_die("server wants to do %s transfer encoding", s);
 					}
 				}
 				if (strcasecmp(buf, "location") == 0) {
@@ -407,7 +369,7 @@
 
 		sfp = open_socket(&s_in);
 		if (ftpcmd(NULL, NULL, sfp, buf) != 220)
-			close_delete_and_die("%s", buf+4);
+			bb_error_msg_and_die("%s", buf+4);
 
 		/*
 		 * Splitting username:password pair,
@@ -424,7 +386,7 @@
 					break;
 				/* FALLTHRU (failed login) */
 			default:
-				close_delete_and_die("ftp login: %s", buf+4);
+				bb_error_msg_and_die("ftp login: %s", buf+4);
 		}
 
 		ftpcmd("TYPE I", NULL, sfp, buf);
@@ -435,7 +397,7 @@
 		if (ftpcmd("SIZE ", target.path, sfp, buf) == 213) {
 			unsigned long value;
 			if (safe_strtoul(buf+4, &value)) {
-				close_delete_and_die("SIZE value is garbage");
+				bb_error_msg_and_die("SIZE value is garbage");
 			}
 			filesize = value;
 			got_clen = 1;
@@ -445,7 +407,7 @@
 		 * Entering passive mode
 		 */
 		if (ftpcmd("PASV", NULL, sfp, buf) !=  227)
-			close_delete_and_die("PASV: %s", buf+4);
+			bb_error_msg_and_die("PASV: %s", buf+4);
 		s = strrchr(buf, ',');
 		*s = 0;
 		port = atoi(s+1);
@@ -454,18 +416,14 @@
 		s_in.sin_port = htons(port);
 		dfp = open_socket(&s_in);
 
-		if (do_continue) {
-			sprintf(buf, "REST %ld", beg_range);
-			if (ftpcmd(buf, NULL, sfp, buf) != 350) {
-				if (output != stdout)
-					output = freopen(fname_out, "w", output);
-				do_continue = 0;
-			} else
+		if (beg_range) {
+			sprintf(buf, "REST %lld", (long long)beg_range);
+			if (ftpcmd(buf, NULL, sfp, buf) == 350)
 				filesize -= beg_range;
 		}
 
 		if (ftpcmd("RETR ", target.path, sfp, buf) > 150)
-			close_delete_and_die("RETR: %s", buf+4);
+			bb_error_msg_and_die("RETR: %s", buf+4);
 	}
 
 
@@ -488,7 +446,9 @@
 			n = safe_fread(buf, 1, rdsz, dfp);
 			if (n <= 0)
 				break;
-			if (safe_fwrite(buf, 1, n, output) != n) {
+			if (output_fd < 0)
+				output_fd = xopen3(fname_out, O_WRONLY|O_CREAT|O_EXCL|O_TRUNC|O_LARGEFILE, 0666);
+			if (full_write(output_fd, buf, n) != n) {
 				bb_perror_msg_and_die(bb_msg_write_error);
 			}
 #ifdef CONFIG_FEATURE_WGET_STATUSBAR
@@ -526,7 +486,7 @@
 }
 
 
-void parse_url(char *url, struct host_info *h)
+static void parse_url(char *url, struct host_info *h)
 {
 	char *cp, *sp, *up, *pp;
 
@@ -581,7 +541,7 @@
 }
 
 
-FILE *open_socket(struct sockaddr_in *s_in)
+static FILE *open_socket(struct sockaddr_in *s_in)
 {
 	FILE *fp;
 
@@ -593,7 +553,7 @@
 }
 
 
-char *gethdr(char *buf, size_t bufsiz, FILE *fp, int *istrunc)
+static char *gethdr(char *buf, size_t bufsiz, FILE *fp, int *istrunc)
 {
 	char *s, *hdrval;
 	int c;
Index: libbb/xconnect.c
===================================================================
--- libbb/xconnect.c	(revision 16207)
+++ libbb/xconnect.c	(revision 16208)
@@ -55,7 +55,7 @@
 	if (connect(s, (struct sockaddr *)s_addr, sizeof(struct sockaddr_in)) < 0)
 	{
 		if (ENABLE_FEATURE_CLEAN_UP) close(s);
-		bb_perror_msg_and_die("Unable to connect to remote host (%s)",
+		bb_perror_msg_and_die("unable to connect to remote host (%s)",
 				inet_ntoa(s_addr->sin_addr));
 	}
 	return s;

 ------------------------------------------------------------------------
r16207 | vda | 2006-09-23 12:34:39 -0400 (Sat, 23 Sep 2006) | 2 lines
Changed paths:
   M /trunk/busybox/applets/applets.c

applets.c: fix indentation

 ------------------------------------------------------------------------

Index: applets/applets.c
===================================================================
--- applets/applets.c	(revision 16206)
+++ applets/applets.c	(revision 16207)
@@ -50,33 +50,33 @@
 /* applets [] is const, so we have to define this "override" structure */
 static struct BB_suid_config
 {
-  struct BB_applet *m_applet;
+	struct BB_applet *m_applet;
 
-  uid_t m_uid;
-  gid_t m_gid;
-  mode_t m_mode;
+	uid_t m_uid;
+	gid_t m_gid;
+	mode_t m_mode;
 
-  struct BB_suid_config *m_next;
+	struct BB_suid_config *m_next;
 } *suid_config;
 
 static int suid_cfg_readable;
 
 /* check if u is member of group g */
-static int ingroup (uid_t u, gid_t g)
+static int ingroup(uid_t u, gid_t g)
 {
-  struct group *grp = getgrgid (g);
+	struct group *grp = getgrgid(g);
 
-  if (grp) {
-	char **mem;
+	if (grp) {
+		char **mem;
 
-	for (mem = grp->gr_mem; *mem; mem++) {
-	  struct passwd *pwd = getpwnam (*mem);
+		for (mem = grp->gr_mem; *mem; mem++) {
+			struct passwd *pwd = getpwnam(*mem);
 
-	  if (pwd && (pwd->pw_uid == u))
-		return 1;
+			if (pwd && (pwd->pw_uid == u))
+				return 1;
+		}
 	}
-  }
-  return 0;
+	return 0;
 }
 
 /* This should probably be a libbb routine.  In that case,
@@ -320,58 +320,58 @@
 #ifdef CONFIG_FEATURE_SUID
 static void check_suid (struct BB_applet *applet)
 {
-  uid_t ruid = getuid ();               /* real [ug]id */
-  uid_t rgid = getgid ();
+	uid_t ruid = getuid ();               /* real [ug]id */
+	uid_t rgid = getgid ();
 
 #ifdef CONFIG_FEATURE_SUID_CONFIG
-  if (suid_cfg_readable) {
-	struct BB_suid_config *sct;
+	if (suid_cfg_readable) {
+		struct BB_suid_config *sct;
 
-	for (sct = suid_config; sct; sct = sct->m_next) {
-	  if (sct->m_applet == applet)
-		break;
-	}
-	if (sct) {
-	  mode_t m = sct->m_mode;
+		for (sct = suid_config; sct; sct = sct->m_next) {
+			if (sct->m_applet == applet)
+				break;
+		}
+		if (sct) {
+			mode_t m = sct->m_mode;
 
-	  if (sct->m_uid == ruid)       /* same uid */
-		m >>= 6;
-	  else if ((sct->m_gid == rgid) || ingroup (ruid, sct->m_gid))  /* same group / in group */
-		m >>= 3;
+			if (sct->m_uid == ruid)       /* same uid */
+				m >>= 6;
+			else if ((sct->m_gid == rgid) || ingroup (ruid, sct->m_gid))  /* same group / in group */
+				m >>= 3;
 
-	  if (!(m & S_IXOTH))           /* is x bit not set ? */
-		bb_error_msg_and_die ("You have no permission to run this applet!");
+			if (!(m & S_IXOTH))           /* is x bit not set ? */
+				bb_error_msg_and_die ("You have no permission to run this applet!");
 
-	  if ((sct->m_mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) {     /* *both* have to be set for sgid */
-		xsetgid(sct->m_gid);
-	  } else xsetgid(rgid);                /* no sgid -> drop */
+			if ((sct->m_mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) {     /* *both* have to be set for sgid */
+				xsetgid(sct->m_gid);
+			} else xsetgid(rgid);                /* no sgid -> drop */
 
-	  if (sct->m_mode & S_ISUID) xsetuid(sct->m_uid);
-	  else xsetuid(ruid);                  /* no suid -> drop */
+			if (sct->m_mode & S_ISUID) xsetuid(sct->m_uid);
+			else xsetuid(ruid);                  /* no suid -> drop */
+		} else {
+			/* default: drop all privileges */
+			xsetgid(rgid);
+			xsetuid(ruid);
+		}
+		return;
 	} else {
-		/* default: drop all privileges */
-	  xsetgid(rgid);
-	  xsetuid(ruid);
-	}
-	return;
-  } else {
 #ifndef CONFIG_FEATURE_SUID_CONFIG_QUIET
-	static int onetime = 0;
+		static int onetime = 0;
 
-	if (!onetime) {
-	  onetime = 1;
-	  fprintf (stderr, "Using fallback suid method\n");
+		if (!onetime) {
+			onetime = 1;
+			fprintf (stderr, "Using fallback suid method\n");
+		}
+#endif
 	}
 #endif
-  }
-#endif
 
-  if (applet->need_suid == _BB_SUID_ALWAYS) {
-	if (geteuid()) bb_error_msg_and_die("Applet requires root privileges!");
-  } else if (applet->need_suid == _BB_SUID_NEVER) {
-	xsetgid(rgid);                          /* drop all privileges */
-	xsetuid(ruid);
-  }
+	if (applet->need_suid == _BB_SUID_ALWAYS) {
+		if (geteuid()) bb_error_msg_and_die("Applet requires root privileges!");
+	} else if (applet->need_suid == _BB_SUID_NEVER) {
+		xsetgid(rgid);                          /* drop all privileges */
+		xsetuid(ruid);
+	}
 }
 #else
 #define check_suid(x)
@@ -426,7 +426,7 @@
 #define unpack_usage_messages() usage_messages
 #endif /* ENABLE_FEATURE_COMPRESS_USAGE */
 
-void bb_show_usage (void)
+void bb_show_usage(void)
 {
 	if (ENABLE_SHOW_USAGE) {
 		const char *format_string;
@@ -443,22 +443,22 @@
 			applet_using->name, usage_string);
 	}
 
-  exit (bb_default_error_retval);
+	exit (bb_default_error_retval);
 }
 
 static int applet_name_compare(const void *name, const void *vapplet)
 {
-  const struct BB_applet *applet = vapplet;
+	const struct BB_applet *applet = vapplet;
 
-  return strcmp(name, applet->name);
+	return strcmp(name, applet->name);
 }
 
 extern const size_t NUM_APPLETS;
 
 struct BB_applet *find_applet_by_name(const char *name)
 {
-  return bsearch(name, applets, NUM_APPLETS, sizeof(struct BB_applet),
-				  applet_name_compare);
+	return bsearch(name, applets, NUM_APPLETS, sizeof(struct BB_applet),
+				applet_name_compare);
 }
 
 void run_applet_by_name(const char *name, int argc, char **argv)

 ------------------------------------------------------------------------
r16206 | vda | 2006-09-23 12:01:09 -0400 (Sat, 23 Sep 2006) | 2 lines
Changed paths:
   M /trunk/busybox/coreutils/printf.c
   M /trunk/busybox/libbb/xgetcwd.c
   M /trunk/busybox/miscutils/runlevel.c

remove unneeded #includes, fix indentation

 ------------------------------------------------------------------------

Index: coreutils/printf.c
===================================================================
--- coreutils/printf.c	(revision 16205)
+++ coreutils/printf.c	(revision 16206)
@@ -38,37 +38,30 @@
 
 //   19990508 Busy Boxed! Dave Cinege
 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
 #include "busybox.h"
 
-static int print_formatted (char *format, int argc, char **argv);
-static void print_direc (char *start, size_t length,
+static int print_formatted(char *format, int argc, char **argv);
+static void print_direc(char *start, size_t length,
 			int field_width, int precision, char *argument);
 
 typedef int (*converter)(char *arg, void *result);
+
 static void multiconvert(char *arg, void *result, converter convert)
 {
 	char s[16];
 	if (*arg == '"' || *arg == '\'') {
-		sprintf(s,"%d",(unsigned)*(++arg));
-		arg=s;
+		sprintf(s, "%d", (unsigned)arg[1]);
+		arg = s;
 	}
-	if(convert(arg,result)) fprintf(stderr, "%s", arg);
+	if (convert(arg, result))
+		fputs(arg, stderr);
 }
 
 static unsigned long xstrtoul(char *arg)
 {
 	unsigned long result;
 
-	multiconvert(arg,&result, (converter)safe_strtoul);
+	multiconvert(arg, &result, (converter)safe_strtoul);
 	return result;
 }
 
@@ -104,7 +97,7 @@
 	char *format;
 	int args_used;
 
-	if (argc <= 1 || **(argv + 1) == '-') {
+	if (argc <= 1 || argv[1][0] == '-') {
 		bb_show_usage();
 	}
 
@@ -119,9 +112,8 @@
 	}
 	while (args_used > 0 && argc > 0);
 
-/*
-  if (argc > 0)
-    fprintf(stderr, "excess args ignored");
+/*	if (argc > 0)
+		fprintf(stderr, "excess args ignored");
 */
 
 	return EXIT_SUCCESS;
@@ -199,9 +191,9 @@
 				++direc_length;
 			}
 			/*
-			   if (!strchr ("diouxXfeEgGcs", *f))
-			   fprintf(stderr, "%%%c: invalid directive", *f);
-			 */
+			if (!strchr ("diouxXfeEgGcs", *f))
+			fprintf(stderr, "%%%c: invalid directive", *f);
+			*/
 			++direc_length;
 			if (argc > 0) {
 				print_direc(direc_start, direc_length, field_width,
@@ -232,7 +224,7 @@
 print_direc(char *start, size_t length, int field_width, int precision,
 			char *argument)
 {
-	char *p;					/* Null-terminated copy of % directive. */
+	char *p;		/* Null-terminated copy of % directive. */
 
 	p = xmalloc((unsigned) (length + 1));
 	strncpy(p, start, length);
Index: libbb/xgetcwd.c
===================================================================
--- libbb/xgetcwd.c	(revision 16205)
+++ libbb/xgetcwd.c	(revision 16206)
@@ -7,11 +7,6 @@
  * Special function for busybox written by Vladimir Oleynik 
 */
 
-#include 
-#include 
-#include 
-#include 
-#include 
 #include "libbb.h"
 
 /* Amount to increase buffer size by in each try. */
@@ -23,27 +18,27 @@
 */
 
 char *
-xgetcwd (char *cwd)
+xgetcwd(char *cwd)
 {
-  char *ret;
-  unsigned path_max;
+	char *ret;
+	unsigned path_max;
 
-  path_max = (unsigned) PATH_MAX;
-  path_max += 2;                /* The getcwd docs say to do this. */
+	path_max = (unsigned) PATH_MAX;
+	path_max += 2;                /* The getcwd docs say to do this. */
 
-  if(cwd==0)
-	cwd = xmalloc (path_max);
+	if (cwd==0)
+		cwd = xmalloc(path_max);
 
-  while ((ret = getcwd (cwd, path_max)) == NULL && errno == ERANGE) {
-      path_max += PATH_INCR;
-      cwd = xrealloc (cwd, path_max);
-  }
+	while ((ret = getcwd(cwd, path_max)) == NULL && errno == ERANGE) {
+		path_max += PATH_INCR;
+		cwd = xrealloc(cwd, path_max);
+	}
 
-  if (ret == NULL) {
-      free (cwd);
-      bb_perror_msg("getcwd()");
-      return NULL;
-  }
+	if (ret == NULL) {
+		free(cwd);
+		bb_perror_msg("getcwd");
+		return NULL;
+	}
 
-  return cwd;
+	return cwd;
 }
Index: miscutils/runlevel.c
===================================================================
--- miscutils/runlevel.c	(revision 16205)
+++ miscutils/runlevel.c	(revision 16206)
@@ -20,24 +20,23 @@
 
 int runlevel_main(int argc, char *argv[])
 {
-  struct utmp *ut;
-  char prev;
+	struct utmp *ut;
+	char prev;
 
-  if (argc > 1) utmpname(argv[1]);
+	if (argc > 1) utmpname(argv[1]);
 
-  setutent();
-  while ((ut = getutent()) != NULL) {
-	if (ut->ut_type == RUN_LVL) {
-		prev = ut->ut_pid / 256;
-		if (prev == 0) prev = 'N';
-		printf("%c %c\n", prev, ut->ut_pid % 256);
-		endutent();
-		return (0);
+	setutent();
+	while ((ut = getutent()) != NULL) {
+		if (ut->ut_type == RUN_LVL) {
+			prev = ut->ut_pid / 256;
+			if (prev == 0) prev = 'N';
+			printf("%c %c\n", prev, ut->ut_pid % 256);
+			endutent();
+			return 0;
+		}
 	}
-  }
 
-  printf("unknown\n");
-  endutent();
-  return (1);
+	puts("unknown");
+	endutent();
+	return 1;
 }
-

 ------------------------------------------------------------------------
r16205 | vda | 2006-09-23 11:58:01 -0400 (Sat, 23 Sep 2006) | 2 lines
Changed paths:
   M /trunk/busybox/networking/inetd.c

inetd: deindent main loop, other readability enhancements

 ------------------------------------------------------------------------

Index: networking/inetd.c
===================================================================
--- networking/inetd.c	(revision 16204)
+++ networking/inetd.c	(revision 16205)
@@ -183,8 +183,7 @@
 # define INETD_SETPROCTITLE
 #endif
 
-typedef struct servtab
-{
+typedef struct servtab {
 	char *se_hostaddr;                    /* host address to listen on */
 	char *se_service;                     /* name of service */
 	int se_socktype;                      /* type of socket to use */
@@ -209,8 +208,7 @@
 #define MAXARGV 20
 	char *se_argv[MAXARGV + 1];           /* program arguments */
 	int se_fd;                            /* open descriptor */
-	union
-	{
+	union {
 		struct sockaddr se_un_ctrladdr;
 		struct sockaddr_in se_un_ctrladdr_in;
 #ifdef CONFIG_FEATURE_IPV6
@@ -232,8 +230,7 @@
 static servtab_t *servtab;
 
 #ifdef INETD_FEATURE_ENABLED
-struct builtin
-{
+struct builtin {
 	const char *bi_service;               /* internally provided service name */
 	int bi_socktype;                      /* type of socket supported */
 	short bi_fork;                        /* 1 if should fork before call */
@@ -427,7 +424,8 @@
 	int on = 1;
 	int r;
 
-	if ((sep->se_fd = socket(sep->se_family, sep->se_socktype, 0)) < 0) {
+	sep->se_fd = socket(sep->se_family, sep->se_socktype, 0);
+	if (sep->se_fd < 0) {
 		bb_perror_msg("%s/%s: socket", sep->se_service, sep->se_proto);
 		return;
 	}
@@ -1355,7 +1353,7 @@
 		}
 
 		readable = allsock;
-		n = select(maxsock + 1, &readable, NULL, NULL, NULL)
+		n = select(maxsock + 1, &readable, NULL, NULL, NULL);
 		if (n <= 0) {
 			if (n < 0 && errno != EINTR) {
 				bb_perror_msg("select");
@@ -1363,154 +1361,154 @@
 			}
 			continue;
 		}
+
 		for (sep = servtab; n && sep; sep = sep->se_next) {
-			// TODO: undo this unholy mess
-			if (sep->se_fd != -1 && FD_ISSET(sep->se_fd, &readable)) {
-				n--;
-				if (!sep->se_wait && sep->se_socktype == SOCK_STREAM) {
-					ctrl = accept(sep->se_fd, NULL, NULL);
-					if (ctrl < 0) {
-						if (errno == EINTR)
-							continue;
-						bb_perror_msg("accept (for %s)", sep->se_service);
+			if (sep->se_fd == -1 || !FD_ISSET(sep->se_fd, &readable))
+				continue;
+
+			n--;
+			if (!sep->se_wait && sep->se_socktype == SOCK_STREAM) {
+				ctrl = accept(sep->se_fd, NULL, NULL);
+				if (ctrl < 0) {
+					if (errno == EINTR)
 						continue;
+					bb_perror_msg("accept (for %s)", sep->se_service);
+					continue;
+				}
+				if (sep->se_family == AF_INET && sep->se_socktype == SOCK_STREAM) {
+					struct sockaddr_in peer;
+					socklen_t plen = sizeof(peer);
+
+					if (getpeername(ctrl, (struct sockaddr *) &peer, &plen) < 0) {
+						bb_error_msg("could not getpeername");
+						close(ctrl);
+						continue;
 					}
-					if (sep->se_family == AF_INET && sep->se_socktype == SOCK_STREAM) {
-						struct sockaddr_in peer;
-						socklen_t plen = sizeof(peer);
+					if (ntohs(peer.sin_port) == 20) {
+						/* XXX ftp bounce */
+						close(ctrl);
+						continue;
+					}
+				}
+			} else
+				ctrl = sep->se_fd;
 
-						if (getpeername(ctrl, (struct sockaddr *) &peer, &plen) < 0) {
-							bb_error_msg("could not getpeername");
+			Block_Using_Signals(omask);
+			pid = 0;
+#ifdef INETD_FEATURE_ENABLED
+			if (sep->se_bi == 0 || sep->se_bi->bi_fork)
+#endif
+			{
+				if (sep->se_count++ == 0)
+					(void) gettimeofday(&sep->se_time, NULL);
+				else if (toomany > 0 && sep->se_count >= sep->se_max) {
+					struct timeval now;
+
+					(void) gettimeofday(&now, NULL);
+					if (now.tv_sec - sep->se_time.tv_sec > CNT_INTVL) {
+						sep->se_time = now;
+						sep->se_count = 1;
+					} else {
+						if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
 							close(ctrl);
+						if (sep->se_family == AF_INET &&
+							  ntohs(sep->se_ctrladdr_in.sin_port) >= IPPORT_RESERVED) {
+							/*
+							 * Cannot close it -- there are
+							 * thieves on the system.
+							 * Simply ignore the connection.
+							 */
+							--sep->se_count;
 							continue;
 						}
-						if (ntohs(peer.sin_port) == 20) {
-							/* XXX ftp bounce */
+						bb_error_msg("%s/%s server failing (looping), service terminated",
+							      sep->se_service, sep->se_proto);
+						if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
 							close(ctrl);
-							continue;
+						FD_CLR(sep->se_fd, &allsock);
+						(void) close(sep->se_fd);
+						sep->se_fd = -1;
+						sep->se_count = 0;
+						nsock--;
+						sigprocmask(SIG_UNBLOCK, &omask, NULL);
+						if (!timingout) {
+							timingout = 1;
+							alarm(RETRYTIME);
 						}
+						continue;
 					}
-				} else
-					ctrl = sep->se_fd;
-				Block_Using_Signals(omask);
-				pid = 0;
-#ifdef INETD_FEATURE_ENABLED
-				if (sep->se_bi == 0 || sep->se_bi->bi_fork)
-#endif
-				{
-					if (sep->se_count++ == 0)
-						(void) gettimeofday(&sep->se_time, NULL);
-					else if (toomany > 0 && sep->se_count >= sep->se_max) {
-						struct timeval now;
-
-						(void) gettimeofday(&now, NULL);
-						if (now.tv_sec - sep->se_time.tv_sec > CNT_INTVL) {
-							sep->se_time = now;
-							sep->se_count = 1;
-						} else {
-							if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
-								close(ctrl);
-							if (sep->se_family == AF_INET &&
-								  ntohs(sep->se_ctrladdr_in.sin_port) >= IPPORT_RESERVED) {
-								/*
-								 * Cannot close it -- there are
-								 * thieves on the system.
-								 * Simply ignore the connection.
-								 */
-								--sep->se_count;
-								continue;
-							}
-							bb_error_msg("%s/%s server failing (looping), service terminated",
-								      sep->se_service, sep->se_proto);
-							if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
-								close(ctrl);
-							FD_CLR(sep->se_fd, &allsock);
-							(void) close(sep->se_fd);
-							sep->se_fd = -1;
-							sep->se_count = 0;
-							nsock--;
-							sigprocmask(SIG_UNBLOCK, &omask, NULL);
-							if (!timingout) {
-								timingout = 1;
-								alarm(RETRYTIME);
-							}
-							continue;
-						}
-					}
-					pid = fork();
 				}
-				if (pid < 0) {
-					bb_perror_msg("fork");
-					if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
-						close(ctrl);
-					sigprocmask(SIG_UNBLOCK, &omask, NULL);
-					sleep(1);
-					continue;
-				}
-				if (pid && sep->se_wait) {
-					sep->se_wait = pid;
-					FD_CLR(sep->se_fd, &allsock);
-					nsock--;
-				}
+				pid = fork();
+			}
+			if (pid < 0) {
+				bb_perror_msg("fork");
+				if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
+					close(ctrl);
 				sigprocmask(SIG_UNBLOCK, &omask, NULL);
-				if (pid == 0) {
+				sleep(1);
+				continue;
+			}
+			if (pid && sep->se_wait) {
+				sep->se_wait = pid;
+				FD_CLR(sep->se_fd, &allsock);
+				nsock--;
+			}
+			sigprocmask(SIG_UNBLOCK, &omask, NULL);
+			if (pid == 0) {
 #ifdef INETD_FEATURE_ENABLED
-					if (sep->se_bi) {
-						(*sep->se_bi->bi_fn)(ctrl, sep);
-					} else
+				if (sep->se_bi) {
+					(*sep->se_bi->bi_fn)(ctrl, sep);
+				} else
 #endif
-						{
-						if ((pwd = getpwnam(sep->se_user)) == NULL) {
-							bb_error_msg("getpwnam: %s: no such user", sep->se_user);
-							if (sep->se_socktype != SOCK_STREAM)
-								recv(0, buf, sizeof(buf), 0);
+					{
+					pwd = getpwnam(sep->se_user);
+					if (pwd == NULL) {
+						bb_error_msg("getpwnam: %s: no such user", sep->se_user);
+						goto do_exit1;
+					}
+					if (setsid() < 0)
+						bb_perror_msg("%s: setsid", sep->se_service);
+					if (sep->se_group && (grp = getgrnam(sep->se_group)) == NULL) {
+						bb_error_msg("getgrnam: %s: no such group", sep->se_group);
+						goto do_exit1;
+					}
+					if (uid != 0) {
+						/* a user running private inetd */
+						if (uid != pwd->pw_uid)
 							_exit(1);
-						}
-						if (setsid() < 0)
-							bb_perror_msg("%s: setsid", sep->se_service);
-						if (sep->se_group && (grp = getgrnam(sep->se_group)) == NULL) {
-							bb_error_msg("getgrnam: %s: no such group", sep->se_group);
-							if (sep->se_socktype != SOCK_STREAM)
-								recv(0, buf, sizeof(buf), 0);
-							_exit(1);
-						}
-						if (uid != 0) {
-							/* a user running private inetd */
-							if (uid != pwd->pw_uid)
-								_exit(1);
-						} else if (pwd->pw_uid) {
-							if (sep->se_group)
-								pwd->pw_gid = grp->gr_gid;
-							xsetgid((gid_t) pwd->pw_gid);
-							initgroups(pwd->pw_name, pwd->pw_gid);
-							xsetuid((uid_t) pwd->pw_uid);
-						} else if (sep->se_group) {
-							xsetgid(grp->gr_gid);
-							setgroups(1, &grp->gr_gid);
-						}
-						dup2(ctrl, 0);
-						close(ctrl);
-						dup2(0, 1);
-						dup2(0, 2);
-						if (rlim_ofile.rlim_cur != rlim_ofile_cur)
-							if (setrlimit(RLIMIT_NOFILE, &rlim_ofile) < 0)
-								bb_perror_msg("setrlimit");
-						closelog();
-						for (tmpint = rlim_ofile_cur - 1; --tmpint > 2;)
-							(void) close(tmpint);
-						sigaction(SIGPIPE, &sapipe, NULL);
-						execv(sep->se_server, sep->se_argv);
-						if (sep->se_socktype != SOCK_STREAM)
-							recv(0, buf, sizeof(buf), 0);
-						bb_perror_msg("execv %s", sep->se_server);
-						_exit(1);
+					} else if (pwd->pw_uid) {
+						if (sep->se_group)
+							pwd->pw_gid = grp->gr_gid;
+						xsetgid((gid_t) pwd->pw_gid);
+						initgroups(pwd->pw_name, pwd->pw_gid);
+						xsetuid((uid_t) pwd->pw_uid);
+					} else if (sep->se_group) {
+						xsetgid(grp->gr_gid);
+						setgroups(1, &grp->gr_gid);
 					}
+					dup2(ctrl, 0);
+					if (ctrl) close(ctrl);
+					dup2(0, 1);
+					dup2(0, 2);
+					if (rlim_ofile.rlim_cur != rlim_ofile_cur)
+						if (setrlimit(RLIMIT_NOFILE, &rlim_ofile) < 0)
+							bb_perror_msg("setrlimit");
+					closelog();
+					for (tmpint = rlim_ofile_cur - 1; --tmpint > 2;)
+						(void) close(tmpint);
+					sigaction(SIGPIPE, &sapipe, NULL);
+					execv(sep->se_server, sep->se_argv);
+					bb_perror_msg("execv %s", sep->se_server);
+do_exit1:
+					if (sep->se_socktype != SOCK_STREAM)
+						recv(0, buf, sizeof(buf), 0);
+					_exit(1);
 				}
-				if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
-					close(ctrl);
 			}
-		}
-	}
+			if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
+				close(ctrl);
+		} /* for (sep = servtab...) */
+	} /* for(;;) */
 }
 
 /*
@@ -1542,8 +1540,12 @@
 	int i;
 
 	inetd_setproctitle(sep->se_service, s);
-	while ((i = read(s, buffer, sizeof(buffer))) > 0 &&
-				 write(s, buffer, i) > 0);
+	while (1) {
+		i = read(s, buffer, sizeof(buffer));
+		if (i <= 0) break;
+		/* FIXME: this isnt correct - safe_write()? */
+		if (write(s, buffer, i) <= 0) break;
+	}
 	exit(0);
 }
 
@@ -1577,9 +1579,11 @@
 	char buffer[BUFSIZE];
 
 	inetd_setproctitle(sep->se_service, s);
-	while ((errno = 0, read(s, buffer, sizeof(buffer)) > 0) ||
-				 errno == EINTR);
-	exit(0);
+	while (1) {
+		errno = 0;
+		if (read(s, buffer, sizeof(buffer)) <= 0 && errno != EINTR)
+			exit(0);
+	}
 }
 
 /* Discard service -- ignore data */
@@ -1629,8 +1633,10 @@
 
 	text[LINESIZ] = '\r';
 	text[LINESIZ + 1] = '\n';
-	for (rs = ring;;) {
-		if ((len = endring - rs) >= LINESIZ)
+	rs = ring;
+	for (;;) {
+		len = endring - rs;
+		if (len >= LINESIZ)
 			memmove(text, rs, LINESIZ);
 		else {
 			memmove(text, rs, len);

 ------------------------------------------------------------------------
r16204 | vda | 2006-09-23 11:53:01 -0400 (Sat, 23 Sep 2006) | 2 lines
Changed paths:
   M /trunk/busybox/util-linux/hexdump.c

hexdump: fixlet for my breakage

 ------------------------------------------------------------------------

Index: util-linux/hexdump.c
===================================================================
--- util-linux/hexdump.c	(revision 16203)
+++ util-linux/hexdump.c	(revision 16204)
@@ -60,7 +60,7 @@
 	bb_dump_length = -1;
 
 	while ((ch = getopt(argc, argv, hexdump_opts)) > 0) {
-		p = strchr(hexdump_opts, ch)
+		p = strchr(hexdump_opts, ch);
 		if (!p)
 			bb_show_usage();
 		if ((p - hexdump_opts) < 5) {

 ------------------------------------------------------------------------
r16203 | vda | 2006-09-23 11:18:38 -0400 (Sat, 23 Sep 2006) | 2 lines
Changed paths:
   M /trunk/busybox/networking/inetd.c

inetd: reformat with tabs for indentation

 ------------------------------------------------------------------------

Index: networking/inetd.c
===================================================================
--- networking/inetd.c	(revision 16202)
+++ networking/inetd.c	(revision 16203)
@@ -170,63 +170,63 @@
 
 /* Check unsupporting builtin */
 #if defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO || \
-	defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD || \
-	defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME || \
-	defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME || \
-	defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
+		defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD || \
+		defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME || \
+		defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME || \
+		defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
 # define INETD_FEATURE_ENABLED
 #endif
 
 #if defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO || \
-	defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD || \
-	defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
+		defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD || \
+		defined CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
 # define INETD_SETPROCTITLE
 #endif
 
 typedef struct servtab
 {
-  char *se_hostaddr;                    /* host address to listen on */
-  char *se_service;                     /* name of service */
-  int se_socktype;                      /* type of socket to use */
-  int se_family;                        /* address family */
-  char *se_proto;                       /* protocol used */
+	char *se_hostaddr;                    /* host address to listen on */
+	char *se_service;                     /* name of service */
+	int se_socktype;                      /* type of socket to use */
+	int se_family;                        /* address family */
+	char *se_proto;                       /* protocol used */
 #ifdef CONFIG_FEATURE_INETD_RPC
-  int se_rpcprog;                       /* rpc program number */
-  int se_rpcversl;                      /* rpc program lowest version */
-  int se_rpcversh;                      /* rpc program highest version */
+	int se_rpcprog;                       /* rpc program number */
+	int se_rpcversl;                      /* rpc program lowest version */
+	int se_rpcversh;                      /* rpc program highest version */
 #define isrpcservice(sep)       ((sep)->se_rpcversl != 0)
 #else
 #define isrpcservice(sep)       0
 #endif
-  pid_t se_wait;                        /* single threaded server */
-  short se_checked;                     /* looked at during merge */
-  char *se_user;                        /* user name to run as */
-  char *se_group;                       /* group name to run as */
+	pid_t se_wait;                        /* single threaded server */
+	short se_checked;                     /* looked at during merge */
+	char *se_user;                        /* user name to run as */
+	char *se_group;                       /* group name to run as */
 #ifdef INETD_FEATURE_ENABLED
-  const struct builtin *se_bi;                 /* if built-in, description */
+	const struct builtin *se_bi;          /* if built-in, description */
 #endif
-  char *se_server;                      /* server program */
+	char *se_server;                      /* server program */
 #define MAXARGV 20
-  char *se_argv[MAXARGV + 1];           /* program arguments */
-  int se_fd;                            /* open descriptor */
-  union
-  {
-	struct sockaddr se_un_ctrladdr;
-	struct sockaddr_in se_un_ctrladdr_in;
+	char *se_argv[MAXARGV + 1];           /* program arguments */
+	int se_fd;                            /* open descriptor */
+	union
+	{
+		struct sockaddr se_un_ctrladdr;
+		struct sockaddr_in se_un_ctrladdr_in;
 #ifdef CONFIG_FEATURE_IPV6
-	struct sockaddr_in6 se_un_ctrladdr_in6;
+		struct sockaddr_in6 se_un_ctrladdr_in6;
 #endif
-	struct sockaddr_un se_un_ctrladdr_un;
-  } se_un;                              /* bound address */
+		struct sockaddr_un se_un_ctrladdr_un;
+	} se_un;                              /* bound address */
 #define se_ctrladdr     se_un.se_un_ctrladdr
 #define se_ctrladdr_in  se_un.se_un_ctrladdr_in
 #define se_ctrladdr_in6 se_un.se_un_ctrladdr_in6
 #define se_ctrladdr_un  se_un.se_un_ctrladdr_un
-  int se_ctrladdr_size;
-  int se_max;                           /* max # of instances of this service */
-  int se_count;                         /* number started since se_time */
-  struct timeval se_time;               /* start of se_count */
-  struct servtab *se_next;
+	int se_ctrladdr_size;
+	int se_max;                           /* max # of instances of this service */
+	int se_count;                         /* number started since se_time */
+	struct timeval se_time;               /* start of se_count */
+	struct servtab *se_next;
 } servtab_t;
 
 static servtab_t *servtab;
@@ -234,66 +234,66 @@
 #ifdef INETD_FEATURE_ENABLED
 struct builtin
 {
-  const char *bi_service;               /* internally provided service name */
-  int bi_socktype;                      /* type of socket supported */
-  short bi_fork;                        /* 1 if should fork before call */
-  short bi_wait;                        /* 1 if should wait for child */
-  void (*bi_fn) (int, servtab_t *);
+	const char *bi_service;               /* internally provided service name */
+	int bi_socktype;                      /* type of socket supported */
+	short bi_fork;                        /* 1 if should fork before call */
+	short bi_wait;                        /* 1 if should wait for child */
+	void (*bi_fn) (int, servtab_t *);
 };
 
-	/* Echo received data */
+		/* Echo received data */
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO
-static void echo_stream (int, servtab_t *);
-static void echo_dg (int, servtab_t *);
+static void echo_stream(int, servtab_t *);
+static void echo_dg(int, servtab_t *);
 #endif
-	/* Internet /dev/null */
+		/* Internet /dev/null */
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
-static void discard_stream (int, servtab_t *);
-static void discard_dg (int, servtab_t *);
+static void discard_stream(int, servtab_t *);
+static void discard_dg(int, servtab_t *);
 #endif
-	/* Return 32 bit time since 1900 */
+		/* Return 32 bit time since 1900 */
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME
-static void machtime_stream (int, servtab_t *);
-static void machtime_dg (int, servtab_t *);
+static void machtime_stream(int, servtab_t *);
+static void machtime_dg(int, servtab_t *);
 #endif
-	/* Return human-readable time */
+		/* Return human-readable time */
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
-static void daytime_stream (int, servtab_t *);
-static void daytime_dg (int, servtab_t *);
+static void daytime_stream(int, servtab_t *);
+static void daytime_dg(int, servtab_t *);
 #endif
-	/* Familiar character generator */
+		/* Familiar character generator */
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
-static void chargen_stream (int, servtab_t *);
-static void chargen_dg (int, servtab_t *);
+static void chargen_stream(int, servtab_t *);
+static void chargen_dg(int, servtab_t *);
 #endif
 
 static const struct builtin builtins[] = {
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO
-  /* Echo received data */
-  {"echo", SOCK_STREAM, 1, 0, echo_stream,},
-  {"echo", SOCK_DGRAM, 0, 0, echo_dg,},
+	/* Echo received data */
+	{"echo", SOCK_STREAM, 1, 0, echo_stream,},
+	{"echo", SOCK_DGRAM, 0, 0, echo_dg,},
 #endif
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
-  /* Internet /dev/null */
-  {"discard", SOCK_STREAM, 1, 0, discard_stream,},
-  {"discard", SOCK_DGRAM, 0, 0, discard_dg,},
+	/* Internet /dev/null */
+	{"discard", SOCK_STREAM, 1, 0, discard_stream,},
+	{"discard", SOCK_DGRAM, 0, 0, discard_dg,},
 #endif
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME
-  /* Return 32 bit time since 1900 */
-  {"time", SOCK_STREAM, 0, 0, machtime_stream,},
-  {"time", SOCK_DGRAM, 0, 0, machtime_dg,},
+	/* Return 32 bit time since 1900 */
+	{"time", SOCK_STREAM, 0, 0, machtime_stream,},
+	{"time", SOCK_DGRAM, 0, 0, machtime_dg,},
 #endif
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
-  /* Return human-readable time */
-  {"daytime", SOCK_STREAM, 0, 0, daytime_stream,},
-  {"daytime", SOCK_DGRAM, 0, 0, daytime_dg,},
+	/* Return human-readable time */
+	{"daytime", SOCK_STREAM, 0, 0, daytime_stream,},
+	{"daytime", SOCK_DGRAM, 0, 0, daytime_dg,},
 #endif
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
-  /* Familiar character generator */
-  {"chargen", SOCK_STREAM, 1, 0, chargen_stream,},
-  {"chargen", SOCK_DGRAM, 0, 0, chargen_dg,},
+	/* Familiar character generator */
+	{"chargen", SOCK_STREAM, 1, 0, chargen_stream,},
+	{"chargen", SOCK_DGRAM, 0, 0, chargen_dg,},
 #endif
-  {NULL, 0, 0, 0, NULL}
+	{NULL, 0, 0, 0, NULL}
 };
 #endif /* INETD_FEATURE_ENABLED */
 
@@ -315,884 +315,884 @@
  * will return newly-allocated "" if called with NULL arg
  * TODO: audit whether this makes any real difference
  */
-static char *xxstrdup (char *cp)
+static char *xxstrdup(char *cp)
 {
-  return xstrdup (cp ? cp : "");
+	return xstrdup(cp ? cp : "");
 }
 
-static int setconfig (void)
+static int setconfig(void)
 {
-  free (defhost);
-  defhost = xstrdup ("*");
-  if (fconfig != NULL) {
-	fseek (fconfig, 0L, SEEK_SET);
-	return (1);
-  }
-  fconfig = fopen (CONFIG, "r");
-  return (fconfig != NULL);
+	free(defhost);
+	defhost = xstrdup("*");
+	if (fconfig != NULL) {
+		fseek(fconfig, 0L, SEEK_SET);
+		return 1;
+	}
+	fconfig = fopen(CONFIG, "r");
+	return (fconfig != NULL);
 }
 
-static void endconfig (void)
+static void endconfig(void)
 {
-  if (fconfig) {
-	(void) fclose (fconfig);
-	fconfig = NULL;
-  }
-  free (defhost);
-  defhost = 0;
+	if (fconfig) {
+		(void) fclose(fconfig);
+		fconfig = NULL;
+	}
+	free(defhost);
+	defhost = 0;
 }
 
 #ifdef CONFIG_FEATURE_INETD_RPC
-static void register_rpc (servtab_t *sep)
+static void register_rpc(servtab_t *sep)
 {
-  int n;
-  struct sockaddr_in ir_sin;
-  struct protoent *pp;
-  socklen_t size;
+	int n;
+	struct sockaddr_in ir_sin;
+	struct protoent *pp;
+	socklen_t size;
 
-  if ((pp = getprotobyname (sep->se_proto + 4)) == NULL) {
-	bb_perror_msg ("%s: getproto", sep->se_proto);
-	return;
-  }
-  size = sizeof ir_sin;
-  if (getsockname (sep->se_fd, (struct sockaddr *) &ir_sin, &size) < 0) {
-	bb_perror_msg ("%s/%s: getsockname",
-			sep->se_service, sep->se_proto);
-	return;
-  }
+	if ((pp = getprotobyname(sep->se_proto + 4)) == NULL) {
+		bb_perror_msg("%s: getproto", sep->se_proto);
+		return;
+	}
+	size = sizeof ir_sin;
+	if (getsockname(sep->se_fd, (struct sockaddr *) &ir_sin, &size) < 0) {
+		bb_perror_msg("%s/%s: getsockname",
+				sep->se_service, sep->se_proto);
+		return;
+	}
 
-  for (n = sep->se_rpcversl; n <= sep->se_rpcversh; n++) {
-	(void) pmap_unset (sep->se_rpcprog, n);
-	if (!pmap_set (sep->se_rpcprog, n, pp->p_proto, ntohs (ir_sin.sin_port)))
-	  bb_perror_msg ("%s %s: pmap_set: %u %u %u %u",
-			  sep->se_service, sep->se_proto,
-			  sep->se_rpcprog, n, pp->p_proto, ntohs (ir_sin.sin_port));
-  }
+	for (n = sep->se_rpcversl; n <= sep->se_rpcversh; n++) {
+		(void) pmap_unset(sep->se_rpcprog, n);
+		if (!pmap_set(sep->se_rpcprog, n, pp->p_proto, ntohs(ir_sin.sin_port)))
+			bb_perror_msg("%s %s: pmap_set: %u %u %u %u",
+					sep->se_service, sep->se_proto,
+					sep->se_rpcprog, n, pp->p_proto, ntohs(ir_sin.sin_port));
+	}
 }
 
-static void unregister_rpc (servtab_t *sep)
+static void unregister_rpc(servtab_t *sep)
 {
-  int n;
+	int n;
 
-  for (n = sep->se_rpcversl; n <= sep->se_rpcversh; n++) {
-	if (!pmap_unset (sep->se_rpcprog, n))
-	  bb_error_msg ("pmap_unset(%u, %u)", sep->se_rpcprog, n);
-  }
+	for (n = sep->se_rpcversl; n <= sep->se_rpcversh; n++) {
+		if (!pmap_unset(sep->se_rpcprog, n))
+			bb_error_msg("pmap_unset(%u, %u)", sep->se_rpcprog, n);
+	}
 }
 #endif /* CONFIG_FEATURE_INETD_RPC */
 
-static void freeconfig (servtab_t *cp)
+static void freeconfig(servtab_t *cp)
 {
-  int i;
+	int i;
 
-  free (cp->se_hostaddr);
-  free (cp->se_service);
-  free (cp->se_proto);
-  free (cp->se_user);
-  free (cp->se_group);
-  free (cp->se_server);
-  for (i = 0; i < MAXARGV; i++)
-	free (cp->se_argv[i]);
+	free(cp->se_hostaddr);
+	free(cp->se_service);
+	free(cp->se_proto);
+	free(cp->se_user);
+	free(cp->se_group);
+	free(cp->se_server);
+	for (i = 0; i < MAXARGV; i++)
+		free(cp->se_argv[i]);
 }
 
 static int bump_nofile (void)
 {
 #define FD_CHUNK        32
 
-  struct rlimit rl;
+	struct rlimit rl;
 
-  if (getrlimit (RLIMIT_NOFILE, &rl) < 0) {
-	bb_perror_msg ("getrlimit");
-	return -1;
-  }
-  rl.rlim_cur = MIN (rl.rlim_max, rl.rlim_cur + FD_CHUNK);
-  rl.rlim_cur = MIN (FD_SETSIZE, rl.rlim_cur + FD_CHUNK);
-  if (rl.rlim_cur <= rlim_ofile_cur) {
-	bb_error_msg ("bump_nofile: cannot extend file limit, max = %d",
-			(int) rl.rlim_cur);
-	return -1;
-  }
+	if (getrlimit (RLIMIT_NOFILE, &rl) < 0) {
+		bb_perror_msg("getrlimit");
+		return -1;
+	}
+	rl.rlim_cur = MIN(rl.rlim_max, rl.rlim_cur + FD_CHUNK);
+	rl.rlim_cur = MIN(FD_SETSIZE, rl.rlim_cur + FD_CHUNK);
+	if (rl.rlim_cur <= rlim_ofile_cur) {
+		bb_error_msg("bump_nofile: cannot extend file limit, max = %d",
+						(int) rl.rlim_cur);
+		return -1;
+	}
 
-  if (setrlimit (RLIMIT_NOFILE, &rl) < 0) {
-	bb_perror_msg ("setrlimit");
-	return -1;
-  }
+	if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
+		bb_perror_msg("setrlimit");
+		return -1;
+	}
 
-  rlim_ofile_cur = rl.rlim_cur;
-  return 0;
+	rlim_ofile_cur = rl.rlim_cur;
+	return 0;
 }
 
-static void setup (servtab_t *sep)
+static void setup(servtab_t *sep)
 {
-  int on = 1;
-  int r;
+	int on = 1;
+	int r;
 
-  if ((sep->se_fd = socket (sep->se_family, sep->se_socktype, 0)) < 0) {
-	bb_perror_msg ("%s/%s: socket", sep->se_service, sep->se_proto);
-	return;
-  }
+	if ((sep->se_fd = socket(sep->se_family, sep->se_socktype, 0)) < 0) {
+		bb_perror_msg("%s/%s: socket", sep->se_service, sep->se_proto);
+		return;
+	}
 #define turnon(fd, opt) \
-setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (on))
-  if (turnon (sep->se_fd, SO_REUSEADDR) < 0)
-	bb_perror_msg ("setsockopt (SO_REUSEADDR)");
+setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof(on))
+	if (turnon(sep->se_fd, SO_REUSEADDR) < 0)
+		bb_perror_msg("setsockopt(SO_REUSEADDR)");
 #undef turnon
 
 #ifdef CONFIG_FEATURE_INETD_RPC
-  if (isrpcservice (sep)) {
-	struct passwd *pwd;
+	if (isrpcservice(sep)) {
+		struct passwd *pwd;
 
-	/*
-	 * for RPC services, attempt to use a reserved port
-	 * if they are going to be running as root.
-	 *
-	 * Also, zero out the port for all RPC services; let bind()
-	 * find one.
-	 */
-	sep->se_ctrladdr_in.sin_port = 0;
-	if (sep->se_user && (pwd = getpwnam (sep->se_user)) &&
-		pwd->pw_uid == 0 && uid == 0)
-	  r = bindresvport (sep->se_fd, &sep->se_ctrladdr_in);
-	else {
-	  r = bind (sep->se_fd, &sep->se_ctrladdr, sep->se_ctrladdr_size);
-	  if (r == 0) {
-		socklen_t len = sep->se_ctrladdr_size;
-		int saveerrno = errno;
+		/*
+		 * for RPC services, attempt to use a reserved port
+		 * if they are going to be running as root.
+		 *
+		 * Also, zero out the port for all RPC services; let bind()
+		 * find one.
+		 */
+		sep->se_ctrladdr_in.sin_port = 0;
+		if (sep->se_user && (pwd = getpwnam(sep->se_user)) &&
+				pwd->pw_uid == 0 && uid == 0)
+			r = bindresvport(sep->se_fd, &sep->se_ctrladdr_in);
+		else {
+			r = bind(sep->se_fd, &sep->se_ctrladdr, sep->se_ctrladdr_size);
+			if (r == 0) {
+				socklen_t len = sep->se_ctrladdr_size;
+				int saveerrno = errno;
 
-		/* update se_ctrladdr_in.sin_port */
-		r = getsockname (sep->se_fd, &sep->se_ctrladdr, &len);
-		if (r <= 0)
-		  errno = saveerrno;
-	  }
-	}
-  } else
+				/* update se_ctrladdr_in.sin_port */
+				r = getsockname(sep->se_fd, &sep->se_ctrladdr, &len);
+				if (r <= 0)
+					errno = saveerrno;
+			}
+		}
+	} else
 #endif
-	r = bind (sep->se_fd, &sep->se_ctrladdr, sep->se_ctrladdr_size);
-  if (r < 0) {
-	bb_perror_msg ("%s/%s (%d): bind",
-			sep->se_service, sep->se_proto, sep->se_ctrladdr.sa_family);
-	close (sep->se_fd);
-	sep->se_fd = -1;
-	if (!timingout) {
-	  timingout = 1;
-	  alarm (RETRYTIME);
+		r = bind(sep->se_fd, &sep->se_ctrladdr, sep->se_ctrladdr_size);
+	if (r < 0) {
+		bb_perror_msg("%s/%s (%d): bind",
+				sep->se_service, sep->se_proto, sep->se_ctrladdr.sa_family);
+		close(sep->se_fd);
+		sep->se_fd = -1;
+		if (!timingout) {
+			timingout = 1;
+			alarm(RETRYTIME);
+		}
+		return;
 	}
-	return;
-  }
-  if (sep->se_socktype == SOCK_STREAM)
-	listen (sep->se_fd, global_queuelen);
+	if (sep->se_socktype == SOCK_STREAM)
+		listen(sep->se_fd, global_queuelen);
 
-  FD_SET (sep->se_fd, &allsock);
-  nsock++;
-  if (sep->se_fd > maxsock) {
-	maxsock = sep->se_fd;
-	if ((rlim_t)maxsock > rlim_ofile_cur - FD_MARGIN)
-	  bump_nofile ();
-  }
+	FD_SET(sep->se_fd, &allsock);
+	nsock++;
+	if (sep->se_fd > maxsock) {
+		maxsock = sep->se_fd;
+		if ((rlim_t)maxsock > rlim_ofile_cur - FD_MARGIN)
+			bump_nofile();
+	}
 }
 
-static char *nextline (void)
+static char *nextline(void)
 {
-  char *cp;
-  FILE *fd = fconfig;
+	char *cp;
+	FILE *fd = fconfig;
 
-  if (fgets (line, sizeof (line), fd) == NULL)
-	return (NULL);
-  cp = strchr (line, '\n');
-  if (cp)
-	*cp = '\0';
-  return (line);
+	if (fgets(line, sizeof(line), fd) == NULL)
+		return NULL;
+	cp = strchr(line, '\n');
+	if (cp)
+		*cp = '\0';
+	return line;
 }
 
-static char *skip (char **cpp) /* int report; */
+static char *skip(char **cpp) /* int report; */
 {
-  char *cp = *cpp;
-  char *start;
+	char *cp = *cpp;
+	char *start;
 
 /* erp: */
-  if (*cpp == NULL) {
-	/* if (report) */
-	/* bb_error_msg ("syntax error in inetd config file"); */
-	return (NULL);
-  }
+	if (*cpp == NULL) {
+		/* if (report) */
+		/* bb_error_msg("syntax error in inetd config file"); */
+		return NULL;
+	}
 
 again:
-  while (*cp == ' ' || *cp == '\t')
-	cp++;
-  if (*cp == '\0') {
-	int c;
+	while (*cp == ' ' || *cp == '\t')
+		cp++;
+	if (*cp == '\0') {
+		int c;
 
-	c = getc (fconfig);
-	(void) ungetc (c, fconfig);
-	if (c == ' ' || c == '\t')
-	  if ((cp = nextline ()))
-		goto again;
-	*cpp = NULL;
+		c = getc(fconfig);
+		(void) ungetc(c, fconfig);
+		if (c == ' ' || c == '\t')
+			if ((cp = nextline()))
+				goto again;
+		*cpp = NULL;
+		/* goto erp; */
+		return NULL;
+	}
+	start = cp;
+	while (*cp && *cp != ' ' && *cp != '\t')
+		cp++;
+	if (*cp != '\0')
+		*cp++ = '\0';
+	/* if ((*cpp = cp) == NULL) */
 	/* goto erp; */
-	return (NULL);
-  }
-  start = cp;
-  while (*cp && *cp != ' ' && *cp != '\t')
-	cp++;
-  if (*cp != '\0')
-	*cp++ = '\0';
-  /* if ((*cpp = cp) == NULL) */
-  /* goto erp; */
 
-  *cpp = cp;
-  return (start);
+	*cpp = cp;
+	return start;
 }
 
 static servtab_t *new_servtab(void)
 {
-  return xmalloc (sizeof (servtab_t));
+	return xmalloc(sizeof(servtab_t));
 }
 
-static servtab_t *dupconfig (servtab_t *sep)
+static servtab_t *dupconfig(servtab_t *sep)
 {
-  servtab_t *newtab;
-  int argc;
+	servtab_t *newtab;
+	int argc;
 
-  newtab = new_servtab();
-  memset (newtab, 0, sizeof (servtab_t));
-  newtab->se_service = xstrdup (sep->se_service);
-  newtab->se_socktype = sep->se_socktype;
-  newtab->se_family = sep->se_family;
-  newtab->se_proto = xstrdup (sep->se_proto);
+	newtab = new_servtab();
+	memset(newtab, 0, sizeof(servtab_t));
+	newtab->se_service = xstrdup(sep->se_service);
+	newtab->se_socktype = sep->se_socktype;
+	newtab->se_family = sep->se_family;
+	newtab->se_proto = xstrdup(sep->se_proto);
 #ifdef CONFIG_FEATURE_INETD_RPC
-  newtab->se_rpcprog = sep->se_rpcprog;
-  newtab->se_rpcversl = sep->se_rpcversl;
-  newtab->se_rpcversh = sep->se_rpcversh;
+	newtab->se_rpcprog = sep->se_rpcprog;
+	newtab->se_rpcversl = sep->se_rpcversl;
+	newtab->se_rpcversh = sep->se_rpcversh;
 #endif
-  newtab->se_wait = sep->se_wait;
-  newtab->se_user = xstrdup (sep->se_user);
-  newtab->se_group = xstrdup (sep->se_group);
+	newtab->se_wait = sep->se_wait;
+	newtab->se_user = xstrdup(sep->se_user);
+	newtab->se_group = xstrdup(sep->se_group);
 #ifdef INETD_FEATURE_ENABLED
-  newtab->se_bi = sep->se_bi;
+	newtab->se_bi = sep->se_bi;
 #endif
-  newtab->se_server = xstrdup (sep->se_server);
+	newtab->se_server = xstrdup(sep->se_server);
 
-  for (argc = 0; argc <= MAXARGV; argc++)
-	newtab->se_argv[argc] = xstrdup (sep->se_argv[argc]);
-  newtab->se_max = sep->se_max;
+	for (argc = 0; argc <= MAXARGV; argc++)
+		newtab->se_argv[argc] = xstrdup(sep->se_argv[argc]);
+	newtab->se_max = sep->se_max;
 
-  return (newtab);
+	return newtab;
 }
 
-static servtab_t *getconfigent (void)
+static servtab_t *getconfigent(void)
 {
-  servtab_t *sep;
-  int argc;
-  char *cp, *arg;
-  char *hostdelim;
-  servtab_t *nsep;
-  servtab_t *psep;
+	servtab_t *sep;
+	int argc;
+	char *cp, *arg;
+	char *hostdelim;
+	servtab_t *nsep;
+	servtab_t *psep;
 
-  sep = new_servtab();
+	sep = new_servtab();
 
-  /* memset(sep, 0, sizeof *sep); */
+	/* memset(sep, 0, sizeof *sep); */
 more:
-  /* freeconfig(sep); */
+	/* freeconfig(sep); */
 
-  while ((cp = nextline ()) && *cp == '#');
-  if (cp == NULL) {
-	/* free(sep); */
-	return (NULL);
-  }
+	while ((cp = nextline()) && *cp == '#');
+	if (cp == NULL) {
+		/* free(sep); */
+		return NULL;
+	}
 
-  memset ((char *) sep, 0, sizeof *sep);
-  arg = skip (&cp);
-  if (arg == NULL) {
-	/* A blank line. */
-	goto more;
-  }
-
-  /* Check for a host name. */
-  hostdelim = strrchr (arg, ':');
-  if (hostdelim) {
-	*hostdelim = '\0';
-	sep->se_hostaddr = xstrdup (arg);
-	arg = hostdelim + 1;
-	/*
-	 * If the line is of the form `host:', then just change the
-	 * default host for the following lines.
-	 */
-	if (*arg == '\0') {
-	  arg = skip (&cp);
-	  if (cp == NULL) {
-		free (defhost);
-		defhost = sep->se_hostaddr;
+	memset((char *) sep, 0, sizeof *sep);
+	arg = skip(&cp);
+	if (arg == NULL) {
+		/* A blank line. */
 		goto more;
-	  }
 	}
-  } else
-	sep->se_hostaddr = xxstrdup (defhost);
 
-  sep->se_service = xxstrdup (arg);
-  arg = skip (&cp);
+	/* Check for a host name. */
+	hostdelim = strrchr(arg, ':');
+	if (hostdelim) {
+		*hostdelim = '\0';
+		sep->se_hostaddr = xstrdup(arg);
+		arg = hostdelim + 1;
+		/*
+		 * If the line is of the form `host:', then just change the
+		 * default host for the following lines.
+		 */
+		if (*arg == '\0') {
+			arg = skip(&cp);
+			if (cp == NULL) {
+				free(defhost);
+				defhost = sep->se_hostaddr;
+				goto more;
+			}
+		}
+	} else
+		sep->se_hostaddr = xxstrdup(defhost);
 
-  if (strcmp (arg, "stream") == 0)
-	sep->se_socktype = SOCK_STREAM;
-  else if (strcmp (arg, "dgram") == 0)
-	sep->se_socktype = SOCK_DGRAM;
-  else if (strcmp (arg, "rdm") == 0)
-	sep->se_socktype = SOCK_RDM;
-  else if (strcmp (arg, "seqpacket") == 0)
-	sep->se_socktype = SOCK_SEQPACKET;
-  else if (strcmp (arg, "raw") == 0)
-	sep->se_socktype = SOCK_RAW;
-  else
-	sep->se_socktype = -1;
+	sep->se_service = xxstrdup(arg);
+	arg = skip(&cp);
 
-  sep->se_proto = xxstrdup (skip (&cp));
+	if (strcmp(arg, "stream") == 0)
+		sep->se_socktype = SOCK_STREAM;
+	else if (strcmp(arg, "dgram") == 0)
+		sep->se_socktype = SOCK_DGRAM;
+	else if (strcmp(arg, "rdm") == 0)
+		sep->se_socktype = SOCK_RDM;
+	else if (strcmp(arg, "seqpacket") == 0)
+		sep->se_socktype = SOCK_SEQPACKET;
+	else if (strcmp(arg, "raw") == 0)
+		sep->se_socktype = SOCK_RAW;
+	else
+		sep->se_socktype = -1;
 
-  if (strcmp (sep->se_proto, "unix") == 0) {
-	sep->se_family = AF_UNIX;
-  } else {
-	sep->se_family = AF_INET;
-	if (sep->se_proto[strlen (sep->se_proto) - 1] == '6')
+	sep->se_proto = xxstrdup(skip(&cp));
+
+	if (strcmp(sep->se_proto, "unix") == 0) {
+		sep->se_family = AF_UNIX;
+	} else {
+		sep->se_family = AF_INET;
+		if (sep->se_proto[strlen(sep->se_proto) - 1] == '6')
 #ifdef CONFIG_FEATURE_IPV6
-	  sep->se_family = AF_INET6;
+			sep->se_family = AF_INET6;
 #else
-	  bb_error_msg ("%s: IPV6 not supported", sep->se_proto);
+			bb_error_msg("%s: IPV6 not supported", sep->se_proto);
 #endif
-	if (strncmp (sep->se_proto, "rpc/", 4) == 0) {
+		if (strncmp(sep->se_proto, "rpc/", 4) == 0) {
 #ifdef CONFIG_FEATURE_INETD_RPC
-	  char *p, *ccp;
-	  long l;
+			char *p, *ccp;
+			long l;
 
-	  p = strchr (sep->se_service, '/');
-	  if (p == 0) {
-		bb_error_msg ("%s: no rpc version", sep->se_service);
-		goto more;
-	  }
-	  *p++ = '\0';
-	  l = strtol (p, &ccp, 0);
-	  if (ccp == p || l < 0 || l > INT_MAX) {
-	  badafterall:
-		bb_error_msg ("%s/%s: bad rpc version", sep->se_service, p);
-		goto more;
-	  }
-	  sep->se_rpcversl = sep->se_rpcversh = l;
-	  if (*ccp == '-') {
-		p = ccp + 1;
-		l = strtol (p, &ccp, 0);
-		if (ccp == p || l < 0 || l > INT_MAX || l < sep->se_rpcversl || *ccp)
-		  goto badafterall;
-		sep->se_rpcversh = l;
-	  } else if (*ccp != '\0')
-		goto badafterall;
+			p = strchr(sep->se_service, '/');
+			if (p == 0) {
+				bb_error_msg("%s: no rpc version", sep->se_service);
+				goto more;
+			}
+			*p++ = '\0';
+			l = strtol(p, &ccp, 0);
+			if (ccp == p || l < 0 || l > INT_MAX) {
+			badafterall:
+				bb_error_msg("%s/%s: bad rpc version", sep->se_service, p);
+				goto more;
+			}
+			sep->se_rpcversl = sep->se_rpcversh = l;
+			if (*ccp == '-') {
+				p = ccp + 1;
+				l = strtol(p, &ccp, 0);
+				if (ccp == p || l < 0 || l > INT_MAX || l < sep->se_rpcversl || *ccp)
+					goto badafterall;
+				sep->se_rpcversh = l;
+			} else if (*ccp != '\0')
+				goto badafterall;
 #else
-	bb_error_msg ("%s: rpc services not supported", sep->se_service);
+		bb_error_msg("%s: rpc services not supported", sep->se_service);
 #endif
+		}
 	}
-  }
-  arg = skip (&cp);
-  if (arg == NULL)
-	goto more;
+	arg = skip(&cp);
+	if (arg == NULL)
+		goto more;
 
-  {
-	char *s = strchr (arg, '.');
-	if (s) {
-	  *s++ = '\0';
-	  sep->se_max = atoi (s);
-	} else
-	  sep->se_max = toomany;
-  }
-  sep->se_wait = strcmp (arg, "wait") == 0;
-  /* if ((arg = skip(&cp, 1)) == NULL) */
-  /* goto more; */
-  sep->se_user = xxstrdup (skip (&cp));
-  arg = strchr (sep->se_user, '.');
-  if (arg == NULL)
-	arg = strchr (sep->se_user, ':');
-  if (arg) {
-	*arg++ = '\0';
-	sep->se_group = xstrdup (arg);
-  }
-  /* if ((arg = skip(&cp, 1)) == NULL) */
-  /* goto more; */
+	{
+		char *s = strchr(arg, '.');
+		if (s) {
+			*s++ = '\0';
+			sep->se_max = atoi(s);
+		} else
+			sep->se_max = toomany;
+	}
+	sep->se_wait = strcmp(arg, "wait") == 0;
+	/* if ((arg = skip(&cp, 1)) == NULL) */
+	/* goto more; */
+	sep->se_user = xxstrdup(skip(&cp));
+	arg = strchr(sep->se_user, '.');
+	if (arg == NULL)
+		arg = strchr(sep->se_user, ':');
+	if (arg) {
+		*arg++ = '\0';
+		sep->se_group = xstrdup(arg);
+	}
+	/* if ((arg = skip(&cp, 1)) == NULL) */
+	/* goto more; */
 
-  sep->se_server = xxstrdup (skip (&cp));
-  if (strcmp (sep->se_server, "internal") == 0) {
+	sep->se_server = xxstrdup(skip(&cp));
+	if (strcmp(sep->se_server, "internal") == 0) {
 #ifdef INETD_FEATURE_ENABLED
-	const struct builtin *bi;
+		const struct builtin *bi;
 
-	for (bi = builtins; bi->bi_service; bi++)
-	  if (bi->bi_socktype == sep->se_socktype &&
-		  strcmp (bi->bi_service, sep->se_service) == 0)
-		break;
-	if (bi->bi_service == 0) {
-	  bb_error_msg ("internal service %s unknown", sep->se_service);
-	  goto more;
-	}
-	sep->se_bi = bi;
-	sep->se_wait = bi->bi_wait;
+		for (bi = builtins; bi->bi_service; bi++)
+			if (bi->bi_socktype == sep->se_socktype &&
+					strcmp(bi->bi_service, sep->se_service) == 0)
+				break;
+		if (bi->bi_service == 0) {
+			bb_error_msg("internal service %s unknown", sep->se_service);
+			goto more;
+		}
+		sep->se_bi = bi;
+		sep->se_wait = bi->bi_wait;
 #else
-	bb_perror_msg ("internal service %s unknown", sep->se_service);
-	goto more;
+		bb_perror_msg("internal service %s unknown", sep->se_service);
+		goto more;
 #endif
-  }
+	}
 #ifdef INETD_FEATURE_ENABLED
-    else
-	sep->se_bi = NULL;
+		else
+		sep->se_bi = NULL;
 #endif
-  argc = 0;
-  for (arg = skip (&cp); cp; arg = skip (&cp)) {
-	if (argc < MAXARGV)
-	  sep->se_argv[argc++] = xxstrdup (arg);
-  }
-  while (argc <= MAXARGV)
-	sep->se_argv[argc++] = NULL;
+	argc = 0;
+	for (arg = skip(&cp); cp; arg = skip(&cp)) {
+		if (argc < MAXARGV)
+			sep->se_argv[argc++] = xxstrdup(arg);
+	}
+	while (argc <= MAXARGV)
+		sep->se_argv[argc++] = NULL;
 
-  /*
-   * Now that we've processed the entire line, check if the hostname
-   * specifier was a comma separated list of hostnames. If so
-   * we'll make new entries for each address.
-   */
-  while ((hostdelim = strrchr (sep->se_hostaddr, ',')) != NULL) {
-	nsep = dupconfig (sep);
-
 	/*
-	 * NULL terminate the hostname field of the existing entry,
-	 * and make a dup for the new entry.
+	 * Now that we've processed the entire line, check if the hostname
+	 * specifier was a comma separated list of hostnames. If so
+	 * we'll make new entries for each address.
 	 */
-	*hostdelim++ = '\0';
-	nsep->se_hostaddr = xstrdup (hostdelim);
+	while ((hostdelim = strrchr(sep->se_hostaddr, ',')) != NULL) {
+		nsep = dupconfig(sep);
 
-	nsep->se_next = sep->se_next;
-	sep->se_next = nsep;
-  }
+		/*
+		 * NULL terminate the hostname field of the existing entry,
+		 * and make a dup for the new entry.
+		 */
+		*hostdelim++ = '\0';
+		nsep->se_hostaddr = xstrdup(hostdelim);
 
-  nsep = sep;
-  while (nsep != NULL) {
-	nsep->se_checked = 1;
-	if (nsep->se_family == AF_INET) {
-	  if (!strcmp (nsep->se_hostaddr, "*"))
-		nsep->se_ctrladdr_in.sin_addr.s_addr = INADDR_ANY;
-	  else if (!inet_aton (nsep->se_hostaddr, &nsep->se_ctrladdr_in.sin_addr)) {
-		struct hostent *hp;
+		nsep->se_next = sep->se_next;
+		sep->se_next = nsep;
+	}
 
-		hp = gethostbyname (nsep->se_hostaddr);
-		if (hp == 0) {
-		  bb_error_msg ("%s: unknown host", nsep->se_hostaddr);
-		  nsep->se_checked = 0;
-		  goto skip;
-		} else if (hp->h_addrtype != AF_INET) {
-		  bb_error_msg ("%s: address isn't an Internet "
-				  "address", nsep->se_hostaddr);
-		  nsep->se_checked = 0;
-		  goto skip;
-		} else {
-		  int i = 1;
+	nsep = sep;
+	while (nsep != NULL) {
+		nsep->se_checked = 1;
+		if (nsep->se_family == AF_INET) {
+			if (!strcmp(nsep->se_hostaddr, "*"))
+				nsep->se_ctrladdr_in.sin_addr.s_addr = INADDR_ANY;
+			else if (!inet_aton(nsep->se_hostaddr, &nsep->se_ctrladdr_in.sin_addr)) {
+				struct hostent *hp;
 
-		  memmove (&nsep->se_ctrladdr_in.sin_addr,
-				   hp->h_addr_list[0], sizeof (struct in_addr));
-		  while (hp->h_addr_list[i] != NULL) {
-			psep = dupconfig (nsep);
-			psep->se_hostaddr = xxstrdup (nsep->se_hostaddr);
-			psep->se_checked = 1;
-			memmove (&psep->se_ctrladdr_in.sin_addr,
-					 hp->h_addr_list[i], sizeof (struct in_addr));
-			psep->se_ctrladdr_size = sizeof (psep->se_ctrladdr_in);
-			i++;
-			/* Prepend to list, don't want to look up its */
-			/* hostname again. */
-			psep->se_next = sep;
-			sep = psep;
-		  }
+				hp = gethostbyname(nsep->se_hostaddr);
+				if (hp == 0) {
+					bb_error_msg("%s: unknown host", nsep->se_hostaddr);
+					nsep->se_checked = 0;
+					goto skip;
+				} else if (hp->h_addrtype != AF_INET) {
+					bb_error_msg("%s: address isn't an Internet "
+								  "address", nsep->se_hostaddr);
+					nsep->se_checked = 0;
+					goto skip;
+				} else {
+					int i = 1;
+
+					memmove(&nsep->se_ctrladdr_in.sin_addr,
+								   hp->h_addr_list[0], sizeof(struct in_addr));
+					while (hp->h_addr_list[i] != NULL) {
+						psep = dupconfig(nsep);
+						psep->se_hostaddr = xxstrdup(nsep->se_hostaddr);
+						psep->se_checked = 1;
+						memmove(&psep->se_ctrladdr_in.sin_addr,
+								     hp->h_addr_list[i], sizeof(struct in_addr));
+						psep->se_ctrladdr_size = sizeof(psep->se_ctrladdr_in);
+						i++;
+						/* Prepend to list, don't want to look up */
+						/* its hostname again. */
+						psep->se_next = sep;
+						sep = psep;
+					}
+				}
+			}
 		}
-	  }
+/* XXX BUG?: is this skip: label supposed to remain? */
+	skip:
+		nsep = nsep->se_next;
 	}
-/* XXX BUG?: is this skip: label supposed to remain? */
-  skip:
-	nsep = nsep->se_next;
-  }
 
-  /*
-   * Finally, free any entries which failed the gethostbyname
-   * check.
-   */
-  psep = NULL;
-  nsep = sep;
-  while (nsep != NULL) {
-	servtab_t *tsep;
+	/*
+	 * Finally, free any entries which failed the gethostbyname
+	 * check.
+	 */
+	psep = NULL;
+	nsep = sep;
+	while (nsep != NULL) {
+		servtab_t *tsep;
 
-	if (nsep->se_checked == 0) {
-	  tsep = nsep;
-	  if (psep == NULL) {
-		sep = nsep->se_next;
-		nsep = sep;
-	  } else {
-		nsep = nsep->se_next;
-		psep->se_next = nsep;
-	  }
-	  freeconfig (tsep);
-	} else {
-	  nsep->se_checked = 0;
-	  psep = nsep;
-	  nsep = nsep->se_next;
+		if (nsep->se_checked == 0) {
+			tsep = nsep;
+			if (psep == NULL) {
+				sep = nsep->se_next;
+				nsep = sep;
+			} else {
+				nsep = nsep->se_next;
+				psep->se_next = nsep;
+			}
+			freeconfig(tsep);
+		} else {
+			nsep->se_checked = 0;
+			psep = nsep;
+			nsep = nsep->se_next;
+		}
 	}
-  }
 
-  return (sep);
+	return sep;
 }
 
-#define Block_Using_Signals(m) do {     sigemptyset(&m); \
-					sigaddset(&m, SIGCHLD); \
-					sigaddset(&m, SIGHUP); \
-					sigaddset(&m, SIGALRM); \
-					sigprocmask(SIG_BLOCK, &m, NULL); \
-				} while(0)
+#define Block_Using_Signals(m) do { \
+	sigemptyset(&m); \
+	sigaddset(&m, SIGCHLD); \
+	sigaddset(&m, SIGHUP); \
+	sigaddset(&m, SIGALRM); \
+	sigprocmask(SIG_BLOCK, &m, NULL); \
+} while(0)
 
-
-static servtab_t *enter (servtab_t *cp)
+static servtab_t *enter(servtab_t *cp)
 {
-  servtab_t *sep;
-  sigset_t omask;
+	servtab_t *sep;
+	sigset_t omask;
 
-  sep = new_servtab();
-  *sep = *cp;
-  sep->se_fd = -1;
+	sep = new_servtab();
+	*sep = *cp;
+	sep->se_fd = -1;
 #ifdef CONFIG_FEATURE_INETD_RPC
-  sep->se_rpcprog = -1;
+	sep->se_rpcprog = -1;
 #endif
-  Block_Using_Signals(omask);
-  sep->se_next = servtab;
-  servtab = sep;
-  sigprocmask(SIG_UNBLOCK, &omask, NULL);
-  return (sep);
+	Block_Using_Signals(omask);
+	sep->se_next = servtab;
+	servtab = sep;
+	sigprocmask(SIG_UNBLOCK, &omask, NULL);
+	return sep;
 }
 
-static int matchconf (servtab_t *old, servtab_t *new)
+static int matchconf(servtab_t *old, servtab_t *new)
 {
-  if (strcmp (old->se_service, new->se_service) != 0)
-	return (0);
+	if (strcmp(old->se_service, new->se_service) != 0)
+		return 0;
 
-  if (strcmp (old->se_hostaddr, new->se_hostaddr) != 0)
-	return (0);
+	if (strcmp(old->se_hostaddr, new->se_hostaddr) != 0)
+		return 0;
 
-  if (strcmp (old->se_proto, new->se_proto) != 0)
-	return (0);
+	if (strcmp(old->se_proto, new->se_proto) != 0)
+		return 0;
 
-  /*
-   * If the new servtab is bound to a specific address, check that the
-   * old servtab is bound to the same entry. If the new service is not
-   * bound to a specific address then the check of se_hostaddr above
-   * is sufficient.
-   */
+	/*
+	 * If the new servtab is bound to a specific address, check that the
+	 * old servtab is bound to the same entry. If the new service is not
+	 * bound to a specific address then the check of se_hostaddr above
+	 * is sufficient.
+	 */
 
-  if (old->se_family == AF_INET && new->se_family == AF_INET &&
-	  memcmp (&old->se_ctrladdr_in.sin_addr,
-			  &new->se_ctrladdr_in.sin_addr,
-			  sizeof (new->se_ctrladdr_in.sin_addr)) != 0)
-	return (0);
+	if (old->se_family == AF_INET && new->se_family == AF_INET &&
+			memcmp(&old->se_ctrladdr_in.sin_addr,
+					&new->se_ctrladdr_in.sin_addr,
+					sizeof(new->se_ctrladdr_in.sin_addr)) != 0)
+		return 0;
 
 #ifdef CONFIG_FEATURE_IPV6
-  if (old->se_family == AF_INET6 && new->se_family == AF_INET6 &&
-	  memcmp (&old->se_ctrladdr_in6.sin6_addr,
-			  &new->se_ctrladdr_in6.sin6_addr,
-			  sizeof (new->se_ctrladdr_in6.sin6_addr)) != 0)
-	return (0);
+	if (old->se_family == AF_INET6 && new->se_family == AF_INET6 &&
+			memcmp(&old->se_ctrladdr_in6.sin6_addr,
+					&new->se_ctrladdr_in6.sin6_addr,
+					sizeof(new->se_ctrladdr_in6.sin6_addr)) != 0)
+		return 0;
 #endif
-  return (1);
+	return 1;
 }
 
-static void config (int sig ATTRIBUTE_UNUSED)
+static void config(int sig ATTRIBUTE_UNUSED)
 {
-  servtab_t *sep, *cp, **sepp;
-  sigset_t omask;
-  size_t n;
-  char protoname[10];
+	servtab_t *sep, *cp, **sepp;
+	sigset_t omask;
+	size_t n;
+	char protoname[10];
 
-  if (!setconfig ()) {
-	bb_perror_msg ("%s", CONFIG);
-	return;
-  }
-  for (sep = servtab; sep; sep = sep->se_next)
-	sep->se_checked = 0;
-  cp = getconfigent ();
-  while (cp != NULL) {
+	if (!setconfig()) {
+		bb_perror_msg("%s", CONFIG);
+		return;
+	}
 	for (sep = servtab; sep; sep = sep->se_next)
-	  if (matchconf (sep, cp))
-		break;
+		sep->se_checked = 0;
+	cp = getconfigent();
+	while (cp != NULL) {
+		for (sep = servtab; sep; sep = sep->se_next)
+			if (matchconf(sep, cp))
+				break;
 
-	if (sep != 0) {
-	  int i;
+		if (sep != 0) {
+			int i;
 
 #define SWAP(type, a, b) do {type c=(type)a; a=(type)b; b=(type)c;} while (0)
 
-	  Block_Using_Signals(omask);
-	  /*
-	   * sep->se_wait may be holding the pid of a daemon
-	   * that we're waiting for.  If so, don't overwrite
-	   * it unless the config file explicitly says don't
-	   * wait.
-	   */
-	  if (
+			Block_Using_Signals(omask);
+			/*
+			 * sep->se_wait may be holding the pid of a daemon
+			 * that we're waiting for.  If so, don't overwrite
+			 * it unless the config file explicitly says don't
+			 * wait.
+			 */
+			if (
 #ifdef INETD_FEATURE_ENABLED
-		   cp->se_bi == 0 &&
+					 cp->se_bi == 0 &&
 #endif
-		(sep->se_wait == 1 || cp->se_wait == 0))
-		sep->se_wait = cp->se_wait;
-	  SWAP (int, cp->se_max, sep->se_max);
-	  SWAP (char *, sep->se_user, cp->se_user);
-	  SWAP (char *, sep->se_group, cp->se_group);
-	  SWAP (char *, sep->se_server, cp->se_server);
-	  for (i = 0; i < MAXARGV; i++)
-		SWAP (char *, sep->se_argv[i], cp->se_argv[i]);
+				(sep->se_wait == 1 || cp->se_wait == 0))
+				sep->se_wait = cp->se_wait;
+			SWAP(int, cp->se_max, sep->se_max);
+			SWAP(char *, sep->se_user, cp->se_user);
+			SWAP(char *, sep->se_group, cp->se_group);
+			SWAP(char *, sep->se_server, cp->se_server);
+			for (i = 0; i < MAXARGV; i++)
+				SWAP(char *, sep->se_argv[i], cp->se_argv[i]);
 #undef SWAP
 
 #ifdef CONFIG_FEATURE_INETD_RPC
-	  if (isrpcservice (sep))
-		unregister_rpc (sep);
-	  sep->se_rpcversl = cp->se_rpcversl;
-	  sep->se_rpcversh = cp->se_rpcversh;
+			if (isrpcservice(sep))
+				unregister_rpc(sep);
+			sep->se_rpcversl = cp->se_rpcversl;
+			sep->se_rpcversh = cp->se_rpcversh;
 #endif
-	  sigprocmask(SIG_UNBLOCK, &omask, NULL);
-	  freeconfig (cp);
-	} else {
-	  sep = enter (cp);
-	}
-	sep->se_checked = 1;
+			sigprocmask(SIG_UNBLOCK, &omask, NULL);
+			freeconfig(cp);
+		} else {
+			sep = enter(cp);
+		}
+		sep->se_checked = 1;
 
-	switch (sep->se_family) {
-	case AF_UNIX:
-	  if (sep->se_fd != -1)
-		break;
-	  (void) unlink (sep->se_service);
-	  n = strlen (sep->se_service);
-	  if (n > sizeof sep->se_ctrladdr_un.sun_path - 1)
-		n = sizeof sep->se_ctrladdr_un.sun_path - 1;
-	  safe_strncpy (sep->se_ctrladdr_un.sun_path, sep->se_service, n + 1);
-	  sep->se_ctrladdr_un.sun_family = AF_UNIX;
-	  sep->se_ctrladdr_size = n + sizeof sep->se_ctrladdr_un.sun_family;
-	  setup (sep);
-	  break;
-	case AF_INET:
-	  sep->se_ctrladdr_in.sin_family = AF_INET;
-	  /* se_ctrladdr_in was set in getconfigent */
-	  sep->se_ctrladdr_size = sizeof sep->se_ctrladdr_in;
+		switch (sep->se_family) {
+		case AF_UNIX:
+			if (sep->se_fd != -1)
+				break;
+			(void) unlink(sep->se_service);
+			n = strlen(sep->se_service);
+			if (n > sizeof sep->se_ctrladdr_un.sun_path - 1)
+				n = sizeof sep->se_ctrladdr_un.sun_path - 1;
+			safe_strncpy(sep->se_ctrladdr_un.sun_path, sep->se_service, n + 1);
+			sep->se_ctrladdr_un.sun_family = AF_UNIX;
+			sep->se_ctrladdr_size = n + sizeof sep->se_ctrladdr_un.sun_family;
+			setup(sep);
+			break;
+		case AF_INET:
+			sep->se_ctrladdr_in.sin_family = AF_INET;
+			/* se_ctrladdr_in was set in getconfigent */
+			sep->se_ctrladdr_size = sizeof sep->se_ctrladdr_in;
 
 #ifdef CONFIG_FEATURE_INETD_RPC
-	  if (isrpcservice (sep)) {
-		struct rpcent *rp;
+			if (isrpcservice(sep)) {
+				struct rpcent *rp;
 
-		sep->se_rpcprog = atoi (sep->se_service);
-		if (sep->se_rpcprog == 0) {
-		  rp = getrpcbyname (sep->se_service);
-		  if (rp == 0) {
-			bb_error_msg ("%s: unknown rpc service", sep->se_service);
-			goto serv_unknown;
-		  }
-		  sep->se_rpcprog = rp->r_number;
-		}
-		if (sep->se_fd == -1)
-		  setup (sep);
-		if (sep->se_fd != -1)
-		  register_rpc (sep);
-	  } else
+				sep->se_rpcprog = atoi(sep->se_service);
+				if (sep->se_rpcprog == 0) {
+					rp = getrpcbyname(sep->se_service);
+					if (rp == 0) {
+						bb_error_msg("%s: unknown rpc service", sep->se_service);
+						goto serv_unknown;
+					}
+					sep->se_rpcprog = rp->r_number;
+				}
+				if (sep->se_fd == -1)
+					setup(sep);
+				if (sep->se_fd != -1)
+					register_rpc(sep);
+			} else
 #endif
-	     {
-		u_short port = htons (atoi (sep->se_service));
+				 {
+				u_short port = htons(atoi(sep->se_service));
 
-		if (!port) {
-		   /*XXX*/ strncpy (protoname, sep->se_proto, sizeof (protoname));
-		  if (isdigit (protoname[strlen (protoname) - 1]))
-			protoname[strlen (protoname) - 1] = '\0';
-		  sp = getservbyname (sep->se_service, protoname);
-		  if (sp == 0) {
-			bb_error_msg ("%s/%s: unknown service",
-				sep->se_service, sep->se_proto);
-			goto serv_unknown;
-		  }
-		  port = sp->s_port;
-		}
-		if (port != sep->se_ctrladdr_in.sin_port) {
-		  sep->se_ctrladdr_in.sin_port = port;
-		  if (sep->se_fd != -1) {
-			FD_CLR (sep->se_fd, &allsock);
-			nsock--;
-			(void) close (sep->se_fd);
-		  }
-		  sep->se_fd = -1;
-		}
-		if (sep->se_fd == -1)
-		  setup (sep);
-	  }
-	  break;
+				if (!port) {
+					 /*XXX*/ strncpy(protoname, sep->se_proto, sizeof(protoname));
+					if (isdigit(protoname[strlen(protoname) - 1]))
+						protoname[strlen(protoname) - 1] = '\0';
+					sp = getservbyname(sep->se_service, protoname);
+					if (sp == 0) {
+						bb_error_msg("%s/%s: unknown service",
+								sep->se_service, sep->se_proto);
+						goto serv_unknown;
+					}
+					port = sp->s_port;
+				}
+				if (port != sep->se_ctrladdr_in.sin_port) {
+					sep->se_ctrladdr_in.sin_port = port;
+					if (sep->se_fd != -1) {
+						FD_CLR(sep->se_fd, &allsock);
+						nsock--;
+						(void) close(sep->se_fd);
+					}
+					sep->se_fd = -1;
+				}
+				if (sep->se_fd == -1)
+					setup(sep);
+			}
+			break;
 #ifdef CONFIG_FEATURE_IPV6
-	case AF_INET6:
-	  sep->se_ctrladdr_in6.sin6_family = AF_INET6;
-	  /* se_ctrladdr_in was set in getconfigent */
-	  sep->se_ctrladdr_size = sizeof sep->se_ctrladdr_in6;
+		case AF_INET6:
+			sep->se_ctrladdr_in6.sin6_family = AF_INET6;
+			/* se_ctrladdr_in was set in getconfigent */
+			sep->se_ctrladdr_size = sizeof sep->se_ctrladdr_in6;
 
 #ifdef CONFIG_FEATURE_INETD_RPC
-	  if (isrpcservice (sep)) {
-		struct rpcent *rp;
+			if (isrpcservice(sep)) {
+				struct rpcent *rp;
 
-		sep->se_rpcprog = atoi (sep->se_service);
-		if (sep->se_rpcprog == 0) {
-		  rp = getrpcbyname (sep->se_service);
-		  if (rp == 0) {
-			bb_error_msg ("%s: unknown rpc service", sep->se_service);
-			goto serv_unknown;
-		  }
-		  sep->se_rpcprog = rp->r_number;
-		}
-		if (sep->se_fd == -1)
-		  setup (sep);
-		if (sep->se_fd != -1)
-		  register_rpc (sep);
-	  } else
+				sep->se_rpcprog = atoi(sep->se_service);
+				if (sep->se_rpcprog == 0) {
+					rp = getrpcbyname(sep->se_service);
+					if (rp == 0) {
+						bb_error_msg("%s: unknown rpc service", sep->se_service);
+						goto serv_unknown;
+					}
+					sep->se_rpcprog = rp->r_number;
+				}
+				if (sep->se_fd == -1)
+					setup(sep);
+				if (sep->se_fd != -1)
+					register_rpc(sep);
+			} else
 #endif
-		{
-		u_short port = htons (atoi (sep->se_service));
+				{
+				u_short port = htons(atoi(sep->se_service));
 
-		if (!port) {
-		   /*XXX*/ strncpy (protoname, sep->se_proto, sizeof (protoname));
-		  if (isdigit (protoname[strlen (protoname) - 1]))
-			protoname[strlen (protoname) - 1] = '\0';
-		  sp = getservbyname (sep->se_service, protoname);
-		  if (sp == 0) {
-			bb_error_msg ("%s/%s: unknown service",
-				sep->se_service, sep->se_proto);
-			goto serv_unknown;
-		  }
-		  port = sp->s_port;
+				if (!port) {
+					 /*XXX*/ strncpy(protoname, sep->se_proto, sizeof(protoname));
+					if (isdigit(protoname[strlen(protoname) - 1]))
+						protoname[strlen(protoname) - 1] = '\0';
+					sp = getservbyname(sep->se_service, protoname);
+					if (sp == 0) {
+						bb_error_msg("%s/%s: unknown service",
+								sep->se_service, sep->se_proto);
+						goto serv_unknown;
+					}
+					port = sp->s_port;
+				}
+				if (port != sep->se_ctrladdr_in6.sin6_port) {
+					sep->se_ctrladdr_in6.sin6_port = port;
+					if (sep->se_fd != -1) {
+						FD_CLR(sep->se_fd, &allsock);
+						nsock--;
+						(void) close(sep->se_fd);
+					}
+					sep->se_fd = -1;
+				}
+				if (sep->se_fd == -1)
+					setup(sep);
+			}
+			break;
+#endif /* CONFIG_FEATURE_IPV6 */
 		}
-		if (port != sep->se_ctrladdr_in6.sin6_port) {
-		  sep->se_ctrladdr_in6.sin6_port = port;
-		  if (sep->se_fd != -1) {
-			FD_CLR (sep->se_fd, &allsock);
+	serv_unknown:
+		if (cp->se_next != NULL) {
+			servtab_t *tmp = cp;
+
+			cp = cp->se_next;
+			free(tmp);
+		} else {
+			free(cp);
+			cp = getconfigent();
+		}
+	}
+	endconfig();
+	/*
+	 * Purge anything not looked at above.
+	 */
+	Block_Using_Signals(omask);
+	sepp = &servtab;
+	while ((sep = *sepp)) {
+		if (sep->se_checked) {
+			sepp = &sep->se_next;
+			continue;
+		}
+		*sepp = sep->se_next;
+		if (sep->se_fd != -1) {
+			FD_CLR(sep->se_fd, &allsock);
 			nsock--;
-			(void) close (sep->se_fd);
-		  }
-		  sep->se_fd = -1;
+			(void) close(sep->se_fd);
 		}
-		if (sep->se_fd == -1)
-		  setup (sep);
-	  }
-	  break;
-#endif /* CONFIG_FEATURE_IPV6 */
-	}
-  serv_unknown:
-	if (cp->se_next != NULL) {
-	  servtab_t *tmp = cp;
-
-	  cp = cp->se_next;
-	  free (tmp);
-	} else {
-	  free (cp);
-	  cp = getconfigent ();
-	}
-  }
-  endconfig ();
-  /*
-   * Purge anything not looked at above.
-   */
-  Block_Using_Signals(omask);
-  sepp = &servtab;
-  while ((sep = *sepp)) {
-	if (sep->se_checked) {
-	  sepp = &sep->se_next;
-	  continue;
-	}
-	*sepp = sep->se_next;
-	if (sep->se_fd != -1) {
-	  FD_CLR (sep->se_fd, &allsock);
-	  nsock--;
-	  (void) close (sep->se_fd);
-	}
 #ifdef CONFIG_FEATURE_INETD_RPC
-	if (isrpcservice (sep))
-	  unregister_rpc (sep);
+		if (isrpcservice(sep))
+			unregister_rpc(sep);
 #endif
-	if (sep->se_family == AF_UNIX)
-	  (void) unlink (sep->se_service);
-	freeconfig (sep);
-	free (sep);
-  }
-  sigprocmask(SIG_UNBLOCK, &omask, NULL);
+		if (sep->se_family == AF_UNIX)
+			(void) unlink(sep->se_service);
+		freeconfig(sep);
+		free(sep);
+	}
+	sigprocmask(SIG_UNBLOCK, &omask, NULL);
 }
 
 
-static void reapchild (int sig ATTRIBUTE_UNUSED)
+static void reapchild(int sig ATTRIBUTE_UNUSED)
 {
-  pid_t pid;
-  int save_errno = errno, status;
-  servtab_t *sep;
+	pid_t pid;
+	int save_errno = errno, status;
+	servtab_t *sep;
 
-  for (;;) {
-	pid = wait3 (&status, WNOHANG, NULL);
-	if (pid <= 0)
-	  break;
-	for (sep = servtab; sep; sep = sep->se_next)
-	  if (sep->se_wait == pid) {
-		if (WIFEXITED (status) && WEXITSTATUS (status))
-		  bb_error_msg("%s: exit status 0x%x",
-				  sep->se_server, WEXITSTATUS (status));
-		else if (WIFSIGNALED (status))
-		  bb_error_msg("%s: exit signal 0x%x",
-				  sep->se_server, WTERMSIG (status));
-		sep->se_wait = 1;
-		FD_SET (sep->se_fd, &allsock);
-		nsock++;
-	  }
-  }
-  errno = save_errno;
+	for (;;) {
+		pid = wait3(&status, WNOHANG, NULL);
+		if (pid <= 0)
+			break;
+		for (sep = servtab; sep; sep = sep->se_next)
+			if (sep->se_wait == pid) {
+				if (WIFEXITED(status) && WEXITSTATUS(status))
+					bb_error_msg("%s: exit status 0x%x",
+							sep->se_server, WEXITSTATUS(status));
+				else if (WIFSIGNALED(status))
+					bb_error_msg("%s: exit signal 0x%x",
+							sep->se_server, WTERMSIG(status));
+				sep->se_wait = 1;
+				FD_SET(sep->se_fd, &allsock);
+				nsock++;
+			}
+	}
+	errno = save_errno;
 }
 
-static void retry (int sig ATTRIBUTE_UNUSED)
+static void retry(int sig ATTRIBUTE_UNUSED)
 {
-  servtab_t *sep;
+	servtab_t *sep;
 
-  timingout = 0;
-  for (sep = servtab; sep; sep = sep->se_next) {
-	if (sep->se_fd == -1) {
-	  switch (sep->se_family) {
-	  case AF_UNIX:
-	  case AF_INET:
+	timingout = 0;
+	for (sep = servtab; sep; sep = sep->se_next) {
+		if (sep->se_fd == -1) {
+			switch (sep->se_family) {
+			case AF_UNIX:
+			case AF_INET:
 #ifdef CONFIG_FEATURE_IPV6
-	  case AF_INET6:
+			case AF_INET6:
 #endif
-		setup (sep);
+				setup(sep);
 #ifdef CONFIG_FEATURE_INETD_RPC
-		if (sep->se_fd != -1 && isrpcservice (sep))
-		  register_rpc (sep);
+				if (sep->se_fd != -1 && isrpcservice(sep))
+					register_rpc(sep);
 #endif
-		break;
-	  }
+				break;
+			}
+		}
 	}
-  }
 }
 
-static void goaway (int sig ATTRIBUTE_UNUSED)
+static void goaway(int sig ATTRIBUTE_UNUSED)
 {
-  servtab_t *sep;
+	servtab_t *sep;
 
-  /* XXX signal race walking sep list */
-  for (sep = servtab; sep; sep = sep->se_next) {
-	if (sep->se_fd == -1)
-	  continue;
+	/* XXX signal race walking sep list */
+	for (sep = servtab; sep; sep = sep->se_next) {
+		if (sep->se_fd == -1)
+			continue;
 
-	switch (sep->se_family) {
-	case AF_UNIX:
-	  (void) unlink (sep->se_service);
-	  break;
-	case AF_INET:
+		switch (sep->se_family) {
+		case AF_UNIX:
+			(void) unlink(sep->se_service);
+			break;
+		case AF_INET:
 #ifdef CONFIG_FEATURE_IPV6
-	case AF_INET6:
+		case AF_INET6:
 #endif
 #ifdef CONFIG_FEATURE_INETD_RPC
-	  if (sep->se_wait == 1 && isrpcservice (sep))
-		unregister_rpc (sep);   /* XXX signal race */
+			if (sep->se_wait == 1 && isrpcservice(sep))
+				unregister_rpc(sep);   /* XXX signal race */
 #endif
-	  break;
+			break;
+		}
+		(void) close(sep->se_fd);
 	}
-	(void) close (sep->se_fd);
-  }
-  (void) unlink (_PATH_INETDPID);
-  exit (0);
+	(void) unlink(_PATH_INETDPID);
+	exit(0);
 }
 
 
@@ -1201,314 +1201,316 @@
 static char *LastArg;
 
 static void
-inetd_setproctitle (char *a, int s)
+inetd_setproctitle(char *a, int s)
 {
-  socklen_t size;
-  char *cp;
-  struct sockaddr_in prt_sin;
-  char buf[80];
+	socklen_t size;
+	char *cp;
+	struct sockaddr_in prt_sin;
+	char buf[80];
 
-  cp = Argv[0];
-  size = sizeof (prt_sin);
-  (void) snprintf (buf, sizeof buf, "-%s", a);
-  if (getpeername (s, (struct sockaddr *) &prt_sin, &size) == 0) {
-	char *sa = inet_ntoa (prt_sin.sin_addr);
+	cp = Argv[0];
+	size = sizeof(prt_sin);
+	(void) snprintf(buf, sizeof buf, "-%s", a);
+	if (getpeername(s, (struct sockaddr *) &prt_sin, &size) == 0) {
+		char *sa = inet_ntoa(prt_sin.sin_addr);
 
-	buf[sizeof (buf) - 1 - strlen (sa) - 3] = '\0';
-	strcat (buf, " [");
-	strcat (buf, sa);
-	strcat (buf, "]");
-  }
-  strncpy (cp, buf, LastArg - cp);
-  cp += strlen (cp);
-  while (cp < LastArg)
-	*cp++ = ' ';
+		buf[sizeof(buf) - 1 - strlen(sa) - 3] = '\0';
+		strcat(buf, " [");
+		strcat(buf, sa);
+		strcat(buf, "]");
+	}
+	strncpy(cp, buf, LastArg - cp);
+	cp += strlen(cp);
+	while (cp < LastArg)
+		*cp++ = ' ';
 }
 #endif
 
 
 int
-inetd_main (int argc, char *argv[])
+inetd_main(int argc, char *argv[])
 {
-  servtab_t *sep;
-  struct passwd *pwd;
-  struct group *grp = NULL;
-  int tmpint;
-  struct sigaction sa, sapipe;
-  int opt;
-  pid_t pid;
-  char buf[50];
-  char *stoomany;
-  sigset_t omask, wait_mask;
+	servtab_t *sep;
+	struct passwd *pwd;
+	struct group *grp = NULL;
+	int tmpint;
+	struct sigaction sa, sapipe;
+	int opt;
+	pid_t pid;
+	char buf[50];
+	char *stoomany;
+	sigset_t omask, wait_mask;
 
 #ifdef INETD_SETPROCTITLE
-  extern char **environ;
-  char **envp = environ;
+	extern char **environ;
+	char **envp = environ;
 
-  Argv = argv;
-  if (envp == 0 || *envp == 0)
-	envp = argv;
-  while (*envp)
-	envp++;
-  LastArg = envp[-1] + strlen (envp[-1]);
+	Argv = argv;
+	if (envp == 0 || *envp == 0)
+		envp = argv;
+	while (*envp)
+		envp++;
+	LastArg = envp[-1] + strlen(envp[-1]);
 #endif
 
-  openlog (bb_applet_name, LOG_PID | LOG_NOWAIT, LOG_DAEMON);
+	openlog(bb_applet_name, LOG_PID | LOG_NOWAIT, LOG_DAEMON);
 
-  opt = bb_getopt_ulflags (argc, argv, "R:f", &stoomany);
-  if(opt & 1) {
-	char *e;
+	opt = bb_getopt_ulflags(argc, argv, "R:f", &stoomany);
+	if(opt & 1) {
+		char *e;
 
-	toomany = strtoul (stoomany, &e, 0);
-	if (!(toomany >= 0 && *e == '\0')) {
-		toomany = TOOMANY;
-		bb_perror_msg ("-R %s: bad value for service invocation rate", stoomany);
+		toomany = strtoul(stoomany, &e, 0);
+		if (!(toomany >= 0 && *e == '\0')) {
+				toomany = TOOMANY;
+				bb_perror_msg("-R %s: bad value for service invocation rate", stoomany);
+		}
 	}
-  }
-  argc -= optind;
-  argv += optind;
+	argc -= optind;
+	argv += optind;
 
-  uid = getuid ();
-  if (uid != 0)
-	CONFIG = NULL;
-  if (argc > 0)
-	CONFIG = argv[0];
-  if (CONFIG == NULL)
-	bb_error_msg_and_die ("non-root must specify a config file");
+	uid = getuid();
+	if (uid != 0)
+		CONFIG = NULL;
+	if (argc > 0)
+		CONFIG = argv[0];
+	if (CONFIG == NULL)
+		bb_error_msg_and_die("non-root must specify a config file");
 
-  if (!(opt & 2)) {
+	if (!(opt & 2)) {
 #ifdef BB_NOMMU
-	/* reexec for vfork() do continue parent */
-	vfork_daemon_rexec (0, 0, argc, argv, "-f");
+		/* reexec for vfork() do continue parent */
+		vfork_daemon_rexec(0, 0, argc, argv, "-f");
 #else
-	xdaemon (0, 0);
+		xdaemon(0, 0);
 #endif
-  } else {
-	setsid ();
-  }
-  logmode = LOGMODE_SYSLOG;
+	} else {
+		setsid();
+	}
+	logmode = LOGMODE_SYSLOG;
 
-  if (uid == 0) {
-	gid_t gid = getgid ();
+	if (uid == 0) {
+		gid_t gid = getgid();
 
-	/* If run by hand, ensure groups vector gets trashed */
-	setgroups (1, &gid);
-  }
+		/* If run by hand, ensure groups vector gets trashed */
+		setgroups(1, &gid);
+	}
 
-  {
-	FILE *fp;
+	{
+		FILE *fp = fopen(_PATH_INETDPID, "w");
 
-	if ((fp = fopen (_PATH_INETDPID, "w")) != NULL) {
-		fprintf (fp, "%u\n", getpid ());
-		(void) fclose (fp);
+		if (fp != NULL) {
+			fprintf(fp, "%u\n", getpid());
+			(void) fclose(fp);
+		}
 	}
-  }
 
-  if (getrlimit (RLIMIT_NOFILE, &rlim_ofile) < 0) {
-	bb_perror_msg ("getrlimit");
-  } else {
-	rlim_ofile_cur = rlim_ofile.rlim_cur;
-	if (rlim_ofile_cur == RLIM_INFINITY)    /* ! */
-	  rlim_ofile_cur = OPEN_MAX;
-  }
+	if (getrlimit(RLIMIT_NOFILE, &rlim_ofile) < 0) {
+		bb_perror_msg("getrlimit");
+	} else {
+		rlim_ofile_cur = rlim_ofile.rlim_cur;
+		if (rlim_ofile_cur == RLIM_INFINITY)    /* ! */
+			rlim_ofile_cur = OPEN_MAX;
+	}
 
-  memset ((char *) &sa, 0, sizeof (sa));
-  sigemptyset (&sa.sa_mask);
-  sigaddset (&sa.sa_mask, SIGALRM);
-  sigaddset (&sa.sa_mask, SIGCHLD);
-  sigaddset (&sa.sa_mask, SIGHUP);
-  sa.sa_handler = retry;
-  sigaction (SIGALRM, &sa, NULL);
-  /* doconfig(); */
-  config (SIGHUP);
-  sa.sa_handler = config;
-  sigaction (SIGHUP, &sa, NULL);
-  sa.sa_handler = reapchild;
-  sigaction (SIGCHLD, &sa, NULL);
-  sa.sa_handler = goaway;
-  sigaction (SIGTERM, &sa, NULL);
-  sa.sa_handler = goaway;
-  sigaction (SIGINT, &sa, NULL);
-  sa.sa_handler = SIG_IGN;
-  sigaction (SIGPIPE, &sa, &sapipe);
-  memset(&wait_mask, 0, sizeof(wait_mask));
-  {
-	/* space for daemons to overwrite environment for ps */
+	memset((char *) &sa, 0, sizeof(sa));
+	sigemptyset(&sa.sa_mask);
+	sigaddset(&sa.sa_mask, SIGALRM);
+	sigaddset(&sa.sa_mask, SIGCHLD);
+	sigaddset(&sa.sa_mask, SIGHUP);
+	sa.sa_handler = retry;
+	sigaction(SIGALRM, &sa, NULL);
+	/* doconfig(); */
+	config(SIGHUP);
+	sa.sa_handler = config;
+	sigaction(SIGHUP, &sa, NULL);
+	sa.sa_handler = reapchild;
+	sigaction(SIGCHLD, &sa, NULL);
+	sa.sa_handler = goaway;
+	sigaction(SIGTERM, &sa, NULL);
+	sa.sa_handler = goaway;
+	sigaction(SIGINT, &sa, NULL);
+	sa.sa_handler = SIG_IGN;
+	sigaction(SIGPIPE, &sa, &sapipe);
+	memset(&wait_mask, 0, sizeof(wait_mask));
+	{
+		/* space for daemons to overwrite environment for ps */
 #define DUMMYSIZE       100
-	char dummy[DUMMYSIZE];
+		char dummy[DUMMYSIZE];
 
-	(void) memset (dummy, 'x', DUMMYSIZE - 1);
-	dummy[DUMMYSIZE - 1] = '\0';
+		(void) memset(dummy, 'x', DUMMYSIZE - 1);
+		dummy[DUMMYSIZE - 1] = '\0';
 
-	(void) setenv ("inetd_dummy", dummy, 1);
-  }
+		(void) setenv("inetd_dummy", dummy, 1);
+	}
 
-  for (;;) {
-	int n, ctrl = -1;
-	fd_set readable;
+	for (;;) {
+		int n, ctrl = -1;
+		fd_set readable;
 
-	if (nsock == 0) {
-	  Block_Using_Signals(omask);
-	  while (nsock == 0)
-		sigsuspend (&wait_mask);
-	  sigprocmask(SIG_UNBLOCK, &omask, NULL);
-	}
+		if (nsock == 0) {
+			Block_Using_Signals(omask);
+			while (nsock == 0)
+				sigsuspend(&wait_mask);
+			sigprocmask(SIG_UNBLOCK, &omask, NULL);
+		}
 
-	readable = allsock;
-	if ((n = select (maxsock + 1, &readable, NULL, NULL, NULL)) <= 0) {
-	  if (n < 0 && errno != EINTR) {
-		bb_perror_msg("select");
-		sleep (1);
-	  }
-	  continue;
-	}
-	for (sep = servtab; n && sep; sep = sep->se_next)
-	  if (sep->se_fd != -1 && FD_ISSET (sep->se_fd, &readable)) {
-		n--;
-		if (!sep->se_wait && sep->se_socktype == SOCK_STREAM) {
-		  ctrl = accept (sep->se_fd, NULL, NULL);
-		  if (ctrl < 0) {
-			if (errno == EINTR)
-			  continue;
-			bb_perror_msg("accept (for %s)", sep->se_service);
+		readable = allsock;
+		n = select(maxsock + 1, &readable, NULL, NULL, NULL)
+		if (n <= 0) {
+			if (n < 0 && errno != EINTR) {
+				bb_perror_msg("select");
+				sleep(1);
+			}
 			continue;
-		  }
-		  if (sep->se_family == AF_INET && sep->se_socktype == SOCK_STREAM) {
-			struct sockaddr_in peer;
-			socklen_t plen = sizeof (peer);
+		}
+		for (sep = servtab; n && sep; sep = sep->se_next) {
+			// TODO: undo this unholy mess
+			if (sep->se_fd != -1 && FD_ISSET(sep->se_fd, &readable)) {
+				n--;
+				if (!sep->se_wait && sep->se_socktype == SOCK_STREAM) {
+					ctrl = accept(sep->se_fd, NULL, NULL);
+					if (ctrl < 0) {
+						if (errno == EINTR)
+							continue;
+						bb_perror_msg("accept (for %s)", sep->se_service);
+						continue;
+					}
+					if (sep->se_family == AF_INET && sep->se_socktype == SOCK_STREAM) {
+						struct sockaddr_in peer;
+						socklen_t plen = sizeof(peer);
 
-			if (getpeername (ctrl, (struct sockaddr *) &peer, &plen) < 0) {
-			  bb_error_msg("could not getpeername");
-			  close (ctrl);
-			  continue;
-			}
-			if (ntohs (peer.sin_port) == 20) {
-			  /* XXX ftp bounce */
-			  close (ctrl);
-			  continue;
-			}
-		  }
-		} else
-		  ctrl = sep->se_fd;
-		Block_Using_Signals(omask);
-		pid = 0;
+						if (getpeername(ctrl, (struct sockaddr *) &peer, &plen) < 0) {
+							bb_error_msg("could not getpeername");
+							close(ctrl);
+							continue;
+						}
+						if (ntohs(peer.sin_port) == 20) {
+							/* XXX ftp bounce */
+							close(ctrl);
+							continue;
+						}
+					}
+				} else
+					ctrl = sep->se_fd;
+				Block_Using_Signals(omask);
+				pid = 0;
 #ifdef INETD_FEATURE_ENABLED
-		if (sep->se_bi == 0 || sep->se_bi->bi_fork)
+				if (sep->se_bi == 0 || sep->se_bi->bi_fork)
 #endif
-		{
-		  if (sep->se_count++ == 0)
-			(void) gettimeofday (&sep->se_time, NULL);
-		  else if (toomany > 0 && sep->se_count >= sep->se_max) {
-			struct timeval now;
+				{
+					if (sep->se_count++ == 0)
+						(void) gettimeofday(&sep->se_time, NULL);
+					else if (toomany > 0 && sep->se_count >= sep->se_max) {
+						struct timeval now;
 
-			(void) gettimeofday (&now, NULL);
-			if (now.tv_sec - sep->se_time.tv_sec > CNT_INTVL) {
-			  sep->se_time = now;
-			  sep->se_count = 1;
-			} else {
-			  if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
-				close (ctrl);
-			  if (sep->se_family == AF_INET &&
-				  ntohs (sep->se_ctrladdr_in.sin_port) >= IPPORT_RESERVED) {
-				/*
-				 * Cannot close it -- there are
-				 * thieves on the system.
-				 * Simply ignore the connection.
-				 */
-				--sep->se_count;
-				continue;
-			  }
-			  bb_error_msg ("%s/%s server failing (looping), service terminated",
-					  sep->se_service, sep->se_proto);
-			  if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
-				close (ctrl);
-			  FD_CLR (sep->se_fd, &allsock);
-			  (void) close (sep->se_fd);
-			  sep->se_fd = -1;
-			  sep->se_count = 0;
-			  nsock--;
-			  sigprocmask(SIG_UNBLOCK, &omask, NULL);
-			  if (!timingout) {
-				timingout = 1;
-				alarm (RETRYTIME);
-			  }
-			  continue;
-			}
-		  }
-		  pid = fork ();
-		}
-		if (pid < 0) {
-		  bb_perror_msg ("fork");
-		  if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
-			close (ctrl);
-		  sigprocmask(SIG_UNBLOCK, &omask, NULL);
-		  sleep (1);
-		  continue;
-		}
-		if (pid && sep->se_wait) {
-		  sep->se_wait = pid;
-		  FD_CLR (sep->se_fd, &allsock);
-		  nsock--;
-		}
-		sigprocmask(SIG_UNBLOCK, &omask, NULL);
-		if (pid == 0) {
+						(void) gettimeofday(&now, NULL);
+						if (now.tv_sec - sep->se_time.tv_sec > CNT_INTVL) {
+							sep->se_time = now;
+							sep->se_count = 1;
+						} else {
+							if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
+								close(ctrl);
+							if (sep->se_family == AF_INET &&
+								  ntohs(sep->se_ctrladdr_in.sin_port) >= IPPORT_RESERVED) {
+								/*
+								 * Cannot close it -- there are
+								 * thieves on the system.
+								 * Simply ignore the connection.
+								 */
+								--sep->se_count;
+								continue;
+							}
+							bb_error_msg("%s/%s server failing (looping), service terminated",
+								      sep->se_service, sep->se_proto);
+							if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
+								close(ctrl);
+							FD_CLR(sep->se_fd, &allsock);
+							(void) close(sep->se_fd);
+							sep->se_fd = -1;
+							sep->se_count = 0;
+							nsock--;
+							sigprocmask(SIG_UNBLOCK, &omask, NULL);
+							if (!timingout) {
+								timingout = 1;
+								alarm(RETRYTIME);
+							}
+							continue;
+						}
+					}
+					pid = fork();
+				}
+				if (pid < 0) {
+					bb_perror_msg("fork");
+					if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
+						close(ctrl);
+					sigprocmask(SIG_UNBLOCK, &omask, NULL);
+					sleep(1);
+					continue;
+				}
+				if (pid && sep->se_wait) {
+					sep->se_wait = pid;
+					FD_CLR(sep->se_fd, &allsock);
+					nsock--;
+				}
+				sigprocmask(SIG_UNBLOCK, &omask, NULL);
+				if (pid == 0) {
 #ifdef INETD_FEATURE_ENABLED
-		  if (sep->se_bi) {
-			(*sep->se_bi->bi_fn) (ctrl, sep);
-		  } else
+					if (sep->se_bi) {
+						(*sep->se_bi->bi_fn)(ctrl, sep);
+					} else
 #endif
-			{
-			if ((pwd = getpwnam (sep->se_user)) == NULL) {
-			  bb_error_msg ("getpwnam: %s: no such user", sep->se_user);
-			  if (sep->se_socktype != SOCK_STREAM)
-				recv (0, buf, sizeof (buf), 0);
-			  _exit (1);
+						{
+						if ((pwd = getpwnam(sep->se_user)) == NULL) {
+							bb_error_msg("getpwnam: %s: no such user", sep->se_user);
+							if (sep->se_socktype != SOCK_STREAM)
+								recv(0, buf, sizeof(buf), 0);
+							_exit(1);
+						}
+						if (setsid() < 0)
+							bb_perror_msg("%s: setsid", sep->se_service);
+						if (sep->se_group && (grp = getgrnam(sep->se_group)) == NULL) {
+							bb_error_msg("getgrnam: %s: no such group", sep->se_group);
+							if (sep->se_socktype != SOCK_STREAM)
+								recv(0, buf, sizeof(buf), 0);
+							_exit(1);
+						}
+						if (uid != 0) {
+							/* a user running private inetd */
+							if (uid != pwd->pw_uid)
+								_exit(1);
+						} else if (pwd->pw_uid) {
+							if (sep->se_group)
+								pwd->pw_gid = grp->gr_gid;
+							xsetgid((gid_t) pwd->pw_gid);
+							initgroups(pwd->pw_name, pwd->pw_gid);
+							xsetuid((uid_t) pwd->pw_uid);
+						} else if (sep->se_group) {
+							xsetgid(grp->gr_gid);
+							setgroups(1, &grp->gr_gid);
+						}
+						dup2(ctrl, 0);
+						close(ctrl);
+						dup2(0, 1);
+						dup2(0, 2);
+						if (rlim_ofile.rlim_cur != rlim_ofile_cur)
+							if (setrlimit(RLIMIT_NOFILE, &rlim_ofile) < 0)
+								bb_perror_msg("setrlimit");
+						closelog();
+						for (tmpint = rlim_ofile_cur - 1; --tmpint > 2;)
+							(void) close(tmpint);
+						sigaction(SIGPIPE, &sapipe, NULL);
+						execv(sep->se_server, sep->se_argv);
+						if (sep->se_socktype != SOCK_STREAM)
+							recv(0, buf, sizeof(buf), 0);
+						bb_perror_msg("execv %s", sep->se_server);
+						_exit(1);
+					}
+				}
+				if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
+					close(ctrl);
 			}
-			if (setsid () < 0)
-			  bb_perror_msg ("%s: setsid", sep->se_service);
-			if (sep->se_group && (grp = getgrnam (sep->se_group)) == NULL) {
-			  bb_error_msg ("getgrnam: %s: no such group", sep->se_group);
-			  if (sep->se_socktype != SOCK_STREAM)
-				recv (0, buf, sizeof (buf), 0);
-			  _exit (1);
-			}
-			if (uid != 0) {
-			  /* a user running private inetd */
-			  if (uid != pwd->pw_uid)
-				_exit (1);
-			} else if (pwd->pw_uid) {
-			  if (sep->se_group) {
-				pwd->pw_gid = grp->gr_gid;
-			  }
-			  xsetgid ((gid_t) pwd->pw_gid);
-			  initgroups (pwd->pw_name, pwd->pw_gid);
-			  xsetuid((uid_t) pwd->pw_uid);
-			} else if (sep->se_group) {
-			  xsetgid(grp->gr_gid);
-			  setgroups (1, &grp->gr_gid);
-			}
-			dup2 (ctrl, 0);
-			close (ctrl);
-			dup2 (0, 1);
-			dup2 (0, 2);
-			if (rlim_ofile.rlim_cur != rlim_ofile_cur)
-			  if (setrlimit (RLIMIT_NOFILE, &rlim_ofile) < 0)
-				bb_perror_msg ("setrlimit");
-			closelog ();
-			for (tmpint = rlim_ofile_cur - 1; --tmpint > 2;)
-			  (void) close (tmpint);
-			sigaction (SIGPIPE, &sapipe, NULL);
-			execv (sep->se_server, sep->se_argv);
-			if (sep->se_socktype != SOCK_STREAM)
-			  recv (0, buf, sizeof (buf), 0);
-			bb_perror_msg ("execv %s", sep->se_server);
-			_exit (1);
-		  }
 		}
-		if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
-		  close (ctrl);
-	  }
-  }
+	}
 }
 
 /*
@@ -1517,16 +1519,16 @@
 #define BUFSIZE 4096
 
 #if defined(CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO) || \
-    defined(CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN) || \
-    defined(CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME)
-static int dg_badinput (struct sockaddr_in *dg_sin)
+		defined(CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN) || \
+		defined(CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME)
+static int dg_badinput(struct sockaddr_in *dg_sin)
 {
-  if (ntohs (dg_sin->sin_port) < IPPORT_RESERVED)
-	return (1);
-  if (dg_sin->sin_addr.s_addr == htonl (INADDR_BROADCAST))
-	return (1);
-  /* XXX compare against broadcast addresses in SIOCGIFCONF list? */
-  return (0);
+	if (ntohs(dg_sin->sin_port) < IPPORT_RESERVED)
+		return 1;
+	if (dg_sin->sin_addr.s_addr == htonl(INADDR_BROADCAST))
+		return 1;
+	/* XXX compare against broadcast addresses in SIOCGIFCONF list? */
+	return 0;
 }
 #endif
 
@@ -1534,34 +1536,35 @@
 /* Echo service -- echo data back */
 /* ARGSUSED */
 static void
-echo_stream (int s, servtab_t *sep)
+echo_stream(int s, servtab_t *sep)
 {
-  char buffer[BUFSIZE];
-  int i;
+	char buffer[BUFSIZE];
+	int i;
 
-  inetd_setproctitle (sep->se_service, s);
-  while ((i = read (s, buffer, sizeof (buffer))) > 0 &&
-		 write (s, buffer, i) > 0);
-  exit (0);
+	inetd_setproctitle(sep->se_service, s);
+	while ((i = read(s, buffer, sizeof(buffer))) > 0 &&
+				 write(s, buffer, i) > 0);
+	exit(0);
 }
 
 /* Echo service -- echo data back */
 /* ARGSUSED */
 static void
-echo_dg (int s, servtab_t *sep ATTRIBUTE_UNUSED)
+echo_dg(int s, servtab_t *sep ATTRIBUTE_UNUSED)
 {
-  char buffer[BUFSIZE];
-  int i;
-  socklen_t size;
-  /* struct sockaddr_storage ss; */
-  struct sockaddr sa;
+	char buffer[BUFSIZE];
+	int i;
+	socklen_t size;
+	/* struct sockaddr_storage ss; */
+	struct sockaddr sa;
 
-  size = sizeof (sa);
-  if ((i = recvfrom (s, buffer, sizeof (buffer), 0, &sa, &size)) < 0)
-	return;
-  if (dg_badinput ((struct sockaddr_in *) &sa))
-	return;
-  (void) sendto (s, buffer, i, 0, &sa, sizeof (sa));
+	size = sizeof(sa);
+	i = recvfrom(s, buffer, sizeof(buffer), 0, &sa, &size);
+	if (i < 0)
+		return;
+	if (dg_badinput((struct sockaddr_in *) &sa))
+		return;
+	(void) sendto(s, buffer, i, 0, &sa, sizeof(sa));
 }
 #endif  /* CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO */
 
@@ -1569,24 +1572,24 @@
 /* Discard service -- ignore data */
 /* ARGSUSED */
 static void
-discard_stream (int s, servtab_t *sep)
+discard_stream(int s, servtab_t *sep)
 {
-  char buffer[BUFSIZE];
+	char buffer[BUFSIZE];
 
-  inetd_setproctitle (sep->se_service, s);
-  while ((errno = 0, read (s, buffer, sizeof (buffer)) > 0) ||
-		 errno == EINTR);
-  exit (0);
+	inetd_setproctitle(sep->se_service, s);
+	while ((errno = 0, read(s, buffer, sizeof(buffer)) > 0) ||
+				 errno == EINTR);
+	exit(0);
 }
 
 /* Discard service -- ignore data */
 /* ARGSUSED */
 static void
-discard_dg (int s, servtab_t *sep ATTRIBUTE_UNUSED)
+discard_dg(int s, servtab_t *sep ATTRIBUTE_UNUSED)
 {
-  char buffer[BUFSIZE];
+	char buffer[BUFSIZE];
 
-  (void) read (s, buffer, sizeof (buffer));
+	(void) read(s, buffer, sizeof(buffer));
 }
 #endif /* CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD */
 
@@ -1597,84 +1600,84 @@
 static char *endring;
 
 static void
-initring (void)
+initring(void)
 {
-  int i;
+	int i;
 
-  endring = ring;
+	endring = ring;
 
-  for (i = 0; i <= 128; ++i)
-	if (isprint (i))
-	  *endring++ = i;
+	for (i = 0; i <= 128; ++i)
+		if (isprint(i))
+			*endring++ = i;
 }
 
 /* Character generator */
 /* ARGSUSED */
 static void
-chargen_stream (int s, servtab_t *sep)
+chargen_stream(int s, servtab_t *sep)
 {
-  char *rs;
-  int len;
-  char text[LINESIZ + 2];
+	char *rs;
+	int len;
+	char text[LINESIZ + 2];
 
-  inetd_setproctitle (sep->se_service, s);
+	inetd_setproctitle(sep->se_service, s);
 
-  if (!endring) {
-	initring ();
-	rs = ring;
-  }
+	if (!endring) {
+		initring();
+		rs = ring;
+	}
 
-  text[LINESIZ] = '\r';
-  text[LINESIZ + 1] = '\n';
-  for (rs = ring;;) {
-	if ((len = endring - rs) >= LINESIZ)
-	  memmove (text, rs, LINESIZ);
-	else {
-	  memmove (text, rs, len);
-	  memmove (text + len, ring, LINESIZ - len);
+	text[LINESIZ] = '\r';
+	text[LINESIZ + 1] = '\n';
+	for (rs = ring;;) {
+		if ((len = endring - rs) >= LINESIZ)
+			memmove(text, rs, LINESIZ);
+		else {
+			memmove(text, rs, len);
+			memmove(text + len, ring, LINESIZ - len);
+		}
+		if (++rs == endring)
+			rs = ring;
+		if (write(s, text, sizeof(text)) != sizeof(text))
+			break;
 	}
-	if (++rs == endring)
-	  rs = ring;
-	if (write (s, text, sizeof (text)) != sizeof (text))
-	  break;
-  }
-  exit (0);
+	exit(0);
 }
 
 /* Character generator */
 /* ARGSUSED */
 static void
-chargen_dg (int s, servtab_t *sep ATTRIBUTE_UNUSED)
+chargen_dg(int s, servtab_t *sep ATTRIBUTE_UNUSED)
 {
-  /* struct sockaddr_storage ss; */
-  struct sockaddr sa;
-  static char *rs;
-  int len;
-  char text[LINESIZ + 2];
-  socklen_t size;
+	/* struct sockaddr_storage ss; */
+	struct sockaddr sa;
+	static char *rs;
+	int len;
+	char text[LINESIZ + 2];
+	socklen_t size;
 
-  if (endring == 0) {
-	initring ();
-	rs = ring;
-  }
+	if (endring == 0) {
+		initring();
+		rs = ring;
+	}
 
-  size = sizeof (sa);
-  if (recvfrom (s, text, sizeof (text), 0, &sa, &size) < 0)
-	return;
-  if (dg_badinput ((struct sockaddr_in *) &sa))
-	return;
+	size = sizeof(sa);
+	if (recvfrom(s, text, sizeof(text), 0, &sa, &size) < 0)
+		return;
+	if (dg_badinput((struct sockaddr_in *) &sa))
+		return;
 
-  if ((len = endring - rs) >= LINESIZ)
-	memmove (text, rs, LINESIZ);
-  else {
-	memmove (text, rs, len);
-	memmove (text + len, ring, LINESIZ - len);
-  }
-  if (++rs == endring)
-	rs = ring;
-  text[LINESIZ] = '\r';
-  text[LINESIZ + 1] = '\n';
-  (void) sendto (s, text, sizeof (text), 0, &sa, sizeof (sa));
+	if ((len = endring - rs) >= LINESIZ)
+		memmove(text, rs, LINESIZ);
+	else {
+		memmove(text, rs, len);
+		memmove(text + len, ring, LINESIZ - len);
+	}
+	if (++rs == endring)
+		rs = ring;
+	text[LINESIZ] = '\r';
+	text[LINESIZ + 1] = '\n';
+	(void) sendto(s, text, sizeof(text), 0, &sa, sizeof(sa));
 }
 #endif /* CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN */
 
@@ -1688,47 +1691,47 @@
  * some seventy years Bell Labs was asleep.
  */
 
-static u_int machtime (void)
+static u_int machtime(void)
 {
-  struct timeval tv;
+	struct timeval tv;
 
-  if (gettimeofday (&tv, NULL) < 0) {
-	fprintf (stderr, "Unable to get time of day\n");
-	return (0L);
-  }
-  return (htonl ((u_int) tv.tv_sec + 2208988800UL));
+	if (gettimeofday(&tv, NULL) < 0) {
+		fprintf(stderr, "Unable to get time of day\n");
+		return 0L;
+	}
+	return htonl((u_int) tv.tv_sec + 2208988800UL);
 }
 
 /* ARGSUSED */
 static void
-machtime_stream (int s, servtab_t *sep ATTRIBUTE_UNUSED)
+machtime_stream(int s, servtab_t *sep ATTRIBUTE_UNUSED)
 {
-  u_int result;
+	u_int result;
 
-  result = machtime ();
-  (void) write (s, (char *) &result, sizeof (result));
+	result = machtime();
+	(void) write(s, (char *) &result, sizeof(result));
 }
 
 /* ARGSUSED */
 static void
-machtime_dg (int s, servtab_t *sep ATTRIBUTE_UNUSED)
+machtime_dg(int s, servtab_t *sep ATTRIBUTE_UNUSED)
 {
-  u_int result;
-  /* struct sockaddr_storage ss; */
-  struct sockaddr sa;
-  struct sockaddr_in *dg_sin;
-  socklen_t size;
+	u_int result;
+	/* struct sockaddr_storage ss; */
+	struct sockaddr sa;
+	struct sockaddr_in *dg_sin;
+	socklen_t size;
 
-  size = sizeof (sa);
-  if (recvfrom (s, (char *) &result, sizeof (result), 0, &sa, &size) < 0)
-	return;
-  /* if (dg_badinput((struct sockaddr *)&ss)) */
-  dg_sin = (struct sockaddr_in *) &sa;
-  if (dg_sin->sin_addr.s_addr == htonl (INADDR_BROADCAST) ||
-	  ntohs (dg_sin->sin_port) < IPPORT_RESERVED / 2)
-	return;
-  result = machtime ();
-  (void) sendto (s, (char *) &result, sizeof (result), 0, &sa, sizeof (sa));
+	size = sizeof(sa);
+	if (recvfrom(s, (char *) &result, sizeof(result), 0, &sa, &size) < 0)
+		return;
+	/* if (dg_badinput((struct sockaddr *)&ss)) */
+	dg_sin = (struct sockaddr_in *) &sa;
+	if (dg_sin->sin_addr.s_addr == htonl(INADDR_BROADCAST) ||
+			ntohs(dg_sin->sin_port) < IPPORT_RESERVED / 2)
+		return;
+	result = machtime();
+	(void) sendto(s, (char *) &result, sizeof(result), 0, &sa, sizeof(sa));
 }
 #endif /* CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME */
 
@@ -1736,36 +1739,36 @@
 #ifdef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
 /* Return human-readable time of day */
 /* ARGSUSED */
-static void daytime_stream (int s, servtab_t *sep ATTRIBUTE_UNUSED)
+static void daytime_stream(int s, servtab_t *sep ATTRIBUTE_UNUSED)
 {
-  char buffer[256];
-  time_t t;
+	char buffer[256];
+	time_t t;
 
-  t = time (NULL);
+	t = time(NULL);
 
-  (void) sprintf (buffer, "%.24s\r\n", ctime (&t));
-  (void) write (s, buffer, strlen (buffer));
+	(void) sprintf(buffer, "%.24s\r\n", ctime(&t));
+	(void) write(s, buffer, strlen(buffer));
 }
 
 /* Return human-readable time of day */
 /* ARGSUSED */
 void
-daytime_dg (int s, servtab_t *sep ATTRIBUTE_UNUSED)
+daytime_dg(int s, servtab_t *sep ATTRIBUTE_UNUSED)
 {
-  char buffer[256];
-  time_t t;
-  /* struct sockaddr_storage ss; */
-  struct sockaddr sa;
-  socklen_t size;
+	char buffer[256];
+	time_t t;
+	/* struct sockaddr_storage ss; */
+	struct sockaddr sa;
+	socklen_t size;
 
-  t = time ((time_t *) 0);
+	t = time(NULL);
 
-  size = sizeof (sa);
-  if (recvfrom (s, buffer, sizeof (buffer), 0, &sa, &size) < 0)
-	return;
-  if (dg_badinput ((struct sockaddr_in *) &sa))
-	return;
-  (void) sprintf (buffer, "%.24s\r\n", ctime (&t));
-  (void) sendto (s, buffer, strlen (buffer), 0, &sa, sizeof (sa));
+	size = sizeof(sa);
+	if (recvfrom(s, buffer, sizeof(buffer), 0, &sa, &size) < 0)
+		return;
+	if (dg_badinput((struct sockaddr_in *) &sa))
+		return;
+	(void) sprintf(buffer, "%.24s\r\n", ctime(&t));
+	(void) sendto(s, buffer, strlen(buffer), 0, &sa, sizeof(sa));
 }
 #endif /* CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME */

 ------------------------------------------------------------------------
r16202 | vda | 2006-09-23 09:31:46 -0400 (Sat, 23 Sep 2006) | 2 lines
Changed paths:
   M /trunk/busybox/util-linux/hexdump.c

hexdump: deindent, almost fits into 80 columns now

 ------------------------------------------------------------------------

Index: util-linux/hexdump.c
===================================================================
--- util-linux/hexdump.c	(revision 16201)
+++ util-linux/hexdump.c	(revision 16202)
@@ -33,11 +33,11 @@
 }
 
 static const char * const add_strings[] = {
-			"\"%07.7_ax \" 16/1 \"%03o \" \"\\n\"",		/* b */
-			"\"%07.7_ax \" 16/1 \"%3_c \" \"\\n\"",		/* c */
-			"\"%07.7_ax \" 8/2 \"  %05u \" \"\\n\"",	/* d */
-			"\"%07.7_ax \" 8/2 \" %06o \" \"\\n\"",		/* o */
-			"\"%07.7_ax \" 8/2 \"   %04x \" \"\\n\"",	/* x */
+	"\"%07.7_ax \" 16/1 \"%03o \" \"\\n\"",		/* b */
+	"\"%07.7_ax \" 16/1 \"%3_c \" \"\\n\"",		/* c */
+	"\"%07.7_ax \" 8/2 \"  %05u \" \"\\n\"",	/* d */
+	"\"%07.7_ax \" 8/2 \" %06o \" \"\\n\"",		/* o */
+	"\"%07.7_ax \" 8/2 \"   %04x \" \"\\n\"",	/* x */
 };
 
 static const char add_first[] = "\"%07.7_Ax\n\"";
@@ -53,7 +53,6 @@
 
 int hexdump_main(int argc, char **argv)
 {
-//	register FS *tfs;
 	const char *p;
 	int ch;
 
@@ -61,34 +60,33 @@
 	bb_dump_length = -1;
 
 	while ((ch = getopt(argc, argv, hexdump_opts)) > 0) {
-		if ((p = strchr(hexdump_opts, ch)) != NULL) {
-			if ((p - hexdump_opts) < 5) {
-				bb_dump_add(add_first);
-				bb_dump_add(add_strings[(int)(p - hexdump_opts)]);
-			} else if (ch == 'C') {
-				bb_dump_add("\"%08.8_Ax\n\"");
-				bb_dump_add("\"%08.8_ax  \" 8/1 \"%02x \" \"  \" 8/1 \"%02x \" ");
-				bb_dump_add("\"  |\" 16/1 \"%_p\" \"|\\n\"");
-			} else {
-				/* Sae a little bit of space below by omitting the 'else's. */
-				if (ch == 'e') {
-					bb_dump_add(optarg);
-				} /* else */
-				if (ch == 'f') {
-					bb_dump_addfile(optarg);
-				} /* else */
-				if (ch == 'n') {
-					bb_dump_length = bb_xgetularg10_bnd(optarg, 0, INT_MAX);
-				} /* else */
-				if (ch == 's') {
-					bb_dump_skip = bb_xgetularg_bnd_sfx(optarg, 10, 0, LONG_MAX, suffixes);
-				} /* else */
-				if (ch == 'v') {
-					bb_dump_vflag = ALL;
-				}
-			}
-		} else {
+		p = strchr(hexdump_opts, ch)
+		if (!p)
 			bb_show_usage();
+		if ((p - hexdump_opts) < 5) {
+			bb_dump_add(add_first);
+			bb_dump_add(add_strings[(int)(p - hexdump_opts)]);
+		} else if (ch == 'C') {
+			bb_dump_add("\"%08.8_Ax\n\"");
+			bb_dump_add("\"%08.8_ax  \" 8/1 \"%02x \" \"  \" 8/1 \"%02x \" ");
+			bb_dump_add("\"  |\" 16/1 \"%_p\" \"|\\n\"");
+		} else {
+			/* Save a little bit of space below by omitting the 'else's. */
+			if (ch == 'e') {
+				bb_dump_add(optarg);
+			} /* else */
+			if (ch == 'f') {
+				bb_dump_addfile(optarg);
+			} /* else */
+			if (ch == 'n') {
+				bb_dump_length = bb_xgetularg10_bnd(optarg, 0, INT_MAX);
+			} /* else */
+			if (ch == 's') {
+				bb_dump_skip = bb_xgetularg_bnd_sfx(optarg, 10, 0, LONG_MAX, suffixes);
+			} /* else */
+			if (ch == 'v') {
+				bb_dump_vflag = ALL;
+			}
 		}
 	}
 
@@ -99,5 +97,5 @@
 
 	argv += optind;
 
-	return(bb_dump_dump(argv));
+	return bb_dump_dump(argv);
 }

 ------------------------------------------------------------------------
r16201 | vda | 2006-09-23 09:11:49 -0400 (Sat, 23 Sep 2006) | 3 lines
Changed paths:
   M /trunk/busybox/libbb/correct_password.c
   M /trunk/busybox/loginutils/su.c
   M /trunk/busybox/loginutils/vlock.c

correct_password: undo whitespace damage.
vlock + correct_password: fix incorrect line breaks in messages.

 ------------------------------------------------------------------------

Index: libbb/correct_password.c
===================================================================
--- libbb/correct_password.c	(revision 16200)
+++ libbb/correct_password.c	(revision 16201)
@@ -28,50 +28,38 @@
  * SUCH DAMAGE.
  */
 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
 #include "libbb.h"
 
-
-
 /* Ask the user for a password.
    Return 1 if the user gives the correct password for entry PW,
    0 if not.  Return 1 without asking for a password if run by UID 0
    or if PW has an empty password.  */
 
-int correct_password ( const struct passwd *pw )
+int correct_password(const struct passwd *pw)
 {
 	char *unencrypted, *encrypted, *correct;
 
 #ifdef CONFIG_FEATURE_SHADOWPASSWDS
-	if (( strcmp ( pw-> pw_passwd, "x" ) == 0 ) || ( strcmp ( pw-> pw_passwd, "*" ) == 0 )) {
-		struct spwd *sp = getspnam ( pw-> pw_name );
+	if (!strcmp(pw->pw_passwd, "x") || !strcmp(pw->pw_passwd, "*")) {
+		struct spwd *sp = getspnam(pw->pw_name);
 
-		if ( !sp )
-			bb_error_msg_and_die ( "\nno valid shadow password" );
+		if (!sp)
+			bb_error_msg_and_die("no valid shadow password");
 
-		correct = sp-> sp_pwdp;
+		correct = sp->sp_pwdp;
 	}
 	else
 #endif
-		correct = pw-> pw_passwd;
+		correct = pw->pw_passwd;
 
-	if ( correct == 0 || correct[0] == '\0' )
+	if (!correct || correct[0] == '\0')
 		return 1;
 
-	unencrypted = bb_askpass ( 0, "Password: " );
-	if ( !unencrypted )
-	{
+	unencrypted = bb_askpass(0, "Password: ");
+	if (!unencrypted) {
 		return 0;
 	}
-	encrypted = crypt ( unencrypted, correct );
-	memset ( unencrypted, 0, strlen ( unencrypted ));
-	return ( strcmp ( encrypted, correct ) == 0 ) ? 1 : 0;
+	encrypted = crypt(unencrypted, correct);
+	memset(unencrypted, 0, strlen(unencrypted));
+	return (!strcmp(encrypted, correct)) ? 1 : 0;
 }
Index: loginutils/vlock.c
===================================================================
--- loginutils/vlock.c	(revision 16200)
+++ loginutils/vlock.c	(revision 16201)
@@ -108,13 +108,12 @@
 	tcsetattr(STDIN_FILENO, TCSANOW, &term);
 
 	do {
-		printf("Virtual Console%s locked.\n%s's ", (o_lock_all) ? "s" : "", pw->pw_name);
-		fflush(stdout);
-		if (correct_password (pw)) {
+		printf("Virtual Console%s locked. Enter %s's password to unlock\n", (o_lock_all) ? "s" : "", pw->pw_name);
+		if (correct_password(pw)) {
 			break;
 		}
 		bb_do_delay(FAIL_DELAY);
-		puts("Password incorrect.");
+		puts("Password incorrect");
 	} while (1);
 	restore_terminal();
 	return 0;
Index: loginutils/su.c
===================================================================
--- loginutils/su.c	(revision 16200)
+++ loginutils/su.c	(revision 16201)
@@ -45,7 +45,7 @@
 	}
 
 	pw = getpwnam(opt_username);
-	if (!pw) bb_error_msg_and_die("Unknown id: %s", opt_username);
+	if (!pw) bb_error_msg_and_die("unknown id: %s", opt_username);
 
 	/* Make sure pw->pw_shell is non-NULL.  It may be NULL when NEW_USER
 	   is a username that is retrieved via NIS (YP), but that doesn't have

 ------------------------------------------------------------------------
r16200 | vda | 2006-09-23 08:49:01 -0400 (Sat, 23 Sep 2006) | 2 lines
Changed paths:
   M /trunk/busybox/networking/ifupdown.c

ifupdown: getopt_ulflags'ification.

 ------------------------------------------------------------------------

Index: networking/ifupdown.c
===================================================================
--- networking/ifupdown.c	(revision 16199)
+++ networking/ifupdown.c	(revision 16200)
@@ -91,8 +91,21 @@
 	struct mapping_defn_t *mappings;
 };
 
-static char no_act = 0;
-static char verbose = 0;
+static unsigned option_mask;
+#define OPTION_STR "anvf" USE_FEATURE_IFUPDOWN_MAPPING("m") "i:"
+enum {
+	OPT_do_all = 0x1,
+	OPT_no_act = 0x2,
+	OPT_verbose = 0x4,
+	OPT_force = 0x8,
+	OPT_no_mappings = 0x10,
+};
+#define DO_ALL (option_mask & OPT_do_all)
+#define NO_ACT (option_mask & OPT_no_act)
+#define VERBOSE (option_mask & OPT_verbose)
+#define FORCE (option_mask & OPT_force)
+#define NO_MAPPINGS (option_mask & OPT_no_mappings)
+
 static char **__myenviron = NULL;
 
 #if ENABLE_FEATURE_IFUPDOWN_IPV4 || ENABLE_FEATURE_IFUPDOWN_IPV6
@@ -875,10 +888,10 @@
 
 static int doit(char *str)
 {
-	if (verbose || no_act) {
+	if (option_mask & (OPT_no_act|OPT_verbose)) {
 		printf("%s\n", str);
 	}
-	if (!no_act) {
+	if (!(option_mask & OPT_no_act)) {
 		pid_t child;
 		int status;
 
@@ -895,7 +908,7 @@
 			return 0;
 		}
 	}
-	return (1);
+	return 1;
 }
 
 static int execute_all(struct interface_defn_t *ifd, const char *opt)
@@ -1070,12 +1083,6 @@
 	llist_t *target_list = NULL;
 	const char *interfaces = "/etc/network/interfaces";
 	const char *statefile = "/var/run/ifstate";
-
-#ifdef CONFIG_FEATURE_IFUPDOWN_MAPPING
-	int run_mappings = 1;
-#endif
-	int do_all = 0;
-	int force = 0;
 	int any_failures = 0;
 	int i;
 
@@ -1087,48 +1094,11 @@
 		cmds = iface_down;
 	}
 
-#ifdef CONFIG_FEATURE_IFUPDOWN_MAPPING
-	while ((i = getopt(argc, argv, "i:hvnamf")) != -1)
-#else
-		while ((i = getopt(argc, argv, "i:hvnaf")) != -1)
-#endif
-		{
-			switch (i) {
-				case 'i':	/* interfaces */
-					interfaces = optarg;
-					break;
-				case 'v':	/* verbose */
-					verbose = 1;
-					break;
-				case 'a':	/* all */
-					do_all = 1;
-					break;
-				case 'n':	/* no-act */
-					no_act = 1;
-					break;
-#ifdef CONFIG_FEATURE_IFUPDOWN_MAPPING
-				case 'm':	/* no-mappings */
-					run_mappings = 0;
-					break;
-#endif
-				case 'f':	/* force */
-					force = 1;
-					break;
-				default:
-					bb_show_usage();
-					break;
-			}
-		}
-
+	option_mask = bb_getopt_ulflags(argc, argv, OPTION_STR, &interfaces);
 	if (argc - optind > 0) {
-		if (do_all) {
-			bb_show_usage();
-		}
-	} else {
-		if (!do_all) {
-			bb_show_usage();
-		}
-	}
+		if (DO_ALL) bb_show_usage();
+	} else
+		if (!DO_ALL) bb_show_usage();
 
 	debug_noise("reading %s file:\n", interfaces);
 	defn = read_interfaces(interfaces);
@@ -1139,7 +1109,7 @@
 	}
 
 	/* Create a list of interfaces to work on */
-	if (do_all) {
+	if (DO_ALL) {
 		if (cmds == iface_up) {
 			target_list = defn->autointerfaces;
 		} else {
@@ -1177,7 +1147,7 @@
 			liface = xstrdup(iface);
 		}
 
-		if (!force) {
+		if (!FORCE) {
 			const llist_t *iface_state = find_iface_state(state_list, iface);
 
 			if (cmds == iface_up) {
@@ -1196,7 +1166,7 @@
 		}
 
 #ifdef CONFIG_FEATURE_IFUPDOWN_MAPPING
-		if ((cmds == iface_up) && run_mappings) {
+		if ((cmds == iface_up) && !NO_MAPPINGS) {
 			struct mapping_defn_t *currmap;
 
 			for (currmap = defn->mappings; currmap; currmap = currmap->next) {
@@ -1204,7 +1174,7 @@
 				for (i = 0; i < currmap->n_matches; i++) {
 					if (fnmatch(currmap->match[i], liface, 0) != 0)
 						continue;
-					if (verbose) {
+					if (VERBOSE) {
 						printf("Running mapping script %s on %s\n", currmap->script, liface);
 					}
 					liface = run_mapping(iface, currmap);
@@ -1240,11 +1210,11 @@
 			}
 			iface_list = iface_list->link;
 		}
-		if (verbose) {
+		if (VERBOSE) {
 			printf("\n");
 		}
 
-		if (!okay && !force) {
+		if (!okay && !FORCE) {
 			bb_error_msg("Ignoring unknown interface %s", liface);
 			any_failures += 1;
 		} else {
@@ -1266,7 +1236,7 @@
 	}
 
 	/* Actually write the new state */
-	if (!no_act) {
+	if (!NO_ACT) {
 		FILE *state_fp = NULL;
 
 		state_fp = xfopen(statefile, "w");

 ------------------------------------------------------------------------
r16199 | vda | 2006-09-23 08:46:30 -0400 (Sat, 23 Sep 2006) | 3 lines
Changed paths:
   M /trunk/busybox/networking/arping.c

arping: fix bug (getopt_ulflags and optarg don't mix),
remove unreachable error path.

 ------------------------------------------------------------------------

Index: networking/arping.c
===================================================================
--- networking/arping.c	(revision 16198)
+++ networking/arping.c	(revision 16199)
@@ -260,35 +260,32 @@
 	char *target;
 
 	s = xsocket(PF_PACKET, SOCK_DGRAM, 0);
-	ifindex = errno;
 
 	// Drop suid root privileges
 	xsetuid(getuid());
 
 	{
 		unsigned long opt;
-		char *_count, *_timeout, *_device;
+		char *_count, *_timeout;
 
 		/* Dad also sets quit_on_reply.
 		 * Advert also sets unsolicited.
 		 */
 		bb_opt_complementally = "Df:AU";
 		opt = bb_getopt_ulflags(argc, argv, "DUAqfbc:w:i:s:",
-						&_count, &_timeout, &_device);
-		cfg |= opt & 63; /* set respective flags */
-		if (opt & 64) /* count */
+					&_count, &_timeout, &device, &source);
+		cfg |= opt & 0x3f; /* set respective flags */
+		if (opt & 0x40) /* -c: count */
 			count = atoi(_count);
-		if (opt & 128) /* timeout */
+		if (opt & 0x80) /* -w: timeout */
 			timeout = atoi(_timeout);
-		if (opt & 256) { /* interface */
-			if (strlen(_device) > IF_NAMESIZE) {
-				bb_error_msg_and_die("Interface name `%s' must be less than %d",
-								_device, IF_NAMESIZE);
+		if (opt & 0x100) { /* -i: interface */
+			if (strlen(device) > IF_NAMESIZE) {
+				bb_error_msg_and_die("interface name '%s' is too long",
+								device);
 			}
-			device = _device;
 		}
-		if (opt & 512) /* source */
-			source = optarg;
+		//if (opt & 0x200) /* -s: source */
 	}
 	argc -= optind;
 	argv += optind;
@@ -298,11 +295,6 @@
 
 	target = *argv;
 
-
-	if (s < 0) {
-		bb_default_error_retval = ifindex;
-		bb_perror_msg_and_die("socket");
-	}
 	bb_default_error_retval = 2;
 
 	{
@@ -311,7 +303,7 @@
 		memset(&ifr, 0, sizeof(ifr));
 		strncpy(ifr.ifr_name, device, IFNAMSIZ - 1);
 		if (ioctl(s, SIOCGIFINDEX, &ifr) < 0) {
-			bb_error_msg_and_die("Interface %s not found", device);
+			bb_error_msg_and_die("interface %s not found", device);
 		}
 		ifindex = ifr.ifr_ifindex;
 
@@ -319,10 +311,10 @@
 			bb_error_msg_and_die("SIOCGIFFLAGS");
 		}
 		if (!(ifr.ifr_flags & IFF_UP)) {
-			bb_error_msg_and_die("Interface %s is down", device);
+			bb_error_msg_and_die("interface %s is down", device);
 		}
 		if (ifr.ifr_flags & (IFF_NOARP | IFF_LOOPBACK)) {
-			bb_error_msg("Interface %s is not ARPable", device);
+			bb_error_msg("interface %s is not ARPable", device);
 			exit(cfg&dad ? 0 : 2);
 		}
 	}
@@ -352,7 +344,7 @@
 			if (setsockopt
 				(probe_fd, SOL_SOCKET, SO_BINDTODEVICE, device,
 				 strlen(device) + 1) == -1)
-				bb_error_msg("WARNING: interface %s is ignored", device);
+				bb_error_msg("warning: interface %s is ignored", device);
 		}
 		memset(&saddr, 0, sizeof(saddr));
 		saddr.sin_family = AF_INET;
@@ -371,7 +363,7 @@
 			if (setsockopt
 				(probe_fd, SOL_SOCKET, SO_DONTROUTE, (char *) &on,
 				 sizeof(on)) == -1)
-				bb_perror_msg("WARNING: setsockopt(SO_DONTROUTE)");
+				bb_perror_msg("warning: setsockopt(SO_DONTROUTE)");
 			if (connect(probe_fd, (struct sockaddr *) &saddr, sizeof(saddr))
 				== -1) {
 				bb_error_msg_and_die("connect");
@@ -440,7 +432,7 @@
 
 		if ((cc = recvfrom(s, packet, 4096, 0,
 						   (struct sockaddr *) &from, &alen)) < 0) {
-			perror("recvfrom");
+			bb_perror_msg("recvfrom");
 			continue;
 		}
 		sigemptyset(&sset);

 ------------------------------------------------------------------------
r16198 | vda | 2006-09-23 08:32:58 -0400 (Sat, 23 Sep 2006) | 2 lines
Changed paths:
   M /trunk/busybox/modutils/insmod.c

insmod: getopt_ulflags'isation

 ------------------------------------------------------------------------

Index: modutils/insmod.c
===================================================================
--- modutils/insmod.c	(revision 16197)
+++ modutils/insmod.c	(revision 16198)
@@ -693,13 +693,37 @@
 
 /*======================================================================*/
 
-static int flag_force_load = 0;
-static int flag_autoclean = 0;
-static int flag_verbose = 0;
-static int flag_quiet = 0;
-static int flag_export = 1;
+static unsigned option_mask;
+#define OPTION_STR "sLo:fkvqx" USE_FEATURE_INSMOD_LOAD_MAP("m")
+enum {
+	OPT_s = 0x1, // -s /* log to syslog */
+		/* Not supported but kernel needs this for request_module(),
+		   as this calls: modprobe -k -s -- 
+		   so silently ignore this flag */
+	OPT_L = 0x2, // -L /* Stub warning */
+		/* Compatibility with modprobe.
+		   In theory, this does locking, but we don't do
+		   that.  So be careful and plan your life around not
+		   loading the same module 50 times concurrently. */
+	OPT_o = 0x4, // -o /* name the output module */
+	OPT_f = 0x8, // -f /* force loading */
+	OPT_k = 0x10, // -k /* module loaded by kerneld, auto-cleanable */
+	OPT_v = 0x20, // -v /* verbose output */
+	OPT_q = 0x40, // -q /* silent */
+	OPT_x = 0x80, // -x /* do not export externs */
+	OPT_m = 0x100, // -m /* print module load map */
+};
+#define flag_force_load (option_mask & OPT_f)
+#define flag_autoclean (option_mask & OPT_k)
+#define flag_verbose (option_mask & OPT_v)
+#define flag_quiet (option_mask & OPT_q)
+#define flag_noexport (option_mask & OPT_x)
+#ifdef CONFIG_FEATURE_INSMOD_LOAD_MAP
+#define flag_print_load_map (option_mask & OPT_m)
+#else
+#define flag_print_load_map 0
+#endif
 
-
 /*======================================================================*/
 
 #if defined(CONFIG_USE_LIST)
@@ -2851,7 +2875,7 @@
 			}
 	}
 
-	if (flag_export && !obj_find_section(f, "__ksymtab")) {
+	if (!flag_noexport && !obj_find_section(f, "__ksymtab")) {
 		size_t nsyms;
 		int *loaded;
 
@@ -3764,7 +3788,7 @@
 	 * are not to be exported.  otherwise leave ksymtab alone for now, the
 	 * "export all symbols" compatibility code will export these symbols later.
 	 */
-	use_ksymtab =  obj_find_section(f, "__ksymtab") || !flag_export;
+	use_ksymtab = obj_find_section(f, "__ksymtab") || flag_noexport;
 
 	if ((sec = obj_find_section(f, ".this"))) {