Roland Häder [Sun, 15 Aug 2021 17:47:28 +0000 (19:47 +0200)]
Continued:
- I still need to find the actual root cause why $infoInstance is set to NULL
- so commented in some debug lines, replaced concat (.) with sprintf() (string
mask). Yes, I know you don't like to read the 2nd word -> MASK! <- but it
isn't my fault. So let's leave it there.
Roland Häder [Thu, 12 Aug 2021 10:45:36 +0000 (12:45 +0200)]
Continued:
- throw a OutOfBoundsException if an array element is not there
- initialize private key data record with NULL (stored currently as empty string)
- Do not shorten config keys, write them clearly!
Roland Häder [Mon, 4 Jan 2021 02:29:32 +0000 (03:29 +0100)]
Continued:
- renamed default crawler names to 'distributed' as this is now the crawler's
default mode. Later more modes, e.g. 'local' can be added which won't register
any remote jobs and maybe not communicate with the node (hub) to avoid crawler
info distribution
- Just a wild idea!
- updated core framework
Roland Häder [Sun, 20 Dec 2020 11:12:15 +0000 (12:12 +0100)]
Rewrite:
- constructors of concrete (=implementing non-abstract) classes should be
private to avoid somone making an inheriting class of a concrete class
- this is good practice: only make inheriting (concrete) classes of abstract
classes, not another concrete class only because you want that functionality
in your class, too
- the private constructor also stops you from doing such wrong things, no need
to make all concrete classes final
- updated core framework
- removed deprecated exceptions, as the SPL's can do it, too
Roland Häder [Sun, 20 Dec 2020 10:56:00 +0000 (11:56 +0100)]
Rewrite:
- renamed $configEntry to $configKey
- added missing type-hintes for primitive variables
- added condition-checks for string/int parameter and thrown an IAE when the
condition is not met
Roland Häder [Wed, 9 Dec 2020 01:42:40 +0000 (02:42 +0100)]
Continued:
- renamed .htacces to .gitkeep and emptied them
- no self::createObjectByConfiguredName() anymore, only as usual over
ObjectFactory reference
- ops createProtocolHandlerByType() is not ObjectFactory ...
- updated core framework
Roland Häder [Mon, 7 Dec 2020 06:46:54 +0000 (07:46 +0100)]
Continued:
- moved $stackSourceInstance to BaseUrlSource
- also introduced BaseUrlSource->initStacks()
- renamed UrlSource::CRAWL_JOB_ARRAY_* to URL_SOURCE_ARRAY_*
- added more debug lines
Roland Häder [Sun, 6 Dec 2020 07:51:42 +0000 (08:51 +0100)]
Continued:
- Application instance in generic registry was a little of an overdoze when
there is ApplicationHelper::getSelfInstance() around, this means lesser
method invocations and a bit smaller footprint (one registry entry lesser)
- updated core framework
Roland Häder [Sun, 6 Dec 2020 05:54:05 +0000 (06:54 +0100)]
Continued:
- removed all .htaccess files, please secure it on your own on server-side's
configuration
- introduced LocateableNodeTrait, so far only used in BaseProtocolHandler
Roland Häder [Sun, 6 Dec 2020 05:38:05 +0000 (06:38 +0100)]
Continued:
- moved BaseHubSystem::BOOTSTRAP_NODES_SEPARATOR to Node interface as this is a
node-related only constant
- moved BaseHubNode::NODE_TYPE_* to Node interface
Roland Häder [Sun, 6 Dec 2020 04:21:50 +0000 (05:21 +0100)]
Continued:
- now all stacks must be initialized no matter which method is invoked, so no
"auto-magic" initialization as this was a bit Spagetti-like code
- updated core framework
Roland Häder [Thu, 3 Dec 2020 22:39:34 +0000 (23:39 +0100)]
Continued:
- renamed more $packageInstance to $handlerInstance when it is type of
Receivable
- fixed handling of repeated node_data record creation
- removed bad 'invalid' default values
- updated core framework
Roland Häder [Thu, 3 Dec 2020 19:31:45 +0000 (20:31 +0100)]
Continued:
- throw IAE when e.g. a string parameter is empty
- introduced DeliverableTrait
- improved/commented in debug messages
- added type-hints for primitive variables
Roland Häder [Thu, 3 Dec 2020 15:31:58 +0000 (16:31 +0100)]
Continued:
- renamed NodeInformationDatabaseFrontend->ifNodeDataIsFound() to
findFirstNodeData() and also changed return type from bool to $resultInstance
(SearchableResult)
- changed type-hint from BaseHubNode (abstract class) to Node (interface)
- improved some debug messages
Roland Häder [Thu, 3 Dec 2020 08:38:00 +0000 (09:38 +0100)]
Continued:
- $socketInstance is required in BaseConnectionHelper, so moved the trait
loading there
- also fixed NULL reference as it might not be set at all times
Roland Häder [Thu, 3 Dec 2020 08:28:01 +0000 (09:28 +0100)]
Continued:
- added some type-hints for primitive variables
- added some checks on parameters
- some debug messages improved (sprintf() is the norm when parameters are logged)
Roland Häder [Thu, 3 Dec 2020 08:07:08 +0000 (09:07 +0100)]
Continued:
- removed no longer needed config entry
- used StorableSocket::SOCKET_PROTOCOL_TCP instead of direct 'tcp'
- improved some exception messages a bit
Roland Häder [Thu, 3 Dec 2020 07:49:01 +0000 (08:49 +0100)]
Continued:
- when socket_listen() is left alone with default (0) value for the $backlog
parameter and you have SYN cookies disabled in kernel, you will later get
"Resource temporary unvailable" (code 11)
- this can be only fixed by setting high enough values in config-local.php (not
config.php) which depends on your used operanting system.
- commented out noisy debug lines
- converted old array() style to "new" [] way
Roland Häder [Thu, 3 Dec 2020 06:59:26 +0000 (07:59 +0100)]
Continued:
- renamed StorableSocket->getSocketRecipient() to getSocketRecipientUnl()
- commented-in noisy debug lines as a strange "Resource temporary unavailable"
happens when SYN cookies are disabled in kernel
- added type-hint for primitive variables
- not really noisy debug lines but later no more needed
Roland Häder [Wed, 2 Dec 2020 21:21:52 +0000 (22:21 +0100)]
Continued:
- fixed E_NOTICE and other stuff
- added config entry for disabling (default: enabled) reusing TCP addresses
- commented-in noisy debug lines SYNC flooding happens on my system with this
program
- updated core framework
Roland Häder [Wed, 2 Dec 2020 07:33:47 +0000 (08:33 +0100)]
Continued:
- moved DHT-related template classes to proper sub directories
- replaced CompileableTemplate with newly added CompileableXmlTemplate
interface as this is closer to what the class is about
- updated core framework
Roland Häder [Wed, 2 Dec 2020 04:56:14 +0000 (05:56 +0100)]
Continued:
- removed PackageData->$rawXml instance and used $packageContent instead
- used ApplicationEntryPoint::exitApplication() instead of die()
- updated core framework
Roland Häder [Wed, 2 Dec 2020 03:47:42 +0000 (04:47 +0100)]
Continued:
- package and message are different things, so there is no "new package arrived"
but more decompressed XML
- renamed methods for better understanding them
- added missing config key
- updated core framework
Roland Häder [Tue, 1 Dec 2020 22:41:52 +0000 (23:41 +0100)]
Continued:
- moved $handerInstance from monolithic BaseFrameworkSystem class (the class
later cleaned from such instances is doing fine) to proper classes
- updated core framework
Roland Häder [Sun, 22 Nov 2020 17:58:49 +0000 (18:58 +0100)]
Continued:
- moved $listInstance from monothlithic BaseFrameworkSystem to proper classes
- NodePingTask had compared to all other tasks a parameter in factory method,
now this is initialized within the factory method
- updated core framework
Roland Häder [Sat, 7 Nov 2020 16:46:44 +0000 (17:46 +0100)]
Continued:
- re-added $databaseInstance from monolithic BaseFrameworkSystem
- BaseFrameworkSystem->hex2dec() has moved to StringUtils::hex2dec()
- updated core framework
Roland Häder [Sat, 7 Nov 2020 16:46:44 +0000 (17:46 +0100)]
Continued:
- re-added $databaseInstance from monolithic BaseFrameworkSystem
- BaseFrameworkSystem->hex2dec() has moved to StringUtils::hex2dec()
- updated core framework
Roland Häder [Sat, 7 Nov 2020 13:40:30 +0000 (14:40 +0100)]
Continued:
- monolithing BaseFrameworkSystem->getConfigInstance() is no more, best is to
use FrameworkBootstrap::getConfigurationInstance() instead
- updated core framework
Roland Häder [Sat, 7 Nov 2020 13:00:43 +0000 (14:00 +0100)]
Continued:
- ApplicationHelper now doesn't have all these fields set, BaseApplication holds it
- all __construct()'s $className parameter have now a type-hint "string" set
- updated core framework
Roland Häder [Fri, 6 Nov 2020 15:41:01 +0000 (16:41 +0100)]
Continued:
- reduces memory-footprint: moved $protocolName to proper classes, not in a
monolithic super class
- moved $packageHandlerInstance, $listenerInstance, $sourceInstance to proper
classes, monolithic classes are a bad design idea
- removed $infoInstance, $protocolInstance, $locatorInstance,
$communicatorInstance, $packageInstance and getter/setter as it was no longer
used
Roland Häder [Fri, 6 Nov 2020 13:14:43 +0000 (14:14 +0100)]
Continued:
- if "Resource temporary unavailable" occurs but there had been some read data
from the socket, don't discard it but add it to the stacker
- used getLastSocketErrorMessage() instead of "raw" socket_strerror()
Roland Häder [Wed, 4 Nov 2020 13:25:09 +0000 (14:25 +0100)]
Continued:
- fixed config entry for controller resolver, still the fuse command class is
not implemented yet
- imported missing class
- updated core framework
- updated README file
Roland Häder [Tue, 3 Nov 2020 19:08:17 +0000 (20:08 +0100)]
Continued:
- the SocketFactory class was invoking complicated createConnectionFromPackageInstance()
method which didn't fit naming-convention. It is now renamed to
"create<ClassName>" scheme and can be created by default ObjectFactory's
factory methods.
- improved some debug lines
Roland Häder [Mon, 2 Nov 2020 15:34:20 +0000 (16:34 +0100)]
Continued:
- isIncomingSocketRegistered() now requires a Listenable instance as parameter
- further fixes for receiving raw package data. It seem to be a race-condition?
- updated core framework