Lines Matching defs:ipn
86 struct ipnat ipn;
154 ftp_proxy_entry_add_nat(struct ftp_proxy_entry *fpe, ipnat_t *ipn)
162 memcpy(&fpn->ipn, ipn, sizeof(fpn->ipn));
169 ipfilter_add_nat(ipnat_t *ipn)
175 obj.ipfo_size = ipn->in_size;
177 obj.ipfo_ptr = ipn;
183 ipfilter_remove_nat(ipnat_t ipn)
189 obj.ipfo_size = sizeof(ipn);
191 obj.ipfo_ptr = &ipn;
227 ipnat_t *ipn;
240 ipn = calloc(1, sizeof(*ipn) + 2 * IF_NAMESIZE + 2);
241 if (ipn == NULL) {
245 ipn->in_redir = NAT_REDIRECT;
246 ipn->in_v[0] = 4;
247 ipn->in_v[1] = 4;
248 ipn->in_odstaddr = satosin(dst)->sin_addr.s_addr;
249 ipn->in_odstmsk = 0xffffffff;
250 ipn->in_odport = htons(d_port);
251 ipn->in_dtop = htons(d_port);
252 ipn->in_ndstaddr = satosin(rdr)->sin_addr.s_addr;
253 ipn->in_ndstmsk = 0xffffffff;
254 ipn->in_dpnext = htons(rdr_port);
255 ipn->in_flags = IPN_FIXEDDPORT | IPN_TCP;
256 strlcpy(ipn->in_tag.ipt_tag, fpe->proxy_tag,
257 sizeof(ipn->in_tag.ipt_tag));
259 ipn->in_ifnames[0] = 0;
260 (void) strlcpy(ipn->in_names, netif, IF_NAMESIZE);
261 ipn->in_namelen = strlen(ipn->in_names) + 1;
262 ipn->in_ifnames[1] = ipn->in_namelen;
263 (void) strlcpy(ipn->in_names + ipn->in_namelen, netif, IF_NAMESIZE);
264 ipn->in_namelen += strlen(ipn->in_names + ipn->in_ifnames[1]) + 1;
265 ipn->in_size = sizeof(*ipn) + ipn->in_namelen;
267 if (ipfilter_add_nat(ipn) == -1) {
268 free(ipn);
272 if (ftp_proxy_entry_add_nat(fpe, ipn) == -1) {
273 free(ipn);
278 free(ipn);
298 if (ipfilter_remove_nat(fpn->ipn) == -1)