Skip to content

SimpleDeFence 0.1.2 beta

Pre-release
Pre-release

Choose a tag to compare

@fcoltro fcoltro released this 29 Aug 16:36
· 59 commits to main since this release

SimpleDeFence 0.1.2 beta

A fix release. 0.1.1 should be replaced rather than kept: the service ran and
the firewall worked, but nothing could talk to it.

Fixes

  • The control pipe refused every request. The service authorized a caller by
    impersonating it and only then read the request, which Windows does not
    permit - ImpersonateNamedPipeClient fails until the server has read from the
    pipe. The check therefore threw on every request, and a failure to establish
    who is calling is treated as a refusal, so the refusal was total. The service
    still reported itself as Running, which is why the symptom was a GUI that
    could not connect while asking whether the service was installed and running.
    The request is now read before the caller is authorized.
  • The uninstall failed part-way through and rolled back. It asked the service
    to stop over that same pipe, ignored the answer, waited fifteen seconds and
    then failed the whole transaction - leaving the product registered and half
    removed, with stopping the service by hand in services.msc the only way out.
    It now checks the answer, falls back to the service control manager, and
    continues with removal rather than rolling back.
  • The update descriptor advertised 0.1.0, which is below the 0.1.1 it was meant
    to supersede, so no installed client would ever have been offered an update.

Verified

  • A clean install and a normal uninstall were run on a Windows 11 machine with
    no leftover configuration. The service starts, registers its firewall
    objects, and logs no exceptions for the whole cycle; the uninstall completes
    in about four seconds and removes the service, the product registration, the
    install directory and every firewall object.
  • The GUI has still not been exercised on a real desktop. The control pipe was
    confirmed through the same client code the GUI uses, not through the window.

Known issues

  • On a standard user account the GUI runs unprivileged and cannot command the
    service; it says so and offers to restart elevated.
  • The installer is not code-signed.