Flags in cpath_build_state_t should be one-bit bitfields, not ints
/** Whether every node in the circ must have adequate uptime. */
int need_uptime;
/** Whether every node in the circ must have adequate capacity. */
int need_capacity;
/** Whether the last hop was picked with exiting in mind. */
int is_internal;
/** Did we pick this as a one-hop tunnel (not safe for other conns)?
* These are for encrypted connections that exit to this router, not
* for arbitrary exits from the circuit. */
int onehop_tunnel;
unsigned int foo : 1;
would be more appropriate here.