+
+ case 2: // Async-Control-Character-Map
+ if (!ntohl(*(u32 *)(o + 2))) // all bits zero is OK
+ break;
+
+ if (response && *response != ConfigNak) // rej already queued
+ break;
+
+ LOG(2, s, t, " Remote requesting asyncmap. Rejecting.\n");
+ if (!response)
+ {
+ q = response = makeppp(b, sizeof(b), p, 2, t, s, PPPLCP);
+ if (!q) break;
+ *q = ConfigNak;
+ q += 4;
+ }
+
+ if ((q - b + 11) > sizeof(b))
+ {
+ LOG(2, s, t, "LCP overflow for asyncmap ConfigNak.\n");
+ break;
+ }
+
+ *q++ = type;
+ *q++ = 6;
+ memset(q, 0, 4); // asyncmap 0
+ q += 4;
+ *((u16 *) (response + 2)) = htons(q - response); // LCP header length
+ break;
+