+// find a PPP option, returns point to option, or 0 if not found
+static u8 *findppp(u8 *b, u8 mtype)
+{
+ u16 l = ntohs(*(u16 *) (b + 2));
+ if (l < 4)
+ return 0;
+ b += 4;
+ l -= 4;
+ while (l)
+ {
+ if (l < b[1] || !b[1])
+ return 0; // faulty
+ if (*b == mtype)
+ return b;
+ l -= b[1];
+ b += b[1];
+ }
+ return 0;
+}
+