Beispiel #1
0
static void
TcpMonitorIn(u_char th_flags, struct alias_link *lnk)
{

	switch (GetStateIn(lnk)) {
	case ALIAS_TCP_STATE_NOT_CONNECTED:
		if (th_flags & TH_RST)
			SetStateIn(lnk, ALIAS_TCP_STATE_DISCONNECTED);
		else if (th_flags & TH_SYN)
			SetStateIn(lnk, ALIAS_TCP_STATE_CONNECTED);
		break;
	case ALIAS_TCP_STATE_CONNECTED:
		if (th_flags & (TH_FIN | TH_RST))
			SetStateIn(lnk, ALIAS_TCP_STATE_DISCONNECTED);
		break;
	}
}
Beispiel #2
0
static void
TcpMonitorIn(struct ip *pip, struct alias_link *lnk)
{
    struct tcphdr *tc;

    tc = (struct tcphdr *)ip_next(pip);

    switch (GetStateIn(lnk)) {
    case ALIAS_TCP_STATE_NOT_CONNECTED:
        if (tc->th_flags & TH_RST)
            SetStateIn(lnk, ALIAS_TCP_STATE_DISCONNECTED);
        else if (tc->th_flags & TH_SYN)
            SetStateIn(lnk, ALIAS_TCP_STATE_CONNECTED);
        break;
    case ALIAS_TCP_STATE_CONNECTED:
        if (tc->th_flags & (TH_FIN | TH_RST))
            SetStateIn(lnk, ALIAS_TCP_STATE_DISCONNECTED);
        break;
    }
}