]> 91.132.146.200 Git - selfpaste.git/commitdiff
better logging and code cleanups develop
authorBanana <mail@bananas-playground.net>
Sun, 19 Nov 2023 10:42:24 +0000 (11:42 +0100)
committerBanana <mail@bananas-playground.net>
Sun, 19 Nov 2023 10:42:24 +0000 (11:42 +0100)
CHANGELOG
client/webclient/config.default.php
client/webclient/index.php
documentation/setup.txt
documentation/update.txt
webroot/config.default.php
webroot/index.php
webroot/lib/mancubus.class.php
webroot/lib/summoner.class.php

index ecf8598b59856066fd9f1bd5b32af7ea1894f7d8..42a674ef9f48c6fcb1a2d08c2beeb392e9c2d04c 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,7 @@
-yyyymmdd version x.x Neon
+yyyymmdd version 1.x Neon
+* Moved and added settings to config file. See update.txt
+* Better logging
+* Updated client/webclient
 
 20231009 version 1.5 Fluorine
 * Maintenance release. Updated requirements to current versions if possible
index 545ba577dda8ecbbccdab8722e8b5595cfb6b402..e04c0cd6ac9b912ae8530b0996d5b2a5f73f45b3 100644 (file)
@@ -20,6 +20,9 @@
  * this is the config file for the webclient
  */
 
+const DEBUG = false;
+const TIMEZONE = 'Europe/Berlin';
+
 /* please provide a unique username for this installation */
 const FRONTEND_USERNAME = 'some';
 /* please provide a unique password for this installation */
index 81ba8bce9b2947d0a7ad9c6d7d8ba04e8823bcde..d315654984005bfee603ee55fe7a7dd6e4896d0a 100644 (file)
  * copy the config.default.php file to config.php and update its settings
  */
 
-const DEBUG = false;
-require_once 'config.php';
-
 # Encoding and error reporting setting
 mb_http_output('UTF-8');
 mb_internal_encoding('UTF-8');
 error_reporting(-1); // E_ALL & E_STRICT
 
+require_once 'config.php';
+
 # default time setting
-date_default_timezone_set('Europe/Berlin');
+date_default_timezone_set(TIMEZONE);
 
 # check request
 $_urlToParse = filter_var($_SERVER['QUERY_STRING'],FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW);
@@ -40,7 +39,7 @@ if(!empty($_urlToParse)) {
     }
 }
 ini_set('display_errors',false);
-if(DEBUG === true) {
+if(DEBUG) {
     ini_set('display_errors',true);
 }
 
@@ -146,7 +145,7 @@ function curlPostUploadCall(string $url,array $data, string $port=''): mixed {
         $ret = $do;
     }
     else {
-        error_log(var_export(curl_error($ch),true),3,'./sp-webclient.log');
+        error_log(var_export(curl_error($ch),true),3,'./selfpaste-webclient.log');
     }
 
     curl_close($ch);
index 8e733d4e82fb892eaf372b3f4bcd77d40a67f8fe..86dd763f59eb4f0ebfebe93db1ac5ea649f64e18 100644 (file)
@@ -8,7 +8,7 @@ Open config.php, read the comments and make your changes.
 For more information about some config settings read the separate documentation
 file for this setting.
 
-Folder logs and pasties need t be writeable by webserver process / owner
+Folder logs and pasties need to be writeable by webserver process / owner
 
-Change date_default_timezone_set in index.php if your timezone is
+Change TIMEZONE in config.php if your timezone is
 different to Europe/Berlin
index 3bf87e7d41ee1478134e002d48972d1c2eafeb61..15c973c2532d814958cc72fbbf371c0077c63940 100644 (file)
@@ -5,6 +5,19 @@ Update process is as follows:
 - update your config.php
 - make sure of any special update steps listed below.
 
+## x.x Neon
+Moved and added settings to config file. See config.default.php
+Make sure to add (with default values):
+const DEBUG = false;
+const TIMEZONE = 'Europe/Berlin';
+const PATH_ABSOLUTE = '/path/to/your/installation/';
+const PATH_SYSTEMOUT = PATH_ABSOLUTE.'/logs';
+const ERROR_LOG_FILE = PATH_SYSTEMOUT.'/selfpaste-error.log';
+const CREATE_LOG = PATH_SYSTEMOUT.'/selfpaste-create.log';
+
+Logfilenames changed. Existing create.log and error.log can be removed.
+
+
 ## 1.5 Fluorine
 New syntax in config file. Switched from define() to const syntax.
 This change apply also to the included webclient
index 46470b4c95fea713d546063adb0169f37a20f73d..78bddb7e87ad03d2c1acd4c72605986cc383c88c 100644 (file)
  * 2019 - 2023 https://://www.bananas-playground.net/projekt/selfpaste
  */
 
+# debug setting
+const DEBUG = false;
+
+# timezone settings
+const TIMEZONE = 'Europe/Berlin';
+
+# path settings
+const PATH_ABSOLUTE = '/www/htdocs/';
+const PATH_SYSTEMOUT = PATH_ABSOLUTE.'/logs';
+const ERROR_LOG_FILE = PATH_SYSTEMOUT.'/selfpaste-error.log';
+const CREATE_LOG = PATH_SYSTEMOUT.'/selfpaste-create.log';
+
 # this is your installation secret. Could be anything.
 # Think of it as a key. Change it often to avoid any abuse.
 # The description will be used in the log files
index 29f4b94eccea51f69100bb88624563ce46160ffe..0078112abec32f1462ccbc3a9d1080d2b0e34f7d 100644 (file)
  * 2019 - 2023 https://://www.bananas-playground.net/projekt/selfpaste
  */
 
-# global debug setting
-const DEBUG = false;
-
 # Encoding and error reporting setting
 mb_http_output('UTF-8');
 mb_internal_encoding('UTF-8');
 error_reporting(-1); // E_ALL & E_STRICT
 
+# config file
+require_once 'config.php';
+
 # default time setting
-date_default_timezone_set('Europe/Berlin');
+date_default_timezone_set(TIMEZONE);
 
 # check request
 $_urlToParse = filter_var($_SERVER['QUERY_STRING'],FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW);
@@ -35,9 +35,6 @@ if(!empty($_urlToParse)) {
     }
 }
 
-const ERROR_LOG_FILE = './logs/error.log';
-const CREATE_LOG = './logs/create.log';
-
 # error reporting
 ini_set('log_errors',true);
 if(DEBUG) {
@@ -49,8 +46,7 @@ else {
 
 # static helper class
 require_once 'lib/summoner.class.php';
-# config file
-require_once 'config.php';
+
 # upload / file handling
 require_once 'lib/mancubus.class.php';
 
@@ -108,7 +104,7 @@ elseif ($_create === true) {
         if($_do['status'] === true) {
             $httpResponseCode = 200;
             if(defined('LOG_CREATION') && LOG_CREATION === true) {
-                error_log(date("c")." ".$_message." ".SELFPASTE_UPLOAD_SECRET[$_POST['dl']]."\n",3,CREATE_LOG);
+                Summoner::createLog($_message." ".SELFPASTE_UPLOAD_SECRET[$_POST['dl']]);
             }
         }
     }
@@ -126,7 +122,7 @@ if(file_exists('view/'.$contentView.'.inc.php')) {
     require_once 'view/'.$contentView.'.inc.php';
 }
 else {
-    error_log('Content body file missing. '.var_export($_SERVER,true),3,ERROR_LOG_FILE);
+    Summoner::syslog('Content body file missing. '.Summoner::cleanForLog($_SERVER));
     http_response_code(400);
     die('Well, something went wrong...');
 }
index 10c424a252a621b536c98dab62c60a18d399a0da..c3acebe7f705e8b11c1f0dcb013fd8a06c694deb 100644 (file)
@@ -33,9 +33,9 @@ class Mancubus {
      */
     private string $_short;
 
-    private $_saveFilename;
-    private $_storagePath;
-    private $_shortURL;
+    private string $_saveFilename;
+    private string $_storagePath;
+    private string $_shortURL;
 
     /**
      * Mancubus constructor.
index 5eb9d248b36c3f3d82da81950dabced7110e4d89..7d51b4fa4b46236b110d61cebaef42e5e0fbc757 100644 (file)
@@ -214,4 +214,37 @@ class Summoner {
         }
         return $ret;
     }
+
+    /**
+     * Make the input more safe for logging
+     *
+     * @param mixed $input The array/string to be made more safe
+     * @return string
+     */
+    static function cleanForLog(mixed $input): mixed {
+        $input = var_export($input, true);
+        $input = preg_replace( "/[\t\n\r]/", " ", $input);
+        return addcslashes($input, "\000..\037\177..\377\\");
+    }
+
+    /**
+     * error_log with a dedicated destination
+     * Uses LOGFILE const
+     *
+     * @param string $msg The string to be written to the log
+     */
+    static function sysLog(string $msg): void {
+        error_log(date("c")." ".$msg."\n", 3, ERROR_LOG_FILE);
+    }
+
+    /**
+     * error_log with a dedicated destination
+     * Uses CREATE_LOG const
+     *
+     * @param string $msg
+     * @return void
+     */
+    static function createLog(string $msg): void {
+        error_log(date("c")." ".$msg."\n", 3, CREATE_LOG);
+    }
 }