[DigitalPoint] App for Cloudflare®

[DigitalPoint] App for Cloudflare® 1.9.9

No permission to download
I am on 8.3.28 and it appears to be doing the same here. I even waited for a while refreshing the folder containing the uploaded test attachment. I would keep an eye if it does disappear after a few hours!
 
  • Sad
Reactions: rdn
I tested a video file, if it matters, as it's easier to locate on R2 than to test an image attachment.
If not a PHP 8.3/8.5 issue, could it be XF 2.3.8?

I am on 8.3.28 and it appears to be doing the same here
Do you have any attachment-related add-ons installed?
 
i do not think so except for this one. i only have it enabled for a few members and it is rarely used. reason why i never bothered to check this before lol.
 
It would be really nice to see in the CF analytics widget if AI bots are throwing a party on my site...
CloudFlare has AI Crawl Control Metrics. I found that Meta AI was getting ridiculous and needed to be blocked.
 
looks like it took around 50m but that image is gone from r2 bucket for me now! maybe it is being handled by a hourly cleanup cronjob?
 
I tested a video file, if it matters, as it's easier to locate on R2 than to test an image attachment.
If not a PHP 8.3/8.5 issue, could it be XF 2.3.8?


Do you have any attachment-related add-ons installed?
If you are talking about the underlying attachment data file, XenForo only deletes them hourly as part of the attachment clean up. Internally, XenForo treats attachments and attachment data differently (there is an xf_attachment table and a different xf_attachment_data table. When you delete an attachment, the attachment is immediately deleted, but the attachment data (which also includes the data file) is deleted as part of an hourly cleanup process.

If that's what you are seeing, it's nothing to do with the version of PHP, a lag with R2 or anything this addon is doing (it's the same behavior if you are using the local filesystem). It's just how XenForo works (and as always worked as far back as I can remember).
 
@digitalpoint is there any reason you haven't considered to an option to set up Edge TTL for
Code:
(http.request.uri.path.extension in {"css" "js" "png" "jpg" "jpeg" "gif" "ico" "svg" "webp" "woff" "woff2"})
?
 
@digitalpoint is there any reason you haven't considered to an option to set up Edge TTL for
Code:
(http.request.uri.path.extension in {"css" "js" "png" "jpg" "jpeg" "gif" "ico" "svg" "webp" "woff" "woff2"})
?

It already does (and has for a long time). This expression for a Cache Rule was generated by this addon for example:
Code:
(ends_with(http.request.uri.path, ".7z")) or (ends_with(http.request.uri.path, ".avi")) or (ends_with(http.request.uri.path, ".bz2")) or (ends_with(http.request.uri.path, ".csv")) or (ends_with(http.request.uri.path, ".css")) or (ends_with(http.request.uri.path, ".dmg")) or (ends_with(http.request.uri.path, ".doc")) or (ends_with(http.request.uri.path, ".docx")) or (ends_with(http.request.uri.path, ".eps")) or (ends_with(http.request.uri.path, ".exe")) or (ends_with(http.request.uri.path, ".gif")) or (ends_with(http.request.uri.path, ".gz")) or (ends_with(http.request.uri.path, ".ico")) or (ends_with(http.request.uri.path, ".iso")) or (ends_with(http.request.uri.path, ".jar")) or (ends_with(http.request.uri.path, ".jpeg")) or (ends_with(http.request.uri.path, ".jpg")) or (ends_with(http.request.uri.path, ".js")) or (ends_with(http.request.uri.path, ".mid")) or (ends_with(http.request.uri.path, ".midi")) or (ends_with(http.request.uri.path, ".mp3")) or (ends_with(http.request.uri.path, ".mp4")) or (ends_with(http.request.uri.path, ".mpeg")) or (ends_with(http.request.uri.path, ".ogg")) or (ends_with(http.request.uri.path, ".pdf")) or (ends_with(http.request.uri.path, ".ppt")) or (ends_with(http.request.uri.path, ".pptx")) or (ends_with(http.request.uri.path, ".rar")) or (ends_with(http.request.uri.path, ".tar")) or (ends_with(http.request.uri.path, ".svg")) or (ends_with(http.request.uri.path, ".svgz")) or (ends_with(http.request.uri.path, ".ttf")) or (ends_with(http.request.uri.path, ".webm")) or (ends_with(http.request.uri.path, ".webp")) or (ends_with(http.request.uri.path, ".woff")) or (ends_with(http.request.uri.path, ".woff2")) or (ends_with(http.request.uri.path, ".xls")) or (ends_with(http.request.uri.path, ".xlsx")) or (ends_with(http.request.uri.path, ".zip"))

It probably does make sense to clean it up though now that http.request.uri.path.extension is a thing, and probably could use some extra extensions like avif.
 
It already does (and has for a long time). This expression for a Cache Rule was generated by this addon for example:
That's weird, I don't see that cache rule on the CF account (even creating a new API key). What should I do to force the creation of it? By default it isn't created
 
That's weird, I don't see that cache rule on the CF account (even creating a new API key). What should I do to force the creation of it? By default it isn't created
It doesn’t add rules unless you ask it to.

XF Admin -> Cloudflare -> Rules -> Rules… -> Cache static content
 
Is this error related to this add-on?

  • ValueError: inet_pton(): Argument #1 ($ip) must not contain any null bytes
  • src/XF/Util/Ip.php:14
  • Generated by: Unknown account
  • Feb 8, 2026 at 4:23 PM

Stack trace​

#0 src/XF/Util/Ip.php(14): inet_pton([invalid])
#1 src/XF/Entity/Ip.php(25): XF\Util\Ip::stringToBinary([invalid], false)
#2 src/XF/Mvc/Entity/Entity.php(842): XF\Entity\Ip->verifyIp([invalid], 'ip', 6, Array)
#3 src/XF/Mvc/Entity/Entity.php(683): XF\Mvc\Entity\Entity->_verifyValueCustom([invalid], 'ip', 6, Array)
#4 src/XF/Mvc/Entity/Entity.php(618): XF\Mvc\Entity\Entity->set('ip', [invalid])
#5 src/XF/Repository/IpRepository.php(29): XF\Mvc\Entity\Entity->__set('ip', [invalid])
#6 src/XF/Service/Post/PreparerService.php(254): XF\Repository\IpRepository->logIp(25492, [invalid], 'post', 150769)
#7 src/XF/Service/Post/PreparerService.php(199): XF\Service\Post\PreparerService->writeIpLog([invalid])
#8 src/XF/Service/Thread/ReplierService.php(236): XF\Service\Post\PreparerService->afterInsert()
#9 src/addons/DigitalPoint/Analytics/XF/Service/Thread/Replier.php(9): XF\Service\Thread\ReplierService->_save()
#10 src/XF/Service/ValidateAndSavableTrait.php(42): DigitalPoint\Analytics\XF\Service\Thread\Replier->_save()
#11 src/XF/PreRegAction/Thread/Reply.php(47): XF\Service\Thread\ReplierService->save()
#12 src/XF/PreRegAction/AbstractHandler.php(132): XF\PreRegAction\Thread\Reply->executeAction(Object(XF\Entity\PreRegAction), Object(SV\SearchImprovements\XF\Entity\ThreadCollab), Object(SV\ElasticSearchEssentials\XF\Entity\User))
#13 src/XF.php(914): XF\PreRegAction\AbstractHandler->XF\PreRegAction\{closure}()
#14 src/XF/PreRegAction/AbstractHandler.php(125): XF::asVisitor(Object(SV\ElasticSearchEssentials\XF\Entity\User), Object(Closure))
#15 src/XF/Repository/PreRegActionRepository.php(96): XF\PreRegAction\AbstractHandler->completeAction(Object(XF\Entity\PreRegAction), Object(SV\ElasticSearchEssentials\XF\Entity\User))
#16 src/XF/Repository/PreRegActionRepository.php(126): XF\Repository\PreRegActionRepository->completeUserAction(Object(SV\ElasticSearchEssentials\XF\Entity\User), NULL)
#17 src/XF/ControllerPlugin/LoginPlugin.php(199): XF\Repository\PreRegActionRepository->completeUserActionIfPossible(Object(SV\ElasticSearchEssentials\XF\Entity\User), NULL)
#18 src/addons/SV/UserAutocomplete/XF/ControllerPlugin/Login.php(15): XF\ControllerPlugin\LoginPlugin->completeLogin(Object(SV\ElasticSearchEssentials\XF\Entity\User), true)
#19 src/XF/Pub/Controller/LoginController.php(183): SV\UserAutocomplete\XF\ControllerPlugin\Login->completeLogin(Object(SV\ElasticSearchEssentials\XF\Entity\User), true)
#20 src/addons/DigitalPoint/Analytics/XF/Pub/Controller/Login.php(13): XF\Pub\Controller\LoginController->actionLogin(Object(XF\Mvc\ParameterBag))
#21 src/XF/Mvc/Dispatcher.php(362): DigitalPoint\Analytics\XF\Pub\Controller\Login->actionLogin(Object(XF\Mvc\ParameterBag))
#22 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'Login', Object(XF\Mvc\RouteMatch), Object(DigitalPoint\Cloudflare\XF\Pub\Controller\Login), NULL)
#23 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(DigitalPoint\Cloudflare\XF\Pub\Controller\Login), NULL)
#24 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#25 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#26 src/XF.php(814): XF\App->run()
#27 index.php(23): XF::runApp('XF\\Pub\\App')
#28 {main}

Request state​

array(4) {
["url"] => string(12) "/login/login"
["referrer"] => string(30) "https://rvforums.com/register/"
["_GET"] => array(0) {
}
["_POST"] => array(5) {
["_xfToken"] => string(8) "********"
["login"] => string(10) "[removed]"
["password"] => string(8) "********"
["remember"] => string(1) "1"
["_xfRedirect"] => string(30) "https://rvforums.com/register/"
}
}
 
Is this error related to this add-on?
It is not, although I do know what the issue is. PHP changed how inet_pton() works in PHP versions 8.5.1, 8.4.16, 8.3.29, 8.2.30 and 8.1.34

You can find the relevant bug report for XenForo here:


XenForo needs an update to it's XF/Util/Ip.php to make it compatible with the newer versions of PHP.
 
Hi Digital, I have a question regarding an issue with cron tasks on my forum. I noticed on the Cron Entries page that all tasks, including News Publisher, AMS, and even native XenForo cron jobs, were stuck with a “Next run” date of February 9, which was three days in the past. Because of this, nothing was publishing automatically. I also tried setting up a cron job manually through cPanel, but the issue persisted. This problem started after I updated to the latest version of XenForo. To troubleshoot, I began disabling add ons one by one. As soon as I disabled the Cloudflare add on, all scheduled tasks immediately began running again.

Do you have any idea what might be causing this?
 
Hi Digital, I have a question regarding an issue with cron tasks on my forum. I noticed on the Cron Entries page that all tasks, including News Publisher, AMS, and even native XenForo cron jobs, were stuck with a “Next run” date of February 9, which was three days in the past. Because of this, nothing was publishing automatically. I also tried setting up a cron job manually through cPanel, but the issue persisted. This problem started after I updated to the latest version of XenForo. To troubleshoot, I began disabling add ons one by one. As soon as I disabled the Cloudflare add on, all scheduled tasks immediately began running again.

Do you have any idea what might be causing this?
Without an error of some sort, no.
 
digitalpoint submitted a new resource:

[DigitalPoint] Cloudflare - Configure and manage Cloudflare from within XenForo.



Read more about this resource...
ErrorException: [E_WARNING] Trying to access array offset on value of type bool in src/addons/DigitalPoint/Cloudflare/Repository/Cloudflare.php at line 1138
  1. XF::handlePhpError() insrc/addons/DigitalPoint/Cloudflare/Repository/Cloudflare.php at line 1138
  2. DigitalPoint\Cloudflare\Repository\CloudflareAbstract->getZoneSettings() insrc/addons/DigitalPoint/Cloudflare/Repository/Cloudflare.php at line 816
  3. DigitalPoint\Cloudflare\Repository\CloudflareAbstract->organizeSettings() insrc/addons/DigitalPoint/Cloudflare/Admin/Controller/Cloudflare.php at line 50
  4. DigitalPoint\Cloudflare\Admin\Controller\Cloudflare->actionIndex() insrc/XF/Mvc/Dispatcher.php at line 362
  5. XF\Mvc\Dispatcher->dispatchClass() insrc/XF/Mvc/Dispatcher.php at line 265
  6. XF\Mvc\Dispatcher->dispatchFromMatch() insrc/XF/Mvc/Dispatcher.php at line 121
  7. XF\Mvc\Dispatcher->dispatchLoop() insrc/XF/Mvc/Dispatcher.php at line 63
  8. XF\Mvc\Dispatcher->run() in src/XF/App.phpat line 2824
  9. XF\App->run() in src/XF.php at line 814
  10. XF::runApp() in admin.php at line 15
Bu hataları alıyorum api çalısıyor bir peoblem yok ve dili türkçeye çeviremedim
 
ErrorException: [E_WARNING] Trying to access array offset on value of type bool in src/addons/DigitalPoint/Cloudflare/Repository/Cloudflare.php at line 1138
  1. XF::handlePhpError() insrc/addons/DigitalPoint/Cloudflare/Repository/Cloudflare.php at line 1138
  2. DigitalPoint\Cloudflare\Repository\CloudflareAbstract->getZoneSettings() insrc/addons/DigitalPoint/Cloudflare/Repository/Cloudflare.php at line 816
  3. DigitalPoint\Cloudflare\Repository\CloudflareAbstract->organizeSettings() insrc/addons/DigitalPoint/Cloudflare/Admin/Controller/Cloudflare.php at line 50
  4. DigitalPoint\Cloudflare\Admin\Controller\Cloudflare->actionIndex() insrc/XF/Mvc/Dispatcher.php at line 362
  5. XF\Mvc\Dispatcher->dispatchClass() insrc/XF/Mvc/Dispatcher.php at line 265
  6. XF\Mvc\Dispatcher->dispatchFromMatch() insrc/XF/Mvc/Dispatcher.php at line 121
  7. XF\Mvc\Dispatcher->dispatchLoop() insrc/XF/Mvc/Dispatcher.php at line 63
  8. XF\Mvc\Dispatcher->run() in src/XF/App.phpat line 2824
  9. XF\App->run() in src/XF.php at line 814
  10. XF::runApp() in admin.php at line 15
Bu hataları alıyorum api çalısıyor bir peoblem yok ve dili türkçeye çeviremedim
Is your domain setup as zone in your Cloudflare account? That error implies there’s an issue retrieving settings for your zone.
 
Back
Top Bottom