Pages: 1
Hello everyone,
Today I found out that in the _data/combined folder of our Piwigo gallery, there are almost a million CSS-files (and 130 JS-files) that take up over 70Gb (!) of space. This huge amount of space is more than included in my hosting plan so the hosting company deceided to suspend our account, I can't even access the site or gallery at this moment.
I can access the files using FTP/Filezilla. I'm trying to remove all these (cache?) files but it takes quite some time... might take a few days.
Now i'm wondering: how is it possible that one cache folder takes up THIS MUCH space? I found some info about the cache folders in this forum but I couln't find an actual explanation or questions about the exact same issue.
Maybe even more important: when the site will be up and running again, and Piwigo wil (re)generate the necessary CSS and JS files, will I have the same problem in a couple of days/months/years? Is it possible to prevent these CSS-files from being saved?
Some background information:
- I updated to the latest Piwigo version in April 2024
- The gallery contains about 100 to 150 albums
- It contains about 10.000 photos (max. resolution of 1024px)
- We imported most of the albums from Gallery3 to Piwigo in 2022, using the Menalto2Piwigo plug-in
- The gallery is mainly used as an archive, very low traffic
- Only one or two albums were added after 2022
- Comments are disabled to prevent spam
About the files:
- Files in the combined folder are mostly CSS files
- The files have names like: zzuu3m.css
- Most files contain almost the same code (about 90% overlap)
- The files are al 78KB of 79 KB
- The files all have different timestamps, from 2022 to now
- At some days only 1 file was added, other days over 3000 files (2 files every minute!)
- 2002: 825 files 2023: 1567 files 2024: 989.155 files (!)
- Most files contain CSS starting with these two lines:
/*BEGIN header */
/*BEGIN themes/modus/css/base.css.tpl */
Followed by minimalized CSS code.
Statistics/Analytics:
- I expect our archive gallery to be visited a couple of times a month by real visitors (non-robots)
- The file picture.php is visited about 90.000 times in 2024
- The file index.php is visited about 20.000 times in 2024
- A few JPG files in _data/i/galleries/albumname/.... are visited over 500 times in 2024 (why?)
- These files seem to be connected to code in the CSS files (background URLs)
Well, I can't show the gallery because the site has been shut down by the hosting company. And I'm not very skilled using Piwigo, it's my first and only Piwigo album. Sorry for being such a noob ;-)
If it helps, I can share the CSS code of one of the files.
Hopefully, someone can help me prevent this 'extreme form of caching'?
Thanks!
Last edited by kim (2024-07-04 23:03:38)
Offline
I have also asked myself why those files are generated.
I do not have as many, about 350, yet I do get hundreds of thousands of hits every month, and Piwigos Stats plugin verifies that.
Mine start with lines referring the theme I am using, Bootstrap. So I would guess they are somehow cached to increase the websites speed when presenting content as per your selected theme.
I do have many visits, I expect many visits, yet my cache - or the combined folder - is nowhere near the amount of yours.
Maybe your site got "viral" somehow, and you should take measures to avoid public access, I do not know.
Offline
There is a bit of explanation as to the folders usage in this thread: https://piwigo.org/forum/viewtopic.php?pid=182727 and how to use Piwigos maintenance tools to keep it in check.
Which I do, but not very often.
Last edited by homdax (2024-07-05 12:59:36)
Offline
homdax wrote:
There is a bit of explanation as to the folders usage in this thread: https://piwigo.org/forum/viewtopic.php?pid=182727 and how to use Piwigos maintenance tools to keep it in check.
Thank you @homdax for your reply. I read the thread by 'fchar' yesterday and the issue seems similar indeed. It's good to know that there is an option to purge the cache, I'll definitely try that. But it still does not explain why SO MANY of these files are created in the first place. Over 3000 new cache files a day, that just doesn't seem right.
It might be possible that the gallery got viral somehow, but at this point, I have no idea how to solve that, apart from taking down the gallery for good. The cache files are not created in a short time span, it's happening every day for many months now. So an 'attack' doesn't seem likely? I'll try to found more when I'm able to access the statistics.
If anyone has an explanation of solution for this problem, I'd love to know it!
Last edited by kim (2024-07-05 13:56:17)
Offline
Well, the site is up and running again. All files in the _data/combined folder are deleted.
I cleared the cache (Tools > Maintenance > Clear compiled templates )
Even though it says 'Not available' , it still seems to work; the CSS-files are deleted.
But.... still there are multiple CSS files added to the combined folder every minute.
I changed the theme back from Modus to Elegant (to see if that makes a difference. It doesn't.
Now I'm able to see the history / visitor statistics in Piwigo, I found out that the gallery had over 2,5 million visits in juni 2024. And way to many visitors the months before. These are definetily not 'real visitors from our audience'. Bots? Attack?
I tried to install the Astat.2 plug-in to find out more but I can't activate it (some error occurs). Now i'm using the Statistics plug-in to connect the gallery to Google Analytics. Just to find out more about those 'unwanted visitors'. Let's see what that brings.
I also changed to folder name of the gallery (it's in a subfolder of the root domain). So the URL's are different. That might work. We'll see.
Still, I'd love to know why those CSS files are created!
When visiting the gallery as a non-registered user, the file is loaded in the <head> section:
<!-- BEGIN get_combined -->
<link rel="stylesheet" type="text/css" href="_data/combined/tu87n6.css">
Last edited by kim (2024-07-06 16:30:36)
Offline
I agree about them stats. It is fishy indeed.
Opened an issue at Github asking an explanation (I run another visitor counter as well)
[Github] AStat issue #8
Offline
Thank you for sharing your Github issue @homdax.
In my case, the problem with the extreme visitor stats seems to be solved for now, by changing the URL of the gallery. Not sure for how long though...
The issue with the cache files is still not solved. I have no idea how to prevent all those CSS files from being saved to the _data/combined folder.
If anyone knows the answer, i'd love to know this!
Anyone who can help me out with this?
Offline
Update: I managed to connect our Piwigo album to Google Analytics with the Statistics plug-in.
Somehow, the statistics at Google Analytics are completely different from the Piwigo statistics.
Google Analytics: 1 of 2 visits a day (from the Netherlands & USA). That would make sense.
Piwigo Stats: over 100.000 visits a day (can't be real visitors).
At the Piwigo stats search page, I can see that on 1st of September 2024, there were 111388 visits by 7508 guests. And 1638 downloads by 285 guest. Different albums and photos are visited and downloaded way too many times, every day. From countries like USA, Singapore, France...
I think it might be ghost referral spam. But why do these 'visitors' download thousands of photos every day?
Does anyone know how to prevent this?
I'm still trying to get the AStat.2 plug-in to work. I was able to install the plug-in but when I try to activate it, an error occures.
Edit: I installed the "Grum Plugins Classes.3" and after that, I was able to activate the AStat.2 plug-in but when I go to the AStat settings, I see PHP errors:
----------------
Fatal error: Uncaught mysqli_sql_exception: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay in .......
----------------
Does anyone know how to solve this?
And I'm also still trying to figure out why so many CSS-cache files are stored every month. Any ideas?
I'd be very gratefull!
Last edited by kim (2024-09-06 16:21:21)
Offline
Hi Kim,
There are 2 main subjects in your topic. First, the crazy amount of visits listed by Piwigo Vs Google Analytics. Second, the crazy amount of CSS-cache files.
kim wrote:
Google Analytics: 1 of 2 visits a day (from the Netherlands & USA). That would make sense.
Piwigo Stats: over 100.000 visits a day.
Does anyone have an explanation for this?
Piwigo counts all requests on picture.php or index.php as a visit. No matter if you're a human or a robot.
Google Analytics (and mostly all 3rd party analytics tools) embed a Javascript code in your page and can only count the visitors who execute the javascript. Robots don't. They get automatically excluded.
To also prevent Piwigo from counting robots, you can install/activate [extension by plg] No Stats For Robots : it won't block robots from browsing your Piwigo, but they won't be counted in the visit history.
kim wrote:
And I'm also still trying to figure out why so many CSS-cache files are stored every month. Any ideas?
You are not the first one and I haven't been able to spot the exact problem yet. We host thousands of Piwigo on piwigo.com and I just made a search on "how many _data/combined/*.css does each Piwigo stores?". I have found one where it reaches 18k files. Far from a million, but already huge in my opinion.
When I investigate deeper, here are the most recent files:
Jul 4 14:34 ocjeeu.css Jul 6 10:22 nwwj44.css Jul 6 10:51 mesj1u.css Jul 6 11:04 gj1puk.css Jul 6 12:36 cfdzhe.css Jul 6 12:36 14zyhi0.css Jul 18 16:41 1vstf38.css Jul 18 16:54 h5xw3c.css Jul 18 17:28 afiyxf.css Jul 18 17:28 l5epyd.css Jul 18 17:38 1bbmy8s.css Jul 18 17:53 1umwww1.css Jul 18 19:00 dnomvi.css Jul 18 19:37 7mjdu5.css Jul 18 20:09 1w27rq6.css Jul 18 23:45 dhk281.css Jul 26 13:42 tmbgh.css Jul 26 13:44 1d8d31z.css Jul 28 05:59 1hby2hn.css Jul 31 12:23 1c1gxm1.css Aug 10 09:05 le7cnj.css Aug 10 09:05 jc57g5.css Aug 10 12:40 7czhxz.css Aug 11 09:43 mfmkxt.css Aug 12 10:07 7uw8me.css Aug 15 21:26 177wquh.css Aug 28 15:23 1dpod6t.css Aug 28 15:23 11b4gkw.css Aug 28 15:27 1sjv3d7.css Aug 28 15:28 hmpnjb.css
As we can see, just a few files per month, grouped by days. If I group them by day, I get:
# ls -lrt *.css | awk '{print $6 " " $7 " " $8}' | uniq -c|sort -rn|head 381 Jan 31 2015 303 Feb 20 2015 250 Jul 17 2015 160 Jan 16 2016 158 Jul 18 2015 153 Jan 12 2016 152 May 7 2015 152 Aug 31 2015 138 Jul 21 2015 137 May 6 2015
381 CSS-cache files generated the same day is already huge but it was quite some time ago. Nothing seem to say "in the last versions of Piwigo, we have changed something that produces this problem".
So why 18k files? because the first files are 10 years old in this example.
Then I opened Piwigo source code to understand how the filename is generated:
$key[] = $combinable->path; $key[] = $combinable->version; if ($conf['template_compile_check']) $key[] = filemtime( PHPWG_ROOT_PATH . $combinable->path );
it means that filename is based on the list of CSS to combine + their file modification time.
For now, I suspect that the filename changes at each page opened because the CSS files to combine change their modification time very very often. Maybe in your case the filemtime PHP function always return current time. I'm going to check this.
@kim in file include/template.class.php, after line 1930:
file_put_contents( PHPWG_ROOT_PATH.$file, $output );
insert:
global $logger; $logger->info(__FUNCTION__.' key='.$key.' file='.$file);
Then check your _data/logs files and show us an extract of lines starting with:
[date and time] [INFO] flush_pending key=[...]
Offline
@plg Hello, thank you so much for taking the time to 'investigate' this issue!
You're totally right about the difference between 'page views' in Piwigo and the 'unique visitors' in Google Analytics. I should have described that better, sorry. The difference in numbers is still pretty extreme. I already installed the suggested extension last week to exclude robot-visits. It does lower the page views:
First days of September: 100.000 tot 135.000 views/day.
After installing the extension: around 10.000 views/day.
Still way more then usual/expected. Visits are mostly from Singapore and USA (definitely not our audience). Different IP adresses all the time (today, 6000 unique IP's). I tried to block the IP starting with 47.128.* but the BanIP plug-in doensn't allow this (I don't want to . The 'AntiAspi' plugin doesn't seem to work (PHP error).
The statistics also show that hundreds of photos are downloaded daily. We realized it might be for AI-LEARNING purposes! That would make sense, wouln't it?? Because very random pictures are viewed AND downloaded, all from different folders and different subjects.
So I'm not really sure what to think of this and how to prevent this. Maybe we should password protect the albums but that would be the last option.
----------
About the second subject, the cache files:
Today I checked the _data/combined folder again. Over the last two months, only 118 files ware saved. 61 CSS-files and 56 JS-files. That seems acceptable for me.
I inserted the suggested line of code into the file include/template.class.php.
There are 33 txt-files in the _data/logs folder. In the most recent file, created this evening, there are 14 lines starting with the mentioned code:
[2024-09-13 15:18:25] [INFO] flush_pending key=/fotoalbum/>themes/default/vendor/fontello/css/gallery-icon.css>0>1706620994>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>themes/default/js/ui/theme/jquery.ui.theme.css>0>1713365284>themes/default/js/ui/theme/jquery.ui.slider.css>0>1713365284>themes/default/js/ui/theme/jquery.ui.datepicker.css>0>1713365284>themes/default/js/ui/theme/jquery.ui.timepicker-addon.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288>admin/themes/default/fontello/css/animation.css>0>1713365284 file=_data/combined/1gqbve2.css [2024-09-13 19:28:31] [INFO] flush_pending key=/fotoalbum/>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>themes/default/js/plugins/Chart.min.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288>themes/default/js/plugins/colorbox/style2/colorbox.css>0>1713365284 file=_data/combined/14hftt8.css [2024-09-13 19:42:12] [INFO] flush_pending key=/fotoalbum/>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>./plugins/BanIP/banip.css>0>1457130866>themes/default/js/plugins/datatables/css/jquery.dataTables.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288 file=_data/combined/1bvjjtp.css [2024-09-13 19:43:36] [INFO] flush_pending key=/fotoalbum/>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>./plugins/BanIP/banip.css>0>1457130866>themes/default/js/plugins/datatables/css/jquery.dataTables.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288 file=_data/combined/1bvjjtp.css [2024-09-13 19:43:53] [INFO] flush_pending key=/fotoalbum/>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>./plugins/BanIP/banip.css>0>1457130866>themes/default/js/plugins/datatables/css/jquery.dataTables.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288 file=_data/combined/1bvjjtp.css [2024-09-13 19:44:29] [INFO] flush_pending key=/fotoalbum/>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>./plugins/BanIP/banip.css>0>1457130866>themes/default/js/plugins/datatables/css/jquery.dataTables.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288 file=_data/combined/1bvjjtp.css [2024-09-13 19:50:43] [INFO] flush_pending key=/fotoalbum/>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>./plugins/AntiAspi/antiaspi.css>0>1610637544>./plugins/AntiAspi/antiaspi_roma.css>0>1610637544>themes/default/js/ui/theme/jquery.ui.slider.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288 file=_data/combined/19trf56.css [2024-09-13 19:50:43] [INFO] flush_pending key=admin/themes/default/js/common.js>0>1713365284>./plugins/AdminTools/template/admin_controller.js>0>1713365288>themes/default/js/plugins/jquery.tipTip.minified.js>0>1713365284>themes/default/js/ui/minified/jquery.ui.core.min.js>0>1713365284>themes/default/js/ui/minified/jquery.ui.position.min.js>0>1713365284>themes/default/js/ui/minified/jquery.ui.widget.min.js>0>1713365284>themes/default/js/ui/minified/jquery.ui.mouse.min.js>0>1713365284>themes/default/js/ui/minified/jquery.ui.slider.min.js>0>1713365284 file=_data/combined/1lhvrdd.js [2024-09-13 19:50:59] [INFO] flush_pending key=/fotoalbum/>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>./plugins/AntiAspi/antiaspi.css>0>1610637544>./plugins/AntiAspi/antiaspi_roma.css>0>1610637544>themes/default/js/ui/theme/jquery.ui.slider.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288 file=_data/combined/19trf56.css [2024-09-13 19:51:18] [INFO] flush_pending key=/fotoalbum/>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>./plugins/AntiAspi/antiaspi.css>0>1610637544>./plugins/AntiAspi/antiaspi_roma.css>0>1610637544>themes/default/js/ui/theme/jquery.ui.slider.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288 file=_data/combined/19trf56.css [2024-09-13 19:51:27] [INFO] flush_pending key=/fotoalbum/>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>./plugins/AntiAspi/antiaspi.css>0>1610637544>./plugins/AntiAspi/antiaspi_roma.css>0>1610637544>themes/default/js/ui/theme/jquery.ui.slider.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288 file=_data/combined/19trf56.css [2024-09-13 19:53:17] [INFO] flush_pending key=/fotoalbum/>admin/themes/default/fontello/css/fontello.css>0>1706620994>admin/themes/default/theme.css>0>1721064858>admin/themes/clear/theme.css>0>1713365284>admin/themes/default/css/components/general.css>0>1713365284>admin/themes/clear/css/components/general.css>0>1713365284>themes/default/js/plugins/colorbox/style2/colorbox.css>0>1713365284>themes/default/js/plugins/selectize.clear.css>0>1713365284>themes/default/js/plugins/jquery-confirm.min.css>0>1713365284>./plugins/AdminTools/template/admin_style.css>0>1713365288>./plugins/AdminTools/template/fontello/css/fontello-ato.css>0>1713365288>admin/themes/default/fontello/css/animation.css>0>1713365284 file=_data/combined/4u6896.css [2024-09-13 19:53:17] [INFO] flush_pending key=admin/themes/default/js/LocalStorageCache.js>0>1713365284>admin/themes/default/js/common.js>0>1713365284>admin/themes/default/js/group_list.js>0>1713365284>./plugins/AdminTools/template/admin_controller.js>0>1713365288>themes/default/js/plugins/jquery.colorbox.min.js>0>1713365284>themes/default/js/plugins/jquery-confirm.min.js>0>1713365284>themes/default/js/plugins/selectize.min.js>0>1713365284>themes/default/js/plugins/jquery.tipTip.minified.js>0>1713365284 file=_data/combined/1borg0s.js [2024-09-13 19:53:22] [INFO] flush_pending key=./plugins/AdminTools/template/admin_controller.js>0>1713365288>themes/default/js/plugins/jquery.autogrow-textarea.js>0>1713365284>themes/default/js/plugins/jquery.colorbox.min.js>0>1713365284>themes/default/js/plugins/jquery.tipTip.minified.js>0>1713365284 file=_data/combined/1gz4kd5.js
Does this information provide any clarity? Is it usefull or do you need information from the other log files too?
And again, thank a lot for your help!
Last edited by kim (2024-09-13 22:30:40)
Offline
kim wrote:
Visits are mostly from Singapore and USA (definitely not our audience). Different IP adresses all the time (today, 6000 unique IP's). I tried to block the IP starting with 47.128.*
You probably get most traffic from bots and "AI" content scrapers anyway, even if the exclude bots plugin suppresses some of the most well-known in stats.
Attempting to block 47.128.* here is insufficient (and could also be wrong for other ranges), that's not how IP net ranges work. For example, the CIDR 47.128.0.0/14 is AMAZON-SIN, Amazon Data Services Singapore, and comprises the IP NetRange 47.128.0.0 - 47.131.255.255
You can block such IP range with a regex on .htaccess level, in this case 47.128.0.0/14 translates to the regex 47\.(13[01]|12[89])(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){2} (use the command line tool
rgxg cidr 47.128.0.0/14
to translate). In .htaccess then add
SetEnvIf Remote_Addr ^47\.(13[01]|12[89])(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){2}$ unwanted
note the leading ^ and trailing $ anchors, and after all a
Deny from env=unwanted
The request then is denied with a 403 status. You can name the variable any word you want instead of unwanted. Be careful though what you deny, not all requests from an alleged bad IP range are actually bad actors. You probably do want your images be indexed by good search engines.
Offline
Sidenote: if you are going to use .htaccess for blocking unwanted IP addresses the syntax for denying (like mentioned) is meant for older apache versions.
Apache 2.4+ work with this syntax:
<RequireAll>
Require all granted
Require not ip 47.128.0.0/14
</RequireAll>
See documentation here: https://httpd.apache.org/docs/2.4/howto/access.html
Offline
True. The SetEnvIf variant has two advantages though: it works with both Apache 2.2 and 2.4, and the environment is inherited to children .htaccess so that a Deny from var directive can be individually set (or not set) without having to repeat the environment rules. The disadvantage is that the Allow|Deny directives will vanish in some future Apache version, as stated on the page you linked to. The advantage of the Require directive obviously is that it directly supports the network/netmask notation.
Offline
Thank you @erAck and @oHappyDay for suggesting these options. I'm giving it a try and we'll see.
Offline
Pages: 1