1*79964549Srmind /* $NetBSD: filter.h,v 1.4 2011/02/10 14:04:30 rmind Exp $ */ 2fff57c55Syamt 3fff57c55Syamt /* 4fff57c55Syamt * Copyright (c) 2004, 2005 Camiel Dobbelaar, <cd@sentia.nl> 5fff57c55Syamt * 6fff57c55Syamt * Permission to use, copy, modify, and distribute this software for any 7fff57c55Syamt * purpose with or without fee is hereby granted, provided that the above 8fff57c55Syamt * copyright notice and this permission notice appear in all copies. 9fff57c55Syamt * 10fff57c55Syamt * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11fff57c55Syamt * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12fff57c55Syamt * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13fff57c55Syamt * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14fff57c55Syamt * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15fff57c55Syamt * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16fff57c55Syamt * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17fff57c55Syamt */ 18fff57c55Syamt 19facb6bd8Srmind #ifndef _FTP_PROXY_FILTER_H_ 20facb6bd8Srmind #define _FTP_PROXY_FILTER_H_ 21fff57c55Syamt 22facb6bd8Srmind typedef struct { 23facb6bd8Srmind void (*init_filter)(char *, char *, int); 24facb6bd8Srmind int (*add_filter)(uint32_t, uint8_t, struct sockaddr *, 25facb6bd8Srmind struct sockaddr *, uint16_t); 26facb6bd8Srmind int (*add_nat)(uint32_t, struct sockaddr *, struct sockaddr *, 27facb6bd8Srmind uint16_t, struct sockaddr *, u_int16_t, u_int16_t); 28facb6bd8Srmind int (*add_rdr)(uint32_t, struct sockaddr *, struct sockaddr *, 29facb6bd8Srmind uint16_t, struct sockaddr *, uint16_t); 30facb6bd8Srmind int (*server_lookup)(struct sockaddr *, struct sockaddr *, 31facb6bd8Srmind struct sockaddr *); 32facb6bd8Srmind int (*prepare_commit)(u_int32_t); 33facb6bd8Srmind int (*do_commit)(void); 34facb6bd8Srmind int (*do_rollback)(void); 35facb6bd8Srmind } ftp_proxy_ops_t; 36facb6bd8Srmind 37facb6bd8Srmind extern const ftp_proxy_ops_t pf_fprx_ops; 38facb6bd8Srmind 39*79964549Srmind #if defined(__NetBSD__) 40*79964549Srmind 41facb6bd8Srmind extern const char * netif; 42*79964549Srmind 43*79964549Srmind #if defined(WITH_NPF) 44*79964549Srmind extern const ftp_proxy_ops_t npf_fprx_ops; 45*79964549Srmind extern char * npfopts; 46facb6bd8Srmind #endif 47facb6bd8Srmind 48*79964549Srmind #if defined(WITH_IPF) 49facb6bd8Srmind extern const ftp_proxy_ops_t ipf_fprx_ops; 50*79964549Srmind #endif 51*79964549Srmind 52facb6bd8Srmind #endif 53facb6bd8Srmind 54facb6bd8Srmind #endif 55