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