|
@@ -134,6 +134,7 @@ static config_var_t config_vars[] = {
|
|
|
VAR("HashedControlPassword",STRING, HashedControlPassword, NULL),
|
|
|
VAR("HttpProxy", STRING, HttpProxy, NULL),
|
|
|
VAR("HttpsProxy", STRING, HttpsProxy, NULL),
|
|
|
+ VAR("HttpsProxyAuthenticator",STRING,HttpsProxyAuthenticator,NULL),
|
|
|
VAR("HiddenServiceOptions",LINELIST_V, RendConfigLines, NULL),
|
|
|
VAR("HiddenServiceDir", LINELIST_S, RendConfigLines, NULL),
|
|
|
VAR("HiddenServicePort", LINELIST_S, RendConfigLines, NULL),
|
|
@@ -343,8 +344,6 @@ options_act(void) {
|
|
|
set_exit_redirects(sl);
|
|
|
}
|
|
|
|
|
|
- /* Start backgrounding the process, if requested. */
|
|
|
-
|
|
|
/* Finish backgrounding the process */
|
|
|
if (options->RunAsDaemon) {
|
|
|
/* We may be calling this for the n'th time (on SIGHUP), but it's safe. */
|
|
@@ -1512,6 +1511,13 @@ options_validate(or_options_t *options)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if (options->HttpsProxyAuthenticator) {
|
|
|
+ if (strlen(options->HttpsProxyAuthenticator) >= 48) {
|
|
|
+ log(LOG_WARN, "HttpsProxyAuthenticator is too long (>= 48 chars).");
|
|
|
+ result = -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (options->HashedControlPassword) {
|
|
|
if (decode_hashed_password(NULL, options->HashedControlPassword)<0) {
|
|
|
log_fn(LOG_WARN,"Bad HashedControlPassword: wrong length or bad base64");
|