<div dir="ltr">Haha - Understood Ben - and as (not so subtly requested) - find below the commented code.<div><br></div><div>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">//</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">//<span class="gmail-Apple-converted-space"> </span>main.c</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">//<span class="gmail-Apple-converted-space"> </span>AfrinicAudit</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">//</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">//<span class="gmail-Apple-converted-space"> </span>Created by Andrew Alston on 15/10/2025.</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">//<span class="gmail-Apple-converted-space"> </span>Code is considered open use with no restrictions.</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">//</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36);min-height:14px"><br></p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,106,93);background-color:rgb(31,31,36)"><span class="gmail-s1" style="color:rgb(253,143,63)">#include </span><stdlib.h></p>
<p class="gmail-p4" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(253,143,63);background-color:rgb(31,31,36)">#include <span class="gmail-s2" style="color:rgb(252,106,93)"><stdio.h></span></p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,106,93);background-color:rgb(31,31,36)"><span class="gmail-s1" style="color:rgb(253,143,63)">#include </span><string.h></p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,106,93);background-color:rgb(31,31,36)"><span class="gmail-s1" style="color:rgb(253,143,63)">#include </span><arpa/inet.h></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36);min-height:14px"><br></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">// Location of BGP Dump file</p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,106,93);background-color:rgb(31,31,36)"><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> BGP_DUMP[</span><span class="gmail-s5" style="color:rgb(208,191,105)">256</span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)">] = </span>"/Users/aalston/audit/bgp.dump.txt"<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">;</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">// Location of Afrinic Extended Stats File</p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,106,93);background-color:rgb(31,31,36)"><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> AFRINIC_EXT[</span><span class="gmail-s5" style="color:rgb(208,191,105)">256</span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)">] = </span>"/Users/aalston/audit/delegated-afrinic-extended-latest"<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">;</span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36);min-height:14px"><br></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36);min-height:14px"><br></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">// Structure to contain route data</p>
<p class="gmail-p5" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,95,163);background-color:rgb(31,31,36)"><b>struct</b><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> </span><span class="gmail-s6" style="color:rgb(93,216,255)">routes</span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> {</span></p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> network;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> broadcast;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> mask;</p>
<p class="gmail-p5" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,95,163);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span><b>unsigned</b><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> </span><b>short</b><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> cidr;</span></p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)">};</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36);min-height:14px"><br></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">// Audit structure into which we parse all our data before comparison</p>
<p class="gmail-p5" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,95,163);background-color:rgb(31,31,36)"><b>struct</b><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> </span><span class="gmail-s6" style="color:rgb(93,216,255)">audit</span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> {</span></p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">routes</span> *dfz;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> dfz_count;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">routes</span> *reserved;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> total_resv;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> rc;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">routes</span> *available;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> total_avail;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> ac;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)">};</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36);min-height:14px"><br></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">// parse_afrinic_extended parses the extended statistics file into the audit structure</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">// afext parameter is the file location of the afrinic extended stats file</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">// output is a pointer to an audit restructure</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> <span class="gmail-s8" style="color:rgb(65,161,192)">parse_afrinic_extended</span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> *afext, <span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">audit</span> *output) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s9" style="color:rgb(208,168,255)">FILE</span> *dump = <span class="gmail-s10" style="color:rgb(161,103,230)">fopen</span>(afext, <span class="gmail-s2" style="color:rgb(252,106,93)">"r"</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(!dump)</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span> -<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> buffer[<span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>] = {<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>};</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> *delim;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span> = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>;</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Run through the entire extended file isolating lines where the space is marked as reserved</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>while</b></span>(<span class="gmail-s10" style="color:rgb(161,103,230)">fgets</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>, dump)) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(<span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"ZZ"</span>) && <span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"reserved"</span>) && <span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"ipv4"</span>)) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>++;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Allocate sufficient route structures for storing the reserved blocks</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">reserved</span> = <span class="gmail-s10" style="color:rgb(161,103,230)">calloc</span>(output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>, <span class="gmail-s3" style="color:rgb(252,95,163)"><b>sizeof</b></span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">routes</span>));</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(!output-><span class="gmail-s11" style="color:rgb(103,183,164)">reserved</span>)</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span> -<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span> = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">routes</span> *resv = output-><span class="gmail-s11" style="color:rgb(103,183,164)">reserved</span>;</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Rewind the file pointer to the start of the file so we can re-run through the file parsing it this time</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">rewind</span>(dump);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>while</b></span>(<span class="gmail-s10" style="color:rgb(161,103,230)">fgets</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>, dump)) {</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Check if this is a line matching reserved space</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(<span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"ZZ"</span>) && <span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"reserved"</span>) && <span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"ipv4"</span>)) {</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Tokenize the line such that delim becomes a pointer to the start of the network address</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>delim = <span class="gmail-s10" style="color:rgb(161,103,230)">strtok</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"|"</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>for</b></span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> i = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>; i < <span class="gmail-s5" style="color:rgb(208,191,105)">3</span>; i++)</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>delim = <span class="gmail-s10" style="color:rgb(161,103,230)">strtok</span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>NULL</b></span>, <span class="gmail-s2" style="color:rgb(252,106,93)">"|"</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Convert the network address to a big endian formatted integer</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">inet_pton</span>(<span class="gmail-s1" style="color:rgb(253,143,63)">AF_INET</span>, delim, &resv[output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Swap the byte ordering of the saved network address to little endian to make computations easier</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>resv[output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span> = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>(resv[output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Jump to the next token so that delim points to the start of the number of addresses in the block</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>delim = <span class="gmail-s10" style="color:rgb(161,103,230)">strtok</span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>NULL</b></span>, <span class="gmail-s2" style="color:rgb(252,106,93)">"|"</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Convert number of addresses to an integer</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> addr_count = <span class="gmail-s10" style="color:rgb(161,103,230)">atoi</span>(delim);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">total_resv</span> += addr_count;</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Broadcast is calculated by taking the number of addresses less 1 and adding it to the little endian</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// network address</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>resv[output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span> = resv[output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>+(addr_count-<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Swap the network and broadcast back to big endian format</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>resv[output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span> = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>(resv[output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>resv[output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span> = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>(resv[output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Calculate the subnet mask by taking a 1s compliment of the address count less 1 and flipping endianness</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>resv[output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">mask</span> = ~<span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)addr_count-<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Increment the reserved route count.</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>++;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Rewind the file pointer again</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">rewind</span>(dump);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Count the number of lines matching available space</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>while</b></span>(<span class="gmail-s10" style="color:rgb(161,103,230)">fgets</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>, dump)) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(<span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"ZZ"</span>) && <span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"available"</span>) && <span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"ipv4"</span>)) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">ac</span>++;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">available</span> = <span class="gmail-s10" style="color:rgb(161,103,230)">calloc</span>(output-><span class="gmail-s11" style="color:rgb(103,183,164)">ac</span>, <span class="gmail-s3" style="color:rgb(252,95,163)"><b>sizeof</b></span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">routes</span>));</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(!output-><span class="gmail-s11" style="color:rgb(103,183,164)">available</span>)</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span> -<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">routes</span> *avail = output-><span class="gmail-s11" style="color:rgb(103,183,164)">available</span>;</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Rewind the file pointer again so we can run through the file again</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">rewind</span>(dump);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>while</b></span>(<span class="gmail-s10" style="color:rgb(161,103,230)">fgets</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>, dump)) {</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Match lines for available space</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Rest of the code in this function uses identical code to what we used above for reserved files,</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// So comments in the above apply here as well</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(<span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"ZZ"</span>) && <span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"available"</span>) && <span class="gmail-s10" style="color:rgb(161,103,230)">strstr</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"ipv4"</span>)) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>delim = <span class="gmail-s10" style="color:rgb(161,103,230)">strtok</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"|"</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>for</b></span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> i = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>; i < <span class="gmail-s5" style="color:rgb(208,191,105)">3</span>; i++)</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>delim = <span class="gmail-s10" style="color:rgb(161,103,230)">strtok</span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>NULL</b></span>, <span class="gmail-s2" style="color:rgb(252,106,93)">"|"</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">inet_pton</span>(<span class="gmail-s1" style="color:rgb(253,143,63)">AF_INET</span>, delim, &avail[output-><span class="gmail-s11" style="color:rgb(103,183,164)">ac</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>avail[output-><span class="gmail-s11" style="color:rgb(103,183,164)">ac</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span> = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>(avail[output-><span class="gmail-s11" style="color:rgb(103,183,164)">ac</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>delim = <span class="gmail-s10" style="color:rgb(161,103,230)">strtok</span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>NULL</b></span>, <span class="gmail-s2" style="color:rgb(252,106,93)">"|"</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> addr_count = <span class="gmail-s10" style="color:rgb(161,103,230)">atoi</span>(delim);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">total_avail</span> += addr_count;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>avail[output-><span class="gmail-s11" style="color:rgb(103,183,164)">ac</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span> = avail[output-><span class="gmail-s11" style="color:rgb(103,183,164)">ac</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>+(addr_count-<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>avail[output-><span class="gmail-s11" style="color:rgb(103,183,164)">ac</span>].<span class="gmail-s11" style="color:rgb(103,183,164)">mask</span> = ~<span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)addr_count-<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">ac</span>++;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">fclose</span>(dump);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span> <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)">}</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36);min-height:14px"><br></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">// parse_dfz parses the bgp dump file</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> <span class="gmail-s8" style="color:rgb(65,161,192)">parse_dfz</span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> *dfz_dump, <span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">audit</span> *output) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s9" style="color:rgb(208,168,255)">FILE</span> *dump = <span class="gmail-s10" style="color:rgb(161,103,230)">fopen</span>(dfz_dump, <span class="gmail-s2" style="color:rgb(252,106,93)">"r"</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> buffer[<span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>] = {<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>};</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> rc = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>, mult = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>, cidr = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> *delim;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(!dump) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span> -<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Run through the dump file to get a count of matching routes.</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// The match here is made by checking for lines that start with a number between 1 and 9, contain a / and also contain a .</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// This was the easiest way to match lines in the BGP dump from a juniper</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>while</b></span>(<span class="gmail-s10" style="color:rgb(161,103,230)">fgets</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>, dump)) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(buffer[<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>] >= <span class="gmail-s5" style="color:rgb(208,191,105)">'1'</span> && buffer[<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>] <= <span class="gmail-s5" style="color:rgb(208,191,105)">'9'</span> && <span class="gmail-s10" style="color:rgb(161,103,230)">strtok</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"/"</span>) && <span class="gmail-s10" style="color:rgb(161,103,230)">strchr</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">'.'</span>)) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>rc++;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span> = <span class="gmail-s10" style="color:rgb(161,103,230)">calloc</span>(rc, <span class="gmail-s3" style="color:rgb(252,95,163)"><b>sizeof</b></span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">routes</span>));</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz_count</span> = rc;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(!output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span> -<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Rewind the file pointer to run through again</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">rewind</span>(dump);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>rc = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>while</b></span>(<span class="gmail-s10" style="color:rgb(161,103,230)">fgets</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>, dump)) {</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Match lines that start with a number between 1 and 9</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(buffer[<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>] >= <span class="gmail-s5" style="color:rgb(208,191,105)">'1'</span> && buffer[<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>] <= <span class="gmail-s5" style="color:rgb(208,191,105)">'9'</span>) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>cidr = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>;</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Tokenize to get the CIDR deliminator</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>delim = <span class="gmail-s10" style="color:rgb(161,103,230)">strtok</span>(buffer, <span class="gmail-s2" style="color:rgb(252,106,93)">"/"</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>delim = <span class="gmail-s10" style="color:rgb(161,103,230)">strtok</span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>NULL</b></span>, <span class="gmail-s2" style="color:rgb(252,106,93)">"/"</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// If there is no CIDR deliminator, skip this line after resetting the buffer</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(!delim) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s1" style="color:rgb(253,143,63)">memset</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>, <span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>continue</b></span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// This code is essentially a manual ascii to integer to calculate the CIDR from the text</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>mult = <span class="gmail-s5" style="color:rgb(208,191,105)">1</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>for</b></span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> i = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>; i < <span class="gmail-s5" style="color:rgb(208,191,105)">3</span>; i++) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(delim[i] >= <span class="gmail-s5" style="color:rgb(208,191,105)">'0'</span> && delim[i] <= <span class="gmail-s5" style="color:rgb(208,191,105)">'9'</span>) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>cidr = cidr * mult+(<span class="gmail-s5" style="color:rgb(208,191,105)">9</span>-(<span class="gmail-s5" style="color:rgb(208,191,105)">'9'</span>-delim[i]));</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>mult*=<span class="gmail-s5" style="color:rgb(208,191,105)">10</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Check if the line contains a . - if it doesnt the line is skipped, this avoids IPv6 lines</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// in the BGP dump</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>delim = <span class="gmail-s10" style="color:rgb(161,103,230)">strchr</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">'.'</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(!delim) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s1" style="color:rgb(253,143,63)">memset</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>, <span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>continue</b></span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Save the CIDR</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">cidr</span> = cidr;</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Save the network in big endian format</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">inet_pton</span>(<span class="gmail-s1" style="color:rgb(253,143,63)">AF_INET</span>, buffer, &output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">cidr</span> = cidr;</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Swap the network to little endian format</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span> = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Calculate the subnet mask using a 1s compliment of zero shifted by 32 minus the CIDR bits</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">mask</span> = (~(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>) << (<span class="gmail-s5" style="color:rgb(208,191,105)">32</span>-cidr);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Calculate the broadcast by adding a 1s compliment of zero shifted right by the CIDR</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span> = output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span> + ((~(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>) >> cidr);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Convert the network and broadcast back to big endian format</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span> = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span> = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)output-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[rc].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>rc++;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s1" style="color:rgb(253,143,63)">memset</span>(buffer, <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>, <span class="gmail-s5" style="color:rgb(208,191,105)">1024</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">fclose</span>(dump);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span> <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)">}</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36);min-height:14px"><br></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">// audit_reserved uses a pre-populated audit structure to audit the afrinic reserved and available address</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)">// space against the routes in the DFZ dump file</p>
<p class="gmail-p7" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(65,161,192);background-color:rgb(31,31,36)"><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> </span>audit_reserved<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">(</span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> </span><span class="gmail-s7" style="color:rgb(158,241,221)">audit</span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> *data) {</span></p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> hijack_count = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> prefix_count = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>;</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Cycle through all the routes in the DFZ</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>for</b></span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> i = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>; i < data-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz_count</span>; i++) {</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Get little endian routes for the DFZ network and broadcast</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> dfz_net = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)data-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[i].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> dfz_bcast = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)data-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[i].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Cycle through the reserved routes in an inner loop</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>for</b></span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> r = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>; r < data-><span class="gmail-s11" style="color:rgb(103,183,164)">rc</span>; r++) {</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Get the little endian versions of the reserved network and broadcasts</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> resv_net = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)data-><span class="gmail-s11" style="color:rgb(103,183,164)">reserved</span>[r].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> resv_bcast = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)data-><span class="gmail-s11" style="color:rgb(103,183,164)">reserved</span>[r].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// If the DFZ network in little endian format is greater than or equal to the reserved network</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// and less than or equal to the reserved broadcast - the route falls in the reserved range</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(dfz_net >= resv_net && dfz_net <= resv_bcast) {</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Add to the hijack count using an address count calculated by subtracting the</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// dfz network address from the dfz broadcast address</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>hijack_count += ((dfz_bcast-dfz_net)+<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>prefix_count++;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> dfz_route[<span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>] = {<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>};</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> resv_network[<span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>] = {<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>};</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> resv_broadcast[<span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>] = {<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>};</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Convert the numeric networks and broadcast addresses to strings for printing</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">inet_ntop</span>(<span class="gmail-s1" style="color:rgb(253,143,63)">AF_INET</span>, &data-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[i].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>, dfz_route, <span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">inet_ntop</span>(<span class="gmail-s1" style="color:rgb(253,143,63)">AF_INET</span>, &data-><span class="gmail-s11" style="color:rgb(103,183,164)">reserved</span>[r].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>, resv_network, <span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">inet_ntop</span>(<span class="gmail-s1" style="color:rgb(253,143,63)">AF_INET</span>, &data-><span class="gmail-s11" style="color:rgb(103,183,164)">reserved</span>[r].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span>, resv_broadcast, <span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>);</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Print potential hijacked routes in the reserved range</p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,106,93);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span><span class="gmail-s10" style="color:rgb(161,103,230)">printf</span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)">(</span>"%s/%d fell between reserved range %s -> %s [Adding %d addresses to potential hijack]\n"<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">,</span></p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>dfz_route, data-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[i].<span class="gmail-s11" style="color:rgb(103,183,164)">cidr</span>, resv_network, resv_broadcast, (dfz_bcast-dfz_net)+<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Comments for the inner loop for reserved range apply equally to the below inner loop which</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// processes against available routes in the afrinic extended file</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>for</b></span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> a = <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>; a < data-><span class="gmail-s11" style="color:rgb(103,183,164)">ac</span>; a++) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> avail_net = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)data-><span class="gmail-s11" style="color:rgb(103,183,164)">available</span>[a].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> avail_bcast = <span class="gmail-s10" style="color:rgb(161,103,230)">__builtin_bswap32</span>((<span class="gmail-s3" style="color:rgb(252,95,163)"><b>unsigned</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span>)data-><span class="gmail-s11" style="color:rgb(103,183,164)">available</span>[a].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(dfz_net >= data-><span class="gmail-s11" style="color:rgb(103,183,164)">available</span>[a].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span> && dfz_net <= data-><span class="gmail-s11" style="color:rgb(103,183,164)">available</span>[a].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span>) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>hijack_count += ((data-><span class="gmail-s11" style="color:rgb(103,183,164)">available</span>[a].<span class="gmail-s11" style="color:rgb(103,183,164)">broadcast</span>-data-><span class="gmail-s11" style="color:rgb(103,183,164)">available</span>[a].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>)+<span class="gmail-s5" style="color:rgb(208,191,105)">1</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>prefix_count++;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> dfz_route[<span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>] = {<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>};</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> avail_network[<span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>] = {<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>};</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> avail_broadcast[<span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>] = {<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>};</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">inet_ntop</span>(<span class="gmail-s1" style="color:rgb(253,143,63)">AF_INET</span>, &data-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[i].<span class="gmail-s11" style="color:rgb(103,183,164)">network</span>, dfz_route, <span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">inet_ntop</span>(<span class="gmail-s1" style="color:rgb(253,143,63)">AF_INET</span>, &avail_net, avail_network, <span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">inet_ntop</span>(<span class="gmail-s1" style="color:rgb(253,143,63)">AF_INET</span>, &avail_bcast, avail_broadcast, <span class="gmail-s1" style="color:rgb(253,143,63)">INET_ADDRSTRLEN</span>);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s10" style="color:rgb(161,103,230)">printf</span>(<span class="gmail-s2" style="color:rgb(252,106,93)">"%s/%d fell between available range %s -> %s\n"</span>, dfz_route, data-><span class="gmail-s11" style="color:rgb(103,183,164)">dfz</span>[i].<span class="gmail-s11" style="color:rgb(103,183,164)">cidr</span>, avail_network, avail_broadcast);</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span>}</p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,106,93);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span><span class="gmail-s10" style="color:rgb(161,103,230)">printf</span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)">(</span>"Found %d potentially hijacked addresses from %d prefixes\n"<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">, hijack_count, prefix_count);</span></p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span> <span class="gmail-s5" style="color:rgb(208,191,105)">0</span>;</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)">}</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36);min-height:14px"><br></p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> <span class="gmail-s8" style="color:rgb(65,161,192)">main</span>(<span class="gmail-s3" style="color:rgb(252,95,163)"><b>int</b></span> argc, <span class="gmail-s3" style="color:rgb(252,95,163)"><b>const</b></span> <span class="gmail-s3" style="color:rgb(252,95,163)"><b>char</b></span> * argv[]) {</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>struct</b></span> <span class="gmail-s7" style="color:rgb(158,241,221)">audit</span> data = {<span class="gmail-s5" style="color:rgb(208,191,105)">0</span>};</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Call the DFZ file parser, expecting a zero return if all is well</p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)"><span class="gmail-Apple-converted-space"> </span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span>(<span class="gmail-s11" style="color:rgb(103,183,164)">parse_dfz</span>(<span class="gmail-s11" style="color:rgb(103,183,164)">BGP_DUMP</span>, &data))</p>
<p class="gmail-p4" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(253,143,63);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> </span>EXIT_FAILURE<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">;</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Call the afrinic extended parser, expecting a zero return if all is well</p>
<p class="gmail-p8" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(103,183,164);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>if</b></span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)">(</span>parse_afrinic_extended<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">(</span>AFRINIC_EXT<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">, &data))</span></p>
<p class="gmail-p4" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(253,143,63);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> </span>EXIT_FAILURE<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">;</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Print the total available and reserved addresses found by the afrinic extended parser</p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(252,106,93);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span><span class="gmail-s10" style="color:rgb(161,103,230)">printf</span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)">(</span>"Found %d total available addresses and %d total reserved addresses\n"<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">, data.</span><span class="gmail-s11" style="color:rgb(103,183,164)">total_avail</span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)">, data.</span><span class="gmail-s11" style="color:rgb(103,183,164)">total_resv</span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)">);</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(108,121,134);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>// Run the audit</p>
<p class="gmail-p8" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(103,183,164);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span>audit_reserved<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">(&data);</span></p>
<p class="gmail-p4" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgb(253,143,63);background-color:rgb(31,31,36)"><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"><span class="gmail-Apple-converted-space"> </span></span><span class="gmail-s3" style="color:rgb(252,95,163)"><b>return</b></span><span class="gmail-s4" style="color:rgba(255,255,255,0.85)"> </span>EXIT_SUCCESS<span class="gmail-s4" style="color:rgba(255,255,255,0.85)">;</span></p>
<p class="gmail-p6" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Menlo;color:rgba(255,255,255,0.85);background-color:rgb(31,31,36)">}</p></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, Oct 15, 2025 at 2:55 PM <<a href="mailto:ben.roberts@afrinic.net">ben.roberts@afrinic.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-4268882805517787688"><div lang="EN-GB" style="overflow-wrap: break-word;"><div class="m_-4268882805517787688WordSection1"><p class="MsoNormal"><span style="font-size:11pt">This is great Andrew. I feel like we should have more of this sort of thing and perhaps an IP address research hackathon will be a great idea.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Your c is pretty good, I will give you a tip though.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">2 useful features of c are to use // or /* */ to insert comments in the code<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">e.g.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">// This is a comment<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Or <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">/* This is a comment*/<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">The comments aren’t compiled in the code so you can write anything you like. Using comments like this is really helpful when sharing code with others, to help them understand it…<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Emoji",sans-serif">😊😊😊</span><span style="font-size:11pt"><u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm"><p class="MsoNormal"><b><span lang="EN-US" style="font-size:11pt;font-family:Calibri,sans-serif">From:</span></b><span lang="EN-US" style="font-size:11pt;font-family:Calibri,sans-serif"> Andrew Alston <<a href="mailto:aa@alstonnetworks.net" target="_blank">aa@alstonnetworks.net</a>> <br><b>Sent:</b> 15 October 2025 14:41<br><b>To:</b> RPD <<a href="mailto:rpd@afrinic.net" target="_blank">rpd@afrinic.net</a>><br><b>Subject:</b> [rpd] Reserved Space/Available Space and potential hijacking<u></u><u></u></span></p></div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">Hi Guys,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">So - Firstly a few notes on using the code I'm going to paste below.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I created the BGP dump file on a juniper router by running a "show route protocol bgp | save bgp.dump.txt" and then copying that dump file to my local system from the Juniper router. Note - this produces a roughly 400meg file on a full table router and it takes quite a while to run the command.<u></u><u></u></p></div><div><p class="MsoNormal">Then - I used the delegated-afrinic-extended-latest file downloaded from the stats ftp server.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">In the code below - if you wish to run similar - change the char BGP_DUMP[256] and char AFRINIC_EXT[256] global variables to match the pathing to the relevant files.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Note that there is some weirdness in this code to deal with endianness - and I will openly admit its not the cleanest (or probably most efficient) code - but it does work and I've verified the results.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I've pasted the code below the results section.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">So - first the results:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Found 824064 total available addresses and 4482304 total reserved addresses<br><a href="http://41.57.124.0/22" target="_blank">41.57.124.0/22</a> fell between reserved range 41.57.124.0 -> 41.57.127.255 [Adding 1024 addresses to potential hijack]<br><a href="http://41.57.124.0/23" target="_blank">41.57.124.0/23</a> fell between reserved range 41.57.124.0 -> 41.57.127.255 [Adding 512 addresses to potential hijack]<br><a href="http://41.57.124.0/24" target="_blank">41.57.124.0/24</a> fell between reserved range 41.57.124.0 -> 41.57.127.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.57.125.0/24" target="_blank">41.57.125.0/24</a> fell between reserved range 41.57.124.0 -> 41.57.127.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.57.126.0/24" target="_blank">41.57.126.0/24</a> fell between reserved range 41.57.124.0 -> 41.57.127.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.57.127.0/24" target="_blank">41.57.127.0/24</a> fell between reserved range 41.57.124.0 -> 41.57.127.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.77.64.0/21" target="_blank">41.77.64.0/21</a> fell between reserved range 41.77.64.0 -> 41.77.71.255 [Adding 2048 addresses to potential hijack]<br><a href="http://41.138.192.0/24" target="_blank">41.138.192.0/24</a> fell between reserved range 41.138.192.0 -> 41.138.223.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.224.0/24" target="_blank">41.204.224.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.225.0/24" target="_blank">41.204.225.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.226.0/24" target="_blank">41.204.226.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.227.0/24" target="_blank">41.204.227.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.228.0/24" target="_blank">41.204.228.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.229.0/24" target="_blank">41.204.229.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.230.0/24" target="_blank">41.204.230.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.231.0/24" target="_blank">41.204.231.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.232.0/24" target="_blank">41.204.232.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.233.0/24" target="_blank">41.204.233.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.234.0/24" target="_blank">41.204.234.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.235.0/24" target="_blank">41.204.235.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.236.0/24" target="_blank">41.204.236.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.237.0/24" target="_blank">41.204.237.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.238.0/24" target="_blank">41.204.238.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.239.0/24" target="_blank">41.204.239.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.240.0/24" target="_blank">41.204.240.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.241.0/24" target="_blank">41.204.241.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.242.0/24" target="_blank">41.204.242.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.243.0/24" target="_blank">41.204.243.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.244.0/24" target="_blank">41.204.244.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.245.0/24" target="_blank">41.204.245.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.246.0/24" target="_blank">41.204.246.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.247.0/24" target="_blank">41.204.247.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.248.0/24" target="_blank">41.204.248.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.249.0/24" target="_blank">41.204.249.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.250.0/24" target="_blank">41.204.250.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.251.0/24" target="_blank">41.204.251.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.254.0/24" target="_blank">41.204.254.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.204.255.0/24" target="_blank">41.204.255.0/24</a> fell between reserved range 41.204.224.0 -> 41.204.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.205.224.0/19" target="_blank">41.205.224.0/19</a> fell between reserved range 41.205.224.0 -> 41.205.255.255 [Adding 8192 addresses to potential hijack]<br><a href="http://41.205.225.0/24" target="_blank">41.205.225.0/24</a> fell between reserved range 41.205.224.0 -> 41.205.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.205.232.0/24" target="_blank">41.205.232.0/24</a> fell between reserved range 41.205.224.0 -> 41.205.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.205.234.0/24" target="_blank">41.205.234.0/24</a> fell between reserved range 41.205.224.0 -> 41.205.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.205.235.0/24" target="_blank">41.205.235.0/24</a> fell between reserved range 41.205.224.0 -> 41.205.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.205.237.0/24" target="_blank">41.205.237.0/24</a> fell between reserved range 41.205.224.0 -> 41.205.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.205.238.0/24" target="_blank">41.205.238.0/24</a> fell between reserved range 41.205.224.0 -> 41.205.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.205.239.0/24" target="_blank">41.205.239.0/24</a> fell between reserved range 41.205.224.0 -> 41.205.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://41.220.48.0/20" target="_blank">41.220.48.0/20</a> fell between reserved range 41.220.48.0 -> 41.220.63.255 [Adding 4096 addresses to potential hijack]<br><a href="http://80.88.6.0/24" target="_blank">80.88.6.0/24</a> fell between reserved range 80.88.6.0 -> 80.88.6.255 [Adding 256 addresses to potential hijack]<br><a href="http://102.128.74.0/24" target="_blank">102.128.74.0/24</a> fell between reserved range 102.128.72.0 -> 102.128.75.255 [Adding 256 addresses to potential hijack]<br><a href="http://102.135.164.0/24" target="_blank">102.135.164.0/24</a> fell between reserved range 102.135.164.0 -> 102.135.167.255 [Adding 256 addresses to potential hijack]<br><a href="http://102.135.165.0/24" target="_blank">102.135.165.0/24</a> fell between reserved range 102.135.164.0 -> 102.135.167.255 [Adding 256 addresses to potential hijack]<br><a href="http://102.135.166.0/24" target="_blank">102.135.166.0/24</a> fell between reserved range 102.135.164.0 -> 102.135.167.255 [Adding 256 addresses to potential hijack]<br><a href="http://102.219.128.0/24" target="_blank">102.219.128.0/24</a> fell between reserved range 102.219.128.0 -> 102.219.131.255 [Adding 256 addresses to potential hijack]<br><a href="http://102.219.129.0/24" target="_blank">102.219.129.0/24</a> fell between reserved range 102.219.128.0 -> 102.219.131.255 [Adding 256 addresses to potential hijack]<br><a href="http://102.219.130.0/24" target="_blank">102.219.130.0/24</a> fell between reserved range 102.219.128.0 -> 102.219.131.255 [Adding 256 addresses to potential hijack]<br><a href="http://102.221.148.0/22" target="_blank">102.221.148.0/22</a> fell between reserved range 102.221.144.0 -> 102.221.151.255 [Adding 1024 addresses to potential hijack]<br><a href="http://156.0.254.0/24" target="_blank">156.0.254.0/24</a> fell between reserved range 156.0.254.0 -> 156.0.254.255 [Adding 256 addresses to potential hijack]<br><a href="http://160.119.208.0/24" target="_blank">160.119.208.0/24</a> fell between reserved range 160.119.208.0 -> 160.119.211.255 [Adding 256 addresses to potential hijack]<br><a href="http://160.119.209.0/24" target="_blank">160.119.209.0/24</a> fell between reserved range 160.119.208.0 -> 160.119.211.255 [Adding 256 addresses to potential hijack]<br><a href="http://164.160.192.0/21" target="_blank">164.160.192.0/21</a> fell between reserved range 164.160.192.0 -> 164.160.223.255 [Adding 2048 addresses to potential hijack]<br><a href="http://169.255.164.0/22" target="_blank">169.255.164.0/22</a> fell between reserved range 169.255.164.0 -> 169.255.167.255 [Adding 1024 addresses to potential hijack]<br><a href="http://193.188.7.0/24" target="_blank">193.188.7.0/24</a> fell between reserved range 193.188.7.0 -> 193.188.7.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.13.203.0/24" target="_blank">196.13.203.0/24</a> fell between reserved range 196.13.203.0 -> 196.13.203.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.20.60.0/24" target="_blank">196.20.60.0/24</a> fell between reserved range 196.20.32.0 -> 196.20.63.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.20.61.0/24" target="_blank">196.20.61.0/24</a> fell between reserved range 196.20.32.0 -> 196.20.63.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.20.62.0/24" target="_blank">196.20.62.0/24</a> fell between reserved range 196.20.32.0 -> 196.20.63.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.41.74.0/24" target="_blank">196.41.74.0/24</a> fell between reserved range 196.41.74.0 -> 196.41.74.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.43.252.0/24" target="_blank">196.43.252.0/24</a> fell between reserved range 196.43.252.0 -> 196.43.252.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.46.18.0/24" target="_blank">196.46.18.0/24</a> fell between reserved range 196.46.18.0 -> 196.46.19.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.46.19.0/24" target="_blank">196.46.19.0/24</a> fell between reserved range 196.46.18.0 -> 196.46.19.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.46.152.0/24" target="_blank">196.46.152.0/24</a> fell between reserved range 196.46.152.0 -> 196.46.159.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.46.153.0/24" target="_blank">196.46.153.0/24</a> fell between reserved range 196.46.152.0 -> 196.46.159.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.46.154.0/23" target="_blank">196.46.154.0/23</a> fell between reserved range 196.46.152.0 -> 196.46.159.255 [Adding 512 addresses to potential hijack]<br><a href="http://196.50.21.0/24" target="_blank">196.50.21.0/24</a> fell between reserved range 196.50.21.0 -> 196.50.21.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.53.113.0/24" target="_blank">196.53.113.0/24</a> fell between reserved range 196.52.0.0 -> 196.55.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.54.72.0/23" target="_blank">196.54.72.0/23</a> fell between reserved range 196.52.0.0 -> 196.55.255.255 [Adding 512 addresses to potential hijack]<br><a href="http://196.55.102.0/23" target="_blank">196.55.102.0/23</a> fell between reserved range 196.52.0.0 -> 196.55.255.255 [Adding 512 addresses to potential hijack]<br><a href="http://196.63.243.0/24" target="_blank">196.63.243.0/24</a> fell between reserved range 196.62.0.0 -> 196.63.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.195.4.0/24" target="_blank">196.195.4.0/24</a> fell between reserved range 196.194.0.0 -> 196.195.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.195.15.0/24" target="_blank">196.195.15.0/24</a> fell between reserved range 196.194.0.0 -> 196.195.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://196.195.253.0/24" target="_blank">196.195.253.0/24</a> fell between reserved range 196.194.0.0 -> 196.195.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://197.157.200.0/22" target="_blank">197.157.200.0/22</a> fell between reserved range 197.157.200.0 -> 197.157.203.255 [Adding 1024 addresses to potential hijack]<br><a href="http://197.231.248.0/22" target="_blank">197.231.248.0/22</a> fell between reserved range 197.231.248.0 -> 197.231.251.255 [Adding 1024 addresses to potential hijack]<br><a href="http://197.231.248.0/24" target="_blank">197.231.248.0/24</a> fell between reserved range 197.231.248.0 -> 197.231.251.255 [Adding 256 addresses to potential hijack]<br><a href="http://197.231.249.0/24" target="_blank">197.231.249.0/24</a> fell between reserved range 197.231.248.0 -> 197.231.251.255 [Adding 256 addresses to potential hijack]<br><a href="http://197.231.250.0/24" target="_blank">197.231.250.0/24</a> fell between reserved range 197.231.248.0 -> 197.231.251.255 [Adding 256 addresses to potential hijack]<br><a href="http://197.231.251.0/24" target="_blank">197.231.251.0/24</a> fell between reserved range 197.231.248.0 -> 197.231.251.255 [Adding 256 addresses to potential hijack]<br><a href="http://197.234.208.0/24" target="_blank">197.234.208.0/24</a> fell between reserved range 197.234.208.0 -> 197.234.215.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.224.0/24" target="_blank">212.12.224.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.225.0/24" target="_blank">212.12.225.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.226.0/24" target="_blank">212.12.226.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.227.0/24" target="_blank">212.12.227.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.229.0/24" target="_blank">212.12.229.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.231.0/24" target="_blank">212.12.231.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.232.0/24" target="_blank">212.12.232.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.233.0/24" target="_blank">212.12.233.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.234.0/24" target="_blank">212.12.234.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.235.0/24" target="_blank">212.12.235.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.236.0/24" target="_blank">212.12.236.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.237.0/24" target="_blank">212.12.237.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.238.0/24" target="_blank">212.12.238.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.239.0/24" target="_blank">212.12.239.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.240.0/24" target="_blank">212.12.240.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.241.0/24" target="_blank">212.12.241.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.242.0/24" target="_blank">212.12.242.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.243.0/24" target="_blank">212.12.243.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.244.0/24" target="_blank">212.12.244.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.245.0/24" target="_blank">212.12.245.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.246.0/24" target="_blank">212.12.246.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.247.0/24" target="_blank">212.12.247.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.248.0/24" target="_blank">212.12.248.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.249.0/24" target="_blank">212.12.249.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.250.0/24" target="_blank">212.12.250.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.251.0/24" target="_blank">212.12.251.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.252.0/24" target="_blank">212.12.252.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.254.0/24" target="_blank">212.12.254.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br><a href="http://212.12.255.0/24" target="_blank">212.12.255.0/24</a> fell between reserved range 212.12.224.0 -> 212.12.255.255 [Adding 256 addresses to potential hijack]<br>Found 50176 potentially hijacked addresses<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">--- Below here is the code (I didn't know if I could send attachments to the RPD list so I just pasted the code straight) ---<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">//<br>// main.c<br>// AfrinicAudit<br>//<br>// Created by Andrew Alston on 15/10/2025.<br>// Code is considered open use with no restrictions.<br>//<br><br>#include <stdlib.h><br>#include <stdio.h><br>#include <string.h><br>#include <arpa/inet.h><br><br>char BGP_DUMP[256] = "/Users/aalston/audit/bgp.dump.txt";<br>char AFRINIC_EXT[256] = "/Users/aalston/audit/delegated-afrinic-extended-latest";<br><br>struct routes {<br> unsigned int network;<br> unsigned int broadcast;<br> unsigned int mask;<br> unsigned short cidr;<br>};<br><br>struct audit {<br> struct routes *dfz;<br> int dfz_count;<br> struct routes *reserved;<br> int total_resv;<br> int rc;<br> struct routes *available;<br> int total_avail;<br> int ac;<br>};<br><br>int parse_afrinic_extended(char *afext, struct audit *output) {<br> FILE *dump = fopen(afext, "r");<br> if(!dump)<br> return -1;<br> char buffer[1024] = {0};<br> char *delim;<br> output->rc = 0;<br> while(fgets(buffer, 1024, dump)) {<br> if(strstr(buffer, "ZZ") && strstr(buffer, "reserved") && strstr(buffer, "ipv4")) {<br> output->rc++;<br> }<br> }<br> output->reserved = calloc(output->rc, sizeof(struct routes));<br> if(!output->reserved)<br> return -1;<br> output->rc = 0;<br> struct routes *resv = output->reserved;<br> rewind(dump);<br> while(fgets(buffer, 1024, dump)) {<br> if(strstr(buffer, "ZZ") && strstr(buffer, "reserved") && strstr(buffer, "ipv4")) {<br> delim = strtok(buffer, "|");<br> for(int i = 0; i < 3; i++)<br> delim = strtok(NULL, "|");<br> inet_pton(AF_INET, delim, &resv[output->rc].network);<br> resv[output->rc].network = __builtin_bswap32(resv[output->rc].network);<br> delim = strtok(NULL, "|");<br> unsigned int addr_count = atoi(delim);<br> output->total_resv += addr_count;<br> resv[output->rc].broadcast = resv[output->rc].network+(addr_count-1);<br> resv[output->rc].network = __builtin_bswap32(resv[output->rc].network);<br> resv[output->rc].broadcast = __builtin_bswap32(resv[output->rc].broadcast);<br> resv[output->rc].mask = ~__builtin_bswap32((unsigned int)addr_count-1);<br> output->rc++;<br> }<br> }<br> rewind(dump);<br> while(fgets(buffer, 1024, dump)) {<br> if(strstr(buffer, "ZZ") && strstr(buffer, "available") && strstr(buffer, "ipv4")) {<br> output->ac++;<br> }<br> }<br> output->available = calloc(output->ac, sizeof(struct routes));<br> if(!output->available)<br> return -1;<br> struct routes *avail = output->available;<br> rewind(dump);<br> while(fgets(buffer, 1024, dump)) {<br> if(strstr(buffer, "ZZ") && strstr(buffer, "available") && strstr(buffer, "ipv4")) {<br> delim = strtok(buffer, "|");<br> for(int i = 0; i < 3; i++)<br> delim = strtok(NULL, "|");<br> inet_pton(AF_INET, delim, &avail[output->ac].network);<br> avail[output->ac].network = __builtin_bswap32(avail[output->ac].network);<br> delim = strtok(NULL, "|");<br> unsigned int addr_count = atoi(delim);<br> output->total_avail += addr_count;<br> avail[output->ac].broadcast = avail[output->ac].network+(addr_count-1);<br> avail[output->ac].mask = ~__builtin_bswap32((unsigned int)addr_count-1);<br> output->ac++;<br> }<br> }<br> fclose(dump);<br> return 0;<br>}<br><br>int parse_dfz(char *dfz_dump, struct audit *output) {<br> FILE *dump = fopen(dfz_dump, "r");<br> char buffer[1024] = {0};<br> int rc = 0, mult = 0, cidr = 0;<br> char *delim;<br> if(!dump) {<br> return -1;<br> }<br> while(fgets(buffer, 1024, dump)) {<br> if(buffer[0] >= '1' && buffer[0] <= '9' && strtok(buffer, "/") && strchr(buffer, '.')) {<br> rc++;<br> }<br> }<br> output->dfz = calloc(rc, sizeof(struct routes));<br> output->dfz_count = rc;<br> if(!output->dfz) {<br> return -1;<br> }<br> rewind(dump);<br> rc = 0;<br> while(fgets(buffer, 1024, dump)) {<br> if(buffer[0] >= '1' && buffer[0] <= '9') {<br> cidr = 0;<br> delim = strtok(buffer, "/");<br> delim = strtok(NULL, "/");<br> if(!delim) {<br> memset(buffer, 0, 1024);<br> continue;<br> }<br> mult = 1;<br> for(int i = 0; i < 3; i++) {<br> if(delim[i] >= '0' && delim[i] <= '9') {<br> cidr = cidr * mult+(9-('9'-delim[i]));<br> mult*=10;<br> }<br> }<br> delim = strchr(buffer, '.');<br> if(!delim) {<br> memset(buffer, 0, 1024);<br> continue;<br> }<br> output->dfz[rc].cidr = cidr;<br> inet_pton(AF_INET, buffer, &output->dfz[rc].network);<br> output->dfz[rc].cidr = cidr;<br> output->dfz[rc].network = __builtin_bswap32((unsigned int)output->dfz[rc].network);<br> output->dfz[rc].mask = (~(unsigned int)0) << (32-cidr);<br> output->dfz[rc].broadcast = output->dfz[rc].network + ((~(unsigned int)0) >> cidr);<br> output->dfz[rc].network = __builtin_bswap32((unsigned int)output->dfz[rc].network);<br> output->dfz[rc].broadcast = __builtin_bswap32((unsigned int)output->dfz[rc].broadcast);<br> rc++;<br> memset(buffer, 0, 1024);<br> }<br> }<br> fclose(dump);<br> return 0;<br>}<br><br>int audit_reserved(struct audit *data) {<br> int hijack_count = 0;<br> for(int i = 0; i < data->dfz_count; i++) {<br> unsigned int dfz_net = __builtin_bswap32((unsigned int)data->dfz[i].network);<br> unsigned int dfz_bcast = __builtin_bswap32((unsigned int)data->dfz[i].broadcast);<br> for(int r = 0; r < data->rc; r++) {<br> unsigned int resv_net = __builtin_bswap32((unsigned int)data->reserved[r].network);<br> unsigned int resv_bcast = __builtin_bswap32((unsigned int)data->reserved[r].broadcast);<br> if(dfz_net >= resv_net && dfz_net <= resv_bcast) {<br> hijack_count += ((dfz_bcast-dfz_net)+1);<br> char dfz_route[INET_ADDRSTRLEN] = {0};<br> char resv_network[INET_ADDRSTRLEN] = {0};<br> char resv_broadcast[INET_ADDRSTRLEN] = {0};<br> inet_ntop(AF_INET, &data->dfz[i].network, dfz_route, INET_ADDRSTRLEN);<br> inet_ntop(AF_INET, &data->reserved[r].network, resv_network, INET_ADDRSTRLEN);<br> inet_ntop(AF_INET, &data->reserved[r].broadcast, resv_broadcast, INET_ADDRSTRLEN);<br> printf("%s/%d fell between reserved range %s -> %s [Adding %d addresses to potential hijack]\n",<br> dfz_route, data->dfz[i].cidr, resv_network, resv_broadcast, (dfz_bcast-dfz_net)+1);<br> }<br> }<br> for(int a = 0; a < data->ac; a++) {<br> unsigned int avail_net = __builtin_bswap32((unsigned int)data->available[a].network);<br> unsigned int avail_bcast = __builtin_bswap32((unsigned int)data->available[a].broadcast);<br> if(dfz_net >= data->available[a].network && dfz_net <= data->available[a].broadcast) {<br> hijack_count += ((data->available[a].broadcast-data->available[a].network)+1);<br> char dfz_route[INET_ADDRSTRLEN] = {0};<br> char avail_network[INET_ADDRSTRLEN] = {0};<br> char avail_broadcast[INET_ADDRSTRLEN] = {0};<br> inet_ntop(AF_INET, &data->dfz[i].network, dfz_route, INET_ADDRSTRLEN);<br> inet_ntop(AF_INET, &avail_net, avail_network, INET_ADDRSTRLEN);<br> inet_ntop(AF_INET, &avail_bcast, avail_broadcast, INET_ADDRSTRLEN);<br> printf("%s/%d fell between available range %s -> %s\n", dfz_route, data->dfz[i].cidr, avail_network, avail_broadcast);<br> }<br> }<br> }<br> printf("Found %d potentially hijacked addresses\n", hijack_count);<br> return 0;<br>}<br><br>int main(int argc, const char * argv[]) {<br> struct audit data = {0};<br> if(parse_dfz(BGP_DUMP, &data))<br> return EXIT_FAILURE;<br> if(parse_afrinic_extended(AFRINIC_EXT, &data))<br> return EXIT_FAILURE;<br> printf("Found %d total available addresses and %d total reserved addresses\n", data.total_avail, data.total_resv);<br> audit_reserved(&data);<br> return EXIT_SUCCESS;<br>}<u></u><u></u></p></div></div></div></div></div></blockquote></div>