From owner-p4-projects@FreeBSD.ORG Thu Dec 28 22:16:46 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5748116A412; Thu, 28 Dec 2006 22:16:46 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 232DF16A407 for ; Thu, 28 Dec 2006 22:16:46 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 1423913C46E for ; Thu, 28 Dec 2006 22:16:46 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kBSMGk1Y038010 for ; Thu, 28 Dec 2006 22:16:46 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kBSMGjxc038007 for perforce@freebsd.org; Thu, 28 Dec 2006 22:16:45 GMT (envelope-from piso@freebsd.org) Date: Thu, 28 Dec 2006 22:16:45 GMT Message-Id: <200612282216.kBSMGjxc038007@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 112252 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Dec 2006 22:16:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=112252 Change 112252 by piso@piso_newluxor on 2006/12/28 22:16:40 mainly style fixes: o in case of long line, break it and indent + 4 spaces. o do not initialize vars during declaration. o declare all the vars at the beginning of function. o do not put a new line between cases in a switch statement. o update a comment. Affected files ... .. //depot/projects/soc2005/libalias/sbin/ipfw/ipfw2.c#14 edit .. //depot/projects/soc2005/libalias/sys/netinet/ip_fw2.c#33 edit Differences ... ==== //depot/projects/soc2005/libalias/sbin/ipfw/ipfw2.c#14 (text+ko) ==== @@ -3293,7 +3293,7 @@ if (ifm->ifm_version != RTM_VERSION) { if (verbose) warnx("routing message version %d " - "not understood", ifm->ifm_version); + "not understood", ifm->ifm_version); continue; } if (ifm->ifm_type == RTM_IFINFO) { @@ -3318,7 +3318,7 @@ if (ifam->ifam_version != RTM_VERSION) { if (verbose) warnx("routing message version %d " - "not understood", ifam->ifam_version); + "not understood", ifam->ifam_version); continue; } if (ifam->ifam_type != RTM_NEWADDR) @@ -3327,9 +3327,10 @@ int i; char *cp = (char *)(ifam + 1); - for (i = 1; i < RTA_IFA; i <<= 1) + for (i = 1; i < RTA_IFA; i <<= 1) { if (ifam->ifam_addrs & i) cp += SA_SIZE((struct sockaddr *)cp); + } if (((struct sockaddr *)cp)->sa_family == AF_INET) { sin = (struct sockaddr_in *)cp; break; @@ -3502,12 +3503,19 @@ setup_redir_addr(char *spool_buf, int len, int *_ac, char ***_av) { - char **av = *_av, *sep; /* Token separator. */ + char **av, *sep; /* Token separator. */ /* Temporary buffer used to hold server pool ip's. */ char tmp_spool_buf[NAT_BUF_LEN]; - int ac = *_ac, i, space = 0, lsnat = 0; - int sof_redir = sizeof(struct cfg_redir); + int ac, i, space, lsnat, sof_redir, sof_spool; struct cfg_redir *r; + struct cfg_spool *tmp; + + av = *_av; + ac = *_ac; + space = 0; + lsnat = 0; + sof_redir = sizeof(struct cfg_redir); + sof_spool = sizeof(struct cfg_spool); if (len >= sof_redir) { r = (struct cfg_redir *)spool_buf; @@ -3539,9 +3547,6 @@ /* Setup LSNAT server pool. */ if (sep) { - int sof_spool = sizeof(struct cfg_spool); - struct cfg_spool *tmp; - sep = strtok(tmp_spool_buf, ","); while (sep != NULL) { tmp = (struct cfg_spool *)spool_buf; @@ -3566,13 +3571,21 @@ setup_redir_port(char *spool_buf, int len, int *_ac, char ***_av) { - char **av = *_av, *sep, *protoName; + char **av, *sep, *protoName; char tmp_spool_buf[NAT_BUF_LEN]; - int ac = *_ac, space = 0, lsnat = 0; - int sof_redir = sizeof(struct cfg_redir); + int ac, space, lsnat, sof_redir, sof_spool; struct cfg_redir *r; - u_short numLocalPorts = 0; - port_range portRange; + struct cfg_spool *tmp; + u_short numLocalPorts; + port_range portRange; + + av = *_av; + ac = *_ac; + space = 0; + lsnat = 0; + sof_redir = sizeof(struct cfg_redir); + sof_spool = sizeof(struct cfg_spool); + numLocalPorts = 0; if (len >= sof_redir) { r = (struct cfg_redir *)spool_buf; @@ -3599,7 +3612,8 @@ errx (EX_DATAERR, "redirect_port: missing local address"); sep = strchr(*av, ','); - if (sep) { /* LSNAT redirection syntax. */ + /* LSNAT redirection syntax. */ + if (sep) { r->laddr.s_addr = INADDR_NONE; r->lport = ~0; numLocalPorts = 1; @@ -3608,15 +3622,15 @@ lsnat = 1; } else { if (StrToAddrAndPortRange (*av, &r->laddr, protoName, - &portRange) != 0) + &portRange) != 0) errx(EX_DATAERR, "redirect_port:" - "invalid local port range"); + "invalid local port range"); r->lport = GETLOPORT(portRange); numLocalPorts = GETNUMPORTS(portRange); - } + } INC_ARGCV(); - + /* * Extract public port and optionally address. */ @@ -3626,14 +3640,14 @@ sep = strchr (*av, ':'); if (sep) { if (StrToAddrAndPortRange (*av, &r->paddr, protoName, - &portRange) != 0) + &portRange) != 0) errx(EX_DATAERR, "redirect_port:" - "invalid public port range"); + "invalid public port range"); } else { r->paddr.s_addr = INADDR_ANY; if (StrToPortRange (*av, protoName, &portRange) != 0) errx(EX_DATAERR, "redirect_port:" - "invalid public port range"); + "invalid public port range"); } r->pport = GETLOPORT(portRange); @@ -3651,17 +3665,17 @@ sep = strchr (*av, ':'); if (sep) { if (StrToAddrAndPortRange (*av, &r->raddr, protoName, - &portRange) != 0) - errx(EX_DATAERR, "redirect_port:" - "invalid remote port range"); + &portRange) != 0) + errx(EX_DATAERR, "redirect_port:" + "invalid remote port range"); } else { SETLOPORT(portRange, 0); SETNUMPORTS(portRange, 1); StrToAddr (*av, &r->raddr); } INC_ARGCV(); - } else { - SETLOPORT(portRange, 0); + } else { + SETLOPORT(portRange, 0); SETNUMPORTS(portRange, 1); r->raddr.s_addr = INADDR_ANY; } @@ -3673,21 +3687,18 @@ */ if (numLocalPorts != r->pport_cnt) errx(EX_DATAERR, "redirect_port:" - "port ranges must be equal in size"); - + "port ranges must be equal in size"); + /* Remote port range is allowed to be '0' which means all ports. */ if (r->rport_cnt != numLocalPorts && (r->rport_cnt != 1 || r->rport != 0)) errx(EX_DATAERR, "redirect_port: remote port must" - "be 0 or equal to local port range in size"); + "be 0 or equal to local port range in size"); /* * Setup LSNAT server pool. */ if (lsnat) { - int sof_spool = sizeof(struct cfg_spool); - struct cfg_spool *tmp; - sep = strtok(tmp_spool_buf, ","); while (sep != NULL) { tmp = (struct cfg_spool *)spool_buf; @@ -3696,12 +3707,12 @@ len -= sof_spool; space += sof_spool; if (StrToAddrAndPortRange(sep, &tmp->addr, protoName, - &portRange) != 0) + &portRange) != 0) errx(EX_DATAERR, "redirect_port:" - "invalid local port range"); + "invalid local port range"); if (GETNUMPORTS(portRange) != 1) errx(EX_DATAERR, "redirect_port: local port" - "must be single in this context"); + "must be single in this context"); tmp->port = GETLOPORT(portRange); r->spool_cnt++; /* Point to the next possible cfg_spool. */ @@ -3718,12 +3729,15 @@ setup_redir_proto(char *spool_buf, int len, int *_ac, char ***_av) { - char **av = *_av; - int ac = *_ac, i, space; + char **av; + int ac, i, space, sof_redir;; struct protoent *protoent; - int sof_redir = sizeof(struct cfg_redir); struct cfg_redir *r; + av = *_av; + ac = *_ac; + sof_redir = sizeof(struct cfg_redir); + if (len >= sof_redir) { r = (struct cfg_redir *)spool_buf; /* Skip cfg_redir at beginning of buf. */ @@ -3789,14 +3803,19 @@ static void print_nat_config(char *buf) { - struct cfg_nat *n = (struct cfg_nat *)buf; - int i, cnt, flag = 1, off = sizeof(*n); - int sof_redir = sizeof(struct cfg_redir); - int sof_spool = sizeof(struct cfg_spool); + struct cfg_nat *n; + int i, cnt, flag, off; + int sof_redir, sof_spool; struct cfg_redir *t; struct cfg_spool *s; struct protoent *p; + n = (struct cfg_nat *)buf; + flag = 1; + off = sizeof(*n); + sof_redir = sizeof(struct cfg_redir); + sof_spool = sizeof(struct cfg_spool); + printf("ipfw nat %u config", n->id); if (strlen(n->if_name) != 0) printf(" if %s", n->if_name); @@ -3827,7 +3846,7 @@ } } /* Print all the redirect's data configuration. */ - for (cnt=0; cnt < n->redir_cnt; cnt++) { + for (cnt = 0; cnt < n->redir_cnt; cnt++) { t = (struct cfg_redir *)&buf[off]; off += sof_redir; switch (t->mode) { @@ -3836,7 +3855,7 @@ if (t->spool_cnt == 0) printf(" %s", inet_ntoa(t->laddr)); else - for (i=0; i < t->spool_cnt; i++) { + for (i = 0; i < t->spool_cnt; i++) { s = (struct cfg_spool *)&buf[off]; if (i) printf(","); @@ -3854,14 +3873,14 @@ printf("%s:%u", inet_ntoa(t->laddr), t->lport); if (t->pport_cnt > 1) printf("-%u", t->lport + - t->pport_cnt - 1); + t->pport_cnt - 1); } else for (i=0; i < t->spool_cnt; i++) { s = (struct cfg_spool *)&buf[off]; if (i) printf(","); printf("%s:%u", inet_ntoa(s->addr), - s->port); + s->port); off += sof_spool; } @@ -3878,14 +3897,14 @@ printf(":%u", t->rport); if (!t->spool_cnt && t->rport_cnt > 1) printf("-%u", t->rport + - t->rport_cnt - 1); + t->rport_cnt - 1); } } break; case REDIR_PROTO: p = getprotobynumber(t->proto); printf(" redirect_proto %s %s", p->p_name, - inet_ntoa(t->laddr)); + inet_ntoa(t->laddr)); if (t->paddr.s_addr != 0) { printf(" %s", inet_ntoa(t->paddr)); if (t->raddr.s_addr) @@ -3905,11 +3924,13 @@ { struct cfg_nat *n; /* Nat instance configuration. */ struct in_addr ip; - int i, len = NAT_BUF_LEN; - /* Offset in buf: save space for n at the beginning. */ - int off = sizeof(*n); + int i, len, off, sof_redir, tok; char *id, buf[NAT_BUF_LEN]; /* Buffer for serialized data. */ + sof_redir = sizeof(struct cfg_redir); + len = NAT_BUF_LEN; + /* Offset in buf: save space for n at the beginning. */ + off = sizeof(*n); memset(buf, 0, sizeof(buf)); n = (struct cfg_nat *)buf; @@ -3926,81 +3947,67 @@ errx(EX_DATAERR, "missing option"); while (ac > 0) { - int tok = match_token(nat_params, *av); - int sof_redir = sizeof(struct cfg_redir); - - ac--; av++; - - switch (tok) { - case TOK_IP: - if (ac == 0) - errx(EX_DATAERR, "missing option"); - if (!inet_aton(av[0], &(n->ip))) - errx(EX_DATAERR, "bad ip address ``%s''", av[0]); - ac--; av++; - break; - - case TOK_IF: - set_addr_dynamic(av[0], n); - ac--; av++; - break; - - case TOK_ALOG: - n->mode |= PKT_ALIAS_LOG; - break; - - case TOK_DENY_INC: - n->mode |= PKT_ALIAS_DENY_INCOMING; - break; - - case TOK_SAME_PORTS: - n->mode |= PKT_ALIAS_SAME_PORTS; - break; - - case TOK_UNREG_ONLY: - n->mode |= PKT_ALIAS_UNREGISTERED_ONLY; - break; - - case TOK_RESET_ADDR: - n->mode |= PKT_ALIAS_RESET_ON_ADDR_CHANGE; - break; - - case TOK_ALIAS_REV: - n->mode |= PKT_ALIAS_REVERSE; - break; - - case TOK_PROXY_ONLY: - n->mode |= PKT_ALIAS_PROXY_ONLY; - break; - - /* - * All the setup_redir_* functions work directly in the final - * buffer, see above for details. - */ - case TOK_REDIR_ADDR: - case TOK_REDIR_PORT: - case TOK_REDIR_PROTO: - switch (tok) { - case TOK_REDIR_ADDR: - i = setup_redir_addr(&buf[off], len, &ac, &av); - break; - - case TOK_REDIR_PORT: - i = setup_redir_port(&buf[off], len, &ac, &av); - break; - - case TOK_REDIR_PROTO: - i = setup_redir_proto(&buf[off], len, &ac, &av); - break; - } - n->redir_cnt++; - off += i; - len -= i; - break; - - default: - errx(EX_DATAERR, "unrecognised option ``%s''", av[-1]); - } + tok = match_token(nat_params, *av); + ac--; av++; + switch (tok) { + case TOK_IP: + if (ac == 0) + errx(EX_DATAERR, "missing option"); + if (!inet_aton(av[0], &(n->ip))) + errx(EX_DATAERR, "bad ip address ``%s''", + av[0]); + ac--; av++; + break; + case TOK_IF: + set_addr_dynamic(av[0], n); + ac--; av++; + break; + case TOK_ALOG: + n->mode |= PKT_ALIAS_LOG; + break; + case TOK_DENY_INC: + n->mode |= PKT_ALIAS_DENY_INCOMING; + break; + case TOK_SAME_PORTS: + n->mode |= PKT_ALIAS_SAME_PORTS; + break; + case TOK_UNREG_ONLY: + n->mode |= PKT_ALIAS_UNREGISTERED_ONLY; + break; + case TOK_RESET_ADDR: + n->mode |= PKT_ALIAS_RESET_ON_ADDR_CHANGE; + break; + case TOK_ALIAS_REV: + n->mode |= PKT_ALIAS_REVERSE; + break; + case TOK_PROXY_ONLY: + n->mode |= PKT_ALIAS_PROXY_ONLY; + break; + /* + * All the setup_redir_* functions work directly in the final + * buffer, see above for details. + */ + case TOK_REDIR_ADDR: + case TOK_REDIR_PORT: + case TOK_REDIR_PROTO: + switch (tok) { + case TOK_REDIR_ADDR: + i = setup_redir_addr(&buf[off], len, &ac, &av); + break; + case TOK_REDIR_PORT: + i = setup_redir_port(&buf[off], len, &ac, &av); + break; + case TOK_REDIR_PROTO: + i = setup_redir_proto(&buf[off], len, &ac, &av); + break; + } + n->redir_cnt++; + off += i; + len -= i; + break; + default: + errx(EX_DATAERR, "unrecognised option ``%s''", av[-1]); + } } i = do_cmd(IP_FW_NAT_CFG, buf, off); @@ -5851,12 +5858,16 @@ show_nat(int ac, char **av) { struct cfg_nat *n; struct cfg_redir *e; - int cmd, i, nbytes, do_cfg, do_rule = 0, frule, lrule, nalloc = 1024, - size = 0, nat_cnt, r; - u_int8_t *data = NULL, *p; + int cmd, i, nbytes, do_cfg, do_rule, frule, lrule, nalloc, size; + int nat_cnt, r; + u_int8_t *data, *p; char **lav, *endptr; - ac--; av++; + do_rule = 0; + nalloc = 1024; + size = 0; + data = NULL; + ac--; av++; /* Parse parameters. */ for (cmd = IP_FW_NAT_GET_LOG, do_cfg = 0; ac != 0; ac--, av++) { @@ -5883,22 +5894,23 @@ err(EX_OSERR, "getsockopt(IP_FW_GET_%s)", (cmd == IP_FW_NAT_GET_LOG) ? "LOG" : "CONFIG"); } - if (nbytes == 0) + if (nbytes == 0) exit(0); if (do_cfg) { nat_cnt = *((int *)data); for (i = sizeof(nat_cnt); nat_cnt; nat_cnt--) { n = (struct cfg_nat *)&data[i]; - if (do_rule) - if (!(frule <= n->id && lrule >= n->id)) + if (do_rule) { + if (!(frule <= n->id && lrule >= n->id)) continue; + } print_nat_config(&data[i]); i += sizeof(struct cfg_nat); e = (struct cfg_redir *)&data[i]; if (e->mode == REDIR_ADDR || e->mode == REDIR_PORT || e->mode == REDIR_PROTO) i += sizeof(struct cfg_redir) + e->spool_cnt * - sizeof(struct cfg_spool); + sizeof(struct cfg_spool); } } else { for (i = 0; 1; i += LIBALIAS_BUF_SIZE + sizeof(int)) { @@ -5906,9 +5918,10 @@ if (p == data + nbytes) break; bcopy(p, &r, sizeof(int)); - if (do_rule) + if (do_rule) { if (!(frule <= r && lrule >= r)) continue; + } printf("nat %u: %s\n", r, p+sizeof(int)); } } ==== //depot/projects/soc2005/libalias/sys/netinet/ip_fw2.c#33 (text+ko) ==== @@ -2055,7 +2055,7 @@ if (ifa->ifa_addr->sa_family != AF_INET) continue; ptr->ip = ((struct sockaddr_in *) - (ifa->ifa_addr))->sin_addr; + (ifa->ifa_addr))->sin_addr; LibAliasSetAddress(ptr->lib, ptr->ip); } mtx_unlock(&ifp->if_addr_mtx); @@ -2071,9 +2071,8 @@ IPFW_WLOCK_ASSERT(&layer3_chain); for (rule = layer3_chain.rules; rule; rule = rule->next) { ipfw_insn_nat *cmd = (ipfw_insn_nat *)ACTION_PTR(rule); - if (cmd->o.opcode != O_NAT) - continue; + continue; if (cmd->nat != NULL && cmd->nat->id == i) cmd->nat = NULL; } @@ -2084,7 +2083,7 @@ struct cfg_nat *ptr; LIST_FOREACH(ptr, &layer3_chain.nat, _next) - if (ptr->id == i) + if (ptr->id == i) return(ptr); return (NULL); } @@ -2118,12 +2117,12 @@ switch (r->mode) { case REDIR_PORT: num = r->pport_cnt; + /* FALLTHROUGH */ case REDIR_ADDR: case REDIR_PROTO: /* Delete all libalias redirect entry. */ for (i = 0; i < num; i++) - LibAliasRedirectDelete(n->lib, - r->alink[i]); + LibAliasRedirectDelete(n->lib, r->alink[i]); /* Del spool cfg if any. */ LIST_FOREACH_SAFE(s, &r->spool_chain, _next, tmp_s) { LIST_REMOVE(s, _next); @@ -2133,7 +2132,7 @@ LIST_REMOVE(r, _next); free(r, M_IPFW); break; - default: + default: printf("unknown redirect mode: %u\n", r->mode); /* XXX - panic?!?!? */ break; @@ -2143,14 +2142,16 @@ static int add_redir_spool_cfg(char *buf, struct cfg_nat *ptr) { - int sof_alinkp = sizeof(struct alias_link *); - int sof_redir = sizeof(struct cfg_redir); - int sof_spool = sizeof(struct cfg_spool); + int sof_alinkp, sof_redir, sof_spool; struct cfg_redir *r, *ser_r; struct cfg_spool *s, *ser_s; int cnt, off, i; char *panic_err; + sof_alinkp = sizeof(struct alias_link *); + sof_redir = sizeof(struct cfg_redir); + sof_spool = sizeof(struct cfg_spool); + for(cnt = 0, off = 0; cnt < ptr->redir_cnt; cnt++) { ser_r = (struct cfg_redir *)&buf[off]; r = malloc(sof_redir, M_IPFW, M_WAITOK | M_ZERO); @@ -2158,12 +2159,11 @@ LIST_INIT(&r->spool_chain); off += sof_redir; r->alink = malloc(sof_alinkp*r->pport_cnt, - M_IPFW, M_WAITOK | M_ZERO); + M_IPFW, M_WAITOK | M_ZERO); switch (r->mode) { case REDIR_ADDR: - r->alink[0] = LibAliasRedirectAddr(ptr->lib, - r->laddr, - r->paddr); + r->alink[0] = LibAliasRedirectAddr(ptr->lib, r->laddr, + r->paddr); break; case REDIR_PORT: for (i = 0 ; i < r->pport_cnt; i++) { @@ -2171,16 +2171,10 @@ u_short remotePortCopy = r->rport + i; if (r->rport_cnt == 1 && r->rport == 0) remotePortCopy = 0; - r->alink[i] = - LibAliasRedirectPort( - ptr->lib, - r->laddr, - htons(r->lport + i), - r->raddr, - htons(remotePortCopy), - r->paddr, - htons(r->pport + i), - r->proto); + r->alink[i] = LibAliasRedirectPort(ptr->lib, + r->laddr, htons(r->lport + i), r->raddr, + htons(remotePortCopy), r->paddr, + htons(r->pport + i), r->proto); if (r->alink[i] == NULL) { r->alink[0] = NULL; break; @@ -2188,13 +2182,10 @@ } break; case REDIR_PROTO: - r->alink[0] = LibAliasRedirectProto(ptr->lib, - r->laddr, - r->raddr, - r->paddr, - r->proto); + r->alink[0] = LibAliasRedirectProto(ptr->lib ,r->laddr, + r->raddr, r->paddr, r->proto); break; - default: + default: printf("unknown redirect mode: %u\n", r->mode); break; } @@ -2205,11 +2196,10 @@ for (i = 0; i < r->spool_cnt; i++) { ser_s = (struct cfg_spool *)&buf[off]; s = malloc(sof_redir, M_IPFW, - M_WAITOK | M_ZERO); + M_WAITOK | M_ZERO); memcpy(s, ser_s, sof_spool); LibAliasAddServer(ptr->lib, r->alink[0], - s->addr, - htons(s->port)); + s->addr, htons(s->port)); off += sof_spool; /* Hook spool entry. */ HOOK_SPOOL(&r->spool_chain, s); @@ -3456,9 +3446,10 @@ struct cfg_nat *t; struct mbuf *mcl; /* XXX - libalias duct tape */ - int ldt = 0; + int ldt; char *c; + ldt = 0; args->rule = f; /* Report matching rule. */ retval = 0; t = ((ipfw_insn_nat *)cmd)->nat; @@ -3469,7 +3460,7 @@ goto done; } else ((ipfw_insn_nat *)cmd)->nat = - t; + t; } if ((mcl = m_megapullup(m, m->m_pkthdr.len)) == NULL) @@ -3525,7 +3516,7 @@ * too. * * TODO: -make libalias mbuf aware (so - * it can handle delayed checksum) + * it can handle delayed checksum and tso) */ if (mcl->m_pkthdr.rcvif == NULL && @@ -3536,10 +3527,10 @@ c = mtod(mcl, char *); if (oif == NULL) retval = LibAliasIn(t->lib, c, - MCLBYTES); + MCLBYTES); else retval = LibAliasOut(t->lib, c, - MCLBYTES); + MCLBYTES); if (retval != PKT_ALIAS_OK) { /* XXX - should i add some logging? */ m_free(mcl); @@ -3549,7 +3540,7 @@ goto done; } mcl->m_pkthdr.len = mcl->m_len = - ntohs(ip->ip_len); + ntohs(ip->ip_len); /* * XXX - libalias checksum offload @@ -3575,7 +3566,7 @@ ip->ip_src.s_addr, ip->ip_dst.s_addr, htons(ip->ip_p + ip->ip_len - - (ip->ip_hl << 2)) + (ip->ip_hl << 2)) ); switch (ip->ip_p) { @@ -3588,17 +3579,16 @@ th->th_x2 = 0; th->th_sum = cksum; mcl->m_pkthdr.csum_data = - offsetof(struct tcphdr, - th_sum); + offsetof(struct tcphdr, + th_sum); break; case IPPROTO_UDP: uh = (struct udphdr *)(ip + 1); uh->uh_sum = cksum; mcl->m_pkthdr.csum_data = - offsetof(struct udphdr, - uh_sum); - break; - + offsetof(struct udphdr, + uh_sum); + break; } /* * No hw checksum offloading: do it @@ -3608,7 +3598,7 @@ CSUM_DELAY_DATA) == 0) { in_delayed_cksum(mcl); mcl->m_pkthdr.csum_flags &= - ~CSUM_DELAY_DATA; + ~CSUM_DELAY_DATA; } ip->ip_len = htons(ip->ip_len); } @@ -4577,11 +4567,10 @@ char *buf; buf = malloc(NAT_BUF_LEN, M_IPFW, M_WAITOK | M_ZERO); - error = sooptcopyin(sopt, buf, NAT_BUF_LEN, - sizeof(struct cfg_nat)); + sizeof(struct cfg_nat)); ser_n = (struct cfg_nat *)buf; - + /* * Find/create nat rule. */ @@ -4590,7 +4579,7 @@ if (ptr == NULL) { /* New rule: allocate and init new instance. */ ptr = malloc(sizeof(struct cfg_nat), - M_IPFW, M_NOWAIT | M_ZERO); + M_IPFW, M_NOWAIT | M_ZERO); if (ptr == NULL) { free(buf, M_IPFW); IPFW_WUNLOCK(&layer3_chain); @@ -4604,7 +4593,7 @@ return(EINVAL); } LIST_INIT(&ptr->redir_chain); - } else { + } else { /* Entry already present: temporarly unhook it. */ UNHOOK_NAT(ptr); flush_nat_ptrs(ser_n->id); @@ -4669,13 +4658,16 @@ struct cfg_nat *n; struct cfg_redir *r; struct cfg_spool *s; - int sof_nat = sizeof(struct cfg_nat); - int sof_redir = sizeof(struct cfg_redir); - int sof_spool = sizeof(struct cfg_spool); - int nat_cnt = 0, off = sizeof(nat_cnt); + int sof_nat, sof_redir, sof_spool; + int nat_cnt, off; + sof_nat = sizeof(struct cfg_nat); + sof_redir = sizeof(struct cfg_redir); + sof_spool = sizeof(struct cfg_spool); + nat_cnt = 0; + off = sizeof(nat_cnt); + data = malloc(NAT_BUF_LEN, M_IPFW, M_WAITOK | M_ZERO); - IPFW_RLOCK(&layer3_chain); /* Serialize all the data. */ LIST_FOREACH(n, &layer3_chain.nat, _next) { @@ -4686,18 +4678,19 @@ LIST_FOREACH(r, &n->redir_chain, _next) { if (off + sof_redir < NAT_BUF_LEN) { bcopy(r, &data[off], - sof_redir); + sof_redir); off += sof_redir; - LIST_FOREACH(s, - &r->spool_chain, - _next) { - if (off + sof_spool < - NAT_BUF_LEN) { - bcopy(s, &data[off], - sof_spool); - off += sof_spool; - } else - goto nospace; + LIST_FOREACH(s, &r->spool_chain, + _next) { + if (off + sof_spool < + NAT_BUF_LEN) { + bcopy(s, + &data[off], + sof_spool); + off += + sof_spool; + } else + goto nospace; } } else goto nospace; @@ -4713,17 +4706,20 @@ nospace: IPFW_RUNLOCK(&layer3_chain); printf("serialized data buffer not big enough:" - "please increase NAT_BUF_LEN\n"); + "please increase NAT_BUF_LEN\n"); free(data, M_IPFW); } break; case IP_FW_NAT_GET_LOG: { - u_int8_t *data = NULL; + u_int8_t *data; struct cfg_nat *ptr; - int sof = LIBALIAS_BUF_SIZE; - int i, size, cnt = 0; + int i, size, cnt, sof; + + data = NULL; + sof = LIBALIAS_BUF_SIZE; + cnt = 0; IPFW_RLOCK(&layer3_chain); size = i = 0; @@ -4922,7 +4918,7 @@ callout_reset(&ipfw_timeout, hz, ipfw_tick, NULL); LIST_INIT(&layer3_chain.nat); ifaddr_event_tag = EVENTHANDLER_REGISTER(ifaddr_event, ifaddr_change, - NULL, EVENTHANDLER_PRI_ANY); + NULL, EVENTHANDLER_PRI_ANY); return (0); }