summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/filter.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>1997-11-22 03:37:54 +0000
committerbrian <brian@FreeBSD.org>1997-11-22 03:37:54 +0000
commita7f001c816c9390acda1c72f889fd110f8d75563 (patch)
tree876d508224fb0bc9435a2e3b83f73719b56ad0b6 /usr.sbin/ppp/filter.c
parent13d351d26116b6bf544f619e0de396a53d47ccd1 (diff)
downloadFreeBSD-src-a7f001c816c9390acda1c72f889fd110f8d75563.zip
FreeBSD-src-a7f001c816c9390acda1c72f889fd110f8d75563.tar.gz
Fix prototypes.
Remove extraneous decls. Add ``const'' to several places. Allow ``make NOALIAS=1'' to remove IP aliasing. Merge with OpenBSD - only the Makefiles vary. We can now survive a compile with -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-prototypes -Wwrite-strings -Wchar-subscripts (although the Makefile just contains -Wall).
Diffstat (limited to 'usr.sbin/ppp/filter.c')
-rw-r--r--usr.sbin/ppp/filter.c89
1 files changed, 47 insertions, 42 deletions
diff --git a/usr.sbin/ppp/filter.c b/usr.sbin/ppp/filter.c
index baa45ef..b154e1a 100644
--- a/usr.sbin/ppp/filter.c
+++ b/usr.sbin/ppp/filter.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: filter.c,v 1.17 1997/11/09 14:18:38 brian Exp $
+ * $Id: filter.c,v 1.18 1997/11/12 18:47:30 brian Exp $
*
* TODO: Shoud send ICMP error message when we discard packets.
*/
@@ -62,31 +62,40 @@ static u_long netmasks[33] = {
int
ParseAddr(int argc,
- char **argv,
+ char const *const *argv,
struct in_addr * paddr,
struct in_addr * pmask,
int *pwidth)
{
- int bits;
- char *cp, *wp;
+ int bits, len;
+ char *wp;
+ const char *cp;
if (argc < 1) {
LogPrintf(LogWARN, "ParseAddr: address/mask is expected.\n");
return (0);
}
pmask->s_addr = 0xffffffff; /* Assume 255.255.255.255 as default */
+
cp = strchr(*argv, '/');
- if (cp)
- *cp++ = '\0';
- if (strcasecmp(*argv, "HISADDR") == 0)
+ len = cp ? cp - *argv : strlen(*argv);
+
+ if (strncasecmp(*argv, "HISADDR", len) == 0)
*paddr = IpcpInfo.his_ipaddr;
- else if (strcasecmp(*argv, "MYADDR") == 0)
+ else if (strncasecmp(*argv, "MYADDR", len) == 0)
*paddr = IpcpInfo.want_ipaddr;
- else if (inet_aton(*argv, paddr) == 0) {
+ else if (len > 15)
LogPrintf(LogWARN, "ParseAddr: %s: Bad address\n", *argv);
- return (0);
+ else {
+ char s[16];
+ strncpy(s, *argv, len);
+ s[len] = '\0';
+ if (inet_aton(s, paddr) == 0) {
+ LogPrintf(LogWARN, "ParseAddr: %s: Bad address\n", s);
+ return (0);
+ }
}
- if (cp && *cp) {
+ if (cp && *++cp) {
bits = strtol(cp, &wp, 0);
if (cp == wp || bits < 0 || bits > 32) {
LogPrintf(LogWARN, "ParseAddr: bad mask width.\n");
@@ -104,7 +113,7 @@ ParseAddr(int argc,
}
static int
-ParseProto(int argc, char **argv)
+ParseProto(int argc, char const *const *argv)
{
int proto;
@@ -123,9 +132,10 @@ ParseProto(int argc, char **argv)
}
static int
-ParsePort(char *service, int proto)
+ParsePort(const char *service, int proto)
{
- char *protocol_name, *cp;
+ const char *protocol_name;
+ char *cp;
struct servent *servent;
int port;
@@ -157,7 +167,7 @@ ParsePort(char *service, int proto)
* ICMP Syntax: src eq icmp_message_type
*/
static int
-ParseIcmp(int argc, char **argv)
+ParseIcmp(int argc, char const *const *argv)
{
int type;
char *cp;
@@ -186,7 +196,7 @@ ParseIcmp(int argc, char **argv)
}
static int
-ParseOp(char *cp)
+ParseOp(const char *cp)
{
int op = OP_NONE;
@@ -203,7 +213,7 @@ ParseOp(char *cp)
* UDP Syntax: [src op port] [dst op port]
*/
static int
-ParseUdpOrTcp(int argc, char **argv, int proto)
+ParseUdpOrTcp(int argc, char const *const *argv, int proto)
{
filterdata.opt.srcop = filterdata.opt.dstop = OP_NONE;
filterdata.opt.estab = 0;
@@ -254,10 +264,10 @@ ParseUdpOrTcp(int argc, char **argv, int proto)
return (0);
}
-char *opname[] = {"none", "eq", "gt", NULL, "lt"};
+const char *opname[] = {"none", "eq", "gt", NULL, "lt"};
static int
-Parse(int argc, char **argv, struct filterent * ofp)
+Parse(int argc, char const *const *argv, struct filterent * ofp)
{
int action, proto;
int val;
@@ -377,52 +387,47 @@ Parse(int argc, char **argv, struct filterent * ofp)
}
int
-SetIfilter(struct cmdtab *list, int argc, char **argv)
+SetIfilter(struct cmdargs const *arg)
{
- if (argc > 0) {
- (void) Parse(argc, argv, ifilters);
+ if (arg->argc > 0) {
+ Parse(arg->argc, arg->argv, ifilters);
return 0;
}
return -1;
}
int
-SetOfilter(struct cmdtab *list, int argc, char **argv)
+SetOfilter(struct cmdargs const *arg)
{
- if (argc > 0) {
- (void) Parse(argc, argv, ofilters);
+ if (arg->argc > 0) {
+ (void) Parse(arg->argc, arg->argv, ofilters);
return 0;
}
return -1;
}
int
-SetDfilter(struct cmdtab *list, int argc, char **argv)
+SetDfilter(struct cmdargs const *arg)
{
- if (argc > 0) {
- (void) Parse(argc, argv, dfilters);
+ if (arg->argc > 0) {
+ (void) Parse(arg->argc, arg->argv, dfilters);
return 0;
}
return -1;
}
int
-SetAfilter(struct cmdtab *list, int argc, char **argv)
+SetAfilter(struct cmdargs const *arg)
{
- if (argc > 0) {
- (void) Parse(argc, argv, afilters);
+ if (arg->argc > 0) {
+ (void) Parse(arg->argc, arg->argv, afilters);
return 0;
}
return -1;
}
-static char *protoname[] = {
- "none", "tcp", "udp", "icmp",
-};
-
-static char *actname[] = {
- "none ", "permit ", "deny ",
-};
+static const char *protoname[] = { "none", "tcp", "udp", "icmp" };
+static const char *actname[] = { "none ", "permit ", "deny " };
static void
ShowFilter(struct filterent * fp)
@@ -462,28 +467,28 @@ ShowFilter(struct filterent * fp)
}
int
-ShowIfilter(struct cmdtab * list, int argc, char **argv)
+ShowIfilter(struct cmdargs const *arg)
{
ShowFilter(ifilters);
return 0;
}
int
-ShowOfilter(struct cmdtab * list, int argc, char **argv)
+ShowOfilter(struct cmdargs const *arg)
{
ShowFilter(ofilters);
return 0;
}
int
-ShowDfilter(struct cmdtab * list, int argc, char **argv)
+ShowDfilter(struct cmdargs const *arg)
{
ShowFilter(dfilters);
return 0;
}
int
-ShowAfilter(struct cmdtab * list, int argc, char **argv)
+ShowAfilter(struct cmdargs const *arg)
{
ShowFilter(afilters);
return 0;
OpenPOWER on IntegriCloud