<html>
    <head>
      <base href="https://bugzilla.netfilter.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - "nft -s list ruleset" should include "flush ruleset" as first line"
   href="https://bugzilla.netfilter.org/show_bug.cgi?id=1696#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - "nft -s list ruleset" should include "flush ruleset" as first line"
   href="https://bugzilla.netfilter.org/show_bug.cgi?id=1696">bug 1696</a>
              from <span class="vcard"><a class="email" href="mailto:apachez@gmail.com" title="Apachez <apachez@gmail.com>"> <span class="fn">Apachez</span></a>
</span></b>
        <pre>Because when taking a backup I would expect it to be able to restore without
having to reboot the full box, and also be able to restore without throwing out
all sort of hard to troubleshoot errors such as:

# BUG: invalid input descriptor type 1634164560
# nft: erec.c:161: erec_print: Assertion `0' failed.

Another option would be to implement a "save" and "restore" option such as:

# nft save ruleset /path/backup.nft

and

# nft restore ruleset /path/backup.nft

The "save ruleset" would add "flush ruleset" as first line to the output file
(and whatever other commands might be needed).

While "restore ruleset" would use "flush ruleset" as the first line if that
doesnt exists in the input file.

This way doing something like this would work without getting odd errors:

# nft save ruleset /path/backup.nft
# nft -o -f /path/backup.nft</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are watching all bug changes.</li>
      </ul>
    </body>
</html>