It makes it a bit clearer what's being done.
if (hasopt) {
u_int i2, optlen;
do {
if (hasopt) {
u_int i2, optlen;
do {
i2 = EXTRACT_32BITS(ip);
optlen = (i2 >> 16) & 0xff;
if (optlen == 0 || optlen > len) {
i2 = EXTRACT_32BITS(ip);
optlen = (i2 >> 16) & 0xff;
if (optlen == 0 || optlen > len) {
}
if (hasext) {
u_int i2, extlen;
}
if (hasext) {
u_int i2, extlen;
i2 = EXTRACT_32BITS(ip);
extlen = (i2 & 0xffff) + 1;
if (extlen > len) {
i2 = EXTRACT_32BITS(ip);
extlen = (i2 & 0xffff) + 1;
if (extlen > len) {
if (contype == 0x1f) /*XXX H.261 */
ND_PRINT((ndo, " 0x%04x", EXTRACT_32BITS(ip) >> 16));
}
if (contype == 0x1f) /*XXX H.261 */
ND_PRINT((ndo, " 0x%04x", EXTRACT_32BITS(ip) >> 16));
}