* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#define RCSID "$Id: lcp.c,v 1.74 2004/11/13 02:28:15 paulus Exp $"
+#define RCSID "$Id: lcp.c,v 1.75 2004/11/14 22:53:42 carlsonj Exp $"
/*
* TODO:
fsm_input(f, p, len);
}
-
/*
* lcp_extcode - Handle a LCP-specific code.
*/
break;
case DISCREQ:
+ case IDENTIF:
+ case TIMEREM:
break;
default:
int i;
struct protent *protp;
u_short prot;
+ const char *pname;
if (len < 2) {
LCPDEBUG(("lcp_rprotrej: Rcvd short Protocol-Reject packet!"));
return;
}
+ pname = protocol_name(prot);
+
/*
* Upcall the proper Protocol-Reject routine.
*/
for (i = 0; (protp = protocols[i]) != NULL; ++i)
if (protp->protocol == prot && protp->enabled_flag) {
+ if (pname == NULL)
+ dbglog("Protocol-Reject for 0x%x received", prot);
+ else
+ dbglog("Protocol-Reject for '%s' (0x%x) received", pname,
+ prot);
(*protp->protrej)(f->unit);
return;
}
- warn("Protocol-Reject for unsupported protocol 0x%x", prot);
+ if (pname == NULL)
+ warn("Protocol-Reject for unsupported protocol 0x%x", prot);
+ else
+ warn("Protocol-Reject for unsupported protocol '%s' (0x%x)", pname,
+ prot);
}
static char *lcp_codenames[] = {
"ConfReq", "ConfAck", "ConfNak", "ConfRej",
"TermReq", "TermAck", "CodeRej", "ProtRej",
- "EchoReq", "EchoRep", "DiscReq"
+ "EchoReq", "EchoRep", "DiscReq", "Ident",
+ "TimeRem"
};
static int
if (len >= 4) {
GETLONG(cilong, p);
printer(arg, " magic=0x%x", cilong);
- p += 4;
len -= 4;
}
break;
+
+ case IDENTIF:
+ case TIMEREM:
+ if (len >= 4) {
+ GETLONG(cilong, p);
+ printer(arg, " magic=0x%x", cilong);
+ len -= 4;
+ }
+ if (code == TIMEREM) {
+ if (len < 4)
+ break;
+ GETLONG(cilong, p);
+ printer(arg, " seconds=%u", cilong);
+ len -= 4;
+ }
+ if (len > 0) {
+ printer(arg, " ");
+ print_string((char *)p, len, printer, arg);
+ p += len;
+ len = 0;
+ }
+ break;
}
/* print the rest of the bytes in the packet */