Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Mike Perry
Tor
Commits
47993ae6
Commit
47993ae6
authored
Nov 15, 2004
by
Roger Dingledine
Browse files
some fixes so far
svn:r2880
parent
ea97cb9c
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/or/config.c
View file @
47993ae6
...
...
@@ -187,7 +187,7 @@ static int write_configuration_file(const char *fname, or_options_t *options);
/** Command-line and config-file options. */
static
or_options_t
*
global_options
=
NULL
;
/** Name of ost recently read torrc file. */
/** Name of
m
ost recently read torrc file. */
static
char
*
config_fname
=
NULL
;
/** Return the currently configured options. */
...
...
@@ -325,7 +325,7 @@ options_act(void) {
smin = config_dump_options(options, 1);
smax = config_dump_options(options, 0);
log_fn(LOG_DEBUG, "These are our options:\n%s",smax);
log_fn(LOG_DEBUG
S
, "We changed these options:\n%s",smin);
log_fn(LOG_DEBUG, "We changed these options:\n%s",smin);
tor_free(smin);
tor_free(smax);
}
...
...
@@ -2081,16 +2081,25 @@ static int
write_configuration_file
(
const
char
*
fname
,
or_options_t
*
options
)
{
char
fn_tmp
[
1024
];
char
*
new_val
=
NULL
,
*
new_conf
=
NULL
;
char
*
old_val
=
NULL
,
*
new_val
=
NULL
,
*
new_conf
=
NULL
;
int
rename_old
=
0
,
r
;
size_t
len
;
if
(
fname
&&
file_status
(
fname
)
==
FN_FILE
)
{
char
*
old_val
=
read_file_to_str
(
fname
,
0
);
if
(
strcmpstart
(
old_val
,
GENERATED_FILE_PREFIX
))
{
rename_old
=
1
;
if
(
fname
)
{
switch
(
file_status
(
fname
))
{
case
FN_FILE
:
old_val
=
read_file_to_str
(
fname
,
0
);
if
(
strcmpstart
(
old_val
,
GENERATED_FILE_PREFIX
))
{
rename_old
=
1
;
}
tor_free
(
old_val
);
break
;
case
FN_NOENT
:
break
;
default:
log_fn
(
LOG_WARN
,
"Config file %s is not a file? Failing."
,
fname
);
return
-
1
;
}
tor_free
(
old_val
);
}
if
(
!
(
new_conf
=
config_dump_options
(
options
,
1
)))
{
...
...
@@ -2109,7 +2118,7 @@ write_configuration_file(const char *fname, or_options_t *options)
log_fn
(
LOG_WARN
,
"Filename too long"
);
goto
err
;
}
if
(
file_status
(
fn_tmp
)
!
=
FN_
FILE
)
if
(
file_status
(
fn_tmp
)
=
=
FN_
NOENT
)
break
;
++
i
;
}
...
...
src/or/control.c
View file @
47993ae6
...
...
@@ -373,11 +373,10 @@ handle_control_saveconf(connection_t *conn, uint16_t len,
const
char
*
body
)
{
if
(
save_current_config
()
<
0
)
{
send_control_done
(
conn
);
}
else
{
send_control_error
(
conn
,
ERR_INTERNAL
,
"Unable to write configuration to disk."
);
}
send_control_done
(
conn
);
return
0
;
}
...
...
src/or/directory.c
View file @
47993ae6
...
...
@@ -140,32 +140,33 @@ directory_post_to_dirservers(uint8_t purpose, const char *payload,
});
}
/** Start a connection to a random running directory server, using
connection
* purpose 'purpose' requesting '
payload' (length 'payload_len')
. The purpose
* should be one of 'DIR_PURPOSE_FETCH_DIR'
or 'DIR_PURPOSE_FETCH_RENDDESC' or
* 'DIR_PURPOSE_FETCH_RUNNING_LIST.'
/** Start a connection to a random running directory server, using
*
connection
purpose 'purpose' requesting '
resource'
. The purpose
* should be one of 'DIR_PURPOSE_FETCH_DIR'
,
*
'DIR_PURPOSE_FETCH_RENDDESC',
'DIR_PURPOSE_FETCH_RUNNING_LIST.'
*/
void
directory_get_from_dirserver
(
uint8_t
purpose
,
const
char
*
resource
)
{
routerinfo_t
*
r
=
NULL
;
trusted_dir_server_t
*
ds
=
NULL
;
int
fascistfirewall
=
get_options
()
->
FascistFirewall
;
if
(
purpose
==
DIR_PURPOSE_FETCH_DIR
)
{
if
(
advertised_server_mode
())
{
/* only ask authdirservers, and don't ask myself */
ds
=
router_pick_trusteddirserver
(
1
,
get_options
()
->
F
ascist
F
irewall
);
ds
=
router_pick_trusteddirserver
(
1
,
f
ascist
f
irewall
);
}
else
{
/* anybody with a non-zero dirport will do */
r
=
router_pick_directory_server
(
1
,
get_options
()
->
F
ascist
F
irewall
);
r
=
router_pick_directory_server
(
1
,
f
ascist
f
irewall
);
if
(
!
r
)
{
log_fn
(
LOG_INFO
,
"No router found for directory; falling back to dirserver list"
);
ds
=
router_pick_trusteddirserver
(
1
,
get_options
()
->
F
ascist
F
irewall
);
ds
=
router_pick_trusteddirserver
(
1
,
f
ascist
f
irewall
);
}
}
}
else
if
(
purpose
==
DIR_PURPOSE_FETCH_RUNNING_LIST
)
{
/* right now, running-routers isn't cached, so ask a trusted directory */
ds
=
router_pick_trusteddirserver
(
0
,
get_options
()
->
F
ascist
F
irewall
);
ds
=
router_pick_trusteddirserver
(
0
,
f
ascist
f
irewall
);
}
else
{
// (purpose == DIR_PURPOSE_FETCH_RENDDESC)
/* only ask authdirservers, any of them will do */
/* Never use fascistfirewall; we're going via Tor. */
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment