summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/mbuf.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2000-10-27 05:34:40 +0000
committerbrian <brian@FreeBSD.org>2000-10-27 05:34:40 +0000
commite0b21f67bfe06bb00c38e36f469b3bde3c93b485 (patch)
tree172bc2c104a51d16c4571291a5aeda177875fbc9 /usr.sbin/ppp/mbuf.c
parent55ee2dc4c7c9657892acc8e35aa23729226bdcf2 (diff)
downloadFreeBSD-src-e0b21f67bfe06bb00c38e36f469b3bde3c93b485.zip
FreeBSD-src-e0b21f67bfe06bb00c38e36f469b3bde3c93b485.tar.gz
Report the type of mbuf that couldn't be allocated before
aborting ppp.
Diffstat (limited to 'usr.sbin/ppp/mbuf.c')
-rw-r--r--usr.sbin/ppp/mbuf.c34
1 files changed, 21 insertions, 13 deletions
diff --git a/usr.sbin/ppp/mbuf.c b/usr.sbin/ppp/mbuf.c
index a08c167..1f1fff5 100644
--- a/usr.sbin/ppp/mbuf.c
+++ b/usr.sbin/ppp/mbuf.c
@@ -75,6 +75,22 @@ m_length(struct mbuf *bp)
return len;
}
+const char *
+mbuftype(int type)
+{
+ static const char * const mbufdesc[MB_MAX] = {
+ "ip in", "ip out", "nat in", "nat out", "mp in", "mp out",
+ "vj in", "vj out", "icompd in", "icompd out", "compd in", "compd out",
+ "lqr in", "lqr out", "echo in", "echo out", "proto in", "proto out",
+ "acf in", "acf out", "sync in", "sync out", "hdlc in", "hdlc out",
+ "async in", "async out", "cbcp in", "cbcp out", "chap in", "chap out",
+ "pap in", "pap out", "ccp in", "ccp out", "ipcp in", "ipcp out",
+ "lcp in", "lcp out"
+ };
+
+ return type < 0 || type >= MB_MAX ? "unknown" : mbufdesc[type];
+}
+
struct mbuf *
m_get(size_t m_len, int type)
{
@@ -88,7 +104,8 @@ m_get(size_t m_len, int type)
}
if (m_len > M_MAXLEN || m_len == 0) {
- log_Printf(LogERROR, "Request for mbuf size %lu denied\n", (u_long)m_len);
+ log_Printf(LogERROR, "Request for mbuf size %lu (\"%s\") denied !\n",
+ (u_long)m_len, mbuftype(type));
AbortProgram(EX_OSERR);
}
@@ -293,27 +310,18 @@ int
mbuf_Show(struct cmdargs const *arg)
{
int i;
- static const char * const mbuftype[] = {
- "ip in", "ip out", "nat in", "nat out", "mp in", "mp out",
- "vj in", "vj out", "icompd in", "icompd out", "compd in", "compd out",
- "lqr in", "lqr out", "echo in", "echo out", "proto in", "proto out",
- "acf in", "acf out", "sync in", "sync out", "hdlc in", "hdlc out",
- "async in", "async out", "cbcp in", "cbcp out", "chap in", "chap out",
- "pap in", "pap out", "ccp in", "ccp out", "ipcp in", "ipcp out",
- "lcp in", "lcp out", "unknown"
- };
prompt_Printf(arg->prompt, "Fragments (octets) in use:\n");
for (i = 0; i < MB_MAX; i += 2)
prompt_Printf(arg->prompt, "%10.10s: %04lu (%06lu)\t"
"%10.10s: %04lu (%06lu)\n",
- mbuftype[i], (u_long)MemMap[i].fragments,
- (u_long)MemMap[i].octets, mbuftype[i+1],
+ mbuftype(i), (u_long)MemMap[i].fragments,
+ (u_long)MemMap[i].octets, mbuftype(i+1),
(u_long)MemMap[i+1].fragments, (u_long)MemMap[i+1].octets);
if (i == MB_MAX)
prompt_Printf(arg->prompt, "%10.10s: %04lu (%06lu)\n",
- mbuftype[i], (u_long)MemMap[i].fragments,
+ mbuftype(i), (u_long)MemMap[i].fragments,
(u_long)MemMap[i].octets);
prompt_Printf(arg->prompt, "Mallocs: %llu, Frees: %llu\n",
OpenPOWER on IntegriCloud