summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/ppp/cbcp.c4
-rw-r--r--usr.sbin/ppp/ccp.c57
-rw-r--r--usr.sbin/ppp/defs.c27
-rw-r--r--usr.sbin/ppp/defs.h2
-rw-r--r--usr.sbin/ppp/ip.c6
-rw-r--r--usr.sbin/ppp/ipcp.c47
-rw-r--r--usr.sbin/ppp/lcp.c71
-rw-r--r--usr.sbin/ppp/route.c10
8 files changed, 126 insertions, 98 deletions
diff --git a/usr.sbin/ppp/cbcp.c b/usr.sbin/ppp/cbcp.c
index 1ff5fe3..0250594 100644
--- a/usr.sbin/ppp/cbcp.c
+++ b/usr.sbin/ppp/cbcp.c
@@ -151,7 +151,7 @@ cbcpstate(int s)
{
if (s < sizeof cbcpname / sizeof cbcpname[0])
return cbcpname[s];
- return "???";
+ return HexStr(s, NULL, 0);
}
static void
@@ -214,7 +214,7 @@ cbcp_data_Type(int type)
};
if (type < 1 || type > sizeof types / sizeof types[0])
- return "???";
+ return HexStr(type, NULL, 0);
return types[type-1];
}
diff --git a/usr.sbin/ppp/ccp.c b/usr.sbin/ppp/ccp.c
index ce45a09..8ea9775 100644
--- a/usr.sbin/ppp/ccp.c
+++ b/usr.sbin/ppp/ccp.c
@@ -93,35 +93,35 @@ static struct fsm_callbacks ccp_Callbacks = {
static const char * const ccp_TimerNames[] =
{"CCP restart", "CCP openmode", "CCP stopped"};
-static char const * const cftypes[] = {
- /* Check out the latest ``Compression Control Protocol'' rfc (rfc1962.txt) */
- "OUI", /* 0: OUI */
- "PRED1", /* 1: Predictor type 1 */
- "PRED2", /* 2: Predictor type 2 */
- "PUDDLE", /* 3: Puddle Jumber */
- "???", "???", "???", "???", "???", "???",
- "???", "???", "???", "???", "???", "???",
- "HWPPC", /* 16: Hewlett-Packard PPC */
- "STAC", /* 17: Stac Electronics LZS (rfc1974) */
- "MPPC", /* 18: Microsoft PPC (rfc2118) */
- "GAND", /* 19: Gandalf FZA (rfc1993) */
- "V42BIS", /* 20: ARG->DATA.42bis compression */
- "BSD", /* 21: BSD LZW Compress */
- "???",
- "LZS-DCP", /* 23: LZS-DCP Compression Protocol (rfc1967) */
- "MAGNALINK/DEFLATE", /* 24: Magnalink Variable Resource (rfc1975) */
- /* 24: Deflate (according to pppd-2.3.*) */
- "DCE", /* 25: Data Circuit-Terminating Equip (rfc1976) */
- "DEFLATE", /* 26: Deflate (rfc1979) */
-};
-
-#define NCFTYPES (sizeof cftypes/sizeof cftypes[0])
-
static const char *
protoname(int proto)
{
- if (proto < 0 || proto > NCFTYPES)
- return "none";
+ static char const * const cftypes[] = {
+ /* Check out the latest ``Compression Control Protocol'' rfc (1962) */
+ "OUI", /* 0: OUI */
+ "PRED1", /* 1: Predictor type 1 */
+ "PRED2", /* 2: Predictor type 2 */
+ "PUDDLE", /* 3: Puddle Jumber */
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ "HWPPC", /* 16: Hewlett-Packard PPC */
+ "STAC", /* 17: Stac Electronics LZS (rfc1974) */
+ "MPPC", /* 18: Microsoft PPC (rfc2118) */
+ "GAND", /* 19: Gandalf FZA (rfc1993) */
+ "V42BIS", /* 20: ARG->DATA.42bis compression */
+ "BSD", /* 21: BSD LZW Compress */
+ NULL,
+ "LZS-DCP", /* 23: LZS-DCP Compression Protocol (rfc1967) */
+ "MAGNALINK/DEFLATE",/* 24: Magnalink Variable Resource (rfc1975) */
+ /* 24: Deflate (according to pppd-2.3.*) */
+ "DCE", /* 25: Data Circuit-Terminating Equip (rfc1976) */
+ "DEFLATE", /* 26: Deflate (rfc1979) */
+ };
+
+ if (proto < 0 || proto > sizeof cftypes / sizeof *cftypes ||
+ cftypes[proto] == NULL)
+ return HexStr(proto, NULL, 0);
+
return cftypes[proto];
}
@@ -441,10 +441,7 @@ CcpDecodeConfig(struct fsm *fp, u_char *cp, int plen, int mode_type,
if (end == NULL)
end = "";
- if (type < NCFTYPES)
- log_Printf(LogCCP, " %s[%d] %s\n", cftypes[type], length, end);
- else
- log_Printf(LogCCP, " ???[%d] %s\n", length, end);
+ log_Printf(LogCCP, " %s[%d] %s\n", protoname(type), length, end);
if (f == -1) {
/* Don't understand that :-( */
diff --git a/usr.sbin/ppp/defs.c b/usr.sbin/ppp/defs.c
index a8eef4d..32e445b 100644
--- a/usr.sbin/ppp/defs.c
+++ b/usr.sbin/ppp/defs.c
@@ -35,6 +35,7 @@
#include <ctype.h>
#include <errno.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
@@ -315,3 +316,29 @@ MakeArgs(char *script, char **pvect, int maxargs, int flags)
*pvect = NULL;
return nargs;
}
+
+const char *
+NumStr(long val, char *buf, size_t sz)
+{
+ static char result[23]; /* handles 64 bit numbers */
+
+ if (buf == NULL || sz == 0) {
+ buf = result;
+ sz = sizeof result;
+ }
+ snprintf(buf, sz, "<%ld>", val);
+ return buf;
+}
+
+const char *
+HexStr(long val, char *buf, size_t sz)
+{
+ static char result[21]; /* handles 64 bit numbers */
+
+ if (buf == NULL || sz == 0) {
+ buf = result;
+ sz = sizeof result;
+ }
+ snprintf(buf, sz, "<0x%lx>", val);
+ return buf;
+}
diff --git a/usr.sbin/ppp/defs.h b/usr.sbin/ppp/defs.h
index aca0a29..4a1ca1f 100644
--- a/usr.sbin/ppp/defs.h
+++ b/usr.sbin/ppp/defs.h
@@ -107,3 +107,5 @@ extern int SpeedToInt(speed_t);
extern speed_t IntToSpeed(int);
extern char *findblank(char *, int);
extern int MakeArgs(char *, char **, int, int);
+extern const char *NumStr(long, char *, size_t);
+extern const char *HexStr(long, char *, size_t);
diff --git a/usr.sbin/ppp/ip.c b/usr.sbin/ppp/ip.c
index 17b285c..1fdd6c2 100644
--- a/usr.sbin/ppp/ip.c
+++ b/usr.sbin/ppp/ip.c
@@ -104,8 +104,7 @@ dns_Qclass2Txt(u_short qclass)
if (qtxt[f].id == qclass)
return qtxt[f].txt;
- snprintf(failure, sizeof failure, "<0x%02x>", qclass);
- return failure;
+ return HexStr(qclass, failure, sizeof failure);
}
static const char *
@@ -132,8 +131,7 @@ dns_Qtype2Txt(u_short qtype)
if (qtxt[f].id == qtype)
return qtxt[f].txt;
- snprintf(failure, sizeof failure, "<0x%02x>", qtype);
- return failure;
+ return HexStr(qtype, failure, sizeof failure);
}
static __inline int
diff --git a/usr.sbin/ppp/ipcp.c b/usr.sbin/ppp/ipcp.c
index 917d577..f95834d 100644
--- a/usr.sbin/ppp/ipcp.c
+++ b/usr.sbin/ppp/ipcp.c
@@ -208,26 +208,30 @@ static struct fsm_callbacks ipcp_Callbacks = {
fsm_NullRecvResetAck
};
-static const char * const cftypes[] = {
- /* Check out the latest ``Assigned numbers'' rfc (rfc1700.txt) */
- "???",
- "IPADDRS", /* 1: IP-Addresses */ /* deprecated */
- "COMPPROTO", /* 2: IP-Compression-Protocol */
- "IPADDR", /* 3: IP-Address */
-};
+static const char *
+protoname(int proto)
+{
+ static struct {
+ int id;
+ const char *txt;
+ } cftypes[] = {
+ /* Check out the latest ``Assigned numbers'' rfc (rfc1700.txt) */
+ { 1, "IPADDRS" }, /* IP-Addresses */ /* deprecated */
+ { 2, "COMPPROTO" }, /* IP-Compression-Protocol */
+ { 3, "IPADDR" }, /* IP-Address */
+ { 129, "PRIDNS" }, /* 129: Primary DNS Server Address */
+ { 130, "PRINBNS" }, /* 130: Primary NBNS Server Address */
+ { 131, "SECDNS" }, /* 131: Secondary DNS Server Address */
+ { 132, "SECNBNS" } /* 132: Secondary NBNS Server Address */
+ };
+ int f;
-#define NCFTYPES (sizeof cftypes/sizeof cftypes[0])
+ for (f = 0; f < sizeof cftypes / sizeof *cftypes; f++)
+ if (cftypes[f].id == proto)
+ return cftypes[f].txt;
-static const char * const cftypes128[] = {
- /* Check out the latest ``Assigned numbers'' rfc (rfc1700.txt) */
- "???",
- "PRIDNS", /* 129: Primary DNS Server Address */
- "PRINBNS", /* 130: Primary NBNS Server Address */
- "SECDNS", /* 131: Secondary DNS Server Address */
- "SECNBNS", /* 132: Secondary NBNS Server Address */
-};
-
-#define NCFTYPES128 (sizeof cftypes128/sizeof cftypes128[0])
+ return NumStr(proto, NULL, 0);
+}
void
ipcp_AddInOctets(struct ipcp *ipcp, int n)
@@ -960,12 +964,7 @@ IpcpDecodeConfig(struct fsm *fp, u_char *cp, int plen, int mode_type,
break;
}
- if (type < NCFTYPES)
- snprintf(tbuff, sizeof tbuff, " %s[%d] ", cftypes[type], length);
- else if (type > 128 && type < 128 + NCFTYPES128)
- snprintf(tbuff, sizeof tbuff, " %s[%d] ", cftypes128[type-128], length);
- else
- snprintf(tbuff, sizeof tbuff, " <%d>[%d] ", type, length);
+ snprintf(tbuff, sizeof tbuff, " %s[%d] ", protoname(type), length);
switch (type) {
case TY_IPADDR: /* RFC1332 */
diff --git a/usr.sbin/ppp/lcp.c b/usr.sbin/ppp/lcp.c
index 8df2061..74a2849 100644
--- a/usr.sbin/ppp/lcp.c
+++ b/usr.sbin/ppp/lcp.c
@@ -104,35 +104,43 @@ static struct fsm_callbacks lcp_Callbacks = {
static const char * const lcp_TimerNames[] =
{"LCP restart", "LCP openmode", "LCP stopped"};
-static const char * const cftypes[] = {
- /* Check out the latest ``Assigned numbers'' rfc (rfc1700.txt) */
- "???",
- "MRU", /* 1: Maximum-Receive-Unit */
- "ACCMAP", /* 2: Async-Control-Character-Map */
- "AUTHPROTO", /* 3: Authentication-Protocol */
- "QUALPROTO", /* 4: Quality-Protocol */
- "MAGICNUM", /* 5: Magic-Number */
- "RESERVED", /* 6: RESERVED */
- "PROTOCOMP", /* 7: Protocol-Field-Compression */
- "ACFCOMP", /* 8: Address-and-Control-Field-Compression */
- "FCSALT", /* 9: FCS-Alternatives */
- "SDP", /* 10: Self-Describing-Pad */
- "NUMMODE", /* 11: Numbered-Mode */
- "MULTIPROC", /* 12: Multi-Link-Procedure */
- "CALLBACK", /* 13: Callback */
- "CONTIME", /* 14: Connect-Time */
- "COMPFRAME", /* 15: Compound-Frames */
- "NDE", /* 16: Nominal-Data-Encapsulation */
- "MRRU", /* 17: Multilink-MRRU */
- "SHORTSEQ", /* 18: Multilink-Short-Sequence-Number-Header */
- "ENDDISC", /* 19: Multilink-Endpoint-Discriminator */
- "PROPRIETRY", /* 20: Proprietary */
- "DCEID", /* 21: DCE-Identifier */
- "MULTIPP", /* 22: Multi-Link-Plus-Procedure */
- "LDBACP", /* 23: Link Discriminator for BACP */
-};
-
-#define NCFTYPES (sizeof cftypes/sizeof cftypes[0])
+static const char *
+protoname(int proto)
+{
+ static const char * const cftypes[] = {
+ /* Check out the latest ``Assigned numbers'' rfc (1700) */
+ NULL,
+ "MRU", /* 1: Maximum-Receive-Unit */
+ "ACCMAP", /* 2: Async-Control-Character-Map */
+ "AUTHPROTO", /* 3: Authentication-Protocol */
+ "QUALPROTO", /* 4: Quality-Protocol */
+ "MAGICNUM", /* 5: Magic-Number */
+ "RESERVED", /* 6: RESERVED */
+ "PROTOCOMP", /* 7: Protocol-Field-Compression */
+ "ACFCOMP", /* 8: Address-and-Control-Field-Compression */
+ "FCSALT", /* 9: FCS-Alternatives */
+ "SDP", /* 10: Self-Describing-Pad */
+ "NUMMODE", /* 11: Numbered-Mode */
+ "MULTIPROC", /* 12: Multi-Link-Procedure */
+ "CALLBACK", /* 13: Callback */
+ "CONTIME", /* 14: Connect-Time */
+ "COMPFRAME", /* 15: Compound-Frames */
+ "NDE", /* 16: Nominal-Data-Encapsulation */
+ "MRRU", /* 17: Multilink-MRRU */
+ "SHORTSEQ", /* 18: Multilink-Short-Sequence-Number-Header */
+ "ENDDISC", /* 19: Multilink-Endpoint-Discriminator */
+ "PROPRIETRY", /* 20: Proprietary */
+ "DCEID", /* 21: DCE-Identifier */
+ "MULTIPP", /* 22: Multi-Link-Plus-Procedure */
+ "LDBACP", /* 23: Link Discriminator for BACP */
+ };
+
+ if (proto < 0 || proto > sizeof cftypes / sizeof *cftypes ||
+ cftypes[proto] == NULL)
+ return HexStr(proto, NULL, 0);
+
+ return cftypes[proto];
+}
int
lcp_ReportStatus(struct cmdargs const *arg)
@@ -546,10 +554,7 @@ LcpDecodeConfig(struct fsm *fp, u_char *cp, int plen, int mode_type,
type = *cp;
length = cp[1];
- if (type < 0 || type >= NCFTYPES)
- snprintf(request, sizeof request, " <%d>[%d]", type, length);
- else
- snprintf(request, sizeof request, " %s[%d]", cftypes[type], length);
+ snprintf(request, sizeof request, " %s[%d]", protoname(type), length);
if (length < 2) {
log_Printf(LogLCP, "%s:%s: Bad LCP length\n", fp->link->name, request);
diff --git a/usr.sbin/ppp/route.c b/usr.sbin/ppp/route.c
index cd601e9..1ae43df 100644
--- a/usr.sbin/ppp/route.c
+++ b/usr.sbin/ppp/route.c
@@ -300,13 +300,13 @@ Index2Nam(int idx)
if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0) {
log_Printf(LogERROR, "Index2Nam: sysctl: estimate: %s\n",
strerror(errno));
- return "???";
+ return NumStr(idx, NULL, 0);
}
if ((buf = malloc(needed)) == NULL)
- return "???";
+ return NumStr(idx, NULL, 0);
if (sysctl(mib, 6, buf, &needed, NULL, 0) < 0) {
free(buf);
- return "???";
+ return NumStr(idx, NULL, 0);
}
end = buf + needed;
@@ -334,7 +334,7 @@ Index2Nam(int idx)
ifs = NULL;
}
free(buf);
- return "???";
+ return NumStr(idx, NULL, 0);
}
ifs = newifs;
memset(ifs + had, '\0', sizeof(char *) * (have - had));
@@ -364,7 +364,7 @@ Index2Nam(int idx)
}
if (idx < 1 || idx > nifs || ifs[idx-1] == NULL)
- return "???";
+ return NumStr(idx, NULL, 0);
return ifs[idx-1];
}
OpenPOWER on IntegriCloud