1/* $NetBSD: pfilter.c,v 1.8 2020/06/15 01:57:29 christos Exp $ */ 2#include "namespace.h" 3#include "includes.h" 4#include "ssh.h" 5#include "packet.h" 6#include "log.h" 7#include "pfilter.h" 8#include <blocklist.h> 9 10#ifndef SMALL 11static struct blocklist *blstate; 12#endif 13 14#include "includes.h" 15__RCSID("$NetBSD: pfilter.c,v 1.8 2020/06/15 01:57:29 christos Exp $"); 16 17void 18pfilter_init() 19{ 20#ifndef SMALL 21 blstate = blocklist_open(); 22#endif 23} 24 25extern struct ssh *the_active_state; 26 27void 28pfilter_notify(int a) 29{ 30#ifndef SMALL 31 int fd; 32 if (the_active_state == NULL) 33 return; 34 if (blstate == NULL) 35 pfilter_init(); 36 if (blstate == NULL) 37 return; 38 // XXX: 3? 39 fd = ssh_packet_connection_is_on_socket(the_active_state) ? 40 ssh_packet_get_connection_in(the_active_state) : 3; 41 (void)blocklist_r(blstate, a, fd, "ssh"); 42 if (a == 0) { 43 blocklist_close(blstate); 44 blstate = NULL; 45 } 46#else 47 __USE(a); 48#endif 49} 50