dannagle / PacketSender

Network utility for sending / receiving TCP, UDP, SSL, HTTP
https://packetsender.com
GNU General Public License v2.0
2.35k stars 367 forks source link

Reduce of command line dependencies #291

Closed lazna closed 1 year ago

lazna commented 2 years ago

Make packetsender.com free of dependency on almost all bundled DLL, and thus make it better redistributable.

dannagle commented 2 years ago

OpenSSL and several run-time redistributables cannot be removed. However, if only command-line is desired, a good chunk of the GUI libraries could potentially be dropped.

Having a completely separate download for just command-line is too much hassle. Instead, a .bat file could be included to help purge the unneeded DLLs to make the directly command-line only.

lazna commented 2 years ago

Isnt a solution to check SSL libraries just in moment when SSL is employed (HTTPS packes is assembled), instead of check it on program startup?

dannagle commented 2 years ago

That is exactly how it works currently. If there are no SSL libraries, then you simply cannot use encrypted connections such as HTTPS or TLS.

I bundle OpenSSL on Windows because I cannot use its built-in libraries (easily). For MacOS and Linux, I can use its built-in crypto libraries.

lazna commented 2 years ago

So, in case someone not utilizing sercured protocols, only packetsender.com will be enough for command line operations?

Also print errormessage into console STDERR (in case of console usage, when some library missing) is better than pop-up GUI msgbox, because STDERR could be handled by script. Console programs generally should never open GUI box and wait for user interaction, it could happen in some server or in hidden environment started by taskscheduler, where is ho chance to click on it...... And set-up specific (documented!!) exitcodes in case of error, will be absolutelly perfect.

dannagle commented 2 years ago

You still need the run-time libraries. Not needing secure protocols only saves maybe 4 DLLs.

lazna commented 2 years ago

You still need the run-time libraries. Not needing secure protocols only saves maybe 4 DLLs.

Make it as small as possible for cmdline usage, please.

dannagle commented 1 year ago

Development branch now has the fix so GUI libraries are not needed for command-line only use.

lazna commented 1 year ago

is there a list of DLLs, which could be omitted when packing console only reditributable zip?

dannagle commented 1 year ago

Eventually, yes. The README will be updated in the next release.

lazna commented 1 year ago

You still need the run-time libraries. Not needing secure protocols only saves maybe 4 DLLs.

Are you cut this secure protocols dll too? This may be required even at point user assemble secure protocol packet.

dannagle commented 1 year ago

You can remove the secure DLLs now. That will remove any features that use SSL.

lazna commented 1 year ago

So for console operation without security functions, only main exe file in enough now?

dannagle commented 1 year ago

You still need the core run-time libraries. You won't need as near as many. I don't have the exact number, but the biggest ones, the graphics libraries, can be eliminated.

lazna commented 1 year ago

Thansk for your effort. It would be great if this will be mented in readme file:

dannagle commented 1 year ago

https://github.com/dannagle/PacketSender/blob/master/README.md#ddls-that-can-be-removed-in-console-only-portable-mode

lazna commented 1 year ago

Perfect, thank you!!