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
ecf414f0
Commit
ecf414f0
authored
Sep 02, 2004
by
Nick Mathewson
⛰
Browse files
Stop using separate defaults for no-config-file and empty-config-file
svn:r2329
parent
d6e47bec
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/or/config.c
View file @
ecf414f0
...
...
@@ -29,7 +29,7 @@ typedef enum config_type_t {
#define CONFIG_LINE_T_MAXLEN 4096
static
struct
config_line_t
*
config_get_commandlines
(
int
argc
,
char
**
argv
);
static
struc
t
config_
line_
t
*
config_
get_lines
(
FILE
*
f
);
static
in
t
config_
get_lines
(
FILE
*
f
,
struc
t
config_
line_t
**
result
);
static
void
config_free_lines
(
struct
config_line_t
*
front
);
static
int
config_compare
(
struct
config_line_t
*
c
,
const
char
*
key
,
config_type_t
type
,
void
*
arg
);
static
int
config_assign
(
or_options_t
*
options
,
struct
config_line_t
*
list
);
...
...
@@ -80,21 +80,27 @@ config_line_prepend(struct config_line_t *front,
}
/** Helper: parse the config file and strdup into key/value
* strings. Return list, or NULL if parsing the file failed. Warn and
* ignore any misformatted lines. */
static
struct
config_line_t
*
config_get_lines
(
FILE
*
f
)
{
* strings. Set *result to the list, or NULL if parsing the file
* failed. Return 0 on success, -1 on failure. Warn and ignore any
* misformatted lines. */
static
int
config_get_lines
(
FILE
*
f
,
struct
config_line_t
**
result
)
{
struct
config_line_t
*
front
=
NULL
;
char
line
[
CONFIG_LINE_T_MAXLEN
];
int
r
esult
;
int
r
;
char
*
key
,
*
value
;
while
(
(
r
esult
=
parse_line_from_file
(
line
,
sizeof
(
line
),
f
,
&
key
,
&
value
))
>
0
)
{
while
(
(
r
=
parse_line_from_file
(
line
,
sizeof
(
line
),
f
,
&
key
,
&
value
))
>
0
)
{
front
=
config_line_prepend
(
front
,
key
,
value
);
}
if
(
result
<
0
)
return
NULL
;
return
front
;
if
(
r
<
0
)
{
*
result
=
NULL
;
return
-
1
;
}
else
{
*
result
=
front
;
return
0
;
}
}
/**
...
...
@@ -396,9 +402,6 @@ static int config_assign_defaults(or_options_t *options) {
config_free_lines
(
options
->
ExitPolicy
);
options
->
ExitPolicy
=
config_line_prepend
(
NULL
,
"ExitPolicy"
,
"reject *:*"
);
/* plus give them a dirservers file */
if
(
config_assign_default_dirservers
()
<
0
)
return
-
1
;
return
0
;
}
...
...
@@ -656,14 +659,14 @@ int getconfig(int argc, char **argv, or_options_t *options) {
tor_assert
(
fname
);
log
(
LOG_DEBUG
,
"Opening config file '%s'"
,
fname
);
if
(
config_assign_defaults
(
options
)
<
0
)
{
return
-
1
;
}
cf
=
fopen
(
fname
,
"r"
);
if
(
!
cf
)
{
if
(
using_default_torrc
==
1
)
{
log
(
LOG_NOTICE
,
"Configuration file '%s' not present, using reasonable defaults."
,
fname
);
tor_free
(
fname
);
if
(
config_assign_defaults
(
options
)
<
0
)
{
return
-
1
;
}
}
else
{
log
(
LOG_WARN
,
"Unable to open configuration file '%s'."
,
fname
);
tor_free
(
fname
);
...
...
@@ -671,8 +674,8 @@ int getconfig(int argc, char **argv, or_options_t *options) {
}
}
else
{
/* it opened successfully. use it. */
tor_free
(
fname
);
cl
=
config_get_lines
(
cf
)
;
if
(
!
cl
)
return
-
1
;
if
(
config_get_lines
(
cf
,
&
cl
)
<
0
)
return
-
1
;
if
(
config_assign
(
options
,
cl
)
<
0
)
return
-
1
;
config_free_lines
(
cl
);
...
...
src/or/main.c
View file @
ecf414f0
...
...
@@ -781,13 +781,16 @@ static int do_main_loop(void) {
return
-
1
;
}
/* load the routers file */
/* load the routers file
, or assign the defaults.
*/
if
(
options
.
RouterFile
)
{
routerlist_clear_trusted_directories
();
if
(
router_load_routerlist_from_file
(
options
.
RouterFile
,
1
)
<
0
)
{
log_fn
(
LOG_ERR
,
"Error loading router list."
);
return
-
1
;
}
}
else
{
if
(
config_assign_default_dirservers
()
<
0
)
return
-
1
;
}
if
(
authdir_mode
())
{
...
...
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