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
David Goulet
Tor
Commits
18c11eb3
Commit
18c11eb3
authored
Jul 22, 2005
by
Nick Mathewson
🏃
Browse files
Be consistent about preferring foo* to struct foo*
svn:r4637
parent
d42aae7c
Changes
16
Hide whitespace changes
Inline
Side-by-side
src/common/compat.c
View file @
18c11eb3
...
...
@@ -733,14 +733,14 @@ get_uname(void)
*/
#if defined(USE_PTHREADS)
struct
tor_pthread_data_t
{
typedef
struct
tor_pthread_data_t
{
int
(
*
func
)(
void
*
);
void
*
data
;
};
}
tor_pthread_data_t
;
static
void
*
tor_pthread_helper_fn
(
void
*
_data
)
{
struct
tor_pthread_data_t
*
data
=
_data
;
tor_pthread_data_t
*
data
=
_data
;
int
(
*
func
)(
void
*
);
void
*
arg
;
func
=
data
->
func
;
...
...
@@ -771,8 +771,8 @@ spawn_func(int (*func)(void *), void *data)
return
0
;
#elif defined(USE_PTHREADS)
pthread_t
thread
;
struct
tor_pthread_data_t
*
d
;
d
=
tor_malloc
(
sizeof
(
struct
tor_pthread_data_t
));
tor_pthread_data_t
*
d
;
d
=
tor_malloc
(
sizeof
(
tor_pthread_data_t
));
d
->
data
=
data
;
d
->
func
=
func
;
if
(
pthread_create
(
&
thread
,
NULL
,
tor_pthread_helper_fn
,
d
))
...
...
src/common/container.c
View file @
18c11eb3
...
...
@@ -388,18 +388,18 @@ char *smartlist_join_strings2(smartlist_t *sl, const char *join,
/* Splay-tree implementation of string-to-void* map
*/
struct
strmap_entry_t
{
typedef
struct
strmap_entry_t
{
SPLAY_ENTRY
(
strmap_entry_t
)
node
;
char
*
key
;
void
*
val
;
};
}
strmap_entry_t
;
struct
strmap_t
{
SPLAY_HEAD
(
strmap_tree
,
strmap_entry_t
)
head
;
};
static
int
compare_strmap_entries
(
struct
strmap_entry_t
*
a
,
struct
strmap_entry_t
*
b
)
static
int
compare_strmap_entries
(
strmap_entry_t
*
a
,
strmap_entry_t
*
b
)
{
return
strcmp
(
a
->
key
,
b
->
key
);
}
...
...
src/common/container.h
View file @
18c11eb3
...
...
@@ -72,7 +72,6 @@ char *smartlist_join_strings2(smartlist_t *sl, const char *join,
/* Map from const char * to void*. Implemented with a splay tree. */
typedef
struct
strmap_t
strmap_t
;
typedef
struct
strmap_entry_t
strmap_entry_t
;
typedef
struct
strmap_entry_t
strmap_iter_t
;
strmap_t
*
strmap_new
(
void
);
void
*
strmap_set
(
strmap_t
*
map
,
const
char
*
key
,
void
*
val
);
...
...
src/or/circuitbuild.c
View file @
18c11eb3
...
...
@@ -86,7 +86,7 @@ get_unique_circ_id_by_conn(connection_t *conn)
char
*
circuit_list_path
(
circuit_t
*
circ
,
int
verbose
)
{
struct
crypt_path_t
*
hop
;
crypt_path_t
*
hop
;
smartlist_t
*
elements
;
const
char
*
states
[]
=
{
"closed"
,
"waiting for keys"
,
"open"
};
char
buf
[
128
];
...
...
@@ -156,7 +156,7 @@ circuit_log_path(int severity, circuit_t *circ)
void
circuit_rep_hist_note_result
(
circuit_t
*
circ
)
{
struct
crypt_path_t
*
hop
;
crypt_path_t
*
hop
;
char
*
prev_digest
=
NULL
;
routerinfo_t
*
router
;
hop
=
circ
->
cpath
;
...
...
src/or/circuitlist.c
View file @
18c11eb3
...
...
@@ -26,19 +26,19 @@ static void circuit_free_cpath_node(crypt_path_t *victim);
/** A map from OR connection and circuit ID to circuit. (Lookup performance is
* very important here, since we need to do it every time a cell arrives.) */
struct
orconn_circid_circuit_map_t
{
typedef
struct
orconn_circid_circuit_map_t
{
RB_ENTRY
(
orconn_circid_circuit_map_t
)
node
;
connection_t
*
or_conn
;
uint16_t
circ_id
;
circuit_t
*
circuit
;
};
}
orconn_circid_circuit_map_t
;
/** Helper for RB tree: compare the OR connection and circuit ID for a and b,
* and return less than, equal to, or greater than zero appropriately.
*/
static
INLINE
int
compare_orconn_circid_entries
(
struct
orconn_circid_circuit_map_t
*
a
,
struct
orconn_circid_circuit_map_t
*
b
)
compare_orconn_circid_entries
(
orconn_circid_circuit_map_t
*
a
,
orconn_circid_circuit_map_t
*
b
)
{
if
(
a
->
or_conn
<
b
->
or_conn
)
return
-
1
;
...
...
@@ -58,7 +58,7 @@ RB_GENERATE(orconn_circid_tree, orconn_circid_circuit_map_t, node, compare_orcon
*/
/* (We tried using splay trees, but round-robin turned out to make them
* suck.) */
struct
orconn_circid_circuit_map_t
*
_last_circid_orconn_ent
=
NULL
;
orconn_circid_circuit_map_t
*
_last_circid_orconn_ent
=
NULL
;
/** Set the p_conn or n_conn field of a circuit <b>circ</b>, along
* with the corresponding circuit ID, and add the circuit as appropriate
...
...
@@ -70,8 +70,8 @@ circuit_set_circid_orconn(circuit_t *circ, uint16_t id,
{
uint16_t
old_id
;
connection_t
*
old_conn
;
struct
orconn_circid_circuit_map_t
search
;
struct
orconn_circid_circuit_map_t
*
found
;
orconn_circid_circuit_map_t
search
;
orconn_circid_circuit_map_t
*
found
;
tor_assert
(
!
conn
||
conn
->
type
==
CONN_TYPE_OR
);
...
...
@@ -114,7 +114,7 @@ circuit_set_circid_orconn(circuit_t *circ, uint16_t id,
if
(
found
)
{
found
->
circuit
=
circ
;
}
else
{
found
=
tor_malloc_zero
(
sizeof
(
struct
orconn_circid_circuit_map_t
));
found
=
tor_malloc_zero
(
sizeof
(
orconn_circid_circuit_map_t
));
found
->
circ_id
=
id
;
found
->
or_conn
=
conn
;
found
->
circuit
=
circ
;
...
...
@@ -341,8 +341,8 @@ circuit_get_by_global_id(uint32_t id)
circuit_t
*
circuit_get_by_circid_orconn
(
uint16_t
circ_id
,
connection_t
*
conn
)
{
struct
orconn_circid_circuit_map_t
search
;
struct
orconn_circid_circuit_map_t
*
found
;
orconn_circid_circuit_map_t
search
;
orconn_circid_circuit_map_t
*
found
;
tor_assert
(
conn
->
type
==
CONN_TYPE_OR
);
...
...
src/or/config.c
View file @
18c11eb3
...
...
@@ -206,7 +206,7 @@ typedef struct {
/** Largest allowed config line */
#define CONFIG_LINE_T_MAXLEN 4096
static
void
config_line_append
(
struct
config_line_t
**
lst
,
static
void
config_line_append
(
config_line_t
**
lst
,
const
char
*
key
,
const
char
*
val
);
static
void
option_reset
(
config_format_t
*
fmt
,
or_options_t
*
options
,
config_var_t
*
var
);
...
...
@@ -221,19 +221,19 @@ static void config_register_addressmaps(or_options_t *options);
static
int
parse_dir_server_line
(
const
char
*
line
,
int
validate_only
);
static
int
parse_redirect_line
(
smartlist_t
*
result
,
struct
config_line_t
*
line
);
config_line_t
*
line
);
static
int
parse_log_severity_range
(
const
char
*
range
,
int
*
min_out
,
int
*
max_out
);
static
int
convert_log_option
(
or_options_t
*
options
,
struct
config_line_t
*
level_opt
,
struct
config_line_t
*
file_opt
,
int
isDaemon
);
config_line_t
*
level_opt
,
config_line_t
*
file_opt
,
int
isDaemon
);
static
int
add_single_log_option
(
or_options_t
*
options
,
int
minSeverity
,
int
maxSeverity
,
const
char
*
type
,
const
char
*
fname
);
static
int
normalize_log_options
(
or_options_t
*
options
);
static
int
validate_data_directory
(
or_options_t
*
options
);
static
int
write_configuration_file
(
const
char
*
fname
,
or_options_t
*
options
);
static
struct
config_line_t
*
get_assigned_option
(
config_format_t
*
fmt
,
static
config_line_t
*
get_assigned_option
(
config_format_t
*
fmt
,
or_options_t
*
options
,
const
char
*
key
);
static
void
config_init
(
config_format_t
*
fmt
,
or_options_t
*
options
);
...
...
@@ -325,7 +325,7 @@ safe_str(const char *address)
int
options_act
(
void
)
{
struct
config_line_t
*
cl
;
config_line_t
*
cl
;
or_options_t
*
options
=
get_options
();
static
int
libevent_initialized
=
0
;
...
...
@@ -474,11 +474,11 @@ expand_abbrev(config_format_t *fmt, const char *option, int command_line)
}
/** Helper: Read a list of configuration options from the command line. */
static
struct
config_line_t
*
static
config_line_t
*
config_get_commandlines
(
int
argc
,
char
**
argv
)
{
struct
config_line_t
*
front
=
NULL
;
struct
config_line_t
**
new
=
&
front
;
config_line_t
*
front
=
NULL
;
config_line_t
**
new
=
&
front
;
char
*
s
;
int
i
=
1
;
...
...
@@ -495,7 +495,7 @@ config_get_commandlines(int argc, char **argv)
continue
;
}
*
new
=
tor_malloc_zero
(
sizeof
(
struct
config_line_t
));
*
new
=
tor_malloc_zero
(
sizeof
(
config_line_t
));
s
=
argv
[
i
];
while
(
*
s
==
'-'
)
...
...
@@ -516,13 +516,13 @@ config_get_commandlines(int argc, char **argv)
/** Helper: allocate a new configuration option mapping 'key' to 'val',
* append it to *<b>lst</b>. */
static
void
config_line_append
(
struct
config_line_t
**
lst
,
config_line_append
(
config_line_t
**
lst
,
const
char
*
key
,
const
char
*
val
)
{
struct
config_line_t
*
newline
;
config_line_t
*
newline
;
newline
=
tor_malloc
(
sizeof
(
struct
config_line_t
));
newline
=
tor_malloc
(
sizeof
(
config_line_t
));
newline
->
key
=
tor_strdup
(
key
);
newline
->
value
=
tor_strdup
(
val
);
newline
->
next
=
NULL
;
...
...
@@ -537,9 +537,9 @@ config_line_append(struct config_line_t **lst,
* failed. Return 0 on success, -1 on failure. Warn and ignore any
* misformatted lines. */
int
config_get_lines
(
char
*
string
,
struct
config_line_t
**
result
)
config_get_lines
(
char
*
string
,
config_line_t
**
result
)
{
struct
config_line_t
*
list
=
NULL
,
**
next
;
config_line_t
*
list
=
NULL
,
**
next
;
char
*
k
,
*
v
;
next
=
&
list
;
...
...
@@ -553,7 +553,7 @@ config_get_lines(char *string, struct config_line_t **result)
/* This list can get long, so we keep a pointer to the end of it
* rather than using config_line_append over and over and getting n^2
* performance. This is the only really long list. */
*
next
=
tor_malloc
(
sizeof
(
struct
config_line_t
));
*
next
=
tor_malloc
(
sizeof
(
config_line_t
));
(
*
next
)
->
key
=
tor_strdup
(
k
);
(
*
next
)
->
value
=
tor_strdup
(
v
);
(
*
next
)
->
next
=
NULL
;
...
...
@@ -569,9 +569,9 @@ config_get_lines(char *string, struct config_line_t **result)
* Free all the configuration lines on the linked list <b>front</b>.
*/
void
config_free_lines
(
struct
config_line_t
*
front
)
config_free_lines
(
config_line_t
*
front
)
{
struct
config_line_t
*
tmp
;
config_line_t
*
tmp
;
while
(
front
)
{
tmp
=
front
;
...
...
@@ -621,7 +621,7 @@ config_find_option(config_format_t *fmt, const char *key)
*/
static
int
config_assign_line
(
config_format_t
*
fmt
,
or_options_t
*
options
,
struct
config_line_t
*
c
,
int
reset
)
or_options_t
*
options
,
config_line_t
*
c
,
int
reset
)
{
int
i
,
ok
;
config_var_t
*
var
;
...
...
@@ -708,7 +708,7 @@ config_assign_line(config_format_t *fmt,
case
CONFIG_TYPE_LINELIST
:
case
CONFIG_TYPE_LINELIST_S
:
config_line_append
((
struct
config_line_t
**
)
lvalue
,
c
->
key
,
c
->
value
);
config_line_append
((
config_line_t
**
)
lvalue
,
c
->
key
,
c
->
value
);
break
;
case
CONFIG_TYPE_OBSOLETE
:
...
...
@@ -755,22 +755,21 @@ config_option_get_canonical_name(const char *key)
return
var
->
name
;
}
/** Return a canonicalized list of the options assigned for key.
*/
struct
config_line_t
*
config_line_t
*
config_get_assigned_option
(
or_options_t
*
options
,
const
char
*
key
)
{
return
get_assigned_option
(
&
config_format
,
options
,
key
);
}
static
struct
config_line_t
*
static
config_line_t
*
get_assigned_option
(
config_format_t
*
fmt
,
or_options_t
*
options
,
const
char
*
key
)
{
config_var_t
*
var
;
const
void
*
value
;
char
buf
[
32
];
struct
config_line_t
*
result
;
config_line_t
*
result
;
tor_assert
(
options
&&
key
);
CHECK
(
fmt
,
options
);
...
...
@@ -788,10 +787,10 @@ get_assigned_option(config_format_t *fmt, or_options_t *options, const char *key
if
(
var
->
type
==
CONFIG_TYPE_LINELIST
||
var
->
type
==
CONFIG_TYPE_LINELIST_V
)
{
/* Linelist requires special handling: we just copy and return it. */
const
struct
config_line_t
*
next_in
=
*
(
const
struct
config_line_t
**
)
value
;
struct
config_line_t
**
next_out
=
&
result
;
const
config_line_t
*
next_in
=
*
(
const
config_line_t
**
)
value
;
config_line_t
**
next_out
=
&
result
;
while
(
next_in
)
{
*
next_out
=
tor_malloc
(
sizeof
(
struct
config_line_t
));
*
next_out
=
tor_malloc
(
sizeof
(
config_line_t
));
(
*
next_out
)
->
key
=
tor_strdup
(
next_in
->
key
);
(
*
next_out
)
->
value
=
tor_strdup
(
next_in
->
value
);
next_in
=
next_in
->
next
;
...
...
@@ -801,7 +800,7 @@ get_assigned_option(config_format_t *fmt, or_options_t *options, const char *key
return
result
;
}
result
=
tor_malloc_zero
(
sizeof
(
struct
config_line_t
));
result
=
tor_malloc_zero
(
sizeof
(
config_line_t
));
result
->
key
=
tor_strdup
(
var
->
name
);
switch
(
var
->
type
)
{
...
...
@@ -866,9 +865,9 @@ get_assigned_option(config_format_t *fmt, or_options_t *options, const char *key
*/
static
int
config_assign
(
config_format_t
*
fmt
,
or_options_t
*
options
,
struct
config_line_t
*
list
,
int
reset
)
or_options_t
*
options
,
config_line_t
*
list
,
int
reset
)
{
struct
config_line_t
*
p
;
config_line_t
*
p
;
CHECK
(
fmt
,
options
);
...
...
@@ -905,7 +904,7 @@ config_assign(config_format_t *fmt,
* keys, -2 on bad values, -3 on bad transition.
*/
int
config_trial_assign
(
struct
config_line_t
*
list
,
int
reset
)
config_trial_assign
(
config_line_t
*
list
,
int
reset
)
{
int
r
;
or_options_t
*
trial_options
=
options_dup
(
&
config_format
,
get_options
());
...
...
@@ -934,7 +933,7 @@ config_trial_assign(struct config_line_t *list, int reset)
static
void
option_reset
(
config_format_t
*
fmt
,
or_options_t
*
options
,
config_var_t
*
var
)
{
struct
config_line_t
*
c
;
config_line_t
*
c
;
void
*
lvalue
;
CHECK
(
fmt
,
options
);
...
...
@@ -964,8 +963,8 @@ option_reset(config_format_t *fmt, or_options_t *options, config_var_t *var)
break
;
case
CONFIG_TYPE_LINELIST
:
case
CONFIG_TYPE_LINELIST_S
:
config_free_lines
(
*
(
struct
config_line_t
**
)
lvalue
);
*
(
struct
config_line_t
**
)
lvalue
=
NULL
;
config_free_lines
(
*
(
config_line_t
**
)
lvalue
);
*
(
config_line_t
**
)
lvalue
=
NULL
;
break
;
case
CONFIG_TYPE_LINELIST_V
:
/* handled by linelist_s. */
...
...
@@ -974,7 +973,7 @@ option_reset(config_format_t *fmt, or_options_t *options, config_var_t *var)
break
;
}
if
(
var
->
initvalue
)
{
c
=
tor_malloc_zero
(
sizeof
(
struct
config_line_t
));
c
=
tor_malloc_zero
(
sizeof
(
config_line_t
));
c
->
key
=
tor_strdup
(
var
->
name
);
c
->
value
=
tor_strdup
(
var
->
initvalue
);
config_assign_line
(
fmt
,
options
,
c
,
0
);
...
...
@@ -1154,8 +1153,8 @@ options_free(config_format_t *fmt,or_options_t *options)
break
;
case
CONFIG_TYPE_LINELIST
:
case
CONFIG_TYPE_LINELIST_V
:
config_free_lines
(
*
(
struct
config_line_t
**
)
lvalue
);
*
(
struct
config_line_t
**
)
lvalue
=
NULL
;
config_free_lines
(
*
(
config_line_t
**
)
lvalue
);
*
(
config_line_t
**
)
lvalue
=
NULL
;
break
;
case
CONFIG_TYPE_CSV
:
if
(
*
(
smartlist_t
**
)
lvalue
)
{
...
...
@@ -1179,7 +1178,7 @@ static int
option_is_same
(
config_format_t
*
fmt
,
or_options_t
*
o1
,
or_options_t
*
o2
,
const
char
*
name
)
{
struct
config_line_t
*
c1
,
*
c2
;
config_line_t
*
c1
,
*
c2
;
int
r
=
1
;
CHECK
(
fmt
,
o1
);
CHECK
(
fmt
,
o2
);
...
...
@@ -1209,7 +1208,7 @@ options_dup(config_format_t *fmt, or_options_t *old)
{
or_options_t
*
newopts
;
int
i
;
struct
config_line_t
*
line
;
config_line_t
*
line
;
newopts
=
config_alloc
(
fmt
);
for
(
i
=
0
;
fmt
->
vars
[
i
].
name
;
++
i
)
{
...
...
@@ -1258,7 +1257,7 @@ config_dump(config_format_t *fmt, or_options_t *options, int minimal)
{
smartlist_t
*
elements
;
or_options_t
*
defaults
;
struct
config_line_t
*
line
;
config_line_t
*
line
;
char
*
result
;
int
i
;
...
...
@@ -1334,7 +1333,7 @@ static int
options_validate
(
or_options_t
*
options
)
{
int
result
=
0
;
struct
config_line_t
*
cl
;
config_line_t
*
cl
;
addr_policy_t
*
addr_policy
=
NULL
;
if
(
options
->
ORPort
<
0
||
options
->
ORPort
>
65535
)
{
...
...
@@ -1857,7 +1856,7 @@ int
init_from_config
(
int
argc
,
char
**
argv
)
{
or_options_t
*
oldoptions
,
*
newoptions
;
struct
config_line_t
*
cl
;
config_line_t
*
cl
;
char
*
cf
=
NULL
,
*
fname
=
NULL
;
int
i
,
retval
;
int
using_default_torrc
;
...
...
@@ -1995,7 +1994,7 @@ static void
config_register_addressmaps
(
or_options_t
*
options
)
{
smartlist_t
*
elts
;
struct
config_line_t
*
opt
;
config_line_t
*
opt
;
char
*
from
,
*
to
;
addressmap_clear_configured
();
...
...
@@ -2081,8 +2080,8 @@ parse_log_severity_range(const char *range, int *min_out, int *max_out)
* (LogFile/Syslog)] to a new-style option, and add the new option to
* options->Logs. */
static
int
convert_log_option
(
or_options_t
*
options
,
struct
config_line_t
*
level_opt
,
struct
config_line_t
*
file_opt
,
int
isDaemon
)
convert_log_option
(
or_options_t
*
options
,
config_line_t
*
level_opt
,
config_line_t
*
file_opt
,
int
isDaemon
)
{
int
levelMin
=
-
1
,
levelMax
=
-
1
;
...
...
@@ -2120,7 +2119,7 @@ convert_log_option(or_options_t *options, struct config_line_t *level_opt,
int
config_init_logs
(
or_options_t
*
options
,
int
validate_only
)
{
struct
config_line_t
*
opt
;
config_line_t
*
opt
;
int
ok
;
smartlist_t
*
elts
;
...
...
@@ -2222,7 +2221,7 @@ normalize_log_options(or_options_t *options)
{
/* The order of options is: Level? (File Level?)+
*/
struct
config_line_t
*
opt
=
options
->
OldLogOptions
;
config_line_t
*
opt
=
options
->
OldLogOptions
;
/* Special case for if first option is LogLevel. */
if
(
opt
&&
!
strcasecmp
(
opt
->
key
,
"LogLevel"
))
{
...
...
@@ -2280,7 +2279,7 @@ normalize_log_options(or_options_t *options)
void
config_append_default_exit_policy
(
addr_policy_t
**
policy
)
{
struct
config_line_t
tmp
;
config_line_t
tmp
;
addr_policy_t
*
ap
;
tmp
.
key
=
NULL
;
...
...
@@ -2306,7 +2305,7 @@ config_append_default_exit_policy(addr_policy_t **policy)
* are malformed, else return 0.
*/
int
config_parse_addr_policy
(
struct
config_line_t
*
cfg
,
config_parse_addr_policy
(
config_line_t
*
cfg
,
addr_policy_t
**
dest
)
{
addr_policy_t
**
nextp
;
...
...
@@ -2361,7 +2360,7 @@ addr_policy_free(addr_policy_t *p)
* <b>result</b> and return 0. Else if they are valid, return 0.
* Else return -1. */
static
int
parse_redirect_line
(
smartlist_t
*
result
,
struct
config_line_t
*
line
)
parse_redirect_line
(
smartlist_t
*
result
,
config_line_t
*
line
)
{
smartlist_t
*
elements
=
NULL
;
exit_redirect_t
*
r
;
...
...
src/or/connection.c
View file @
18c11eb3
...
...
@@ -784,16 +784,16 @@ connection_connect(connection_t *conn, char *address,
* or if the existing connections do not match those configured.
*/
static
int
retry_listeners
(
int
type
,
struct
config_line_t
*
cfg
,
retry_listeners
(
int
type
,
config_line_t
*
cfg
,
int
port_option
,
const
char
*
default_addr
,
int
force
)
{
struct
smartlist_t
*
launch
=
smartlist_create
();
smartlist_t
*
launch
=
smartlist_create
();
int
free_launch_elts
=
1
;
struct
config_line_t
*
c
;
config_line_t
*
c
;
int
n_conn
,
i
;
connection_t
*
conn
;
connection_t
**
carray
;
struct
config_line_t
*
line
;
config_line_t
*
line
;
if
(
cfg
&&
port_option
)
{
for
(
c
=
cfg
;
c
;
c
=
c
->
next
)
{
...
...
@@ -801,7 +801,7 @@ retry_listeners(int type, struct config_line_t *cfg,
}
free_launch_elts
=
0
;
}
else
if
(
port_option
)
{
line
=
tor_malloc_zero
(
sizeof
(
struct
config_line_t
));
line
=
tor_malloc_zero
(
sizeof
(
config_line_t
));
line
->
key
=
tor_strdup
(
""
);
line
->
value
=
tor_strdup
(
default_addr
);
smartlist_add
(
launch
,
line
);
...
...
@@ -823,7 +823,7 @@ retry_listeners(int type, struct config_line_t *cfg,
}
/* Okay, so this is a listener. Is it configured? */
line
=
NULL
;
SMARTLIST_FOREACH
(
launch
,
struct
config_line_t
*
,
wanted
,
SMARTLIST_FOREACH
(
launch
,
config_line_t
*
,
wanted
,
{
char
*
addr
;
uint16_t
port
;
...
...
@@ -852,7 +852,7 @@ retry_listeners(int type, struct config_line_t *cfg,
/* Now open all the listeners that are configured but not opened. */
i
=
0
;
SMARTLIST_FOREACH
(
launch
,
struct
config_line_t
*
,
cfg
,
SMARTLIST_FOREACH
(
launch
,
config_line_t
*
,
cfg
,
{
if
(
connection_create_listener
(
cfg
->
value
,
(
uint16_t
)
port_option
,
type
)
<
0
)
...
...
@@ -860,7 +860,7 @@ retry_listeners(int type, struct config_line_t *cfg,
});
if
(
free_launch_elts
)
{
SMARTLIST_FOREACH
(
launch
,
struct
config_line_t
*
,
cfg
,
SMARTLIST_FOREACH
(
launch
,
config_line_t
*
,
cfg
,
config_free_lines
(
cfg
));
}
smartlist_free
(
launch
);
...
...
src/or/control.c
View file @
18c11eb3
...
...
@@ -602,7 +602,7 @@ static int
handle_control_setconf
(
connection_t
*
conn
,
uint32_t
len
,
char
*
body
)
{
int
r
;
struct
config_line_t
*
lines
=
NULL
;
config_line_t
*
lines
=
NULL
;
char
*
start
=
body
;
int
v0
=
STATE_IS_V0
(
conn
->
state
);
...
...
@@ -717,7 +717,7 @@ handle_control_getconf(connection_t *conn, uint32_t body_len, const char *body)
smartlist_add
(
unrecognized
,
q
);
}
}
else
{
struct
config_line_t
*
answer
=
config_get_assigned_option
(
options
,
q
);
config_line_t
*
answer
=
config_get_assigned_option
(
options
,
q
);
if
(
!
v0
&&
!
answer
)
{
const
char
*
name
=
config_option_get_canonical_name
(
q
);
size_t
alen
=
strlen
(
name
)
+
8
;
...
...
@@ -727,7 +727,7 @@ handle_control_getconf(connection_t *conn, uint32_t body_len, const char *body)
}
while
(
answer
)
{
struct
config_line_t
*
next
;
config_line_t
*
next
;
size_t
alen
=
strlen
(
answer
->
key
)
+
strlen
(
answer
->
value
)
+
8
;
char
*
astr
=
tor_malloc
(
alen
);
if
(
v0
)
...
...
src/or/dirserv.c
View file @
18c11eb3
...
...
@@ -96,7 +96,7 @@ dirserv_parse_fingerprint_file(const char *fname)
char
*
nickname
,
*
fingerprint
;
smartlist_t
*
fingerprint_list_new
;
int
result
;
struct
config_line_t
*
front
=
NULL
,
*
list
;
config_line_t
*
front
=
NULL
,
*
list
;
cf
=
read_file_to_str
(
fname
,
0
);
if
(
!
cf
)
{
...
...
@@ -608,7 +608,7 @@ dirserv_dump_directory_to_string(char **dir_out,
{
smartlist_t
*
versions
;
struct
config_line_t
*
ln
;
config_line_t
*
ln
;
versions
=
smartlist_create
();
for
(
ln
=
get_options
()
->
RecommendedVersions
;
ln
;
ln
=
ln
->
next
)
{
smartlist_split_string
(
versions
,
ln
->
value
,
","
,
...
...
src/or/dns.c
View file @
18c11eb3
...
...
@@ -45,17 +45,17 @@ static int num_dnsworkers_busy=0;
static
time_t
last_rotation_time
=
0
;
/** Linked list of connections waiting for a DNS answer. */
struct
pending_connection_t
{
struct
connection_t
*
conn
;
typedef
struct
pending_connection_t
{
connection_t
*
conn
;
struct
pending_connection_t
*
next
;
};
}
pending_connection_t
;
/** A DNS request: possibly completed, possibly pending; cached_resolve
* structs are stored at the OR side in a splay tree, and as a linked
* list from oldest to newest.
*/
struct
cached_resolve
{
SPLAY_ENTRY
(
cached_resolve
)
node
;
typedef
struct
cached_resolve
_t
{
SPLAY_ENTRY
(
cached_resolve
_t
)
node
;
char
address
[
MAX_ADDRESSLEN
];
/**< The hostname to be resolved. */
uint32_t
addr
;
/**< IPv4 addr for <b>address</b>. */
char
state
;
/**< 0 is pending; 1 means answer is valid; 2 means resolve failed. */
...
...
@@ -63,13 +63,13 @@ struct cached_resolve {
#define CACHE_STATE_VALID 1
#define CACHE_STATE_FAILED 2
uint32_t
expire
;
/**< Remove items from cache after this time. */
struct
pending_connection_t
*
pending_connections
;
struct
cached_resolve
*
next
;
};
pending_connection_t
*
pending_connections
;
struct
cached_resolve
_t
*
next
;
}
cached_resolve_t
;
static
void
purge_expired_resolves
(
uint32_t
now
);
static
int
assign_to_dnsworker
(
connection_t
*
exitconn
);
static
void
dns_purge_resolve
(
struct
cached_resolve
*
resolve
);
static
void
dns_purge_resolve
(
cached_resolve
_t
*
resolve
);
static
void
dns_found_answer
(
char
*
address
,
uint32_t
addr
,
char
outcome
);
static
int
dnsworker_main
(
void
*
data
);
static
int
spawn_dnsworker
(
void
);
...
...
@@ -77,18 +77,18 @@ static void spawn_enough_dnsworkers(void);
static
void
send_resolved_cell
(
connection_t
*
conn
,
uint8_t
answer_type
);
/** Splay tree of cached_resolve objects. */
static
SPLAY_HEAD
(
cache_tree
,
cached_resolve
)
cache_root
;
static
SPLAY_HEAD
(
cache_tree
,
cached_resolve
_t
)
cache_root
;
/** Function to compare hashed resolves on their addresses; used to
* implement splay trees. */