fix net_connection filters
This commit is contained in:
		
							parent
							
								
									8ff8a5a02e
								
							
						
					
					
						commit
						e451aa4da6
					
				@ -2005,6 +2005,12 @@ static void ip_format(char *buffer, int buflen, UINT addr)
 | 
			
		||||
            ((ip) & 0xFF));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define IS_TCP_SERVER(state, flags) \
 | 
			
		||||
    ((flags & SIGAR_NETCONN_SERVER) && (state == MIB_TCP_STATE_LISTEN))
 | 
			
		||||
 | 
			
		||||
#define IS_TCP_CLIENT(state, flags) \
 | 
			
		||||
    ((flags & SIGAR_NETCONN_CLIENT) && (state != MIB_TCP_STATE_LISTEN))
 | 
			
		||||
 | 
			
		||||
static int net_conn_get_tcp(sigar_t *sigar,
 | 
			
		||||
                            sigar_net_connection_list_t *connlist,
 | 
			
		||||
                            int flags)
 | 
			
		||||
@ -2029,15 +2035,10 @@ static int net_conn_get_tcp(sigar_t *sigar,
 | 
			
		||||
        sigar_net_connection_t conn;
 | 
			
		||||
        DWORD state = tcp->table[i].dwState;
 | 
			
		||||
 | 
			
		||||
        if (flags & SIGAR_NETCONN_SERVER) {
 | 
			
		||||
            if (state != MIB_TCP_STATE_LISTEN) {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (flags & SIGAR_NETCONN_CLIENT) {
 | 
			
		||||
            if (state == MIB_TCP_STATE_LISTEN) {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
        if (!(IS_TCP_SERVER(state, flags) ||
 | 
			
		||||
              IS_TCP_CLIENT(state, flags)))
 | 
			
		||||
        {
 | 
			
		||||
            continue;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        conn.local_port  = htons((WORD)tcp->table[i].dwLocalPort);
 | 
			
		||||
@ -2104,6 +2105,12 @@ static int net_conn_get_tcp(sigar_t *sigar,
 | 
			
		||||
    return SIGAR_OK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define IS_UDP_SERVER(conn, flags) \
 | 
			
		||||
    ((flags & SIGAR_NETCONN_SERVER) && !conn.remote_port)
 | 
			
		||||
 | 
			
		||||
#define IS_UDP_CLIENT(state, flags) \
 | 
			
		||||
    ((flags & SIGAR_NETCONN_CLIENT) && conn.remote_port)
 | 
			
		||||
 | 
			
		||||
static int net_conn_get_udp(sigar_t *sigar,
 | 
			
		||||
                            sigar_net_connection_list_t *connlist,
 | 
			
		||||
                            int flags)
 | 
			
		||||
@ -2127,8 +2134,8 @@ static int net_conn_get_udp(sigar_t *sigar,
 | 
			
		||||
    for (i = 0; i < udp->dwNumEntries; i++) {
 | 
			
		||||
        sigar_net_connection_t conn;
 | 
			
		||||
 | 
			
		||||
        if (!((conn.remote_port && (flags & SIGAR_NETCONN_CLIENT)) ||
 | 
			
		||||
              (!conn.remote_port && (flags & SIGAR_NETCONN_SERVER))))
 | 
			
		||||
        if (!(IS_UDP_SERVER(conn, flags) ||
 | 
			
		||||
              IS_UDP_CLIENT(conn, flags)))
 | 
			
		||||
        {
 | 
			
		||||
            continue;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user