How to download and install builds of the latest iperf3 Windows versions

iperf3 is a very useful network throughput testing tool, however the most prominent versions available for Windows are either old, buggy or superceded by newer builds. It's always worth keeping up to date with the latest available build, but most people on Windows won't be able to compile from source due to lack of knowledge/lack of time.

The ESNet project maintains iperf3 but doesn't release compiled binaries for Windows. Sites like the high-visibility iperf.fr only host up to v3.1.3 which dates back to 2016 - six years old as of writing, and the operator of that site appears to have gone AWOL or has stopped updating it.

Fortunately, the wonderful user BudMan on the Neowin forums decided to do something about this, and has been steadily compiling the latest iperf3 builds for Windows and hosting them for download since 2014! Someone should buy BudMan a beer. Another Neowin user CryptAnalyst has also recently begun compiling for Windows and is publishing builds to their GitHub. Spoiled for choice!

https://www.neowin.net/forum/topic/1234695-iperf-311-windows-build/ has the latest build linked directly, and you can download all previous releases from https://files.budman.pw.

For ease of use on the command line, don't forget to extract the zip to a 'persistent' location, then add that folder to your Windows PATH environment variable (it only takes a few seconds). Here's another guide on how to do it in Windows 10; the process is very similar for Windows 7 (see also https://stackoverflow.com/questions/23400030/windows-7-add-path).

Of course, adding the iperf3 path to your Windows PATH variable is optional, but it's convenient. Once done, you can just invoke "iperf3" from a prompt like anything else. Happy throughput testing.

Compiling the HTTP Substitutions Filter module for NGINX on CentOS 7

I use NGINX for various things, including one niche case, where I rewrite and replace strings before presenting them to the user. I do this using the HTTP substitutions filter module. The readily-compiled module to accomplish this is included with the paid NGINX Plus, but is also available to DIY compile if you have the ability.

If you're just looking for precompiled .so files you can use with NGINX on CentOS 7 available from the nginx.org repository, see the end of this post.

A while ago I took the time to work out how to compile this for updates; the CentOS box I run NGINX on uses yum packages for updates, but then the subs filter module stops working. So, after half an hour or so of tinkering, quiet swearing, obtaining of additional packages, tweaking commandlines etc... I have a working oneliner to make an NGINX build which will also compile a suitable ngx_http_subs_filter_module.so file. 

To compile this dynamic module you generally need to build with the same switches used for the packaged build. So, first step was to find out how it was compiled:

See how to check your compile flags, and how to build from source

Postfix "unavailable. unsupported dictionary type 1111" on restart? Check your brackets!

I was recently modifying a Postfix config to do some debug logging of transactions for a specific IP addresses. To do this, I modified the smtp and smtps services in master.cf to get the most verbose logging possible. 

However, I'd failed to remember to encapsulate the IPv6 address with brackets. And so, I got this in the log after restarting Postfix:

Feb  5 18:28:29 l03 postfix/smtpd[21037]: warning: 1111:2222::7777:8888 is unavailable. unsupported dictionary type: 2a04
Feb  5 18:28:29 l03 postfix/smtpd[21037]: warning: 1111:2222::7777:8888: table lookup problem

(To confuse me, that address was also the one listed in a client_checks.cidr file I'd put together which was also part of my investigation).

And when that client was attempting to connect to send an email, I was seeing this:

Continue reading "Postfix "unavailable. unsupported dictionary type 1111" on restart? Check your brackets!"

Canon Pixma owners: this one simple trick makes your printer's feed rollers able to grab paper again!

I have a cheap Canon Pixma MG5750, a Currys PC World purchase when I needed a cheap multifunction printer fast. Was handy at £45 (another set of genuine ink for it costs the same, go figure) but obviously I never expected it to be perfect.

Unfortunately, one of the fundamental requirements of any printer - to be able to take in paper successfully - was a little lacking with this unit. Resarch indicates it's sadly a common issue with this range of Canon printers.

Soon after buying mine, the paper feed (take-up of paper from the tray into the mechanism) started to behave irregularly; soon after that I ended up having to nudge each sheet of paper in to the printer, it was unable to take in paper itself. Not convenient.

I put up with this for a while but an attempt to print some documents evening pushed me into investigating. The fix, as it turns out, is really simple!

Click to read more and see photos of the paper feed roller fix
I