It is not blocking its own IP. Callbacks is used for many other things.
Did some quick debug, and here is the real rub for future reference of others.
On a multi-site install, all sites were moved to use SSL/https.
The htaccess for all was updated to redirect any attempts to access https:// over to https:// All sites have been running fine on https only for a long time, everyone happy. Except WordFence apparently. ??
In WordPress, all sites but ONE (main domain), had also had site-info edited for options/meta tables to point to the https:// locations. All EXCEPT the main site, which WordPress do not allow you to edit in WordPress site settings. It for some odd reason must be handled by manually rooting around and hand-editing meta-values in the raw tables.
Anyway.. Since all sites were happily running on https, that last manual database edit was never done, and so any calls to “home_url()” for that site would return the https:// version. Never noticed, because any such attempt was happily redirected onto https:// by htaccess. ?? Everything working fine.
Except now, that leads us back to WordFence. ??
WordFence issues a non-blocking POST (not a GET) to call home_url(‘/’) with wordpress_syncattackData as a query parameter. I am not sure why it is a POST, since it is not actually “Posting” any data. At least at first glance it seems a GET would work just as well, and it would follow the redirects..
wp_remote_post(add_query_arg('wordfence_syncAttackData', microtime(true),
home_url('/')), array(
'timeout' => 0.01,
'blocking' => false,
'sslverify' => apply_filters('https_local_ssl_verify', false)
));
But on the un-edited site, a POST to https:// is met with a 301 Redirect. Repeatedly.
Since a POST, unlike a GET, is not allowed to follow the redirect to the better location, it instead fails. Unseen anywhere, since it is a non-blocking call. The attempt just vanishes into the blue yonder. No failures logged anywhere.
WordFence then VERY quickly counts to 10 (attempts), goes into panic mode, and start echo’ing it’s call-pattern through JS script calls into the page-source to instead be visible and called by real visitors. Which is how GoogleBot finds the WordFence link in the page-code. ??