static bool assert_session(unsigned int la, unsigned int lp, unsigned int ra, unsigned int rp) { struct session_entry session; int expected; init_src6(&session.src6, la, lp); init_dst6(&session.dst6, ra, rp); init_src4(&session.src4, la, lp); init_dst4(&session.dst4, ra, rp); session.proto = PROTO; expected = !!sessions[la][lp][ra][rp]; return ASSERT_INT(expected, session_exists(&session), "session %u %u %u %u lookup", la, lp, ra, rp); }
static bool assert_session_exists(char *src6_addr, u16 src6_port, char *dst6_addr, u16 dst6_port, char *src4_addr, u16 src4_port, char *dst4_addr, u16 dst4_port, l4_protocol proto, u_int8_t state, session_timer_type timer_type, unsigned long timeout) { struct session_entry expected; int result; if (str_to_addr6(src6_addr, &expected.src6.l3)) return false; if (str_to_addr6(dst6_addr, &expected.dst6.l3)) return false; if (str_to_addr4(src4_addr, &expected.src4.l3)) return false; if (str_to_addr4(dst4_addr, &expected.dst4.l3)) return false; expected.src6.l4 = src6_port; expected.dst6.l4 = dst6_port; expected.src4.l4 = src4_port; expected.dst4.l4 = dst4_port; expected.proto = proto; expected.state = state; expected.timer_type = timer_type; expected.update_time = 0; expected.timeout = msecs_to_jiffies(timeout * 1000); expected.has_stored = false; result = session_exists(&expected); if (result > 0) return true; else if (result < 0) return false; return ASSERT_BOOL(1, 0, "session search"); }