Roland Häder [Mon, 26 Oct 2020 00:16:37 +0000 (01:16 +0100)]
Continued:
- Let's keep nodeInstance as a class field to avoid tons of invocations of the
factory method. It is a bit of a trade-off, as the memory foot-print may
raise but so does performance and invocations may lower resulting in better
performance.
Roland Häder [Sun, 25 Oct 2020 12:27:11 +0000 (13:27 +0100)]
Continue:
- removed all deprecated SOCKET_ARRAY_INDEX_* constants with proper setter
invocations, still most are not implemented yet
- needed to make setListerInstance() public
Roland Häder [Thu, 1 Aug 2019 06:32:34 +0000 (08:32 +0200)]
Continued:
- more rewrites of $packageData array to PackageData class ($packageInstance)
- renamed NetworkPackage to NetworkPackageHandler and moved to proper namespace
- updated 'core'
Roland Häder [Tue, 13 Nov 2018 23:36:02 +0000 (00:36 +0100)]
Continued: (finally!)
- updated different (!) copyright years to 2018 ...
- added missing "imports"
- added debug lines
- added output current protocol name in base decorator class
- added support for ip:port in NetworkPackage class (was only partly there)
- added namespaces to config entries
- possible fix is now included for self-connect bug
Roland Häder [Sun, 8 Jul 2018 06:58:33 +0000 (08:58 +0200)]
Continued:
- introduced NodeLocatorUtils to avoid monolithic code style
- avoided abusing exceptions for program flow control (don't do that) by
pre-checking conditions and then avoid bad invocations
- updated framework to latest commit
Roland Häder [Sun, 8 Jul 2018 05:07:09 +0000 (07:07 +0200)]
Continued:
- no need for scanner class and task, the URL source class can handle this
- setApplicationName() is no longer needed
- invoke setCommandName() (maybe exists?) instead
- Removed crawler instance from BaseHubSystem
- moved URL source instance from same class to BaseUrlSourceTask
- updated core to latest commit
Roland Häder [Thu, 5 Jul 2018 21:46:14 +0000 (23:46 +0200)]
Continued:
- added missing getter for UNL protocol
- ops, outgoing TCP/UDP/any connections should be set to 'outgoing', not
'server'
- commented out/in debug lines
Roland Häder [Thu, 18 Jan 2018 23:09:51 +0000 (00:09 +0100)]
Continued:
- renamed NodeHelper -> Node and bound it to FrameworkInterface as this is no
node helper (see Helper interface) but the node instance itself
- fixed namespaces in class template files (no real class file, like "class_")
- fixed "new" domain (shipsimu.org, without the dash)
- fixed bug in bad private key's hash
- need to create a dummy array with node data when node is starting first time
(no data in db/node_data/ )
- started (unfinished) fixing assertions
- updated core framework to latest commit
Roland Häder [Wed, 3 Jan 2018 23:44:41 +0000 (00:44 +0100)]
Continued:
- ported crawler sub project to new 'core' framework
- had to copy some setter/getter to base classes where BaseHubSystem was not
inherited from
Roland Häder [Wed, 3 Jan 2018 22:04:33 +0000 (23:04 +0100)]
Continued:
- started porting crawler sub project to new framework
- fixed namespaces for task classes, \Task should always be included
- added commented-out/in debug lines for hub
Roland Häder [Tue, 2 Jan 2018 22:49:06 +0000 (23:49 +0100)]
Continued:
- updated core framework to latest commit
- ported main application to new framework with Tld\Domain\ namespace added
and many many more
- updated .gitignore
- updated .gitattributes
Roland Häder [Sat, 17 Jun 2017 20:39:55 +0000 (22:39 +0200)]
Continued a bit:
- implemented info-filler method with data from socket peer
- implemented enableSocketOutOfBandData()
- commented out many noisy debug lines
- made some debug lines to noisy, as they are really noisy under PHP 7
- some small fixes (e.g. tpzo in method name)
- updated 'core' framework to latest commit
Roland Häder [Tue, 30 May 2017 20:12:23 +0000 (22:12 +0200)]
Continued a bit:
- splitted sender address and port to have both being copyable (needed later on)
to ShareableInfo class
- used some lesser socket_strerr() but socketInstance calls
Roland Häder [Tue, 30 May 2017 19:27:00 +0000 (21:27 +0200)]
Fixes:
- these iterators must be stored separately, else file/tcp/udp socket instances
getting entirely mixed up
- also better splitted configuration entries, some more don't really hurt
- better debug message (info was not really correct)
Roland Häder [Tue, 30 May 2017 15:54:53 +0000 (17:54 +0200)]
Continued:
- added much more debug lines
- UdpListener::initListener() or so, is now rewritten (much untested)
- BaseListener::ifListenerAcceptsPackageData() is now implemented and should
always be used to check if the package's socket protocol is accepted
- imported SocketAlreadyRegisteredException
- imported ShareableInfo
- imported LogicException (and maybe others)
- need to get socket resource from socketInstance
- updated core
Roland Häder [Tue, 30 May 2017 12:00:52 +0000 (14:00 +0200)]
Continued:
- enabled all(?) debug messages
- use StorableSocket::SOCKET_PROTOCOL_FOO instead of 'foo' which is more flexible
- added more debug messages
Roland Häder [Tue, 30 May 2017 09:48:06 +0000 (11:48 +0200)]
Continued:
- start rewriting writing raw data to socket towards StorableSocket
- added more debug messages
- renamed class constants to naming-convention
- rewrote more code to StorableSocket (method writeBufferToSocketByArray() introduced)
- added missing parameter $className
- getConnectionClassNameFromSocket() is now fully rewritten
Roland Häder [Mon, 29 May 2017 20:52:35 +0000 (22:52 +0200)]
Continued:
- implemented translateLastSocketErrorCodeToName()
- implemented getSocketRecipient<Address|Port>()
- no more socketResource here (and elsewhere will follow)
- updated core framework
- more debug messages added
- registering helper/listener instances with socket instance must be done
outaside constructor, much easier code
- for this, registerInfoInstance() is now implemented Signed-off-by: Roland Häder <roland@mxchange.org> Signed-off-by: Roland Häder <roland@mxchange.org>
Roland Häder [Mon, 29 May 2017 19:22:54 +0000 (21:22 +0200)]
Continued:
- method renamed to getConnectionClassNameFromSocket() which now only accepts a StorableSocket class
- resolveStateByPackage() now accepts StorableSocket instead of socket resource
- also extend HubInterface
- introduced BaseHubHandler to implement HubInterface (or what is missing + protected setter/getter)
- introduced BaseHubDatabaseWrapper to implement HubInterface
- more debug messages
- other stuff improved
- imported (Base|Peer)StateResolver
- imported StorableSocket
- imported (Lookupable)PeerState
- imported PeerStateable
- created new namespaces
- moved classes around
Roland Häder [Mon, 29 May 2017 15:59:14 +0000 (17:59 +0200)]
Continued:
- imported HelpableNode
- imported SocketDiscoveryFactory, DiscoverableSocket
- imported ProtocolHandlerFactory
- imported BaseProtocolHandler and made it abstract
- imported BaseIpV4ProtocolHandler and it needs to be abstract
- need to implement setter/getter for protocolName
- added missing namespaces to configuration entries
Roland Häder [Mon, 29 May 2017 15:56:08 +0000 (17:56 +0200)]
More rewrites:
- rewrote more parts towards SocketContainer/StorableStocket class/interface
- still UdpListener is half-finished
- added missing namespace
- imported BaseNodeHelper
Roland Häder [Wed, 24 May 2017 20:04:07 +0000 (22:04 +0200)]
Prepared next step of socket-rewrites:
- instead of direct socket resource, use socket instance (not working now,
die() has been added, too)
- updated core framework
Roland Häder [Mon, 22 May 2017 20:47:55 +0000 (22:47 +0200)]
Continued:
- imported PackageDiscoveryFactory, BaseRecipientDiscovery, DiscoverableRecipient
- imported DiscoverableNodeRecipient, RecipientListFactory, (Base)Recipient
- imported ObjectFactory (opps?)
- imported InvalidSessionIdException (also where it is being caught!)
- imported FrameworkException
- imported BaseIterator
- recipients and not receipt! ;-)
- also they are network-relevant and not generic
- added namespaces to configuration entries
Roland Häder [Mon, 22 May 2017 18:42:34 +0000 (20:42 +0200)]
Continued:
- no more 'base_path', was to unflexible and horribly wrong. Now there are 3
configuration entries:
'root_base_path' - Where index.php has been found
'framework_base_path' - Where the framework is located
'application_base_path' - Where the applications are located (without application name)
- imported FileNotFoundException
- imported DhtObjectFactory
- updated core framework
Roland Häder [Mon, 22 May 2017 17:05:37 +0000 (19:05 +0200)]
Continued:
- imported Distributable
- imported FiLoStacker
- imported BaseState
- imported NodeDistributedHashTableDatabaseWrapper
- created/added namespaces
- setter/getter for DHT instance is no longer working and maybe okay to use
DhtObjectFactory instead. Okay, a few more calls then, but well.
- renamed HubPingIterator -> NodePingIterator
- updated core framework
Roland Häder [Mon, 22 May 2017 16:39:19 +0000 (18:39 +0200)]
Continued:
- ListenerVisitor is not generic (Listenable), re-imported it
- this task is also no longer generic
- added missing namespaces
- imported BaseTask
- imported ChunkHandler(Factory), BaseHandler
- imported PackageFragmenter
- changed namespace
Roland Häder [Mon, 22 May 2017 16:23:17 +0000 (18:23 +0200)]
Cleanup:
- isServerSocketResource() was at the start a good idea, to make sure that only
"server" (listeners) sockets can pass but it was hindering it when it comes
to UDP where there is no connection.
- so let's better remove this method all together
- updated TODOs.txt
Roland Häder [Mon, 22 May 2017 13:25:37 +0000 (15:25 +0200)]
Continued a bit:
- implemented enableSocketReuseAddress()
- imported (Base)Iterator
- added missing namespaces
- created new namespaces (also template)
- cleared up now obsolete code as StorableSocket is now there
- renamed method to listenToSocket()
Roland Häder [Sun, 21 May 2017 21:26:22 +0000 (23:26 +0200)]
Continued:
- Socket protocol names being used are now "abstracted" into constants (interface)
- no need to get last socket error code and then use it only once (per method)
- handle over only array values of packageData array to socket-error handler
- used these new constants more
Roland Häder [Sun, 21 May 2017 20:51:32 +0000 (22:51 +0200)]
Continued rewrite:
- rewrote TcpListener (should be working, untested) towards SocketFactory
- added missing but needed methods in BaseListenerDecorator which extends
BaseDecorator which is framework (generic)
- renamed method to enableSocketReuseAddress() to make it similar to existings
- added missing namespaces
Roland Häder [Sun, 21 May 2017 20:25:26 +0000 (22:25 +0200)]
Continued:
- setter/getter for socket instance is now in BaseListener
- imported StorableSocket
- moved constants to Poolable interface
- updated core framework
Roland Häder [Sun, 21 May 2017 12:39:43 +0000 (14:39 +0200)]
Continued a bit:
- translateSocketErrorCodeToName() is now private, no need to have it publicly
available
- added field socketProtocol
- used StorableSocket (interface) as 'instanceof' test, not a class
- sorted parameters in SocketContainer's factory method
- sorted members
Roland Häder [Sun, 21 May 2017 11:37:33 +0000 (13:37 +0200)]
WIP:
- rewrite from unlData -> unlInstance (still open things)
- moved constants from class to interface LocateableNode
- moved UNL_REGEX to same interface for rewrite of those parse methods. They
should be moved to a factory instead.
Roland Häder [Sat, 20 May 2017 23:29:11 +0000 (01:29 +0200)]
Continued a bit:
- implemented visitSocket()
- that socket_shutdown() stuff needs rewriting but is now at the right place
- added/removed import of StorabelSocket
Roland Häder [Sat, 20 May 2017 23:10:38 +0000 (01:10 +0200)]
More rewrites:
- imported missing classes/interfaces
- socket error 95 (operation not supported) is now handled and new exception thrown
- EXCEPTION_INVALID_SOCKET is no longer located in BaseListener
- updated core framework
Roland Häder [Sat, 20 May 2017 20:28:46 +0000 (22:28 +0200)]
Continued:
- Per definition, filters are classes. So let's add _class into their
configuration keys to have the later testing suite easily pick them up
for testing.
- implemented enableSocketNonBlocking()
- imported InvalidServerSocketException
- let's get peerAddress (old: peerName) and peerPort via call-by-reference and
as all the other socket methods result as returned value
- always initialize variables, before using them ...
Roland Häder [Sat, 20 May 2017 20:23:24 +0000 (22:23 +0200)]
Continued rewriting:
- handleSocketError() and all it's brothers and sisters (means call-back methods)
are now residing in SocketContainer
- still more rewrites for existing old parts
- renamed factory method to createListenFileSocket() as this creates a
listening file socket (mostly for IPC)
Roland Häder [Sat, 20 May 2017 19:47:20 +0000 (21:47 +0200)]
Continued:
- imported HandleableProtocol
- imported Registerable (only templates)
- created some namespaces
- the "new" exception is coming back from 'core' as it is not generic
- updated core
Roland Häder [Sat, 20 May 2017 18:58:26 +0000 (20:58 +0200)]
Continued:
- Let's use (and cache) the UNL instance instead of fetching an array from it
and then taking parts out of it. This way is more OOP-ed
- added getExternalUnl() and getInternalUnl() as first methods
- getUnlData() is now no longer used, see first comment why
- renamed path 'unl' -> 'locator' to have it same as in interfaces
- updated target year
- updated core framework
Roland Häder [Fri, 19 May 2017 22:24:38 +0000 (00:24 +0200)]
Continued with rewrites:
- introduced HubInterface which holds all public methods from BaseHubSystem
- added HttpClient stuff (unfinished) from core project as this is no longer
generic
- other stuff
Roland Häder [Fri, 19 May 2017 22:11:13 +0000 (00:11 +0200)]
Next wave of rewrite:
- rewrote addPeer() signature to StorableSocket
- removed logging of calling method/line, will be done later otherwise
- some logging added
- implemented isValidSocket()
Roland Häder [Fri, 19 May 2017 15:46:40 +0000 (17:46 +0200)]
Next wave:
- imported BaseList, Listable
- imported BaseHubSystemHelper, BaseConnectionHelper
- created namespaces
- added namespaces to configuration entries
- accept() must be public now
- doShutdown() is old name, now there is preShutdown()
- opps, "unexpted list", let's use Lists like the framework then
Roland Häder [Fri, 19 May 2017 14:37:08 +0000 (16:37 +0200)]
Next wave:
- imported BaseDiscovery, Discoveryable, BaseNodeDiscovery
- created namespaces
- removed duplicate interface, now in core framework
- BaseNodeDiscovery needs to be abstract now
- added missing namespaces
- no, no. BaseNodeDiscovery must implement the generic methods
- tpzo fixed
Roland Häder [Fri, 19 May 2017 14:35:29 +0000 (16:35 +0200)]
Next wave of rewrites:
- now request/response is provided by FrameworkBootstrap and no longer needs
to be handled all over again to all places
- updated core framework