- LOG(3, s, t, "LCP: Discarding ConfigAck\n");
+ int x = l - 4;
+ uint8_t *o = (p + 4);
+
+ LOG(3, s, t, "LCP: ConfigAck (%d bytes)...\n", l);
+ if (config->debug > 3) dumplcp(p, l);
+
+ while (x > 2)
+ {
+ int type = o[0];
+ int length = o[1];
+
+ if (length == 0 || type == 0 || x < length) break;
+ switch (type)
+ {
+ case 3: // Authentication-Protocol
+ {
+ int proto = ntohs(*(uint16_t *)(o + 2));
+ if (proto == PPPCHAP && *(o + 4) == 5)
+ sendchap(t, s);
+ }
+
+ break;
+ }
+ x -= length;
+ o += length;
+ }
+