Adding another helper may be helpful, as it would probably gives us greater
control, and maybe also solve the "helper-script" issue in the future by
putting that stuff inside Wireshark? I am just wondering if it is worth the
effort. We can obviously strive for a perfect - no user interaction
required - solution, but do we really need to be perfect here?

In my experience, as long as we can solve the real issue - the zombie
processes - and have minimal interaction by the creators of the original
extcaps we should be fine. Now as I understand it, we can achieve that at
some level with one of the proposed solutions above, just not in an ideal
way, right?

I am fine with having developers adapt their script, as long as there is
some form of compatibility mode, and maybe some warning displayed before
starting a non-converted extcap

kind regards
Roland


Am Di., 23. Aug. 2022 um 10:38 Uhr schrieb Tomasz Moń <deso...@gmail.com>:

> On Mon, Aug 22, 2022 at 9:37 PM Jirka Novak <j.no...@netsystem.cz> wrote:
> > >> What do you think about that options?
> > >
> > > I have no idea why you didn't even consider sending CTRL_BREAK_EVENT
> > > using GenerateConsoleCtrlEvent() as a graceful shutdown mechanism on
> > > Windows. Wireshark creates all extcaps with a hidden console window
> > > (CREATE_NEW_CONSOLE and SW_HIDE flags set).
> > >
> > > CTRL_BREAK_EVENT is really simple to handle on extcap side, as it only
> > > requires calling SetConsoleCtrlHandler() to register a handler. The
> > > handler will be called in separate thread (unlike UNIX signals), but
> > > the issues related to the separate thread are exactly the same in any
> > > of the three methods you proposed. Registering handler is really an
> > > opt-in, as the default handler simply terminates the process.
> >
> > I'm sorry, my understanding was it is in !2063. I was wrong, I will try
> it.
>
> The problem with GenerateConsoleCtrlEvent() is that the caller has to
> be attached to the target process console. While we could technically
> do so, it requires freeing any already open console because process
> can be attached to at most one console. The pretty much only sane
> solution to the problem is to have a helper program between Wireshark
> and extcap.
>
> The helper would simply spawn extcap with provided parameters and
> accept commands from Wireshark e.g. on pipe. The commands would be to
> gracefully terminate (CTRL_C_EVENT or CTRL_BREAK_EVENT) and forcefully
> terminate (TerminateProcess()). Note that the helper must not be
> forcefully terminated as it would leave the extcap running.
>
> While far from ideal, I think the helper is the only sensible
> approach. Note that GLib gspawn-win32-helper does something different,
> so going back to the GLib helper is not what this is all about.
>
> Best Regards,
> Tomasz Moń
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
> Archives:    https://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
>              mailto:wireshark-dev-requ...@wireshark.org
> ?subject=unsubscribe
>
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to