kylefarris / clamscan

A robust ClamAV virus scanning library supporting scanning files, directories, and streams with local sockets, local/remote TCP, and local clamscan/clamdscan binaries (with failover).
MIT License
230 stars 68 forks source link

feat: Allow connection to clamd through a TLS proxy #106

Closed carboneater closed 1 year ago

carboneater commented 1 year ago

Quite a small code change, which required quite a lot of CI patches to get back in working order.

kylefarris commented 1 year ago

Thanks for your contribution @carboneater! Looks like the CI suite tests all got cancelled after about 1 minute. Are you able to see the results or not? If not, I'll see what I can do to get you access to seeing them.

carboneater commented 1 year ago

Thanks for your contribution @carboneater! Looks like the CI suite tests all got cancelled after about 1 minute. Are you able to see the results or not? If not, I'll see what I can do to get you access to seeing them.

Yes, I can see tests failed with

Reason: invalid scanner: expected promise not to be rejected with 'Error' but it was rejected with 'Error: connect ENOENT /var/run/clamav…' Error: connect ENOENT /var/run/clamav/clamd.ctl Unhandled Rejection reason: [AssertionError: invalid scanner: expected promise not to be rejected with 'Error' but it was rejected with 'Error: connect ENOENT /var/run/clamav…'] ...

However, that's the first time I hit this case in github actions... It's as if the same workflow ran on two very different machines... Double-checking the workflows, when I ran the tests using ubuntu-latest I had 22.04 machines. The machine running the test for Node 17 was a 20.04 machine.

According to the github post, 20.04 should be almost completely phased out of ubuntu-latest So we can re-run the workflow and see how it goes. Or we can pin ubuntu-22.04 instead.

(Side note, even on my branch, the pipeline is flaky on the following test, but that feels like a race condition to me.) https://github.com/carboneater/clamscan/actions/runs/3622245476/jobs/6110552743#step:18:173

kylefarris commented 1 year ago

Looks like when I re-ran the tests, everything worked. GitHub Actions don't seem super reliable. But maybe pinning Jaunty was the key.

kylefarris commented 1 year ago

I still need to re-run the tests multiple times to get them to complete. Not sure what's up with that. But, the tests have passed so I'll get this merged in.