mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-25 07:07:52 +01:00
Using macros and inline function for quick lookup of channel state.
This commit is contained in:
parent
ab08d8c4f7
commit
b884ae6d98
1 changed files with 33 additions and 0 deletions
|
@ -430,6 +430,39 @@ channel_t * channel_find_by_remote_digest(const char *identity_digest);
|
|||
*/
|
||||
channel_t * channel_next_with_digest(channel_t *chan);
|
||||
|
||||
/*
|
||||
* Helper macros to lookup state of given channel.
|
||||
*/
|
||||
|
||||
#define CHANNEL_IS_CLOSED(chan) (channel_is_in_state((chan), \
|
||||
CHANNEL_STATE_CLOSED))
|
||||
#define CHANNEL_IS_OPENING(chan) (channel_is_in_state((chan), \
|
||||
CHANNEL_STATE_OPENING))
|
||||
#define CHANNEL_IS_OPEN(chan) (channel_is_in_state((chan), \
|
||||
CHANNEL_STATE_OPEN))
|
||||
#define CHANNEL_IS_MAINT(chan) (channel_is_in_state((chan), \
|
||||
CHANNEL_STATE_MAINT))
|
||||
#define CHANNEL_IS_CLOSING(chan) (channel_is_in_state((chan), \
|
||||
CHANNEL_STATE_CLOSING))
|
||||
#define CHANNEL_IS_ERROR(chan) (channel_is_in_state((chan), \
|
||||
CHANNEL_STATE_ERROR))
|
||||
|
||||
#define CHANNEL_FINISHED(chan) (CHANNEL_IS_CLOSED(chan) || \
|
||||
CHANNEL_IS_ERROR(chan))
|
||||
|
||||
#define CHANNEL_CONDEMNED(chan) (CHANNEL_IS_CLOSING(chan) || \
|
||||
CHANNEL_FINISHED(chan))
|
||||
|
||||
#define CHANNEL_CAN_HANDLE_CELLS(chan) (CHANNEL_IS_OPENING(chan) || \
|
||||
CHANNEL_IS_OPEN(chan) || \
|
||||
CHANNEL_IS_MAINT(chan))
|
||||
|
||||
static INLINE int
|
||||
channel_is_in_state(channel_t *chan, channel_state_t state)
|
||||
{
|
||||
return chan->state == state;
|
||||
}
|
||||
|
||||
/*
|
||||
* Metadata queries/updates
|
||||
*/
|
||||
|
|
Loading…
Add table
Reference in a new issue