Commit c94737ceabd196e9576e4c07da290a4421836f96

Con Kolivas 2011-07-28T12:44:50

Add http:// if it's not explicitly set for URL entries.

diff --git a/main.c b/main.c
index 8e56304..0eb8c8f 100644
--- a/main.c
+++ b/main.c
@@ -400,7 +400,7 @@ static char *set_rr(enum pool_strategy *strategy)
 	return NULL;
 }
 
-static char *set_url(const char *arg, char **p)
+static char *set_url(char *arg, char **p)
 {
 	struct pool *pool;
 
@@ -411,8 +411,16 @@ static char *set_url(const char *arg, char **p)
 
 	opt_set_charp(arg, &pool->rpc_url);
 	if (strncmp(arg, "http://", 7) &&
-	    strncmp(arg, "https://", 8))
-		return "URL must start with http:// or https://";
+	    strncmp(arg, "https://", 8)) {
+		char *httpinput;
+
+		httpinput = malloc(255);
+		if (!httpinput)
+			quit(1, "Failed to malloc httpinput");
+		strcpy(httpinput, "http://");
+		strncat(httpinput, arg, 248);
+		pool->rpc_url = httpinput;
+	}
 
 	return NULL;
 }
@@ -3579,10 +3587,20 @@ static bool input_pool(bool live)
 	wlogprint("Input server details.\n");
 
 	url = curses_input("URL");
+	if (!url)
+		goto out;
+
 	if (strncmp(url, "http://", 7) &&
 	    strncmp(url, "https://", 8)) {
-		applog(LOG_ERR, "URL must start with http:// or https://");
-		goto out;
+		char *httpinput;
+
+		httpinput = malloc(255);
+		if (!httpinput)
+			quit(1, "Failed to malloc httpinput");
+		strcpy(httpinput, "http://");
+		strncat(httpinput, url, 248);
+		free(url);
+		url = httpinput;
 	}
 
 	user = curses_input("Username");