[ipfilter-cvs] ipfilter/lib addipopt.c, v4-1-RELEASE buildopts.c, v4-1-RELEASE ionames.c, v4-1-RELE
Brought to you by:
darren_r
From: Darren <dar...@us...> - 2011-08-07 07:56:07
|
Update of /cvsroot/ipfilter/ipfilter/lib In directory vz-cvs-4.sog:/tmp/cvs-serv22336/lib Modified Files: Tag: v4-1-RELEASE addipopt.c buildopts.c ionames.c ipft_tx.c ipoptsec.c Log Message: 3387509 ipftest needs help construction ip packets with options Index: ipft_tx.c =================================================================== RCS file: /cvsroot/ipfilter/ipfilter/lib/ipft_tx.c,v retrieving revision 1.1.3.1.2.7 retrieving revision 1.1.3.1.2.8 diff -C2 -d -r1.1.3.1.2.7 -r1.1.3.1.2.8 *** ipft_tx.c 26 Oct 2007 05:33:59 -0000 1.1.3.1.2.7 --- ipft_tx.c 7 Aug 2011 07:56:05 -0000 1.1.3.1.2.8 *************** *** 313,316 **** --- 313,317 ---- bcopy(ipopts, (char *)(ip + 1), olen); IP_HL_A(ip, IP_HL(ip) + (olen >> 2)); + ip->ip_len += olen; } } Index: buildopts.c =================================================================== RCS file: /cvsroot/ipfilter/ipfilter/lib/buildopts.c,v retrieving revision 1.1.3.1.2.3 retrieving revision 1.1.3.1.2.4 diff -C2 -d -r1.1.3.1.2.3 -r1.1.3.1.2.4 *** buildopts.c 26 Oct 2007 05:33:57 -0000 1.1.3.1.2.3 --- buildopts.c 7 Aug 2011 07:56:05 -0000 1.1.3.1.2.4 *************** *** 22,25 **** --- 22,27 ---- if ((t = strchr(s, '='))) *t++ = '\0'; + else + t = ""; for (io = ionames; io->on_name; io++) { if (strcasecmp(s, io->on_name) || (msk & io->on_bit)) *************** *** 37,40 **** --- 39,46 ---- } } + while ((len & 3) != 3) { + *op++ = IPOPT_NOP; + len++; + } *op++ = IPOPT_EOL; len++; Index: ipoptsec.c =================================================================== RCS file: /cvsroot/ipfilter/ipfilter/lib/ipoptsec.c,v retrieving revision 1.1.3.1.2.3 retrieving revision 1.1.3.1.2.4 diff -C2 -d -r1.1.3.1.2.3 -r1.1.3.1.2.4 *** ipoptsec.c 26 Oct 2007 05:33:59 -0000 1.1.3.1.2.3 --- ipoptsec.c 7 Aug 2011 07:56:05 -0000 1.1.3.1.2.4 *************** *** 28,31 **** --- 28,34 ---- struct ipopt_names *so; + if (slevel == NULL || *slevel == '\0') + return 0; + for (so = secclass; so->on_name; so++) if (!strcasecmp(slevel, so->on_name)) *************** *** 33,37 **** if (!so->on_name) { ! fprintf(stderr, "no such security level: %s\n", slevel); return 0; } --- 36,40 ---- if (!so->on_name) { ! fprintf(stderr, "no such security level: '%s'\n", slevel); return 0; } *************** *** 50,54 **** if (!so->on_name) { ! fprintf(stderr, "no such security class: %d\n", class); return 0; } --- 53,57 ---- if (!so->on_name) { ! fprintf(stderr, "no such security class: %d.\n", class); return 0; } Index: ionames.c =================================================================== RCS file: /cvsroot/ipfilter/ipfilter/lib/ionames.c,v retrieving revision 1.1.3.1.2.1 retrieving revision 1.1.3.1.2.2 diff -C2 -d -r1.1.3.1.2.1 -r1.1.3.1.2.2 *** ionames.c 21 Aug 2007 15:22:16 -0000 1.1.3.1.2.1 --- ionames.c 7 Aug 2011 07:56:05 -0000 1.1.3.1.2.2 *************** *** 11,38 **** struct ipopt_names ionames[] ={ { IPOPT_NOP, 0x000001, 1, "nop" }, /* RFC791 */ ! { IPOPT_RR, 0x000002, 7, "rr" }, /* 1 route */ ! { IPOPT_ZSU, 0x000004, 3, "zsu" }, /* size ?? */ ! { IPOPT_MTUP, 0x000008, 3, "mtup" }, /* RFC1191 */ ! { IPOPT_MTUR, 0x000010, 3, "mtur" }, /* RFC1191 */ ! { IPOPT_ENCODE, 0x000020, 3, "encode" }, /* size ?? */ { IPOPT_TS, 0x000040, 8, "ts" }, /* 1 TS */ ! { IPOPT_TR, 0x000080, 3, "tr" }, /* RFC1393 */ ! { IPOPT_SECURITY,0x000100, 11, "sec" }, /* RFC1108 */ ! { IPOPT_SECURITY,0x000100, 11, "sec-class" }, /* RFC1108 */ ! { IPOPT_LSRR, 0x000200, 7, "lsrr" }, /* 1 route */ ! { IPOPT_E_SEC, 0x000400, 3, "e-sec" }, /* RFC1108 */ ! { IPOPT_CIPSO, 0x000800, 3, "cipso" }, /* size ?? */ { IPOPT_SATID, 0x001000, 4, "satid" }, /* RFC791 */ ! { IPOPT_SSRR, 0x002000, 7, "ssrr" }, /* 1 route */ ! { IPOPT_ADDEXT, 0x004000, 3, "addext" }, /* IPv7 ?? */ ! { IPOPT_VISA, 0x008000, 3, "visa" }, /* size ?? */ ! { IPOPT_IMITD, 0x010000, 3, "imitd" }, /* size ?? */ ! { IPOPT_EIP, 0x020000, 3, "eip" }, /* RFC1385 */ ! { IPOPT_FINN, 0x040000, 3, "finn" }, /* size ?? */ ! { IPOPT_DPS, 0x080000, 3, "dps" }, /* size ?? */ ! { IPOPT_SDB, 0x100000, 3, "sdb" }, /* size ?? */ ! { IPOPT_NSAPA, 0x200000, 3, "nsapa" }, /* size ?? */ ! { IPOPT_RTRALRT,0x400000, 3, "rtralrt" }, /* RFC2113 */ ! { IPOPT_UMP, 0x800000, 3, "ump" }, /* size ?? */ { 0, 0, 0, (char *)NULL } /* must be last */ }; --- 11,38 ---- struct ipopt_names ionames[] ={ { IPOPT_NOP, 0x000001, 1, "nop" }, /* RFC791 */ ! { IPOPT_RR, 0x000002, 8, "rr" }, /* 1 route */ ! { IPOPT_ZSU, 0x000004, 4, "zsu" }, /* size ?? */ ! { IPOPT_MTUP, 0x000008, 4, "mtup" }, /* RFC1191 */ ! { IPOPT_MTUR, 0x000010, 4, "mtur" }, /* RFC1191 */ ! { IPOPT_ENCODE, 0x000020, 4, "encode" }, /* size ?? */ { IPOPT_TS, 0x000040, 8, "ts" }, /* 1 TS */ ! { IPOPT_TR, 0x000080, 4, "tr" }, /* RFC1393 */ ! { IPOPT_SECURITY,0x000100, 12, "sec" }, /* RFC1108 */ ! { IPOPT_SECURITY,0x000100, 12, "sec-class" }, /* RFC1108 */ ! { IPOPT_LSRR, 0x000200, 8, "lsrr" }, /* 1 route */ ! { IPOPT_E_SEC, 0x000400, 4, "e-sec" }, /* RFC1108 */ ! { IPOPT_CIPSO, 0x000800, 4, "cipso" }, /* size ?? */ { IPOPT_SATID, 0x001000, 4, "satid" }, /* RFC791 */ ! { IPOPT_SSRR, 0x002000, 8, "ssrr" }, /* 1 route */ ! { IPOPT_ADDEXT, 0x004000, 4, "addext" }, /* IPv7 ?? */ ! { IPOPT_VISA, 0x008000, 4, "visa" }, /* size ?? */ ! { IPOPT_IMITD, 0x010000, 4, "imitd" }, /* size ?? */ ! { IPOPT_EIP, 0x020000, 4, "eip" }, /* RFC1385 */ ! { IPOPT_FINN, 0x040000, 4, "finn" }, /* size ?? */ ! { IPOPT_DPS, 0x080000, 4, "dps" }, /* size ?? */ ! { IPOPT_SDB, 0x100000, 4, "sdb" }, /* size ?? */ ! { IPOPT_NSAPA, 0x200000, 4, "nsapa" }, /* size ?? */ ! { IPOPT_RTRALRT,0x400000, 4, "rtralrt" }, /* RFC2113 */ ! { IPOPT_UMP, 0x800000, 4, "ump" }, /* size ?? */ { 0, 0, 0, (char *)NULL } /* must be last */ }; Index: addipopt.c =================================================================== RCS file: /cvsroot/ipfilter/ipfilter/lib/addipopt.c,v retrieving revision 1.1.3.1.2.3 retrieving revision 1.1.3.1.2.4 diff -C2 -d -r1.1.3.1.2.3 -r1.1.3.1.2.4 *** addipopt.c 26 Oct 2007 05:33:56 -0000 1.1.3.1.2.3 --- addipopt.c 7 Aug 2011 07:56:05 -0000 1.1.3.1.2.4 *************** *** 40,43 **** --- 40,47 ---- *(op - 1) = lvl; break; + case IPOPT_RR : + case IPOPT_TS : + s[IPOPT_OLEN] = IPOPT_MINOFF - 1 + 4; + break; case IPOPT_LSRR : case IPOPT_SSRR : *************** *** 52,61 **** } } - - op += io->on_siz - 3; - if (len & 3) { - *op++ = IPOPT_NOP; - len++; - } } if (opts & OPT_DEBUG) --- 56,59 ---- |