Browse Source

Make failure to open sharelog or noncelog abort startup

Luke Dashjr 12 years ago
parent
commit
b73844f33d
1 changed files with 22 additions and 3 deletions
  1. 22 3
      miner.c

+ 22 - 3
miner.c

@@ -1185,20 +1185,39 @@ char *_bfgopt_set_file(const char *arg, FILE **F, const char *mode, const char *
 {
 	char *r = "";
 	long int i = strtol(arg, &r, 10);
+	static char *err = NULL;
+	const size_t errbufsz = 0x100;
 
+	free(err);
+	err = NULL;
+	
 	if ((!*r) && i >= 0 && i <= INT_MAX) {
 		*F = fdopen((int)i, mode);
 		if (!*F)
-			applog(LOG_ERR, "Failed to open fd %d for %s", (int)i, purpose);
+		{
+			err = malloc(errbufsz);
+			snprintf(err, errbufsz, "Failed to open fd %d for %s",
+			         (int)i, purpose);
+			return err;
+		}
 	} else if (!strcmp(arg, "-")) {
 		*F = (mode[0] == 'a') ? stdout : stdin;
 		if (!*F)
-			applog(LOG_ERR, "Standard %sput missing for %s",
+		{
+			err = malloc(errbufsz);
+			snprintf(err, errbufsz, "Standard %sput missing for %s",
 			         (mode[0] == 'a') ? "out" : "in", purpose);
+			return err;
+		}
 	} else {
 		*F = fopen(arg, mode);
 		if (!*F)
-			applog(LOG_ERR, "Failed to open %s for %s", arg, purpose);
+		{
+			err = malloc(errbufsz);
+			snprintf(err, errbufsz, "Failed to open %s for %s",
+			         arg, purpose);
+			return err;
+		}
 	}
 
 	return NULL;