+
+#ifdef USE_MS_DNS
+ case CI_MS_DNS1:
+ /* Microsoft primary DNS request */
+ IPCPDEBUG((LOG_INFO, "ipcp: received DNS1 Request "));
+
+ /* If we do not have a DNS address then we cannot send it */
+ if (ao->dnsaddr[0] == 0 ||
+ cilen != CILEN_ADDR) { /* Check CI length */
+ orc = CONFREJ; /* Reject CI */
+ break;
+ }
+ GETLONG(tl, p);
+ if (htonl(tl) != ao->dnsaddr[0]) {
+ DECPTR(sizeof(u_int32_t), p);
+ tl = ntohl(ao->dnsaddr[0]);
+ PUTLONG(tl, p);
+ orc = CONFNAK;
+ }
+ break;
+
+ case CI_MS_DNS2:
+ /* Microsoft secondary DNS request */
+ IPCPDEBUG((LOG_INFO, "ipcp: received DNS2 Request "));
+
+ /* If we do not have a DNS address then we cannot send it */
+ if (ao->dnsaddr[1] == 0 || /* Yes, this is the first one! */
+ cilen != CILEN_ADDR) { /* Check CI length */
+ orc = CONFREJ; /* Reject CI */
+ break;
+ }
+ GETLONG(tl, p);
+ if (htonl(tl) != ao->dnsaddr[1]) { /* and this is the 2nd one */
+ DECPTR(sizeof(u_int32_t), p);
+ tl = ntohl(ao->dnsaddr[1]);
+ PUTLONG(tl, p);
+ orc = CONFNAK;
+ }
+ break;
+#endif