// L2TPNS PPP Stuff
-char const *cvs_id_ppp = "$Id: ppp.c,v 1.55 2005/05/10 09:35:27 bodea Exp $";
+char const *cvs_id_ppp = "$Id: ppp.c,v 1.56 2005/05/10 09:47:23 bodea Exp $";
#include <stdio.h>
#include <string.h>
*q++ = 6;
memset(q, 0, 4); // asyncmap 0
q += 4;
- *((uint16_t *) (response + 2)) = htons(l = q - response); // LCP header length
break;
case 3: // Authentication-Protocol
q = a;
}
- *((uint16_t *) (response + 2)) = htons(l = q - response); // LCP header length
break;
}
break;
memcpy(q, o, length);
q += length;
- *((uint16_t *) (response + 2)) = htons(l = q - response); // LCP header length
}
x -= length;
o += length;
}
- if (!response)
+ if (response)
{
- // Send back a ConfigAck
- q = response = makeppp(b, sizeof(b), p, l, t, s, PPPLCP);
- if (!q) return;
- *q = ConfigAck;
+ l = q - response; // LCP packet length
+ *((uint16_t *) (response + 2)) = htons(l); // update header
+ }
+ else
+ {
+ // Send packet back as ConfigAck
+ response = makeppp(b, sizeof(b), p, l, t, s, PPPLCP);
+ if (!response) return;
+ *response = ConfigAck;
}
LOG(3, s, t, "Sending %s\n", ppp_lcp_type(*response));