Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Small optimization of cache during parsing #4526

Merged
merged 1 commit into from
Sep 7, 2024

Conversation

gpotter2
Copy link
Member

@gpotter2 gpotter2 commented Sep 6, 2024

This PR contains an optimization of the caching system when dissecting packets, by skipping the initialization of fields whose only usage is for build. This only has a real effect in very specific cases, such as a succession of many payloads containing mutable values (what you'd find with LDAP or Dot11). In those cases however, the improvement is substantial.

The packet below is an extreme case, in which the dissection time is ~60% of the previous one. Expect only a few percents, if any improvement, in other real-world uses.

Full packet
import zlib
data = zlib.decompress(bytes.fromhex('789ccd5d077413c716b5618909a1995e42af81c8a1b700b12cb9c8962d63d9a126204b6b7b41d20a158c814f0921603a3814d30284d03ba10508a1970001432809cdf45e634a20f0776777a5d57a3d92c7eb639d7ff28f4306f95eedcebd6fdebc79d3e25b3f3fbfe7c5fccb19e81fee61318a982e269b4ca9952971236ec70d324d627f5c6f97a98924dc4e98f04fa9015a7d0a6ed2d13f2948731291ecb0eaec0469fe54a9e862204d3a02fc6424f53a630bfa53bf07ffff09f611093e4a61d4d96c2de93faa8215b79316ac9cce6eb712890e3bce7c3018de1a2b6754ca639584cd62d4a5c5e84c38f82b1f63354c36173a061c870dfcc5c658691bf81895323c41a5047fab02567ecbc44d2be6547b1c3dde52ee8f453d2a4d06631f71c46f6291149b68ad4cdb4d2d53eb6c7625a14b3693363ba157eaec28a4335048b712275d13ab6eca0b1a8cf3b84b675f3c3a96159899e1e7f76a48f73360ec6d8ef3652c8222136b25cc7659148e5b64e047ea894792893604c6935118cbc41957c12a596834342e16168d0a46d6d4b7c52fd7c34f062e5aeaf79be6428b2360ec198eecef58178a87c6ac8fb3e8631ca644dc8ac0f03b14868dc41996c54a933c343066398d52665ef0ef13b930f054af3b31ff2680b137396617b170e79c8dc2d3c053d413169d5116a246e0380985e3a7e21c2b6315c164a560395185a86154774e6975ca3e26563eaed647e5c77d3378700b813c6918aadda355b268dc9a8ceb128d782c6924f469f1b889fadd0598aa8d7253aec050fe484fff098f6e3b71ba75b05a261b041a8c78a586b10147ffeb16b13eb2a2a17760566330f620477c17d68e2263a0bec30108fc46a03cd2dae21c03b01200068ccbe69f6ad4086afc227a1df6e98bf5e7fd22c0d82b1c97b398c2e531665b1c49dae5464287a23813508835132756110b648c85070946f2e86a45bd358f3e89de3c6dccbfaa13d398b1d738921730a5cb4fe4160bf51a0026282ca59e91b941c178de5b7cfc4d2e0f39c7f13c817de1f410b5ce9cecd025a3ccc0b128141b8b532c879501d6c1c181913b5ba552d394ea2703174ff15be9d742754dcc33549608ca6c7dc533081e1a18b37a5b275cbe38e6b266cbd899dd5326270d0763cf73ccfec0827971de20428fcb943145ffdcd8c88ec6a38c81b1fb24f0534366877ae193eb4574bc3e7be24d30f62cc7ee382677b2fb526774e0b2f8340bca6bf96d7e8da18938b5f25859400d80a1b1c0b85d19b1f77aadf5319ab1b74b981f97dd5e1f8c3dc5713b8c75a6d02badc420dc2aa37f0132ad7c3eb506e2d44a63a50c000cfd27305a07c4a6da0d8ed6df5898f391859a69eb34c8c2709ddd6145215818310c8b8a050563ba6eed07dd83b76fd4ec7c1b9792d2e9c23b30f62f8ee92930f55867a002a354d26a40718574148e4dc5390662e54cee8060fcc6afb8ebff58e80817397ea7b110a72344cb1532b9c160c56d3ec0109802858805046338446c292178822a4b0c6ea7beab01c8ce20313fc21d108cdf3ff11d62c6b65812b2bce28ed271e93d4e83b197397e7ff202340569b25000ac32ad4a8940713c0ac54fc429d24b3c1b0f128508c6b1eeb93757ac2583823383df9e9bb45ef50b189bcd713ccfe90d1dae33498450b39e3410e664649af9f089bc57bdcc02c21d118ce6915197122aec7b2d5f1e7d70cdaea777b2c5c233d62dbec4ad369a4491db3c63182c1c1839b3d83cbccb91bb8aa9f2f20cb4a5ef14149a41e234ab6295456cc3c3e2d7bff7898355b729e7ef599134c16f6a4da1b0ca5dc611eb483412b61424dd917a520a10c118f64849de13759ab28e393cebe009abdc651dbac1d44cb710388a738c43619877ecc638876e308307c6ef94589023661c269dcdb78cc30508c6efb8e605191496a8f939728e361c5fb01d8c7dcaf1bb8345bb8cc361b39326909052999348ab896154f479549b131c858d070d9a47bd7b73cb8d9bdfa917af2db37abb65211059ff621cedd7580f176da38ea07e8ab7eacc36e747cb983410ea2a2433bfeed2599c7d23ac01c31e607487c826aa3c2c4d3625de0fb2550c7d37cabfc3882a831e1e12d363e0d09402c75a498b2e99e1afd4d97545afc7062d0d8c878b8605a31bb532f954c909945a75e4a9158f6e04cf7eec56eaf912266aa949ca9404ca639e8ac2f63371b6d5b02aacfb0870c1e89efbe56ef6a583fef2e58a34f58331eb3b80b1ef38ba39581c2fa3653492a9516632d51ceb301ab58e449bde4a581067f85c14e29dc48937c0ea993c41847d07f1961dfb7219540ef71d3c00f9679741c5e136d2e800afb8d661b190563b6e40f80266a07c016dc4bf805a584dceae5ce89ce060d4ff10f3ae931cf543d8e7f4e3d7e9d1d77312a71d4c4e2c305697eaff74cb322b5b917eb9d64d4cd1f42590eed22c2bffe2581fb7bd13b9c5622507139426e260ab4da62693a9870b2690d6ae33591068ff8042bbab38ed2658236e43850795460a80d238014cd83732e9c81cc39cb9f2e875035e5479b6342812b2302af0ce8ae40b23ef37549e8edc792db261cfe8d5078ff6d17c738b5918fdc9d13c867565bc2a027758097a2f15e58d9638b76bd0bad0c0a87df7fed5936981270317f6a366aab1f5436114a676f9d2605c0f7e3b2d7db1143a3ab9e3233bf8a2d860b47b4596983ff6d49eb0f96342aeec8ffcf21298ca65b9a95c02eb25f02795c9841b08ea3549b0182876e6e402fad48f285f4288f897d01cfbc4e42d54e80a7940b5fdb9fcea12f72a9c01991c975ff5a0be743b6eb617fd9a83f3a81e0c201845522c09c0cbf5d313398424a957c84afd023bd28a4ae20447221f0e8c5b6c40b373c3269ae5632bddea1b78b7e4af60aca040c36d9726de4a2d5d501712121768f0766b002c4fab87809425fb2ff6df1135ebf28087d56ad464f2e2ff7164ffc112bc5945a1250466e5d78720e1257409e5213fb061c5dbc3e3fea7d9f1cd10657a93810189602c6f675cc99852824a26379808333d690993c354f4491e8336410520b1886024af969af4681a496952099e26896697e9c96f35eb8c743c53f41c595762205188601c9bfef9d9f6d51dce048f9a84b5ee50b2fd1ee04525398eefb1ee022feae6c01db84122235a88c2fb0b71de4db1c626af70c2be8d91477be4c3857afa9c0bf5f4ec421631173ac651dc8775645d288c30a248f33728c4ea89132b85954c6491c018c5fcfefc7add72f7436615cf7adff866636697e121c7e80616e59ca6da149d814ce5159669099420721a0ac716e21cab6355c17465a0399151c06094eb071cabb57ee563cd0cb209993d3f3b008cbdc0513e09762edd973e6846fb5d7eed06264aee6860f42a36eeddf343796accd48a3fee8879969a577acee92e31a49d48626b807c213dc75a0c1f168ceef7a5eebdc8e533bc0aacd0dc3ea3b5934805051351a83617a75a09abe0e634001334e99e1ad1efef7987c2d777e9b2f26f4c551e784d296edde30fb2cf7cafd19a75165b0a2300b6b0f85825996a36923ac4bdcd4528d483c5a97f823531790714f67ddc993037b7db88d71fd08b2a591cae33a0841785623634220008c630e7edef9f778916988d20151743d8a27516dfa800323bb1c058a5759e3f734ed919d1eb57efba3ce2d573e6c5bacfb1ba062af05da938851537509e4c50b3568d56f65a1809750a990b98da431d6cb9b3e1bda7f6db18fc43fb66d177a6b4d00b05ca55b7ad30920e031316d910ab44254db571905c88603c978cad6d683c7a60f82fb2431f5c697bbd57deab1a6d0a6e34fad6aa0640f26255d37fd0d1b7b9dce63147f2162fe9a601f132f5de72c508f4c720909d8e42b6a538d91a5835f054396c2c341a198cf4f25de3e67e7369b66a45adbeb2e6ebaa37112ee5425cd6139f42580db13aab1d456aa52ee4164282717c1b783db79d080a13f97652909d1e890b135d96e2d50e0ff94954c35dbd4e06aecbe2d94a16c7f408a82c656c05ec1b22f01b83c2afa138bf32d8476617186812b4de8cc8dfde06056f1ed17360a22e6285301f1e0d3316b452a1c2a84ac8e52d3278b9d0b873e333fad67f1493b17d4dc3453db3ff86ac66e274e6641c64247d6135e34203a3d7bdd79bd06ab1e5a2a77e99396ce2b4fa17c0d85c1b38726a319a6c462d14967c0347ee4403a3b6b37b6a95e7e1a70257eca324a77832c81ef9dde1a85de1a57da9d098aebea4c8d829f0b8152532288cb23606970b168ced958b7e6fdaafee1431afc26aedd27e2d5ae7c1365e1eaba28926e156dcacc765214632d117d80a70d1b0606c6bf7dbaff6b7cae5ab0e778d9b73671c13f49de6d81e05474a383b3191bea0b2ac8bd06060c4ec6219b05ce1bb362c41d6ba854c8bebacfa14d77beb0be13b05ad750b069813178cf0e2dd8f9adc7f3359b3f2ec8162e19921207de55f9d5b7797c7f4bcfc8285a04b9ed84d4c9b4c6396694d54e02153e8ac06eadf8c6932b95e4f3acc769409fc13ca37a114ff2664587336fb40437622d698015e1a2e8d96030bfb7a2256556dd3f0ca06cdc8f5e57e6f37bcd175615ac25559c1ee5dc5e1c984cdce50a55e102bf8c382bc21f3f36b4c90b4846b2f8b0f9345e9d5eb7222e1a396c7bb4c57ac301db9ae9db55703c65ee5e6c73966159466d69908bd4c4da1005f01126f89a36503038ac6c44082b1ac373234aeff512a867ccfb32ed1ac7184ce2653996d761d1dcfd0c7ca6314282f7f61648d29687c641430a85bff7437b06aa82a78ddbc6e099af56f3f142e82143cff52590a70e045f2fd2c16921765522fcf9d7b3cb96a72f8d87f5f2d1af06d09665128be8343987dae8e80307b51473050ccbf72edb5b3fe058ac138243ed00c81752fbaeecb890a4676f6d907ad169cf83e62519b21e706940c1a0dc4b92227cea5b0bece699a60a3e24b908ea5a768bc3a5ac61e2392c91df6147a3182bc412075c18c8d85cba2a5c1b258dda1427372d889e14d322eaa579e2e3ee4caadc61dc158f1eab7385c672cd0c249f2ea377744309ad7a6bcebbfd37242bd21690569eb79a09230834c1fb4089551908d9c5e21bde5c3519e702d71961f60188d07c64a973673f7ad322703178fe195a8f21e5ea89bf928016044db298cd6021428069307c309bf5e950c593e5bb96d53e5ab017f691e8a45129ce1c45a493ba9278d32154a3e4a72966e9854f07ae3fb7bd2fb0ef94f9e79f488dfa6fa99abe096e36b450384d98ba201ab57e7d758cb092370a3810a0a2dd4dcb6932871a1e44b5fe039009713168c6e488decc5a36e2f522ffbf7418b11895b1609174c89ae8a0236fa2f1cdf598af23d848a7f0f41d8a74ca10183b820d6b33d3cbd49fdb8af1533b7562e3e666273a62dca4bee6d7804ce57785c302117efe6c386da8b7f1575b1daf065128c7c8d4e3b67665d3fad5a1738b4cccbf9c93960ec098efc01ac136d48615aa6d00181e46894675e5f9ce847d887380705c6e9c1c698c915e8e9bd9037bdf3b4a3689d8d4ee5f98e1da5e86c0c260f7674edaa6cedb99ee1d193c21f46bf53745f03c6f2b6f7227976946026063a70ca8ce8299144202d6fa53e27c29892035e1a74eff612cbf64d8ab0f46ab72e351cb81bb20be49429e4755e61ec02716ae479a99726664aff704cefb32db658535299a9292e8135497e8000581340e7bd3f3d59bb71c68d26dbd5e34a2dbeb0e25e836de2760cfcc96e25cdc98c2d214b5261e4dd1960342ecff264a9777c65b38883ca2de690bd2ffa37ed03c61ee7e8ee07db7ddc52c78154b53832bfce029ba51c0e18a5d1e4f0ce652fd58c58b8d77e7ce6e3664960aca0374ea8c96224d3704a845036dd25161f9c0503df664f145bd78827d5489bdd153d31595a5f49aa51d0b828890106a3ac286f18b9b87276f0f4c5139727bd0c1804c60a76f7d897938eb0904447e2dd3de61565d0c0a8edf92d496f25926236fd542b6e4de912e160ace80e10a874f4951d20060c8c587f31e7c8f59abaef0015288926f96bcadb02f22e8ff64436e771f7a0c311e9b1a50fdafdc25be7b114a795997458e93969d6a3bdac8511e131981848309601ff145b1f5cf1be7ce7c25dffcb98dc8829a0102d5463572605d9b591ba508d81e4d5164d8f890b86d59cba3c66cb8398ed77df960d0463791513c17cfb406ecf2171f711ce423c77e7786cbbb2fcde8153813b7ef71b7928c9f21b18fb8ca37797d7db59cc467ca71026b793c00b61eedf5895f67cdced88f4b3ffec1c3e7b5f4b6126895708a348a1d3a7882d9d25df9f714704a3b8f0e5f1d7ca07ed55cbe61e9f16d7bcd3723056d0ce91f514f09ac812508eaa17461b4e064f02f448fa3f62f5ce79194b1c6e7318edbe682c0c32ef8c65cbfae4ecd0e0d6cad56db5afad67fa30edc9049d90d87252a6ffba56232f7a2d626a48c147694968ef949c5d2fdaa4057dae9e5ca94bc6d65eabd2857352e99a93cc191ee6539129e6c34f60e73284786014af44dd787a7a52db9079dfbdaed33267332116c23adda4402789240b61392ff17492e8899893e48ecea997815a82e3c9bed01817bc9a2c1a68a2477d7068cc6fd5141b8a750df8a47d0d5c2c3ae7cc828654f4d139eb13f4a7c088f59dbe676ac3c880a88dc57e6d75bff304bbd0fda39d16a1b11238152d81d6cf052a679638ab03fc820fceabaae693627d6b04a70f9ce611adb3b0b58bbee0ffc03528480c2218497ff386ad9a620d62d69419f874c9075b982cc51f1cc983dc5beb0c8711d88dcaaf8ec2de5827101829db96675fc94df6f04d77fe0c9a7cf73dd3e7ec28476a0fd6811650a67f22329f7c3eadbae29c3ec4025820303ecfc45453909d72aa26d27eade4a9710e0b74d9ff61bf9de1355b448d4bedf769460ede0a8ce515ce840b145389271166c2370e95f2b4d3050b467667d979cdad7b7f0fcdcc8a2e4b54697555ec19b22a9a8ab6fe95f81932a299ea61e54b88a56e78b7dfa8dd4512ec5431c580a84dc60b27c466a031c83c9d375c5cf288bada82b2f26f7b3e1db6bf7eb152602cef4a0d5a5e74c829d4ffe5572ef396169de77469ff254d1baf597a35725b7cf30a17de910b842b24352f9c26a820afe097a24ccd2f3fd86e4d5eb86094376f3c6cbc52e1857274c06d4d9fcbd709a1af2b5cee40e7a3cc144834c99138f38633985c906024f56299ff571cc9c758379765d864b1a4cd46509fcddc2340fdbb15b7a195c4cc44a1dc569c726dec63c6476c1c3e061e8b0ec6feaf8bab48ed444ddd0d4be63f3938acf6cf602c6f039db748545871ae67a74f1ce0176282d10c2a35c1deadf517511b067e56551eb38cc9b10bee6f623c2556974c3f574a75a309b3038969616c2e0358142a06148ceaacdec1d5ffed7c2a70c56fbcf2f0eb1cd5bfd8f24ad667345603ed2fa87956c99f29701800ca73aeb544dfc4628f4efda0d99494d078c083ed7dc402728048e662557401b970645edbab4344d488f7a2ba36c8e95db018aeafb1963092e8452df920e861731c806230014830aaa5c237647d3ba5b66a59dccffe8ffcdef511bea8a1c05daca4d168c2e9896925071106b4f37712cf48dc89ca090a4674d3818ecdfaa59f0a5cbb933723792feae7ce674ad8c215455f79059e240d0546aaf51f39b56e965ba09a9a7d372a64e0f8304812271c373b7c268903c0c088754a3e1cfbe5944a61192517540c7e33e7b9d8d362ac220ecd08257e5ac01ee23cf85faa879b19bbf24d0171b921f9e30266e0698971fad4812a7bdbea82975b7e3af1df72ec0918fb3bc76c2f37b940f84ba21c2118915f89844d2c16068cd060cb985521fe1f28bfefdde6c8960dad190be4d50c81324da6a9783cca76a1c47dce701a0a850446e9d8e58a5935ce7fab58b9f7e2dbfff41fbfca432b80eac46994281228f9cbe7040323d660e59de5c95d9f46ce1ff2598d5afa4e47c49e15fbf221954249fcac98f70f5e08557c79c78c6ddfbf0c9fd660b976fbfbe1a160ace83627ad3974b529caeaa730b639693c341ce8e4f270ad949caf83e0024a5fb8fd849542160f8cdfc0a7f7ebce39d852bd71fec56dedcf4f9389a9a15ca145afa894500d750a2f0abcc755f87284bf965acd1ce0c54ebc939fae026f5e3c5c902b6b24dac5748b853db4a4fdeaca9c4eb3860ed7acfaf9e6e63e1f7fc0acc105dd19c04917036e706dba834b5d8a3ebd8bb3c09cb8685830b6e11786ccd11e3d15b8e3242f452f5ab2afa6dbff83fb236471487763164641170d0a608a83df8fd9a3c786f15d534c6163479c0dce7ebd94297412af88a1b44b8927e91c4614252d948a189513118ce2ab80d2352f0dea17bc28db5232acfa45265d29e8fec85885b3365c86d89c55e24403f00b27284f6d5a0fe6677b933eb6cc64df7ce161724796194430926d8b8d6e7ff7e6b3b0e9cdcf9fd114bfbd56382d79a772b5140673b216b7fbcca95c7744309a8bd30e7cb4acd63df596cc91233e9faf5f02c6dee2685e028940a7d62a5274561b77420e81a7c427d039a905b0585430ae496299eddcbb864cdf2bf62e40e45460611cb510c28291fded6e83039b5b1f8e4c6fb079e8f411212fc0d8bf39b2595c3517abb761465db2ad25024da9ef7cb5b9018211dcfec1d56aa186eb11f3ffd8fce0cdfe2b93c54257566da9f703475dc517c6c57d0090a7857c8a58689e97cac610dce1729f51590a12830846f2fac6eb0b9e1f7a153af1878adffcaafa360b8ce535ce55b2f1397d7114286657132602a963d1d8fc6a6cde710f15a8737818383086d8dcf4a0364d4f074e3bc3ebe5c8cbeaba1aabe54a6017b593e4ce5fc388d60e7bf2fa7f447ad8f4ccf6b76ae98696016305e7125c4e02f621102376a97747391ba13fc753b41e2116ade73aaa08a275de3d5d69663d2804b40ed2198bbea88d89db9db77351e0386cd0e836386d4da71b2191a3779e1d7773c1d2125e184a2b5f339456308247427a05f43ab0217475c6fd92035abe004dcd85f716b3866221a92981d4bbbc30123d1c1c1839637e123d8c6efb4ea287c503e377faeb0f335a9097a2b6b6c1ff24725ee63af8ce0bd713406ecc979ae8b82382d1dc98b9ecc2f3139b2236af7933e6d5a55695c4de5167876cd49047e27714e7f0788a78ac62f1b9a08b3ea3ad4ccd15e523213ed0459f92539bccc4220a8166ef88f006fdaa47540e5bb45195f5b4faeacd5e68686b5f20e8060846b0ddb21f9e7d78f946d4c64eb7dbec69f8cb3130f61e47301b6cd7b31a6ad75968d12a50b5b7c40d39193565817955e96dcb4f90ded3c21630fa4e2aa4a78545042319f57d64c9d8ec775119a1c1d96bffbacf1c0c1249a26b1d89661c2567276d129d810123942e9644e799a1eb3a307e4c8e7ca044a23ed5eee1388cdf9781fd571d8ace099e3672b2fac667378f83b1c2634083e9361a0ad2e8302139bdd4c78068382c1a18b5b0a63159176afd1195796e69fd61874dcbc058d1be04ec050ace16b83279b24f140dbba071c8286030ca39ed4fff97a93aa1d91837e5f5919f3b38bc308d36be661a6d6004572fb3efcad83f4fbdebdf3e4303e72ddd08c9e4d8e90ec6f4aaa5e86353ce2cac761a0f746121962fe7e558ddda7cd2d7d1851306f41a44896bbb9c55ee8329549ed38e4bfb3fc23e7f35276c77afce7ea7f5614c89b4f821cb04b0e7809c3497fc90251f0f8c62cbfb5153aac7e4846504f55dd8b9f5dc5a602cefe0022d41613abd8d3011465c168f1b714b0a692ec0e97d896f5d49e2b039a1797eac76afdbc14413669f955d069a97b23bf895bdd9bce8d7aa599b92934ffd7ee147311375c92e353f8ade449d9b95141a18b54f4b4f7ff3fdb3c6caf17bb2a24256363f01c68ab683a1f4cdee0bb58a9cd8dae1b58a03c4c27198d226f8a4d22678a3b4edbfcd7ca0bcd034728c5f3dc7b8356f99b040d02185edbd260b21c901bed22145c760a22179d521a5dc0b7b575b5741fdbe68c58bfb553a456d29c2eb73601c1509751e050deb1f3ee18bec3a912ff6cf16cb7cd0bbf274c759fad253d24a205d6a25718c974441a2107180600c2b8fcebed05158f3fd9c63788fd708269781a87173b23dc547d2e6020f61b0c188776c53736327f5c7ca1d7d4b3e2b3bb7e5d71e6c046903afd06c04be79f7cbf5bd29ed675bd4b3af3ed9d76ec6c90679da08fa91cdc2b011cfc734cd62b792e5ea5ac46dbd6aa3e5b16c3fca58d2867aca58f2ae45cc262c0d0e60e3a0c1787f3dbf4f8fcc9c00cdbcd70adbbaa8f4d3602caf4042c50bdecd0340d15741f2e893f22bb7b0f84e14143456d8db6cdbdf0767074f3fa8da33be75bb6c30967716b71dadb9f4da1539a195cf87595b9c5d005622898601e332482c3c17b48a655bf7a894f164b895745850ef30953cea7143e5e902d3613f1d792def3849f1ebeeb27f3d5bbd88d9aae09d070b7393d32f7546c2805c7d26f98519acacf250c1a8bec073faab9659a366b6e9fc55f8ad9f9973ff6739aac7b9fd48923e168f9c1491d83a2c341e0a8ea79488bfd8b1bebc0e65d2d23598be9bcc970e6502500c261851d979c7e188a60fd43b623bc77f77727e773096b76127e745e905381a3f26bf529a7750c7c6e7de9c872fd5e84cdfc40a270317f6a39ea2b135732b440e47ee01efa838d3c08a0e5dcd7ac2a23316683192915fb2edc4c9d6c16a313d2901382736af5625a109af032b9c8b556f0bcf1a5cb9fd4166534c70d285720f3b6ae023f14917ca41ec9ea29eaa2d376c0dda46453d8f7821ba682f6a8189a0b5692c8c0249771f0981aeb9ea96e95243d92353bea651b9d88ecbfaff05c60a9a39b89ca4037a45bae455f7ac8d74f0a224bd57c9f3fff49e38267cc6dc8b3d12926e30a79772f78ea13c04f811023be97bc79056800546ab98987df04e88a8f2b20f9926c9170201a1836892606ca70f383754d96abc62cdd28639f7da74a82d7c88bc2524f54f78ac06596ff2a1a99e968f0c12182d3f3f7d89261d2fc7ec6e7274da33c75e526cf9184682a24f32994c427970122f1f9368340c1818b154b1685c34d7e1cc714410363b694df3ad5c07878e05e739d7b1b5e6f97713077da69e29af1f7ab94d5ab430d8f9c25d52d172e6125727b9e4d443d23c7cf3f9eb5dfcc2543f36bf38ece191018cec1ee3c8edc33a72528a969a93d8f02d5ee4e40e89ed4bf26effe9e696e6c0edc9c0f141a366b91dbddc7c060ad336e24c6b6135b94c078b8f8627b77bae3cc77767cd4ac2e22216f77a503767f875061a6f579db67fb9c562646f5192859aed680f56cac273171e060e8ca0e6d1952ffe11dee82dda415d189c17754964ee901cc67393ba5caaa2cabcb0ad490fcf0d59f67525b1388eb2119c483617ec122089e3b82406930b128c64edf4595dfd2752b1f95fbc8ce41b8ee433de455d4e4b51907473b3c1d45b2243ef58391b85b387cbba38842e805e34b28c2a91f2f7be234fa236f42eb7b951dc52d1e26cbeb5202953e1590b5c8b4ea5577a782c3e297853cac2322b1b1b9ee611a50fa21b0c44e12822247d944e83a1b0c06815178bd23dfa0b73fbabcffa0bb8edd50b7f79187367458b5bc9513f6f3a9ab55cd6e66b317f89d6467793b9732a527f315178dc7e278ca0725f99397e7b4e05ee38c03b092398916174e76483310d6441d04f6d49362393583c000e8cdcb8dfff1b1a10e16e9efee5b97b2303b0af72eb6d1c4ed7d1826688a166bd35cdc2860da8d2bb1885ba5c9c7a33aca99bf4bab0baa07a21c2532e1d7318d78d55ee88226e9c1e3f631e182bde769716e18265df0ba5edaeca1d168cec8aea6dcb17fbada672768df59bae56385c5c98a2664ff30f228c78325eb0bb1fa46f90c8a0f2eede8739620d12f36ac4abb2c9c0f757a0046ee134e255d90032afd2b73921f7ca4c6ad25dfef332d5e6998669bdc1584199223ffa8fb5927ab49b1525ac29e185ff2c1e18c58fc492f382ce894ab34dd68bae4dd4ea494bc1ee5092b073a2c16ca341014c5e3dcd8ca9c4b35ecfea86ccbf5ffc8a7aff8a0360aca0455d989534c9409f30047212b7a84ba2b0002830522ab193a6ef38523958bcd382d4344e59685212dddc77102e53e2461cbcb5887b8299286c3b88b3ad87d5618f9b529fee84c821f4b44d587ae4b3efeb68ef47cefa2a6275c7ff262e117bb0ace14493280942c93b45b25060a47e18d92ed950b7ab7251e8a8c6cdeb5464c60a5a6eb88c85fd2da8fb4812a7ae9dd6c2fb6f30aeb3f3d37c57414722b268dc9e42a2044c85b3cf0b40319860447fcc2a1e6ae9b24dbe3ef5cad3067b7ae0c26c4b9833dc77d8ec9412c5e17ac242a0b5ca96b449ad082418cfaa29a6b1c7da1a15abef7dfdb26af4855fc596aa406a99736545bf54a5b596c102a3952696b27fcbd17a8e69f3145bea5b4bd3d375fe685a5b18091677ad65017a92da01fe6723b3d6cf55676ce969d83074e644b107cb4a2da214497e5308870546ebe6eac307470d5f17b2c69a2affb4a77cbf70192e7713db08d268407a69252eac75ca2c03084670ae98c2f22259761b3b5e4bc7b074c12eb50844da6192fc7c58bc964544038251fcbb459f5bc696fd827f5cd86168c92f3e3c2eccf0860a82752d6eb71366a4c2bdf4fc4a6bdeab305eb4ce018291dcb37ae4cb275f52cff120ef396671248f80748a7bb85eb4bbbcfc201dc64b379e24be909d085eb2e99ae3ca31d501b16827cc6a03e96a075d291c8727e156dc8c746194c4d14e92d5c6c172a282711ddca862335b86a0c8fd35c7f509af1e8a92e801a4c32ed324dae8c62be0b5ed4e980d642a02eb5928ac3dd444b10079f8187830fae97ff55ebf6ed0f8b06dd36bde4ce8f1e030243d14435a4dd4627d08db75c757d2430258d05c58e22ff726dfbfab19fd96f8fcd68c84b960ace0e25e97b1a056d7487f669501e4b1c22653cc567277258da7afc635d1ab142b058f445a5c4b5e1f15afa5313921c1683e29dff6abdbfbebcbb7d7595cead2d46b6142755271617b287d6e80fafa6c7841ec65627ef537ef5e1574aede05ca1b8709154bd8dfe7b85ec322f35462b4023f899b73888931fc12e634313916588fbb1c2bd1b76124af1173c1527ab11b33675c9d90a0f01b9ac9dbb34feeec379039432f7efd44acce6a4269f55828d74f00303062632add69b27ec384c85f2f9da8bebcfd35b318312a8e3438f476eacd35f8c42123808606035d498b9d88e319885ca0b09474fb403327a7bad27060f42e342cd5f7df2b17d4ab772f4c295ddcc6142df24a342385413b612f90b44a7898881fb953a8bcd1d63ebdaa575f683a19b8ee34af3e43a8ad715a9061b79246995267d7392febf2016d8dd3b2c868601c2e18e12162da2ae8d1eeaeadf12956dc9642ad677d21d873e172c282b1fd7adfe16dd5236744669e24de29c39a8a96aaf2d415a5ef61a1a92bb4e7e1e4d8e27e21f306452effa7c36ec32feb2fe7a1ae05c91b48afaedee40c4a88d59ef0f23e214e75058da3997698451fa0d3f20a00013c30828633a53bc5efbc1d9cb17669d8d207fb994b1278e5a89f73912b380e81c06c647e051596aae370c018ad1eb231ecdf956f345b6d377727d6be33148c7dcc31ba05f6a1f91aaa3227920eb34116a2d30f309228cd38a56eace25451161a8b0c467aa8988e8adefe10abd5c88061e2d46beb036d73998212ad86c5140f6f9b5beeb021ebf8a888e5a698595b72746f3d08284ad3c342135068c3c32d536684ee8a3b11f1c30f7b07ca7e68ce1013743da6047430811b641a000c357d2ef1e3b330a0184c9eb2e8c596accdee7d9c0a6fde7bca06c4e126d28e7373b4e869d282ca606221c16836b656ad1cf2dd84b08911c52ffde7a762b2a590aa10b619bfcf5485b078a0223bf5d0a5e875cd9453ca2d3a7374d92546019f7214ef60d10291d538ec055559893b1bb85496c3e685cc0e139359d1d6b22e99450954a56f2dcbd3586888daf289f1ebe5bb0e2b562f99f248dec4afb7078545e91058680a0bed0ef8e39f7e1d4e3cfd26eaa739959bde4bebdb533cd14a0e4e93b1e7a87de186325a5dd39c7860f43e100b549f70f46e8309c9482bddaf8afa557ae72ddea87bce12873db4c452d8dca079da6d4eb790adce6bbf0ddf5629ecbcb65b79e6de0741075610bd4613c91419ca3ce9ba6b04ae527660a5f070706834307eb388d4d82e9db302a71ea3f301353680b182aba068997526a9e98ba0ecbed0de809257272806138ce7c0a7776abe5f410506d75c790f7f8ce3f906ebeed4d5387ca083a05b7633a5f3b2103c4537081c3c4636d17928cc3f1767de10ab0fc49683c9a0e4407a61acefba5cba5776ed5ef5f6ed7d6f6e7928cb128648bcc697945a5970ab3d0d311094bcce498809467374c9e9ab5eddb646ffbcf037e5ec59b1f3c1d85c0dbe69350ec7cdb8953b3b875a042f79836f0a990b981725ef671b8a54d1f2f846bac9b3a2c0da2c79a60b68b3c26b61be5676662d836146ccb251d7371fef3b83b1c5931cdf434c7d172d5ce0ce4c94005fea5a5a4aafe87b33a1817d6afe658a3e3268b3fbba4c3128f3215377163f88d22edd289ff2c85ad9111ef50012267673e048fbb9851226023030625d5fbfc7afb7fd3174ccdab1c6e46a9f301db872ddde420b939a48c2ed68b353f2db5b283c1c1c18b900b12091d70353e9a6422a037a3d62215479519068449e9467de02dbfbad03ca866dac772df6f9e57233846f26fd00431c544442050fc8670347e7371cccfbe12532583c9f041c25f6f004d7278058977ac7918a44a4bc919dc20160c00829c40a09e414219cfe21a094bf1f46fd6f21083b5868555a06b50aead0a64550cb96addbb66d17d432a84d50eb961db18fc07f2f518cfe2bff07490f3460'))
%timeit LDAP(data)

Copy link

codecov bot commented Sep 6, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 81.58%. Comparing base (1935723) to head (0121946).
Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4526      +/-   ##
==========================================
- Coverage   81.59%   81.58%   -0.01%     
==========================================
  Files         356      356              
  Lines       85279    85280       +1     
==========================================
- Hits        69580    69578       -2     
- Misses      15699    15702       +3     
Files with missing lines Coverage Δ
scapy/packet.py 84.48% <100.00%> (+0.01%) ⬆️

... and 6 files with indirect coverage changes

@gpotter2 gpotter2 merged commit 1c09692 into secdev:master Sep 7, 2024
24 checks passed
@gpotter2 gpotter2 deleted the opti-cache-parse branch September 7, 2024 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant