Changeset 3031822
- Timestamp:
- 02/05/2024 06:57:35 PM (23 months ago)
- Location:
- litespeed-cache
- Files:
-
- 337 added
- 21 edited
-
tags/6.1 (added)
-
tags/6.1/LICENSE (added)
-
tags/6.1/assets (added)
-
tags/6.1/assets/css (added)
-
tags/6.1/assets/css/fonts (added)
-
tags/6.1/assets/css/fonts/litespeedfont.eot (added)
-
tags/6.1/assets/css/fonts/litespeedfont.svg (added)
-
tags/6.1/assets/css/fonts/litespeedfont.ttf (added)
-
tags/6.1/assets/css/fonts/litespeedfont.woff (added)
-
tags/6.1/assets/css/iziModal.min.css (added)
-
tags/6.1/assets/css/litespeed-legacy.css (added)
-
tags/6.1/assets/css/litespeed.css (added)
-
tags/6.1/assets/img (added)
-
tags/6.1/assets/img/Litespeed.icon.svg (added)
-
tags/6.1/assets/img/iconlscwp.svg (added)
-
tags/6.1/assets/img/icons (added)
-
tags/6.1/assets/img/icons/all.svg (added)
-
tags/6.1/assets/img/icons/all_transients.svg (added)
-
tags/6.1/assets/img/icons/auto_draft.svg (added)
-
tags/6.1/assets/img/icons/cross_icon.svg (added)
-
tags/6.1/assets/img/icons/db.svg (added)
-
tags/6.1/assets/img/icons/empty-cache.svg (added)
-
tags/6.1/assets/img/icons/expired_transient.svg (added)
-
tags/6.1/assets/img/icons/img_optm.svg (added)
-
tags/6.1/assets/img/icons/img_optm_disabled.svg (added)
-
tags/6.1/assets/img/icons/img_webp.svg (added)
-
tags/6.1/assets/img/icons/img_webp_disabled.svg (added)
-
tags/6.1/assets/img/icons/optimize_tables.svg (added)
-
tags/6.1/assets/img/icons/purge-403.svg (added)
-
tags/6.1/assets/img/icons/purge-404.svg (added)
-
tags/6.1/assets/img/icons/purge-500.svg (added)
-
tags/6.1/assets/img/icons/purge-all.svg (added)
-
tags/6.1/assets/img/icons/purge-cssjs.svg (added)
-
tags/6.1/assets/img/icons/purge-front.svg (added)
-
tags/6.1/assets/img/icons/purge-object.svg (added)
-
tags/6.1/assets/img/icons/purge-opcache.svg (added)
-
tags/6.1/assets/img/icons/purge-pages.svg (added)
-
tags/6.1/assets/img/icons/revision.svg (added)
-
tags/6.1/assets/img/icons/spam_comment.svg (added)
-
tags/6.1/assets/img/icons/success_icon.svg (added)
-
tags/6.1/assets/img/icons/trackback-pingback.svg (added)
-
tags/6.1/assets/img/icons/trash_comment.svg (added)
-
tags/6.1/assets/img/icons/trash_post.svg (added)
-
tags/6.1/assets/img/lscwp-logo_90x90.png (added)
-
tags/6.1/assets/img/lscwp_blue_font-icon_22px.svg (added)
-
tags/6.1/assets/img/lscwp_font-icon_32px.svg (added)
-
tags/6.1/assets/img/lscwp_gray-yellow_font-icon_22px.svg (added)
-
tags/6.1/assets/img/lscwp_gray_font-icon_22px.svg (added)
-
tags/6.1/assets/img/lscwp_grayscale_font-icon_22px.svg (added)
-
tags/6.1/assets/img/quic-cloud-icon-16x16.svg (added)
-
tags/6.1/assets/img/quic-cloud-logo-light_stack_300px.png (added)
-
tags/6.1/assets/img/quic-cloud-logo.svg (added)
-
tags/6.1/assets/img/slack-logo.png (added)
-
tags/6.1/assets/js (added)
-
tags/6.1/assets/js/babel.min.js (added)
-
tags/6.1/assets/js/component.cdn.js (added)
-
tags/6.1/assets/js/component.crawler.js (added)
-
tags/6.1/assets/js/css_async.js (added)
-
tags/6.1/assets/js/css_async.min.js (added)
-
tags/6.1/assets/js/guest.docref.js (added)
-
tags/6.1/assets/js/guest.docref.min.js (added)
-
tags/6.1/assets/js/guest.js (added)
-
tags/6.1/assets/js/guest.min.js (added)
-
tags/6.1/assets/js/instant_click.min.js (added)
-
tags/6.1/assets/js/instant_click.ori.js (added)
-
tags/6.1/assets/js/iziModal.min.js (added)
-
tags/6.1/assets/js/js_delay.js (added)
-
tags/6.1/assets/js/js_delay.min.js (added)
-
tags/6.1/assets/js/lazyload.init.js (added)
-
tags/6.1/assets/js/lazyload.lib.js (added)
-
tags/6.1/assets/js/lazyload.min.js (added)
-
tags/6.1/assets/js/litespeed-cache-admin.js (added)
-
tags/6.1/assets/js/react.min.js (added)
-
tags/6.1/assets/js/webfontloader.js (added)
-
tags/6.1/assets/js/webfontloader.min.js (added)
-
tags/6.1/autoload.php (added)
-
tags/6.1/changelog.txt (added)
-
tags/6.1/cli (added)
-
tags/6.1/cli/crawler.cls.php (added)
-
tags/6.1/cli/debug.cls.php (added)
-
tags/6.1/cli/image.cls.php (added)
-
tags/6.1/cli/online.cls.php (added)
-
tags/6.1/cli/option.cls.php (added)
-
tags/6.1/cli/presets.cls.php (added)
-
tags/6.1/cli/purge.cls.php (added)
-
tags/6.1/data (added)
-
tags/6.1/data/.htaccess (added)
-
tags/6.1/data/const.default.ini (added)
-
tags/6.1/data/const.network_default.ini (added)
-
tags/6.1/data/css_excludes.txt (added)
-
tags/6.1/data/esi.nonce.txt (added)
-
tags/6.1/data/esi.nonces.txt (added)
-
tags/6.1/data/js_defer_excludes.txt (added)
-
tags/6.1/data/js_excludes.txt (added)
-
tags/6.1/data/optm_uri_exc.txt (added)
-
tags/6.1/data/preset (added)
-
tags/6.1/data/preset/advanced.data (added)
-
tags/6.1/data/preset/aggressive.data (added)
-
tags/6.1/data/preset/basic.data (added)
-
tags/6.1/data/preset/essentials.data (added)
-
tags/6.1/data/preset/extreme.data (added)
-
tags/6.1/data/ucss_whitelist.txt (added)
-
tags/6.1/guest.vary.php (added)
-
tags/6.1/inc (added)
-
tags/6.1/inc/object.lib.php (added)
-
tags/6.1/lang (added)
-
tags/6.1/lang/litespeed-cache.pot (added)
-
tags/6.1/lib (added)
-
tags/6.1/lib/css-min (added)
-
tags/6.1/lib/css-min/colors.cls.php (added)
-
tags/6.1/lib/css-min/minifier.cls.php (added)
-
tags/6.1/lib/css-min/urirewriter.cls.php (added)
-
tags/6.1/lib/css-min/utils.cls.php (added)
-
tags/6.1/lib/guest.cls.php (added)
-
tags/6.1/lib/html-min.cls.php (added)
-
tags/6.1/lib/jsmin.cls.php (added)
-
tags/6.1/lib/jsmin_data (added)
-
tags/6.1/lib/jsmin_data/keywords_after.txt (added)
-
tags/6.1/lib/jsmin_data/keywords_before.txt (added)
-
tags/6.1/lib/jsmin_data/keywords_reserved.txt (added)
-
tags/6.1/lib/jsmin_data/operators.txt (added)
-
tags/6.1/lib/jsmin_data/operators_after.txt (added)
-
tags/6.1/lib/jsmin_data/operators_before.txt (added)
-
tags/6.1/lib/object-cache.php (added)
-
tags/6.1/lib/php-compatibility.func.php (added)
-
tags/6.1/litespeed-cache.php (added)
-
tags/6.1/package-lock.json (added)
-
tags/6.1/package.json (added)
-
tags/6.1/qc-ping.txt (added)
-
tags/6.1/readme.txt (added)
-
tags/6.1/security.md (added)
-
tags/6.1/src (added)
-
tags/6.1/src/activation.cls.php (added)
-
tags/6.1/src/admin-display.cls.php (added)
-
tags/6.1/src/admin-settings.cls.php (added)
-
tags/6.1/src/admin.cls.php (added)
-
tags/6.1/src/api.cls.php (added)
-
tags/6.1/src/avatar.cls.php (added)
-
tags/6.1/src/base.cls.php (added)
-
tags/6.1/src/cdn (added)
-
tags/6.1/src/cdn-setup.cls.php (added)
-
tags/6.1/src/cdn.cls.php (added)
-
tags/6.1/src/cdn/cloudflare.cls.php (added)
-
tags/6.1/src/cdn/quic.cls.php (added)
-
tags/6.1/src/cloud.cls.php (added)
-
tags/6.1/src/conf.cls.php (added)
-
tags/6.1/src/control.cls.php (added)
-
tags/6.1/src/core.cls.php (added)
-
tags/6.1/src/crawler-map.cls.php (added)
-
tags/6.1/src/crawler.cls.php (added)
-
tags/6.1/src/css.cls.php (added)
-
tags/6.1/src/data.cls.php (added)
-
tags/6.1/src/data.upgrade.func.php (added)
-
tags/6.1/src/data_structure (added)
-
tags/6.1/src/data_structure/avatar.sql (added)
-
tags/6.1/src/data_structure/crawler.sql (added)
-
tags/6.1/src/data_structure/crawler_blacklist.sql (added)
-
tags/6.1/src/data_structure/img_optm.sql (added)
-
tags/6.1/src/data_structure/img_optming.sql (added)
-
tags/6.1/src/data_structure/url.sql (added)
-
tags/6.1/src/data_structure/url_file.sql (added)
-
tags/6.1/src/db-optm.cls.php (added)
-
tags/6.1/src/debug2.cls.php (added)
-
tags/6.1/src/doc.cls.php (added)
-
tags/6.1/src/error.cls.php (added)
-
tags/6.1/src/esi.cls.php (added)
-
tags/6.1/src/file.cls.php (added)
-
tags/6.1/src/gui.cls.php (added)
-
tags/6.1/src/health.cls.php (added)
-
tags/6.1/src/htaccess.cls.php (added)
-
tags/6.1/src/img-optm.cls.php (added)
-
tags/6.1/src/import.cls.php (added)
-
tags/6.1/src/instance.cls.php (added)
-
tags/6.1/src/lang.cls.php (added)
-
tags/6.1/src/localization.cls.php (added)
-
tags/6.1/src/media.cls.php (added)
-
tags/6.1/src/metabox.cls.php (added)
-
tags/6.1/src/object-cache.cls.php (added)
-
tags/6.1/src/object.lib.php (added)
-
tags/6.1/src/optimize.cls.php (added)
-
tags/6.1/src/optimizer.cls.php (added)
-
tags/6.1/src/placeholder.cls.php (added)
-
tags/6.1/src/preset.cls.php (added)
-
tags/6.1/src/purge.cls.php (added)
-
tags/6.1/src/report.cls.php (added)
-
tags/6.1/src/rest.cls.php (added)
-
tags/6.1/src/root.cls.php (added)
-
tags/6.1/src/router.cls.php (added)
-
tags/6.1/src/str.cls.php (added)
-
tags/6.1/src/tag.cls.php (added)
-
tags/6.1/src/task.cls.php (added)
-
tags/6.1/src/tool.cls.php (added)
-
tags/6.1/src/ucss.cls.php (added)
-
tags/6.1/src/utility.cls.php (added)
-
tags/6.1/src/vary.cls.php (added)
-
tags/6.1/src/vpi.cls.php (added)
-
tags/6.1/thirdparty (added)
-
tags/6.1/thirdparty/aelia-currencyswitcher.cls.php (added)
-
tags/6.1/thirdparty/amp.cls.php (added)
-
tags/6.1/thirdparty/autoptimize.cls.php (added)
-
tags/6.1/thirdparty/avada.cls.php (added)
-
tags/6.1/thirdparty/bbpress.cls.php (added)
-
tags/6.1/thirdparty/beaver-builder.cls.php (added)
-
tags/6.1/thirdparty/caldera-forms.cls.php (added)
-
tags/6.1/thirdparty/divi-theme-builder.cls.php (added)
-
tags/6.1/thirdparty/elementor.cls.php (added)
-
tags/6.1/thirdparty/entry.inc.php (added)
-
tags/6.1/thirdparty/facetwp.cls.php (added)
-
tags/6.1/thirdparty/gravity-forms.cls.php (added)
-
tags/6.1/thirdparty/litespeed-check.cls.php (added)
-
tags/6.1/thirdparty/nextgengallery.cls.php (added)
-
tags/6.1/thirdparty/perfmatters.cls.php (added)
-
tags/6.1/thirdparty/theme-my-login.cls.php (added)
-
tags/6.1/thirdparty/user-switching.cls.php (added)
-
tags/6.1/thirdparty/wc-pdf-product-vouchers.cls.php (added)
-
tags/6.1/thirdparty/wcml.cls.php (added)
-
tags/6.1/thirdparty/woo-paypal.cls.php (added)
-
tags/6.1/thirdparty/woocommerce.cls.php (added)
-
tags/6.1/thirdparty/woocommerce.content.tpl.php (added)
-
tags/6.1/thirdparty/woocommerce.tab.tpl.php (added)
-
tags/6.1/thirdparty/wp-polls.cls.php (added)
-
tags/6.1/thirdparty/wp-postratings.cls.php (added)
-
tags/6.1/thirdparty/wpdiscuz.cls.php (added)
-
tags/6.1/thirdparty/wplister.cls.php (added)
-
tags/6.1/thirdparty/wpml.cls.php (added)
-
tags/6.1/thirdparty/wptouch.cls.php (added)
-
tags/6.1/thirdparty/yith-wishlist.cls.php (added)
-
tags/6.1/tpl (added)
-
tags/6.1/tpl/banner (added)
-
tags/6.1/tpl/banner/ajax.php (added)
-
tags/6.1/tpl/banner/cloud_news.tpl.php (added)
-
tags/6.1/tpl/banner/cloud_promo.tpl.php (added)
-
tags/6.1/tpl/banner/new_version.php (added)
-
tags/6.1/tpl/banner/new_version_dev.tpl.php (added)
-
tags/6.1/tpl/banner/score.php (added)
-
tags/6.1/tpl/banner/slack.php (added)
-
tags/6.1/tpl/cache (added)
-
tags/6.1/tpl/cache/entry.tpl.php (added)
-
tags/6.1/tpl/cache/entry_network.tpl.php (added)
-
tags/6.1/tpl/cache/more_settings_tip.tpl.php (added)
-
tags/6.1/tpl/cache/network_settings-advanced.tpl.php (added)
-
tags/6.1/tpl/cache/network_settings-browser.tpl.php (added)
-
tags/6.1/tpl/cache/network_settings-cache.tpl.php (added)
-
tags/6.1/tpl/cache/network_settings-excludes.tpl.php (added)
-
tags/6.1/tpl/cache/network_settings-object.tpl.php (added)
-
tags/6.1/tpl/cache/network_settings-purge.tpl.php (added)
-
tags/6.1/tpl/cache/settings-advanced.tpl.php (added)
-
tags/6.1/tpl/cache/settings-browser.tpl.php (added)
-
tags/6.1/tpl/cache/settings-cache.tpl.php (added)
-
tags/6.1/tpl/cache/settings-esi.tpl.php (added)
-
tags/6.1/tpl/cache/settings-excludes.tpl.php (added)
-
tags/6.1/tpl/cache/settings-object.tpl.php (added)
-
tags/6.1/tpl/cache/settings-purge.tpl.php (added)
-
tags/6.1/tpl/cache/settings-ttl.tpl.php (added)
-
tags/6.1/tpl/cache/settings_inc.browser.tpl.php (added)
-
tags/6.1/tpl/cache/settings_inc.cache_dropquery.tpl.php (added)
-
tags/6.1/tpl/cache/settings_inc.cache_favicon.tpl.php (added)
-
tags/6.1/tpl/cache/settings_inc.cache_mobile.tpl.php (added)
-
tags/6.1/tpl/cache/settings_inc.cache_resources.tpl.php (added)
-
tags/6.1/tpl/cache/settings_inc.exclude_cookies.tpl.php (added)
-
tags/6.1/tpl/cache/settings_inc.exclude_useragent.tpl.php (added)
-
tags/6.1/tpl/cache/settings_inc.login_cookie.tpl.php (added)
-
tags/6.1/tpl/cache/settings_inc.object.tpl.php (added)
-
tags/6.1/tpl/cache/settings_inc.purge_on_upgrade.tpl.php (added)
-
tags/6.1/tpl/cdn (added)
-
tags/6.1/tpl/cdn/auto_setup.tpl.php (added)
-
tags/6.1/tpl/cdn/entry.tpl.php (added)
-
tags/6.1/tpl/cdn/manage.tpl.php (added)
-
tags/6.1/tpl/cdn/settings.tpl.php (added)
-
tags/6.1/tpl/crawler (added)
-
tags/6.1/tpl/crawler/blacklist.tpl.php (added)
-
tags/6.1/tpl/crawler/entry.tpl.php (added)
-
tags/6.1/tpl/crawler/map.tpl.php (added)
-
tags/6.1/tpl/crawler/settings-general.tpl.php (added)
-
tags/6.1/tpl/crawler/settings-simulation.tpl.php (added)
-
tags/6.1/tpl/crawler/settings-sitemap.tpl.php (added)
-
tags/6.1/tpl/crawler/summary.tpl.php (added)
-
tags/6.1/tpl/dash (added)
-
tags/6.1/tpl/dash/dashboard.tpl.php (added)
-
tags/6.1/tpl/dash/entry.tpl.php (added)
-
tags/6.1/tpl/dash/network_dash.tpl.php (added)
-
tags/6.1/tpl/db_optm (added)
-
tags/6.1/tpl/db_optm/entry.tpl.php (added)
-
tags/6.1/tpl/db_optm/manage.tpl.php (added)
-
tags/6.1/tpl/db_optm/settings.tpl.php (added)
-
tags/6.1/tpl/esi.tpl.php (added)
-
tags/6.1/tpl/esi_widget_edit.php (added)
-
tags/6.1/tpl/general (added)
-
tags/6.1/tpl/general/entry.tpl.php (added)
-
tags/6.1/tpl/general/network_settings.tpl.php (added)
-
tags/6.1/tpl/general/settings.tpl.php (added)
-
tags/6.1/tpl/general/settings_inc.auto_upgrade.tpl.php (added)
-
tags/6.1/tpl/general/settings_inc.guest.tpl.php (added)
-
tags/6.1/tpl/general/settings_tuning.tpl.php (added)
-
tags/6.1/tpl/img_optm (added)
-
tags/6.1/tpl/img_optm/entry.tpl.php (added)
-
tags/6.1/tpl/img_optm/network_settings.tpl.php (added)
-
tags/6.1/tpl/img_optm/settings.media_webp.tpl.php (added)
-
tags/6.1/tpl/img_optm/settings.tpl.php (added)
-
tags/6.1/tpl/img_optm/summary.tpl.php (added)
-
tags/6.1/tpl/inc (added)
-
tags/6.1/tpl/inc/admin_footer.php (added)
-
tags/6.1/tpl/inc/api_key.php (added)
-
tags/6.1/tpl/inc/check_cache_disabled.php (added)
-
tags/6.1/tpl/inc/check_if_network_disable_all.php (added)
-
tags/6.1/tpl/inc/disabled_all.php (added)
-
tags/6.1/tpl/inc/in_upgrading.php (added)
-
tags/6.1/tpl/inc/metabox.php (added)
-
tags/6.1/tpl/inc/modal.footer.php (added)
-
tags/6.1/tpl/inc/modal.header.php (added)
-
tags/6.1/tpl/inc/show_display_installed.php (added)
-
tags/6.1/tpl/inc/show_error_cookie.php (added)
-
tags/6.1/tpl/inc/show_rule_conflict.php (added)
-
tags/6.1/tpl/page_optm (added)
-
tags/6.1/tpl/page_optm/entry.tpl.php (added)
-
tags/6.1/tpl/page_optm/settings_css.tpl.php (added)
-
tags/6.1/tpl/page_optm/settings_html.tpl.php (added)
-
tags/6.1/tpl/page_optm/settings_js.tpl.php (added)
-
tags/6.1/tpl/page_optm/settings_localization.tpl.php (added)
-
tags/6.1/tpl/page_optm/settings_media.tpl.php (added)
-
tags/6.1/tpl/page_optm/settings_media_exc.tpl.php (added)
-
tags/6.1/tpl/page_optm/settings_tuning.tpl.php (added)
-
tags/6.1/tpl/page_optm/settings_tuning_css.tpl.php (added)
-
tags/6.1/tpl/page_optm/settings_vpi.tpl.php (added)
-
tags/6.1/tpl/presets (added)
-
tags/6.1/tpl/presets/entry.tpl.php (added)
-
tags/6.1/tpl/presets/standard.tpl.php (added)
-
tags/6.1/tpl/toolbox (added)
-
tags/6.1/tpl/toolbox/beta_test.tpl.php (added)
-
tags/6.1/tpl/toolbox/edit_htaccess.tpl.php (added)
-
tags/6.1/tpl/toolbox/entry.tpl.php (added)
-
tags/6.1/tpl/toolbox/heartbeat.tpl.php (added)
-
tags/6.1/tpl/toolbox/import_export.tpl.php (added)
-
tags/6.1/tpl/toolbox/log_viewer.tpl.php (added)
-
tags/6.1/tpl/toolbox/purge.tpl.php (added)
-
tags/6.1/tpl/toolbox/report.tpl.php (added)
-
tags/6.1/tpl/toolbox/settings-debug.tpl.php (added)
-
trunk/assets/css/litespeed.css (modified) (1 diff)
-
trunk/cli/crawler.cls.php (modified) (1 diff)
-
trunk/data/esi.nonces.txt (modified) (2 diffs)
-
trunk/lang/litespeed-cache.pot (modified) (17 diffs)
-
trunk/lib/html-min.cls.php (modified) (1 diff)
-
trunk/litespeed-cache.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/src/core.cls.php (modified) (2 diffs)
-
trunk/src/crawler.cls.php (modified) (16 diffs)
-
trunk/src/css.cls.php (modified) (3 diffs)
-
trunk/src/db-optm.cls.php (modified) (5 diffs)
-
trunk/src/esi.cls.php (modified) (1 diff)
-
trunk/src/htaccess.cls.php (modified) (2 diffs)
-
trunk/src/img-optm.cls.php (modified) (5 diffs)
-
trunk/src/media.cls.php (modified) (2 diffs)
-
trunk/src/object-cache.cls.php (modified) (1 diff)
-
trunk/src/tag.cls.php (modified) (1 diff)
-
trunk/src/task.cls.php (modified) (1 diff)
-
trunk/src/utility.cls.php (modified) (2 diffs)
-
trunk/tpl/dash/dashboard.tpl.php (modified) (1 diff)
-
trunk/tpl/db_optm/manage.tpl.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
litespeed-cache/trunk/assets/css/litespeed.css
r3009052 r3031822 822 822 823 823 .litespeed-panel-icon-revision { 824 background-image: url('../img/icons/revision.svg'); 825 } 826 827 .litespeed-panel-icon-orphaned_post_meta { 824 828 background-image: url('../img/icons/revision.svg'); 825 829 } -
litespeed-cache/trunk/cli/crawler.cls.php
r3009052 r3031822 200 200 public function run() 201 201 { 202 self::debug('⚠️⚠️⚠️ Forced take over lane (CLI)'); 203 $this->__crawler->Release_lane(); 204 202 205 Task::async_call('crawler'); 203 206 -
litespeed-cache/trunk/data/esi.nonces.txt
r2600165 r3031822 58 58 blog_feed_nonce 59 59 60 # WS Form 60 # WS Form 61 61 wsf_post 62 62 … … 67 67 # WP Menu Cart 68 68 wpmenucart private 69 70 # Woo nonce 71 woocommerce-login -
litespeed-cache/trunk/lang/litespeed-cache.pot
r3009052 r3031822 1 # Copyright (C) 202 3LiteSpeed Cache1 # Copyright (C) 2024 LiteSpeed Cache 2 2 # This file is distributed under the same license as the LiteSpeed Cache package. 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: LiteSpeed Cache 6. 0\n"5 "Project-Id-Version: LiteSpeed Cache 6.1\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/litespeed-cache\n" 7 "POT-Creation-Date: 202 3-12-12 15:41:15+00:00\n"7 "POT-Creation-Date: 2024-02-05 14:52:07+00:00\n" 8 8 "MIME-Version: 1.0\n" 9 9 "Content-Type: text/plain; charset=UTF-8\n" 10 10 "Content-Transfer-Encoding: 8bit\n" 11 "PO-Revision-Date: 202 3-MO-DA HO:MI+ZONE\n"11 "PO-Revision-Date: 2024-MO-DA HO:MI+ZONE\n" 12 12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 13 13 "Language-Team: LANGUAGE <[email protected]>\n" … … 507 507 msgstr "" 508 508 509 #: src/crawler.cls.php: 991509 #: src/crawler.cls.php:1094 510 510 msgid "Guest" 511 511 msgstr "" 512 512 513 #: src/crawler.cls.php:1 143513 #: src/crawler.cls.php:1261 514 514 msgid "Manually added to blocklist" 515 515 msgstr "" 516 516 517 #: src/crawler.cls.php:1 146517 #: src/crawler.cls.php:1264 518 518 msgid "Previously existed in blocklist" 519 519 msgstr "" … … 545 545 msgstr "" 546 546 547 #: src/db-optm.cls.php:14 1547 #: src/db-optm.cls.php:147 548 548 msgid "Clean all successfully." 549 549 msgstr "" 550 550 551 #: src/db-optm.cls.php: 198551 #: src/db-optm.cls.php:204 552 552 msgid "Clean post revisions successfully." 553 553 msgstr "" 554 554 555 #: src/db-optm.cls.php:202 555 #: src/db-optm.cls.php:208 556 msgid "Clean orphaned post meta successfully." 557 msgstr "" 558 559 #: src/db-optm.cls.php:212 556 560 msgid "Clean auto drafts successfully." 557 561 msgstr "" 558 562 559 #: src/db-optm.cls.php:2 06563 #: src/db-optm.cls.php:216 560 564 msgid "Clean trashed posts and pages successfully." 561 565 msgstr "" 562 566 563 #: src/db-optm.cls.php:2 10567 #: src/db-optm.cls.php:220 564 568 msgid "Clean spam comments successfully." 565 569 msgstr "" 566 570 567 #: src/db-optm.cls.php:2 14571 #: src/db-optm.cls.php:224 568 572 msgid "Clean trashed comments successfully." 569 573 msgstr "" 570 574 571 #: src/db-optm.cls.php:2 18575 #: src/db-optm.cls.php:228 572 576 msgid "Clean trackbacks and pingbacks successfully." 573 577 msgstr "" 574 578 575 #: src/db-optm.cls.php:2 22579 #: src/db-optm.cls.php:232 576 580 msgid "Clean expired transients successfully." 577 581 msgstr "" 578 582 579 #: src/db-optm.cls.php:2 26583 #: src/db-optm.cls.php:236 580 584 msgid "Clean all transients successfully." 581 585 msgstr "" 582 586 583 #: src/db-optm.cls.php:2 36587 #: src/db-optm.cls.php:246 584 588 msgid "Optimized all tables." 585 589 msgstr "" 586 590 587 #: src/db-optm.cls.php:2 88591 #: src/db-optm.cls.php:298 588 592 msgid "Converted to InnoDB successfully." 589 593 msgstr "" … … 614 618 615 619 #: src/doc.cls.php:92 src/doc.cls.php:147 tpl/cdn/manage.tpl.php:67 616 #: tpl/dash/dashboard.tpl.php:46 tpl/ img_optm/summary.tpl.php:48617 #: tpl/i nc/check_cache_disabled.php:42620 #: tpl/dash/dashboard.tpl.php:46 tpl/dash/dashboard.tpl.php:613 621 #: tpl/img_optm/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:42 618 622 msgid "Learn More" 619 623 msgstr "" … … 942 946 msgstr "" 943 947 944 #: src/htaccess.cls.php:34 0948 #: src/htaccess.cls.php:341 945 949 msgid "Mobile Agent Rules" 946 950 msgstr "" 947 951 948 #: src/htaccess.cls.php:81 8952 #: src/htaccess.cls.php:819 949 953 msgid "" 950 954 "<p>Please add/replace the following codes into the beginning of %1$s:</p> " … … 972 976 msgstr "" 973 977 974 #: src/img-optm.cls.php:94 5978 #: src/img-optm.cls.php:947 975 979 msgid "Pull Cron is running" 976 980 msgstr "" 977 981 978 #: src/img-optm.cls.php:10 27982 #: src/img-optm.cls.php:1040 src/img-optm.cls.php:1066 979 983 msgid "Some optimized image file(s) has expired and was cleared." 980 984 msgstr "" 981 985 982 #: src/img-optm.cls.php:10 48986 #: src/img-optm.cls.php:1083 983 987 msgid "Pulled WebP image md5 does not match the notified WebP image md5." 984 988 msgstr "" 985 989 986 #: src/img-optm.cls.php:1 084990 #: src/img-optm.cls.php:1119 987 991 msgid "One or more pulled images does not match with the notified image md5" 988 992 msgstr "" 989 993 990 #: src/img-optm.cls.php:1 270994 #: src/img-optm.cls.php:1312 991 995 msgid "Cleaned up unfinished data successfully." 992 996 msgstr "" 993 997 994 #: src/img-optm.cls.php:13 54998 #: src/img-optm.cls.php:1396 995 999 msgid "Destroy all optimization data successfully." 996 1000 msgstr "" 997 1001 998 #: src/img-optm.cls.php:14 17 src/img-optm.cls.php:14791002 #: src/img-optm.cls.php:1459 src/img-optm.cls.php:1521 999 1003 msgid "Rescanned successfully." 1000 1004 msgstr "" 1001 1005 1002 #: src/img-optm.cls.php:1 4791006 #: src/img-optm.cls.php:1521 1003 1007 msgid "Rescanned %d images successfully." 1004 1008 msgstr "" 1005 1009 1006 #: src/img-optm.cls.php:15 461010 #: src/img-optm.cls.php:1588 1007 1011 msgid "Calculated backups successfully." 1008 1012 msgstr "" 1009 1013 1010 #: src/img-optm.cls.php:16 401014 #: src/img-optm.cls.php:1682 1011 1015 msgid "Removed backups successfully." 1012 1016 msgstr "" 1013 1017 1014 #: src/img-optm.cls.php:18 221018 #: src/img-optm.cls.php:1864 1015 1019 msgid "Switched images successfully." 1016 1020 msgstr "" 1017 1021 1018 #: src/img-optm.cls.php:1 867 src/img-optm.cls.php:19131022 #: src/img-optm.cls.php:1909 src/img-optm.cls.php:1955 1019 1023 msgid "Switched to optimized file successfully." 1020 1024 msgstr "" 1021 1025 1022 #: src/img-optm.cls.php:1 8861026 #: src/img-optm.cls.php:1928 1023 1027 msgid "Disabled WebP file successfully." 1024 1028 msgstr "" 1025 1029 1026 #: src/img-optm.cls.php:1 8911030 #: src/img-optm.cls.php:1933 1027 1031 msgid "Enabled WebP file successfully." 1028 1032 msgstr "" 1029 1033 1030 #: src/img-optm.cls.php:19 071034 #: src/img-optm.cls.php:1949 1031 1035 msgid "Restored original file successfully." 1032 1036 msgstr "" 1033 1037 1034 #: src/img-optm.cls.php: 19641038 #: src/img-optm.cls.php:2006 1035 1039 msgid "Reset the optimized data successfully." 1036 1040 msgstr "" … … 1895 1899 msgstr "" 1896 1900 1897 #: src/object-cache.cls.php:47 21901 #: src/object-cache.cls.php:473 1898 1902 msgid "Redis encountered a fatal error: %s (code: %d)" 1899 1903 msgstr "" … … 1992 1996 msgstr "" 1993 1997 1994 #: src/task.cls.php:17 61998 #: src/task.cls.php:177 1995 1999 msgid "Every Minute" 1996 2000 msgstr "" 1997 2001 1998 #: src/task.cls.php:19 62002 #: src/task.cls.php:197 1999 2003 msgid "LiteSpeed Crawler Cron" 2000 2004 msgstr "" 2001 2005 2002 #: src/utility.cls.php:23 32006 #: src/utility.cls.php:235 2003 2007 msgid "right now" 2004 2008 msgstr "" 2005 2009 2006 #: src/utility.cls.php:23 32010 #: src/utility.cls.php:235 2007 2011 msgid "just now" 2008 2012 msgstr "" 2009 2013 2010 #: src/utility.cls.php:23 62014 #: src/utility.cls.php:238 2011 2015 msgid " %s ago" 2012 2016 msgstr "" … … 2124 2128 msgstr "" 2125 2129 2126 #. #-#-#-#-# litespeed-cache.pot (LiteSpeed Cache 6. 0) #-#-#-#-#2130 #. #-#-#-#-# litespeed-cache.pot (LiteSpeed Cache 6.1) #-#-#-#-# 2127 2131 #. Plugin Name of the plugin/theme 2128 2132 #: tpl/banner/new_version.php:57 tpl/banner/new_version_dev.tpl.php:12 … … 2140 2144 2141 2145 #: tpl/banner/new_version.php:69 tpl/banner/new_version_dev.tpl.php:24 2142 #: tpl/toolbox/beta_test.tpl.php:6 32146 #: tpl/toolbox/beta_test.tpl.php:64 2143 2147 msgid "Upgrade" 2144 2148 msgstr "" … … 4033 4037 msgstr "" 4034 4038 4039 #: tpl/dash/dashboard.tpl.php:616 4040 msgid "Try QUIC.cloud CDN!" 4041 msgstr "" 4042 4043 #: tpl/dash/dashboard.tpl.php:619 4044 msgid "Best available WordPress performance" 4045 msgstr "" 4046 4047 #: tpl/dash/dashboard.tpl.php:622 4048 msgid "Globally fast TTFB, easy setup, and <a %s>more</a>!" 4049 msgstr "" 4050 4035 4051 #: tpl/dash/entry.tpl.php:11 4036 4052 msgid "Network Dashboard" … … 4065 4081 msgstr "" 4066 4082 4067 #: tpl/db_optm/manage.tpl.php: 74083 #: tpl/db_optm/manage.tpl.php:9 4068 4084 msgid "Clean All" 4069 4085 msgstr "" 4070 4086 4071 #: tpl/db_optm/manage.tpl.php:1 14087 #: tpl/db_optm/manage.tpl.php:13 4072 4088 msgid "Post Revisions" 4073 4089 msgstr "" 4074 4090 4075 #: tpl/db_optm/manage.tpl.php:1 24091 #: tpl/db_optm/manage.tpl.php:14 4076 4092 msgid "Clean all post revisions" 4077 4093 msgstr "" 4078 4094 4079 #: tpl/db_optm/manage.tpl.php:15 4095 #: tpl/db_optm/manage.tpl.php:17 4096 msgid "Orphaned Post Meta" 4097 msgstr "" 4098 4099 #: tpl/db_optm/manage.tpl.php:18 4100 msgid "Clean all orphaned post meta records" 4101 msgstr "" 4102 4103 #: tpl/db_optm/manage.tpl.php:21 4080 4104 msgid "Auto Drafts" 4081 4105 msgstr "" 4082 4106 4083 #: tpl/db_optm/manage.tpl.php: 164107 #: tpl/db_optm/manage.tpl.php:22 4084 4108 msgid "Clean all auto saved drafts" 4085 4109 msgstr "" 4086 4110 4087 #: tpl/db_optm/manage.tpl.php: 194111 #: tpl/db_optm/manage.tpl.php:25 4088 4112 msgid "Trashed Posts" 4089 4113 msgstr "" 4090 4114 4091 #: tpl/db_optm/manage.tpl.php:2 04115 #: tpl/db_optm/manage.tpl.php:26 4092 4116 msgid "Clean all trashed posts and pages" 4093 4117 msgstr "" 4094 4118 4095 #: tpl/db_optm/manage.tpl.php:2 34119 #: tpl/db_optm/manage.tpl.php:29 4096 4120 msgid "Spam Comments" 4097 4121 msgstr "" 4098 4122 4099 #: tpl/db_optm/manage.tpl.php: 244123 #: tpl/db_optm/manage.tpl.php:30 4100 4124 msgid "Clean all spam comments" 4101 4125 msgstr "" 4102 4126 4103 #: tpl/db_optm/manage.tpl.php: 274127 #: tpl/db_optm/manage.tpl.php:33 4104 4128 msgid "Trashed Comments" 4105 4129 msgstr "" 4106 4130 4107 #: tpl/db_optm/manage.tpl.php: 284131 #: tpl/db_optm/manage.tpl.php:34 4108 4132 msgid "Clean all trashed comments" 4109 4133 msgstr "" 4110 4134 4111 #: tpl/db_optm/manage.tpl.php:3 14135 #: tpl/db_optm/manage.tpl.php:37 4112 4136 msgid "Trackbacks/Pingbacks" 4113 4137 msgstr "" 4114 4138 4115 #: tpl/db_optm/manage.tpl.php:3 24139 #: tpl/db_optm/manage.tpl.php:38 4116 4140 msgid "Clean all trackbacks and pingbacks" 4117 4141 msgstr "" 4118 4142 4119 #: tpl/db_optm/manage.tpl.php: 354143 #: tpl/db_optm/manage.tpl.php:41 4120 4144 msgid "Expired Transients" 4121 4145 msgstr "" 4122 4146 4123 #: tpl/db_optm/manage.tpl.php: 364147 #: tpl/db_optm/manage.tpl.php:42 4124 4148 msgid "Clean expired transient options" 4125 4149 msgstr "" 4126 4150 4127 #: tpl/db_optm/manage.tpl.php: 394151 #: tpl/db_optm/manage.tpl.php:45 4128 4152 msgid "All Transients" 4129 4153 msgstr "" 4130 4154 4131 #: tpl/db_optm/manage.tpl.php:4 04155 #: tpl/db_optm/manage.tpl.php:46 4132 4156 msgid "Clean all transient options" 4133 4157 msgstr "" 4134 4158 4135 #: tpl/db_optm/manage.tpl.php:4 34159 #: tpl/db_optm/manage.tpl.php:49 4136 4160 msgid "Optimize Tables" 4137 4161 msgstr "" 4138 4162 4139 #: tpl/db_optm/manage.tpl.php: 444163 #: tpl/db_optm/manage.tpl.php:50 4140 4164 msgid "Optimize all tables in your database" 4141 4165 msgstr "" 4142 4166 4143 #: tpl/db_optm/manage.tpl.php:5 14167 #: tpl/db_optm/manage.tpl.php:57 4144 4168 msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions" 4145 4169 msgstr "" 4146 4170 4147 #: tpl/db_optm/manage.tpl.php:7 24171 #: tpl/db_optm/manage.tpl.php:78 4148 4172 msgid "Database Optimizer" 4149 4173 msgstr "" 4150 4174 4151 #: tpl/db_optm/manage.tpl.php: 994175 #: tpl/db_optm/manage.tpl.php:105 4152 4176 msgid "Database Table Engine Converter" 4153 4177 msgstr "" 4154 4178 4155 #: tpl/db_optm/manage.tpl.php:1 064179 #: tpl/db_optm/manage.tpl.php:113 4156 4180 msgid "Table" 4157 4181 msgstr "" 4158 4182 4159 #: tpl/db_optm/manage.tpl.php:1 074183 #: tpl/db_optm/manage.tpl.php:114 4160 4184 msgid "Engine" 4161 4185 msgstr "" 4162 4186 4163 #: tpl/db_optm/manage.tpl.php:1 084187 #: tpl/db_optm/manage.tpl.php:115 4164 4188 msgid "Tool" 4165 4189 msgstr "" 4166 4190 4167 #: tpl/db_optm/manage.tpl.php:1 224191 #: tpl/db_optm/manage.tpl.php:130 4168 4192 msgid "Convert to InnoDB" 4169 4193 msgstr "" 4170 4194 4171 #: tpl/db_optm/manage.tpl.php:13 04195 #: tpl/db_optm/manage.tpl.php:138 4172 4196 msgid "We are good. No table uses MyISAM engine." 4173 4197 msgstr "" 4174 4198 4175 #: tpl/db_optm/manage.tpl.php:1 514199 #: tpl/db_optm/manage.tpl.php:160 4176 4200 msgid "Database Summary" 4177 4201 msgstr "" 4178 4202 4179 #: tpl/db_optm/manage.tpl.php:1 664203 #: tpl/db_optm/manage.tpl.php:176 4180 4204 msgid "Option Name" 4181 4205 msgstr "" 4182 4206 4183 #: tpl/db_optm/manage.tpl.php:1 674207 #: tpl/db_optm/manage.tpl.php:177 4184 4208 msgid "Size" 4185 4209 msgstr "" … … 5219 5243 5220 5244 #: tpl/page_optm/settings_localization.tpl.php:127 5221 #: tpl/toolbox/beta_test.tpl.php:3 15245 #: tpl/toolbox/beta_test.tpl.php:32 5222 5246 msgid "Example" 5223 5247 msgstr "" … … 5764 5788 msgstr "" 5765 5789 5766 #: tpl/toolbox/beta_test.tpl.php:2 65790 #: tpl/toolbox/beta_test.tpl.php:27 5767 5791 msgid "Try GitHub Version" 5768 5792 msgstr "" 5769 5793 5770 #: tpl/toolbox/beta_test.tpl.php:3 05794 #: tpl/toolbox/beta_test.tpl.php:31 5771 5795 msgid "" 5772 5796 "Use this section to switch plugin versions. To beta test a GitHub commit, " … … 5774 5798 msgstr "" 5775 5799 5776 #: tpl/toolbox/beta_test.tpl.php:3 55800 #: tpl/toolbox/beta_test.tpl.php:36 5777 5801 msgid "Use latest GitHub Dev commit" 5778 5802 msgstr "" 5779 5803 5780 #: tpl/toolbox/beta_test.tpl.php:3 75804 #: tpl/toolbox/beta_test.tpl.php:38 5781 5805 msgid "Use latest GitHub Master commit" 5782 5806 msgstr "" 5783 5807 5784 #: tpl/toolbox/beta_test.tpl.php: 39 tpl/toolbox/beta_test.tpl.php:555808 #: tpl/toolbox/beta_test.tpl.php:40 tpl/toolbox/beta_test.tpl.php:56 5785 5809 msgid "Use latest WordPress release version" 5786 5810 msgstr "" 5787 5811 5788 #: tpl/toolbox/beta_test.tpl.php: 395812 #: tpl/toolbox/beta_test.tpl.php:40 5789 5813 msgid "OR" 5790 5814 msgstr "" 5791 5815 5792 #: tpl/toolbox/beta_test.tpl.php:5 05816 #: tpl/toolbox/beta_test.tpl.php:51 5793 5817 msgid "" 5794 5818 "Downgrade not recommended. May cause fatal error due to refactored code." 5795 5819 msgstr "" 5796 5820 5797 #: tpl/toolbox/beta_test.tpl.php:5 45821 #: tpl/toolbox/beta_test.tpl.php:55 5798 5822 msgid "" 5799 5823 "Press the %s button to use the most recent GitHub commit. Master is for " … … 5801 5825 msgstr "" 5802 5826 5803 #: tpl/toolbox/beta_test.tpl.php:5 45827 #: tpl/toolbox/beta_test.tpl.php:55 5804 5828 msgid "Use latest GitHub Dev/Master commit" 5805 5829 msgstr "" 5806 5830 5807 #: tpl/toolbox/beta_test.tpl.php:5 55831 #: tpl/toolbox/beta_test.tpl.php:56 5808 5832 msgid "" 5809 5833 "Press the %s button to stop beta testing and go back to the current release " … … 5811 5835 msgstr "" 5812 5836 5813 #: tpl/toolbox/beta_test.tpl.php:6 05837 #: tpl/toolbox/beta_test.tpl.php:61 5814 5838 msgid "" 5815 5839 "In order to avoid an upgrade error, you must be using %1$s or later before " -
litespeed-cache/trunk/lib/html-min.cls.php
r2292926 r3031822 19 19 { 20 20 /** 21 * @var string 22 */ 23 protected $_html = ''; 24 25 /** 21 26 * @var boolean 22 27 */ -
litespeed-cache/trunk/litespeed-cache.php
r3010716 r3031822 5 5 * Plugin URI: https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration 6 6 * Description: High-performance page caching and site optimization from LiteSpeed 7 * Version: 6. 0.0.17 * Version: 6.1 8 8 * Author: LiteSpeed Technologies 9 9 * Author URI: https://www.litespeedtech.com … … 35 35 } 36 36 37 !defined('LSCWP_V') && define('LSCWP_V', '6. 0.0.1');37 !defined('LSCWP_V') && define('LSCWP_V', '6.1'); 38 38 39 39 !defined('LSCWP_CONTENT_DIR') && define('LSCWP_CONTENT_DIR', WP_CONTENT_DIR); -
litespeed-cache/trunk/readme.txt
r3010716 r3031822 3 3 Tags: caching, optimize, performance, pagespeed, core web vitals, seo, speed, image optimize, compress, object cache, redis, memcached, database cleaner 4 4 Requires at least: 4.0 5 Tested up to: 6.4. 26 Stable tag: 6. 0.0.15 Tested up to: 6.4.3 6 Stable tag: 6.1 7 7 License: GPLv3 8 8 License URI: http://www.gnu.org/licenses/gpl.html … … 251 251 == Changelog == 252 252 253 = 6.1 - Feb 5 2024 = 254 * 🌱**Database** New Clear Orphaned Post Meta optimizer function. 255 * **Image Optimize** Fixed possible PHP warning for WP requests library response. 256 * **Image Optimize** Unlocked `noabort` to all async tasks to avoid image optimization timeout. (Peter Wells) 257 * **Image Optimize** Fixed an issue where images weren't being pulled with older versions of WordPress. (PR#608) 258 * **Image Optimize** Improved exception handling when node server cert expire. 259 * 🐞**Image Optimize** The failed to pull images due to 404 expiry will now be able to send the request again. 260 * **Crawler** CLI will now be able to force crawling even if a crawl was recently initiated within the plugin GUI. 261 * **Page Optimize** Fixed a dynamic property creation warning in PHP8. (PR#606) 262 * **Page Optimize** Fixed an issue where getimagesize could cause page optimization to fail. (PR#607) 263 * **Tag** Fixed an array to string conversion warning. (PR#604) 264 * **Object Cache** Return false to prevent PHP warning when Redis fails to set a value. (PR#612) 265 * **Cache Tag** Fixed an issue where $wp_query is null when getting cache tags. (PR#589) 266 253 267 = 6.0.0.1 - Dec 15 2023 = 254 268 * 🐞**Image Optimize** Grouped the taken notification to regional center servers to reduce the load after image pulled. -
litespeed-cache/trunk/src/core.cls.php
r3009052 r3031822 486 486 $this->send_headers(true); 487 487 488 // Log ESI nonce buffer empty issue 489 if (defined('LSCACHE_IS_ESI') && strlen($buffer) == 0) { 490 // TODO: log ref somewhere 491 } 492 488 493 // Init comment info 489 494 $running_info_showing = defined('LITESPEED_IS_HTML') || defined('LSCACHE_IS_ESI'); … … 520 525 } 521 526 Debug2::debug('[Core] ESI End 👆'); 522 Debug2::debug($buffer);523 527 } 524 528 -
litespeed-cache/trunk/src/crawler.cls.php
r3009052 r3031822 236 236 * @since 5.5 237 237 */ 238 public static function async_handler($ force= false)238 public static function async_handler($manually_run = false) 239 239 { 240 240 self::debug('------------async-------------start_async_handler'); … … 245 245 // check_ajax_referer('async_crawler', 'nonce'); 246 246 // self::debug('--------------async----------- start async crawling'); 247 self::start($ force);247 self::start($manually_run); 248 248 } 249 249 … … 254 254 * @access public 255 255 */ 256 public static function start($ force= false)256 public static function start($manually_run = false) 257 257 { 258 258 if (!Router::can_crawl()) { … … 261 261 } 262 262 263 if ($ force) {263 if ($manually_run) { 264 264 self::debug('......crawler manually ran......'); 265 265 } … … 271 271 // return; 272 272 273 self::cls()->_crawl_data($ force);273 self::cls()->_crawl_data($manually_run); 274 274 } 275 275 … … 280 280 * @access private 281 281 */ 282 private function _crawl_data($force) 283 { 282 private function _crawl_data($manually_run) 283 { 284 if (!defined('LITESPEED_LANE_HASH')) { 285 define('LITESPEED_LANE_HASH', Str::rrand(8)); 286 } 287 if ($this->_check_valid_lane()) { 288 $this->_take_over_lane(); 289 } else { 290 self::debug('⚠️ lane in use'); 291 return; 292 // if ($manually_run) { 293 // self::debug('......crawler started (manually_rund)......'); 294 // // Log pid to prevent from multi running 295 // if (defined('LITESPEED_CLI')) { 296 // // Take over lane 297 // self::debug('⚠️⚠️⚠️ Forced take over lane (CLI)'); 298 // $this->_take_over_lane(); 299 // } 300 // } 301 } 284 302 self::debug('......crawler started......'); 303 285 304 // for the first time running 286 305 if (!$this->_summary || !Data::cls()->tb_exist('crawler') || !Data::cls()->tb_exist('crawler_blacklist')) { … … 292 311 // check whole crawling interval 293 312 $last_fnished_at = $this->_summary['last_full_time_cost'] + $this->_summary['this_full_beginning_time']; 294 if (!$ force&& time() - $last_fnished_at < $this->conf(Base::O_CRAWLER_CRAWL_INTERVAL)) {313 if (!$manually_run && time() - $last_fnished_at < $this->conf(Base::O_CRAWLER_CRAWL_INTERVAL)) { 295 314 self::debug('Cron abort: cache warmed already.'); 296 315 // if not reach whole crawling interval, exit 316 $this->Release_lane(); 297 317 return; 298 318 } … … 311 331 $this->_end_reason = 'end'; 312 332 $this->_terminate_running(); 333 $this->Release_lane(); 313 334 return; 314 335 } … … 322 343 $this->load_conf(); 323 344 324 $this->_engine_start(); 345 try { 346 $this->_engine_start(); 347 $this->Release_lane(); 348 } catch (\Exception $e) { 349 self::debug('🛑 ' . $e->getMessage()); 350 } 325 351 } 326 352 … … 409 435 { 410 436 // check if is running 411 if ($this->_summary['is_running'] && time() - $this->_summary['is_running'] < $this->_crawler_conf['run_duration']) {412 $this->_end_reason = 'stopped';413 self::debug('The crawler is running.');414 return;415 }437 // if ($this->_summary['is_running'] && time() - $this->_summary['is_running'] < $this->_crawler_conf['run_duration']) { 438 // $this->_end_reason = 'stopped'; 439 // self::debug('The crawler is running.'); 440 // return; 441 // } 416 442 417 443 // check current load … … 559 585 560 586 /** 587 * Take over lane 588 * @since 6.1 589 */ 590 private function _take_over_lane() 591 { 592 self::debug('Take over lane as lane is free: ' . $this->json_local_path() . '.pid'); 593 file::save($this->json_local_path() . '.pid', LITESPEED_LANE_HASH); 594 } 595 596 /** 597 * Update lane file 598 * @since 6.1 599 */ 600 private function _touch_lane() 601 { 602 touch($this->json_local_path() . '.pid'); 603 } 604 605 /** 606 * Release lane file 607 * @since 6.1 608 */ 609 public function Release_lane() 610 { 611 $lane_file = $this->json_local_path() . '.pid'; 612 if (!file_exists($lane_file)) { 613 return; 614 } 615 616 self::debug('Release lane'); 617 unlink($lane_file); 618 } 619 620 /** 621 * Check if lane is used by other crawlers 622 * @since 6.1 623 */ 624 private function _check_valid_lane($strict_mode = false) 625 { 626 // Check lane hash 627 $lane_file = $this->json_local_path() . '.pid'; 628 if ($strict_mode) { 629 if (!file_exists($lane_file)) { 630 self::debug("lane file not existed, strict mode is false [file] $lane_file"); 631 return false; 632 } 633 } 634 $pid = file::read($lane_file); 635 if ($pid && LITESPEED_LANE_HASH != $pid) { 636 // If lane file is older than 1h, ignore 637 if (time() - filemtime($lane_file) > 3600) { 638 self::debug('Lane file is older than 1h, releasing lane'); 639 $this->Release_lane(); 640 return true; 641 } 642 return false; 643 } 644 return true; 645 } 646 647 /** 561 648 * Run crawler 562 649 * … … 574 661 // self::debug('$urlChunks after array_chunk: ' . count($urlChunks)); 575 662 foreach ($urlChunks as $rows) { 663 if (!$this->_check_valid_lane(true)) { 664 $this->_end_reason = 'lane_invalid'; 665 self::debug('🛑 The crawler lane is used by newer crawler.'); 666 throw new \Exception('invalid crawler lane'); 667 } 668 // Update time 669 $this->_touch_lane(); 670 576 671 // self::debug('chunk fetching count($rows)= ' . count($rows)); 577 672 // multi curl … … 651 746 if ($this->_cur_threads == 0) { 652 747 $this->_end_reason = 'stopped_highload'; 653 self::debug(' Terminated due to highload');748 self::debug('🛑 Terminated due to highload'); 654 749 return; 655 750 // return __('Stopped due to load over limit', 'litespeed-cache'); … … 758 853 private function _status2title($status) 759 854 { 760 if ($status == 'H') return '✅ Hit'; 761 if ($status == 'M') return '😊 Miss'; 762 if ($status == 'B') return '😅 Blacklisted'; 763 if ($status == 'N') return '😅 Blacklisted'; 855 if ($status == 'H') { 856 return '✅ Hit'; 857 } 858 if ($status == 'M') { 859 return '😊 Miss'; 860 } 861 if ($status == 'B') { 862 return '😅 Blacklisted'; 863 } 864 if ($status == 'N') { 865 return '😅 Blacklisted'; 866 } 764 867 return '🛸 Unknown'; 765 868 } … … 1088 1191 1089 1192 /** 1193 * Return crawler meta file local path 1194 * 1195 * @since 6.1 1196 * @access public 1197 */ 1198 public function json_local_path() 1199 { 1200 if (!file_exists(LITESPEED_STATIC_DIR . '/crawler/' . $this->_sitemeta)) { 1201 return false; 1202 } 1203 1204 return LITESPEED_STATIC_DIR . '/crawler/' . $this->_sitemeta; 1205 } 1206 1207 /** 1090 1208 * Return crawler meta file 1091 1209 * … … 1208 1326 break; 1209 1327 1210 // Handle the ajax request to proceed crawler manually by admin1328 // Handle the ajax request to proceed crawler manually by admin 1211 1329 case self::TYPE_START: 1212 1330 self::start_async(); -
litespeed-cache/trunk/src/css.cls.php
r3009052 r3031822 20 20 protected $_summary; 21 21 private $_queue; 22 private $_endts; 22 23 23 24 /** … … 206 207 207 208 $i = 0; 209 $timeoutLimit = ini_get('max_execution_time'); 210 $this->_endts = time() + $timeoutLimit; 208 211 foreach ($this->_queue as $k => $v) { 209 212 if (!empty($v['_status'])) { 210 213 continue; 214 } 215 216 if (function_exists('set_time_limit')) { 217 $this->_endts += 120; 218 set_time_limit(120); 219 } 220 if ($this->_endts - time() < 10) { 221 // self::debug("🚨 End loop due to timeout limit reached " . $timeoutLimit . "s"); 222 // return; 211 223 } 212 224 … … 279 291 return 'out_of_quota'; 280 292 } 281 282 set_time_limit(120);283 293 284 294 // Update css request status -
litespeed-cache/trunk/src/db-optm.cls.php
r3009052 r3031822 1 1 <?php 2 2 3 /** 3 4 * The admin optimize tool … … 9 10 * @author LiteSpeed Technologies <[email protected]> 10 11 */ 12 11 13 namespace LiteSpeed; 12 14 … … 19 21 private static $TYPES = array( 20 22 'revision', 23 'orphaned_post_meta', 21 24 'auto_draft', 22 25 'trash_post', … … 97 100 Utility::compatibility(); 98 101 return array_sum(array_column($res, 0)); 102 103 case 'orphaned_post_meta': 104 return $wpdb->get_var("SELECT COUNT(*) FROM `$wpdb->postmeta` a LEFT JOIN `$wpdb->posts` b ON b.ID=a.post_id WHERE b.ID IS NULL"); 99 105 100 106 case 'auto_draft': … … 198 204 return __('Clean post revisions successfully.', 'litespeed-cache'); 199 205 206 case 'orphaned_post_meta': 207 $wpdb->query("DELETE a FROM `$wpdb->postmeta` a LEFT JOIN `$wpdb->posts` b ON b.ID=a.post_id WHERE b.ID IS NULL"); 208 return __('Clean orphaned post meta successfully.', 'litespeed-cache'); 209 200 210 case 'auto_draft': 201 211 $wpdb->query("DELETE FROM `$wpdb->posts` WHERE post_status = 'auto-draft'"); -
litespeed-cache/trunk/src/esi.cls.php
r3009052 r3031822 826 826 } 827 827 } 828 // Needed when permalink structure is "Plain" 829 wp(); 828 830 829 831 wp_admin_bar_render(); -
litespeed-cache/trunk/src/htaccess.cls.php
r3009052 r3031822 39 39 const MARKER_NONLS = 'NON_LSCACHE'; 40 40 const MARKER_LOGIN_COOKIE = '### marker LOGIN COOKIE'; 41 const MARKER_ASYNC = '### marker ASYNC'; 41 42 const MARKER_CRAWLER = '### marker CRAWLER'; 42 43 const MARKER_MOBILE = '### marker MOBILE'; … … 503 504 504 505 # continual crawler 505 $id = Base::O_CRAWLER;506 if (!empty($cfg[$id])) {507 $new_rules[] = self::MARKER_CRAWLER. self::MARKER_START;508 $new_rules[] = 'RewriteCond %{REQUEST_URI} /wp-admin/admin-ajax\.php';509 $new_rules[] = 'RewriteCond %{QUERY_STRING} action=async_litespeed';510 $new_rules[] = 'RewriteRule .* - [E=noabort:1]';511 $new_rules[] = self::MARKER_CRAWLER. self::MARKER_END;512 $new_rules[] = '';513 }506 // $id = Base::O_CRAWLER; 507 // if (!empty($cfg[$id])) { 508 $new_rules[] = self::MARKER_ASYNC . self::MARKER_START; 509 $new_rules[] = 'RewriteCond %{REQUEST_URI} /wp-admin/admin-ajax\.php'; 510 $new_rules[] = 'RewriteCond %{QUERY_STRING} action=async_litespeed'; 511 $new_rules[] = 'RewriteRule .* - [E=noabort:1]'; 512 $new_rules[] = self::MARKER_ASYNC . self::MARKER_END; 513 $new_rules[] = ''; 514 // } 514 515 515 516 // mobile agents -
litespeed-cache/trunk/src/img-optm.cls.php
r3010716 r3031822 728 728 } 729 729 730 if (empty($post_data['server']) || substr($post_data['server'], -11) !== '.quic.cloud') {730 if (empty($post_data['server']) || (substr($post_data['server'], -11) !== '.quic.cloud' && substr($post_data['server'], -15) !== '.quicserver.com')) { 731 731 self::debug('notify exit: no/wrong server'); 732 732 return Cloud::err('no/wrong server'); … … 937 937 { 938 938 global $wpdb; 939 940 self::debug('' . ($manual ? 'Manually' : 'Cron') . ' pull started'); 939 $timeoutLimit = ini_get('max_execution_time'); 940 $endts = time() + $timeoutLimit; 941 942 self::debug('' . ($manual ? 'Manually' : 'Cron') . ' pull started [timeout: ' . $timeoutLimit . 's]'); 941 943 942 944 if ($this->cron_running()) { … … 963 965 $server_list = array(); 964 966 965 while ($img_rows = $wpdb->get_results($_q)) { 966 set_time_limit(600); 967 968 /** 969 * Update cron timestamp to avoid duplicated running 970 * @since 1.6.2 971 */ 972 $this->_update_cron_running(); 973 974 // Run requests in parallel 975 $requests = array(); // store each request URL for Requests::request_multiple() 976 $imgs_by_req = array(); // store original request data so that we can reference it in the response 977 $req_counter = 0; 978 foreach ($img_rows as $row_img) { 979 // request original image 980 $server_info = json_decode($row_img->server_info, true); 981 if (!empty($server_info['ori'])) { 982 $image_url = $server_info['server'] . '/' . $server_info['ori']; 983 self::debug('Queueing pull: ' . $image_url); 984 $requests[$req_counter] = array( 985 'url' => $image_url, 986 'type' => 'GET', 987 ); 988 $imgs_by_req[$req_counter++] = array( 989 'type' => 'ori', 990 'data' => $row_img, 991 ); 967 try { 968 while ($img_rows = $wpdb->get_results($_q)) { 969 self::debug('timeout left: ' . ($endts - time()) . 's'); 970 if (function_exists('set_time_limit')) { 971 $endts += 600; 972 self::debug('Endtime extended to ' . date('Ymd H:i:s', $endts)); 973 set_time_limit(600); // This will be no more important as we use noabort now 992 974 } 993 994 // request webp image 995 $webp_size = 0; 996 if (!empty($server_info['webp'])) { 997 $image_url = $server_info['server'] . '/' . $server_info['webp']; 998 self::debug('Queueing pull WebP: ' . $image_url); 999 $requests[$req_counter] = array( 1000 'url' => $image_url, 1001 'type' => 'GET', 1002 ); 1003 $imgs_by_req[$req_counter++] = array( 1004 'type' => 'webp', 1005 'data' => $row_img, 1006 ); 975 // Disabled as we use noabort 976 // if ($endts - time() < 10) { 977 // self::debug("🚨 End loop due to timeout limit reached " . $timeoutLimit . "s"); 978 // break; 979 // } 980 981 /** 982 * Update cron timestamp to avoid duplicated running 983 * @since 1.6.2 984 */ 985 $this->_update_cron_running(); 986 987 // Run requests in parallel 988 $requests = array(); // store each request URL for Requests::request_multiple() 989 $imgs_by_req = array(); // store original request data so that we can reference it in the response 990 $req_counter = 0; 991 foreach ($img_rows as $row_img) { 992 // request original image 993 $server_info = json_decode($row_img->server_info, true); 994 if (!empty($server_info['ori'])) { 995 $image_url = $server_info['server'] . '/' . $server_info['ori']; 996 self::debug('Queueing pull: ' . $image_url); 997 $requests[$req_counter] = array( 998 'url' => $image_url, 999 'type' => 'GET', 1000 ); 1001 $imgs_by_req[$req_counter++] = array( 1002 'type' => 'ori', 1003 'data' => $row_img, 1004 ); 1005 } 1006 1007 // request webp image 1008 $webp_size = 0; 1009 if (!empty($server_info['webp'])) { 1010 $image_url = $server_info['server'] . '/' . $server_info['webp']; 1011 self::debug('Queueing pull WebP: ' . $image_url); 1012 $requests[$req_counter] = array( 1013 'url' => $image_url, 1014 'type' => 'GET', 1015 ); 1016 $imgs_by_req[$req_counter++] = array( 1017 'type' => 'webp', 1018 'data' => $row_img, 1019 ); 1020 } 1007 1021 } 1008 } 1009 self::debug('Loaded images count: ' . $req_counter); 1010 1011 $complete_action = function ($response, $req_count) use ($imgs_by_req, $rm_ori_bkup, &$total_pulled_ori, &$total_pulled_webp, &$server_list) { 1012 global $wpdb; 1013 $row_data = isset($imgs_by_req[$req_count]) ? $imgs_by_req[$req_count] : false; 1014 if (false === $row_data) { 1015 self::debug('❌ failed to pull image: Request not found in lookup variable.'); 1016 return; 1017 } 1018 $row_type = isset($row_data['type']) ? $row_data['type'] : 'ori'; 1019 $row_img = $row_data['data']; 1020 $local_file = $this->wp_upload_dir['basedir'] . '/' . $row_img->src; 1021 $server_info = json_decode($row_img->server_info, true); 1022 1023 if (!$response->success) { 1024 if (404 == $response->status_code) { 1025 $this->_step_back_image($row_img->id); 1026 1027 $msg = __('Some optimized image file(s) has expired and was cleared.', 'litespeed-cache'); 1028 Admin_Display::error($msg); 1029 return; 1030 } else { 1031 // handle error 1032 $image_url = $server_info['server'] . '/' . $server_info[$row_type]; 1033 self::debug('❌ failed to pull image (' . $row_type . '): ' . $response->status_code . ' [Local: ' . $row_img->src . '] / [remote: ' . $image_url . ']'); 1022 self::debug('Loaded images count: ' . $req_counter); 1023 1024 $complete_action = function ($response, $req_count) use ($imgs_by_req, $rm_ori_bkup, &$total_pulled_ori, &$total_pulled_webp, &$server_list) { 1025 global $wpdb; 1026 $row_data = isset($imgs_by_req[$req_count]) ? $imgs_by_req[$req_count] : false; 1027 if (false === $row_data) { 1028 self::debug('❌ failed to pull image: Request not found in lookup variable.'); 1034 1029 return; 1035 1030 } 1031 $row_type = isset($row_data['type']) ? $row_data['type'] : 'ori'; 1032 $row_img = $row_data['data']; 1033 $local_file = $this->wp_upload_dir['basedir'] . '/' . $row_img->src; 1034 $server_info = json_decode($row_img->server_info, true); 1035 1036 if (empty($response->success)) { 1037 if (!empty($response->status_code) && 404 == $response->status_code) { 1038 $this->_step_back_image($row_img->id); 1039 1040 $msg = __('Some optimized image file(s) has expired and was cleared.', 'litespeed-cache'); 1041 Admin_Display::error($msg); 1042 return; 1043 } else { 1044 // handle error 1045 $image_url = $server_info['server'] . '/' . $server_info[$row_type]; 1046 self::debug( 1047 '❌ failed to pull image (' . 1048 $row_type . 1049 '): ' . 1050 (!empty($response->status_code) ? $response->status_code : '') . 1051 ' [Local: ' . 1052 $row_img->src . 1053 '] / [remote: ' . 1054 $image_url . 1055 ']' 1056 ); 1057 throw new \Exception('Failed to pull image ' . (!empty($response->status_code) ? $response->status_code : '') . ' [url] ' . $image_url); 1058 return; 1059 } 1060 } 1061 // Handle wp_remote_get 404 as its success=true 1062 if (!empty($response->status_code)) { 1063 if ($response->status_code == 404) { 1064 $this->_step_back_image($row_img->id); 1065 1066 $msg = __('Some optimized image file(s) has expired and was cleared.', 'litespeed-cache'); 1067 Admin_Display::error($msg); 1068 return; 1069 } 1070 // Note: if there is other error status code found in future, handle here 1071 } 1072 1073 if ('webp' === $row_type) { 1074 file_put_contents($local_file . '.webp', $response->body); 1075 1076 if (!file_exists($local_file . '.webp') || !filesize($local_file . '.webp') || md5_file($local_file . '.webp') !== $server_info['webp_md5']) { 1077 self::debug('❌ Failed to pull optimized webp img: file md5 mismatch, server md5: ' . $server_info['webp_md5']); 1078 1079 // Delete working table 1080 $q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d "; 1081 $wpdb->query($wpdb->prepare($q, $row_img->id)); 1082 1083 $msg = __('Pulled WebP image md5 does not match the notified WebP image md5.', 'litespeed-cache'); 1084 Admin_Display::error($msg); 1085 return; 1086 } 1087 1088 self::debug('Pulled optimized img WebP: ' . $local_file . '.webp'); 1089 1090 $webp_size = filesize($local_file . '.webp'); 1091 1092 /** 1093 * API for WebP 1094 * @since 2.9.5 1095 * @since 3.0 $row_img less elements (see above one) 1096 * @see #751737 - API docs for WEBP generation 1097 */ 1098 do_action('litespeed_img_pull_webp', $row_img, $local_file . '.webp'); 1099 1100 $total_pulled_webp++; 1101 } else { 1102 // "ori" image type 1103 file_put_contents($local_file . '.tmp', $response->body); 1104 1105 if (!file_exists($local_file . '.tmp') || !filesize($local_file . '.tmp') || md5_file($local_file . '.tmp') !== $server_info['ori_md5']) { 1106 self::debug( 1107 '❌ Failed to pull optimized img: file md5 mismatch [url] ' . 1108 $server_info['server'] . 1109 '/' . 1110 $server_info['ori'] . 1111 ' [server_md5] ' . 1112 $server_info['ori_md5'] 1113 ); 1114 1115 // Delete working table 1116 $q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d "; 1117 $wpdb->query($wpdb->prepare($q, $row_img->id)); 1118 1119 $msg = __('One or more pulled images does not match with the notified image md5', 'litespeed-cache'); 1120 Admin_Display::error($msg); 1121 return; 1122 } 1123 1124 // Backup ori img 1125 if (!$rm_ori_bkup) { 1126 $extension = pathinfo($local_file, PATHINFO_EXTENSION); 1127 $bk_file = substr($local_file, 0, -strlen($extension)) . 'bk.' . $extension; 1128 file_exists($local_file) && rename($local_file, $bk_file); 1129 } 1130 1131 // Replace ori img 1132 rename($local_file . '.tmp', $local_file); 1133 1134 self::debug('Pulled optimized img: ' . $local_file); 1135 1136 /** 1137 * API Hook 1138 * @since 2.9.5 1139 * @since 3.0 $row_img has less elements now. Most useful ones are `post_id`/`src` 1140 */ 1141 do_action('litespeed_img_pull_ori', $row_img, $local_file); 1142 1143 self::debug2('Remove _table_img_optming record [id] ' . $row_img->id); 1144 } 1145 1146 // Delete working table 1147 $q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d "; 1148 $wpdb->query($wpdb->prepare($q, $row_img->id)); 1149 1150 // Save server_list to notify taken 1151 if (empty($server_list[$server_info['server']])) { 1152 $server_list[$server_info['server']] = array(); 1153 } 1154 1155 $server_info_id = !empty($server_info['file_id']) ? $server_info['file_id'] : $server_info['id']; 1156 $server_list[$server_info['server']][] = $server_info_id; 1157 1158 $total_pulled_ori++; 1159 }; 1160 1161 if (class_exists('\WpOrg\Requests\Requests') && class_exists('\WpOrg\Requests\Autoload') && version_compare(PHP_VERSION, '5.6.0', '>=')) { 1162 // Make sure Requests can load internal classes. 1163 Autoload::register(); 1164 1165 // Run pull requests in parallel 1166 Requests::request_multiple($requests, array( 1167 'timeout' => 60, 1168 'connect_timeout' => 60, 1169 'complete' => $complete_action, 1170 )); 1171 } else { 1172 foreach ($requests as $cnt => $req) { 1173 $wp_response = wp_remote_get($req['url'], array('timeout' => 60)); 1174 $request_response = array( 1175 'success' => false, 1176 'status_code' => 0, 1177 'body' => null, 1178 ); 1179 if (is_wp_error($wp_response)) { 1180 $error_message = $wp_response->get_error_message(); 1181 self::debug('❌ failed to pull image: ' . $error_message); 1182 } else { 1183 $request_response['success'] = true; 1184 $request_response['status_code'] = $wp_response['response']['code']; 1185 $request_response['body'] = $wp_response['body']; 1186 } 1187 self::debug('response code [code] ' . $wp_response['response']['code'] . ' [url] ' . $req['url']); 1188 1189 $request_response = (object) $request_response; 1190 1191 $complete_action($request_response, $cnt); 1192 } 1036 1193 } 1037 1038 if ('webp' === $row_type) { 1039 file_put_contents($local_file . '.webp', $response->body); 1040 1041 if (!file_exists($local_file . '.webp') || !filesize($local_file . '.webp') || md5_file($local_file . '.webp') !== $server_info['webp_md5']) { 1042 self::debug('❌ Failed to pull optimized webp img: file md5 mismatch, server md5: ' . $server_info['webp_md5']); 1043 1044 // Delete working table 1045 $q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d "; 1046 $wpdb->query($wpdb->prepare($q, $row_img->id)); 1047 1048 $msg = __('Pulled WebP image md5 does not match the notified WebP image md5.', 'litespeed-cache'); 1049 Admin_Display::error($msg); 1050 return; 1051 } 1052 1053 self::debug('Pulled optimized img WebP: ' . $local_file . '.webp'); 1054 1055 $webp_size = filesize($local_file . '.webp'); 1056 1057 /** 1058 * API for WebP 1059 * @since 2.9.5 1060 * @since 3.0 $row_img less elements (see above one) 1061 * @see #751737 - API docs for WEBP generation 1062 */ 1063 do_action('litespeed_img_pull_webp', $row_img, $local_file . '.webp'); 1064 1065 $total_pulled_webp++; 1066 } else { 1067 // "ori" image type 1068 file_put_contents($local_file . '.tmp', $response->body); 1069 1070 if (!file_exists($local_file . '.tmp') || !filesize($local_file . '.tmp') || md5_file($local_file . '.tmp') !== $server_info['ori_md5']) { 1071 self::debug( 1072 '❌ Failed to pull optimized img: file md5 mismatch [url] ' . 1073 $server_info['server'] . 1074 '/' . 1075 $server_info['ori'] . 1076 ' [server_md5] ' . 1077 $server_info['ori_md5'] 1078 ); 1079 1080 // Delete working table 1081 $q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d "; 1082 $wpdb->query($wpdb->prepare($q, $row_img->id)); 1083 1084 $msg = __('One or more pulled images does not match with the notified image md5', 'litespeed-cache'); 1085 Admin_Display::error($msg); 1086 return; 1087 } 1088 1089 // Backup ori img 1090 if (!$rm_ori_bkup) { 1091 $extension = pathinfo($local_file, PATHINFO_EXTENSION); 1092 $bk_file = substr($local_file, 0, -strlen($extension)) . 'bk.' . $extension; 1093 file_exists($local_file) && rename($local_file, $bk_file); 1094 } 1095 1096 // Replace ori img 1097 rename($local_file . '.tmp', $local_file); 1098 1099 self::debug('Pulled optimized img: ' . $local_file); 1100 1101 /** 1102 * API Hook 1103 * @since 2.9.5 1104 * @since 3.0 $row_img has less elements now. Most useful ones are `post_id`/`src` 1105 */ 1106 do_action('litespeed_img_pull_ori', $row_img, $local_file); 1107 1108 self::debug2('Remove _table_img_optming record [id] ' . $row_img->id); 1109 } 1110 1111 // Delete working table 1112 $q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d "; 1113 $wpdb->query($wpdb->prepare($q, $row_img->id)); 1114 1115 // Save server_list to notify taken 1116 if (empty($server_list[$server_info['server']])) { 1117 $server_list[$server_info['server']] = array(); 1118 } 1119 1120 $server_info_id = !empty($server_info['file_id']) ? $server_info['file_id'] : $server_info['id']; 1121 $server_list[$server_info['server']][] = $server_info_id; 1122 1123 $total_pulled_ori++; 1124 }; 1125 1126 if (class_exists('Requests')) { 1127 // Make sure Requests can load internal classes. 1128 Autoload::register(); 1129 1130 // Run pull requests in parallel 1131 Requests::request_multiple($requests, array( 1132 'timeout' => 60, 1133 'connect_timeout' => 60, 1134 'complete' => $complete_action, 1135 )); 1136 } else { 1137 foreach ($requests as $cnt => $req) { 1138 $wp_response = wp_remote_get($req['url'], array('timeout' => 60)); 1139 $request_response = array( 1140 'success' => false, 1141 'status_code' => 0, 1142 'body' => null, 1143 ); 1144 if (is_wp_error($wp_response)) { 1145 $error_message = $wp_response->get_error_message(); 1146 self::debug('❌ failed to pull image: ' . $error_message); 1147 } else { 1148 $request_response['success'] = true; 1149 $request_response['status_code'] = $wp_response['response']['code']; 1150 $request_response['body'] = $wp_response['body']; 1151 } 1152 1153 $request_response = (object) $request_response; 1154 1155 $complete_action($request_response, $cnt); 1156 } 1157 } 1194 self::debug('Current batch pull finished'); 1195 } 1196 } catch (\Exception $e) { 1197 Admin_Display::error('Image pull process failure: ' . $e->getMessage()); 1158 1198 } 1159 1199 … … 1161 1201 foreach ($server_list as $server => $img_list) { 1162 1202 $data = array( 1163 'action' => self::CLOUD_ACTION_TAKEN,1164 'list' => $img_list,1165 'server' => $server,1203 'action' => self::CLOUD_ACTION_TAKEN, 1204 'list' => $img_list, 1205 'server' => $server, 1166 1206 ); 1167 1207 // TODO: improve this so we do not call once per server, but just once and then filter on the server side … … 1206 1246 { 1207 1247 global $wpdb; 1248 1249 self::debug('Push image back to new status [id] ' . $id); 1208 1250 1209 1251 // Reset the image to gathered status -
litespeed-cache/trunk/src/media.cls.php
r3009052 r3031822 92 92 $featured_image_url = $this->replace_webp($featured_image_url) ?: $featured_image_url; 93 93 } 94 $content .= '<link rel="preload" as="image" href="' . $featured_image_url . '">'; 94 $content .= '<link rel="preload" as="image" href="' . $featured_image_url . '">'; // TODO: use imagesrcset 95 95 } 96 96 } … … 732 732 } 733 733 734 $sizes = getimagesize($src); 734 try { 735 $sizes = getimagesize($src); 736 } catch (\Exception $e) { 737 return false; 738 } 735 739 736 740 if (!empty($sizes[0]) && !empty($sizes[1])) { -
litespeed-cache/trunk/src/object-cache.cls.php
r3009052 r3031822 470 470 $res = $this->_conn->setEx($key, $ttl, $data); 471 471 } catch (\RedisException $ex) { 472 $res = false; 472 473 $msg = sprintf(__('Redis encountered a fatal error: %s (code: %d)', 'litespeed-cache'), $ex->getMessage(), $ex->getCode()); 473 474 Debug2::debug('[Object] ' . $msg); -
litespeed-cache/trunk/src/tag.cls.php
r3009052 r3031822 251 251 } 252 252 253 $queried_obj_id = get_queried_object_id(); 254 if (is_archive()) { 255 //An Archive is a Category, Tag, Author, Date, Custom Post Type or Custom Taxonomy based pages. 256 if (is_category() || is_tag() || is_tax()) { 257 $tags[] = self::TYPE_ARCHIVE_TERM . $queried_obj_id; 258 } elseif (is_post_type_archive()) { 259 global $wp_query; 260 $post_type = (string) $wp_query->get('post_type'); 261 $tags[] = self::TYPE_ARCHIVE_POSTTYPE . $post_type; 262 } elseif (is_author()) { 263 $tags[] = self::TYPE_AUTHOR . $queried_obj_id; 264 } elseif (is_date()) { 265 global $post; 266 $date = $post->post_date; 267 $date = strtotime($date); 268 if (is_day()) { 269 $tags[] = self::TYPE_ARCHIVE_DATE . date('Ymd', $date); 270 } elseif (is_month()) { 271 $tags[] = self::TYPE_ARCHIVE_DATE . date('Ym', $date); 272 } elseif (is_year()) { 273 $tags[] = self::TYPE_ARCHIVE_DATE . date('Y', $date); 274 } 253 global $wp_query; 254 if (isset($wp_query)) { 255 $queried_obj_id = get_queried_object_id(); 256 if (is_archive()) { 257 //An Archive is a Category, Tag, Author, Date, Custom Post Type or Custom Taxonomy based pages. 258 if (is_category() || is_tag() || is_tax()) { 259 $tags[] = self::TYPE_ARCHIVE_TERM . $queried_obj_id; 260 } elseif (is_post_type_archive() && ($post_type = get_post_type())) { 261 $tags[] = self::TYPE_ARCHIVE_POSTTYPE . $post_type; 262 } elseif (is_author()) { 263 $tags[] = self::TYPE_AUTHOR . $queried_obj_id; 264 } elseif (is_date()) { 265 global $post; 266 $date = $post->post_date; 267 $date = strtotime($date); 268 if (is_day()) { 269 $tags[] = self::TYPE_ARCHIVE_DATE . date('Ymd', $date); 270 } elseif (is_month()) { 271 $tags[] = self::TYPE_ARCHIVE_DATE . date('Ym', $date); 272 } elseif (is_year()) { 273 $tags[] = self::TYPE_ARCHIVE_DATE . date('Y', $date); 274 } 275 } 276 } elseif (is_singular()) { 277 //$this->is_singular = $this->is_single || $this->is_page || $this->is_attachment; 278 $tags[] = self::TYPE_POST . $queried_obj_id; 279 280 if (is_page()) { 281 $tags[] = self::TYPE_PAGES; 282 } 283 } elseif (is_feed()) { 284 $tags[] = self::TYPE_FEED; 275 285 } 276 } elseif (is_singular()) {277 //$this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;278 $tags[] = self::TYPE_POST . $queried_obj_id;279 280 if (is_page()) {281 $tags[] = self::TYPE_PAGES;282 }283 } elseif (is_feed()) {284 $tags[] = self::TYPE_FEED;285 286 } 286 287 -
litespeed-cache/trunk/src/task.cls.php
r3009052 r3031822 119 119 ); 120 120 $url = add_query_arg($qs, admin_url('admin-ajax.php')); 121 self::debug('async call to ' . $url); 121 122 wp_remote_post(esc_url_raw($url), $args); 122 123 } -
litespeed-cache/trunk/src/utility.cls.php
r3009052 r3031822 1 1 <?php 2 2 3 /** 3 4 * The utility class. … … 6 7 * @since 1.5 Moved into /inc 7 8 */ 9 8 10 namespace LiteSpeed; 9 11 -
litespeed-cache/trunk/tpl/dash/dashboard.tpl.php
r2977143 r3031822 611 611 <h3 class="litespeed-title"> 612 612 QUIC.cloud 613 <a href="https://www.quic.cloud/quic-cloud-services-and-features/litespeed-cache-service/" class="litespeed-title-right-icon" >Learn More</a>613 <a href="https://www.quic.cloud/quic-cloud-services-and-features/litespeed-cache-service/" class="litespeed-title-right-icon" target="_blank"><?php echo __('Learn More', 'litespeed-cache'); ?></a> 614 614 </h3> 615 615 <p class="litespeed-top20 litespeed-text-bold litespeed-margin-bottom20"> 616 <a href="https://www.quic.cloud/docs/onboarding/" class="" >Try QUIC.cloud CDN!</a>616 <a href="https://www.quic.cloud/docs/onboarding/" class="" target="_blank"><?php echo __('Try QUIC.cloud CDN!', 'litespeed-cache'); ?></a> 617 617 </p> 618 618 <p class="litespeed-margin-y5"> 619 Best available WordPress performance619 <?php echo __('Best available WordPress performance', 'litespeed-cache'); ?> 620 620 </p> 621 621 <p class="litespeed-margin-y5"> 622 Globally fast TTFB, easy setup, and <a href="https://www.quic.cloud/quic-cloud-services-and-features/litespeed-cache-service/">more</a>!622 <?php echo sprintf(__('Globally fast TTFB, easy setup, and <a %s>more</a>!', 'litespeed-cache'), ' href="https://www.quic.cloud/quic-cloud-services-and-features/litespeed-cache-service/" target="_blank"'); ?> 623 623 </p> 624 624 <div class="litespeed-top10"> -
litespeed-cache/trunk/tpl/db_optm/manage.tpl.php
r2524344 r3031822 1 1 <?php 2 2 3 namespace LiteSpeed; 3 defined( 'WPINC' ) || exit; 4 5 defined('WPINC') || exit; 4 6 5 7 $_panels = array( 6 8 'all' => array( 7 'title' => __( 'Clean All', 'litespeed-cache'),9 'title' => __('Clean All', 'litespeed-cache'), 8 10 'desc' => '', 9 11 ), 10 12 'revision' => array( 11 'title' => __( 'Post Revisions', 'litespeed-cache' ), 12 'desc' => __( 'Clean all post revisions', 'litespeed-cache' ), 13 'title' => __('Post Revisions', 'litespeed-cache'), 14 'desc' => __('Clean all post revisions', 'litespeed-cache'), 15 ), 16 'orphaned_post_meta' => array( 17 'title' => __('Orphaned Post Meta', 'litespeed-cache'), 18 'desc' => __('Clean all orphaned post meta records', 'litespeed-cache'), 13 19 ), 14 20 'auto_draft' => array( 15 'title' => __( 'Auto Drafts', 'litespeed-cache'),16 'desc' => __( 'Clean all auto saved drafts', 'litespeed-cache'),21 'title' => __('Auto Drafts', 'litespeed-cache'), 22 'desc' => __('Clean all auto saved drafts', 'litespeed-cache'), 17 23 ), 18 24 'trash_post' => array( 19 'title' => __( 'Trashed Posts', 'litespeed-cache'),20 'desc' => __( 'Clean all trashed posts and pages', 'litespeed-cache'),25 'title' => __('Trashed Posts', 'litespeed-cache'), 26 'desc' => __('Clean all trashed posts and pages', 'litespeed-cache'), 21 27 ), 22 28 'spam_comment' => array( 23 'title' => __( 'Spam Comments', 'litespeed-cache'),24 'desc' => __( 'Clean all spam comments', 'litespeed-cache'),29 'title' => __('Spam Comments', 'litespeed-cache'), 30 'desc' => __('Clean all spam comments', 'litespeed-cache'), 25 31 ), 26 32 'trash_comment' => array( 27 'title' => __( 'Trashed Comments', 'litespeed-cache'),28 'desc' => __( 'Clean all trashed comments', 'litespeed-cache'),33 'title' => __('Trashed Comments', 'litespeed-cache'), 34 'desc' => __('Clean all trashed comments', 'litespeed-cache'), 29 35 ), 30 36 'trackback-pingback' => array( 31 'title' => __( 'Trackbacks/Pingbacks', 'litespeed-cache'),32 'desc' => __( 'Clean all trackbacks and pingbacks', 'litespeed-cache'),37 'title' => __('Trackbacks/Pingbacks', 'litespeed-cache'), 38 'desc' => __('Clean all trackbacks and pingbacks', 'litespeed-cache'), 33 39 ), 34 40 'expired_transient' => array( 35 'title' => __( 'Expired Transients', 'litespeed-cache'),36 'desc' => __( 'Clean expired transient options', 'litespeed-cache'),41 'title' => __('Expired Transients', 'litespeed-cache'), 42 'desc' => __('Clean expired transient options', 'litespeed-cache'), 37 43 ), 38 44 'all_transients' => array( 39 'title' => __( 'All Transients', 'litespeed-cache'),40 'desc' => __( 'Clean all transient options', 'litespeed-cache'),45 'title' => __('All Transients', 'litespeed-cache'), 46 'desc' => __('Clean all transient options', 'litespeed-cache'), 41 47 ), 42 48 'optimize_tables' => array( 43 'title' => __( 'Optimize Tables', 'litespeed-cache'),44 'desc' => __( 'Optimize all tables in your database', 'litespeed-cache'),49 'title' => __('Optimize Tables', 'litespeed-cache'), 50 'desc' => __('Optimize all tables in your database', 'litespeed-cache'), 45 51 ), 46 52 ); 47 53 48 $rev_max = $this->conf( Base::O_DB_OPTM_REVISIONS_MAX);49 $rev_age = $this->conf( Base::O_DB_OPTM_REVISIONS_AGE);50 if ( $rev_max || $rev_age) {51 $_panels[ 'revision' ][ 'desc' ] = sprintf( __( 'Clean revisions older than %1$s day(s), excluding %2$s latest revisions', 'litespeed-cache' ), '<strong>' . $rev_age . '</strong>' , '<strong>' . $rev_max . '</strong>');54 $rev_max = $this->conf(Base::O_DB_OPTM_REVISIONS_MAX); 55 $rev_age = $this->conf(Base::O_DB_OPTM_REVISIONS_AGE); 56 if ($rev_max || $rev_age) { 57 $_panels['revision']['desc'] = sprintf(__('Clean revisions older than %1$s day(s), excluding %2$s latest revisions', 'litespeed-cache'), '<strong>' . $rev_age . '</strong>', '<strong>' . $rev_max . '</strong>'); 52 58 } 53 59 54 60 $total = 0; 55 foreach ( $_panels as $tag => $v) {56 if ( $tag != 'all') {57 $_panels[ $tag ][ 'count' ] = $this->cls( 'DB_Optm' )->db_count( $tag);58 if ( ! in_array( $tag, array( 'optimize_tables' ) )) {59 $total += $_panels[ $tag ][ 'count'];61 foreach ($_panels as $tag => $v) { 62 if ($tag != 'all') { 63 $_panels[$tag]['count'] = $this->cls('DB_Optm')->db_count($tag); 64 if (!in_array($tag, array('optimize_tables'))) { 65 $total += $_panels[$tag]['count']; 60 66 } 61 67 } 62 $_panels[ $tag ][ 'link' ] = Utility::build_url( Router::ACTION_DB_OPTM, $tag);68 $_panels[$tag]['link'] = Utility::build_url(Router::ACTION_DB_OPTM, $tag); 63 69 } 64 70 65 $_panels[ 'all' ][ 'count'] = $total;71 $_panels['all']['count'] = $total; 66 72 67 73 $autoload_summary = DB_Optm::cls()->autoload_summary(); … … 71 77 <h3 class="litespeed-title"> 72 78 <?php echo __('Database Optimizer', 'litespeed-cache'); ?> 73 <?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/database/'); ?>79 <?php Doc::learn_more('https://docs.litespeedtech.com/lscache/lscwp/database/'); ?> 74 80 </h3> 75 81 76 82 <div class="litespeed-panel-wrapper litespeed-cards-wrapper"> 77 83 78 <?php foreach ( $_panels as $tag => $v ): ?>84 <?php foreach ($_panels as $tag => $v) : ?> 79 85 80 <a href="<?php echo $v[ 'link']; ?>" class="litespeed-panel postbox">81 <section class="litespeed-panel-wrapper-icon">82 <span class="litespeed-panel-icon-<?php echo $tag; ?>"></span>83 </section>84 <section class="litespeed-panel-content">85 <div class="litespeed-h3">86 <?php echo $v[ 'title']; ?>87 <span class="litespeed-panel-counter<?php if ( $v[ 'count' ] > 0 ) echo '-red'; ?>">(<?php echo $v[ 'count']; ?><?php echo DB_Optm::hide_more() ? '+' : ''; ?>)</span>88 </div>89 <span class="litespeed-panel-para"><?php echo $v[ 'desc']; ?></span>90 </section>91 <section class="litespeed-panel-wrapper-top-right">92 <span class="litespeed-panel-top-right-icon<?php echo $v[ 'count'] > 0 ? '-cross' : '-tick'; ?>"></span>93 </section>94 </a>95 <?php endforeach; ?>86 <a href="<?php echo $v['link']; ?>" class="litespeed-panel postbox"> 87 <section class="litespeed-panel-wrapper-icon"> 88 <span class="litespeed-panel-icon-<?php echo $tag; ?>"></span> 89 </section> 90 <section class="litespeed-panel-content"> 91 <div class="litespeed-h3"> 92 <?php echo $v['title']; ?> 93 <span class="litespeed-panel-counter<?php if ($v['count'] > 0) echo '-red'; ?>">(<?php echo $v['count']; ?><?php echo DB_Optm::hide_more() ? '+' : ''; ?>)</span> 94 </div> 95 <span class="litespeed-panel-para"><?php echo $v['desc']; ?></span> 96 </section> 97 <section class="litespeed-panel-wrapper-top-right"> 98 <span class="litespeed-panel-top-right-icon<?php echo $v['count'] > 0 ? '-cross' : '-tick'; ?>"></span> 99 </section> 100 </a> 101 <?php endforeach; ?> 96 102 97 103 </div> 98 104 99 <h3 class="litespeed-title"><?php echo __( 'Database Table Engine Converter', 'litespeed-cache'); ?></h3>105 <h3 class="litespeed-title"><?php echo __('Database Table Engine Converter', 'litespeed-cache'); ?></h3> 100 106 101 107 <div class="litespeed-panel-wrapper"> 102 108 103 109 <table class="wp-list-table widefat striped"> 104 <thead><tr > 105 <th scope="col">#</th> 106 <th scope="col"><?php echo __( 'Table', 'litespeed-cache' ); ?></th> 107 <th scope="col"><?php echo __( 'Engine', 'litespeed-cache' ); ?></th> 108 <th scope="col"><?php echo __( 'Tool', 'litespeed-cache' ); ?></th> 109 </tr></thead> 110 <thead> 111 <tr> 112 <th scope="col">#</th> 113 <th scope="col"><?php echo __('Table', 'litespeed-cache'); ?></th> 114 <th scope="col"><?php echo __('Engine', 'litespeed-cache'); ?></th> 115 <th scope="col"><?php echo __('Tool', 'litespeed-cache'); ?></th> 116 </tr> 117 </thead> 110 118 <tbody> 111 <?php119 <?php 112 120 $list = DB_Optm::cls()->list_myisam(); 113 if ( $list ) : 114 foreach ( $list as $k => $v ) : 115 ?> 121 if ($list) : 122 foreach ($list as $k => $v) : 123 ?> 124 <tr> 125 <td><?php echo $k + 1; ?></td> 126 <td><?php echo $v->TABLE_NAME; ?></td> 127 <td><?php echo $v->ENGINE; ?></td> 128 <td> 129 <a href="<?php echo Utility::build_url(Router::ACTION_DB_OPTM, DB_Optm::TYPE_CONV_TB, false, false, array('tb' => $v->TABLE_NAME)); ?>"> 130 <?php echo __('Convert to InnoDB', 'litespeed-cache'); ?> 131 </a> 132 </td> 133 </tr> 134 <?php endforeach; ?> 135 <?php else : ?> 116 136 <tr> 117 <td><?php echo $k + 1; ?></td> 118 <td><?php echo $v->TABLE_NAME; ?></td> 119 <td><?php echo $v->ENGINE; ?></td> 120 <td> 121 <a href="<?php echo Utility::build_url( Router::ACTION_DB_OPTM, DB_Optm::TYPE_CONV_TB, false, false, array( 'tb' => $v->TABLE_NAME ) ); ?>"> 122 <?php echo __( 'Convert to InnoDB', 'litespeed-cache' ); ?> 123 </a> 137 <td colspan="4" class="litespeed-success litespeed-text-center"> 138 <?php echo __('We are good. No table uses MyISAM engine.', 'litespeed-cache'); ?> 124 139 </td> 125 140 </tr> 126 <?php endforeach; ?> 127 <?php else : ?> 128 <tr> 129 <td colspan="4" class="litespeed-success litespeed-text-center"> 130 <?php echo __( 'We are good. No table uses MyISAM engine.', 'litespeed-cache' ); ?> 131 </td> 132 </tr> 133 <?php endif; ?> 141 <?php endif; ?> 134 142 </tbody> 135 143 </table> … … 144 152 margin-right: 20px; 145 153 } 146 .litespeed-body .field-col:first-child{ 147 margin-left:0; 154 155 .litespeed-body .field-col:first-child { 156 margin-left: 0; 148 157 } 149 158 </style> 150 159 151 <h3 class="litespeed-title"><?php echo __( 'Database Summary', 'litespeed-cache'); ?></h3>160 <h3 class="litespeed-title"><?php echo __('Database Summary', 'litespeed-cache'); ?></h3> 152 161 <div> 153 162 <div class="field-col"> 154 163 <p> 155 Autoload size: <strong><?php echo Utility::real_size( $autoload_summary->autoload_size); ?></strong></p>164 Autoload size: <strong><?php echo Utility::real_size($autoload_summary->autoload_size); ?></strong></p> 156 165 <p>Autoload entries: <strong><?php echo $autoload_summary->autload_entries; ?></strong></p> 157 166 … … 160 169 161 170 <div class="field-col"> 162 <p>Autoload top list:</p>171 <p>Autoload top list:</p> 163 172 <table class="wp-list-table widefat striped litespeed-width-auto litespeed-table-compact"> 164 <thead><tr > 165 <th scope="col">#</th> 166 <th scope="col"><?php echo __('Option Name', 'litespeed-cache'); ?></th> 167 <th scope="col"><?php echo __('Size', 'litespeed-cache'); ?></th> 168 </tr></thead> 173 <thead> 174 <tr> 175 <th scope="col">#</th> 176 <th scope="col"><?php echo __('Option Name', 'litespeed-cache'); ?></th> 177 <th scope="col"><?php echo __('Size', 'litespeed-cache'); ?></th> 178 </tr> 179 </thead> 169 180 <tbody> 170 <?php foreach ( $autoload_summary->autoload_toplist as $k => $v) : ?>171 <tr>172 <td><?php echo $k + 1; ?></td>173 <td><?php echo $v->option_name; ?></td>174 <td><?php echo $v->option_value_length; ?></td>175 </tr>181 <?php foreach ($autoload_summary->autoload_toplist as $k => $v) : ?> 182 <tr> 183 <td><?php echo $k + 1; ?></td> 184 <td><?php echo $v->option_name; ?></td> 185 <td><?php echo $v->option_value_length; ?></td> 186 </tr> 176 187 <?php endforeach; ?> 177 188 </tbody> … … 180 191 </div> 181 192 </div> 182 183 184 185 186 187
Note: See TracChangeset
for help on using the changeset viewer.