312 Commits (31434bc0b901a80e401a276279dd1d71c74d3cae)

Author SHA1 Message Date
Con Kolivas 0887d993fd Remove parse client msg from accept client 10 years ago
Con Kolivas 42fc9ca8f6 Rewrite connector receive thread to use epoll and remove associated now unnecessary fd hashtable 10 years ago
Con Kolivas c8627c0d1b Listen with the maximum backlog when we first start for more seamless restarts and then drop to the minimum afterwards to effectively ratelimit new connections 10 years ago
Con Kolivas f84c0aa2cd Make number of clients we can connect to unlimited 10 years ago
ckolivas b1e921a364 Make the stratifier drop a client id if it's still trying to send to a client that no longer exists in the connector 10 years ago
ckolivas 620d613d1a Add a maxclients directive that stops accepting clients when there are too many 10 years ago
Con Kolivas eda428dc7f Handle potentially recoverable errors in accept() to allow us to share the fd in future 10 years ago
ckolivas 7b46de8d53 Fix more thinkos 10 years ago
ckolivas 7edc80324c Fix thinko 10 years ago
ckolivas d1b095d1af Fix typo 10 years ago
ckolivas 676bb887bb Rework the poll loop to be cleaner and more efficient 10 years ago
Con Kolivas dd187da977 Add the server accept to the receiver's poll function, eliminating the need for short polls and one extra thread 10 years ago
Con Kolivas 0c16e193ce Set no linger on all connected clients 10 years ago
Con Kolivas 7d878bd223 Force close when dropping a client with a reset using SO_LINGER and give a warning on close failure 10 years ago
Con Kolivas 146e3140f3 Add client source port to verbose logging 10 years ago
Con Kolivas 5c6e048a2e Poll every 100ms instead of every second in the connector to rapidly pick up new clients 10 years ago
Con Kolivas 26b4037eff Log a warning if a client with an invalidated fd is still in the fdclients hashtable 10 years ago
Con Kolivas 3bf4e0de8d Always send dropclient to the stratifier on every invalidate client call 10 years ago
Con Kolivas 7da6c0b2a0 Use the Close handler in connector.c 10 years ago
Con Kolivas 86f72ff889 Keep rereading in parse_client_msg if the socket indicates it is still ready for further reads 10 years ago
Con Kolivas 8d625b736b Revert "Close polled fds that are ready for reads but no longer have a client associated with them" 10 years ago
Con Kolivas f0f948171a Invalidate interrupted clients and increase verbosity of messages logged 10 years ago
Con Kolivas f6f61e8870 Close polled fds that are ready for reads but no longer have a client associated with them 10 years ago
Con Kolivas 48b2e72661 Rereading with dontwait is pointless and adds complexity 10 years ago
Con Kolivas ae1f9827ac Revert "Always re-read with dontwait when parsing a client message" 10 years ago
Con Kolivas e3b4d969d5 Always re-read with dontwait when parsing a client message 10 years ago
Con Kolivas 70393442a3 Zero bufofs in connector loop for completeness and make sure to retry if there is more data to read 10 years ago
Con Kolivas 2d6d982bb1 Add buf offset to disconnect message and reset flags on looping 10 years ago
Con Kolivas a493539a75 Only add strerro if errno != 0 10 years ago
Con Kolivas 17d1455267 Add more info to disconnects 10 years ago
Con Kolivas 3d6601d20c Maximise the nonce2 size in proxy mode and ensure we don't clash enonce1 instances, rejecting clients when there is no more space available 10 years ago
Con Kolivas ffb054c95a Show all connector messages in debug mode 10 years ago
Con Kolivas 873b1b702a Reattempt sending delayed sends immediately after servicing one send successfully. 10 years ago
Con Kolivas 55f8d2d2dd Use int64_t lookups in uthash and fix some cosmetic errors with integers 10 years ago
Con Kolivas 17a4cab86c Off by one error on new connections 10 years ago
Con Kolivas 00f08eed05 Make client id use the passthrough id as high bits of a 64bit version of the client id to determine the intrinsic stratum client versus the connected client 10 years ago
Con Kolivas b1ae420fd3 Pass through message to relevant processes with separate threads in passthrough mode 10 years ago
Con Kolivas 6f12bd51a2 Process mining.passthrough as a subclass of proxy and set up handling of clients in preparation for passthrough routing 10 years ago
Con Kolivas 0fb34986dd Abandon trying to mix delayed sends with new ones, instead adding them to a separate linked list and always polling every 100ms 10 years ago
Con Kolivas 3b3ff68090 Only poll in the connector sender loop if the top of the list is a delayed writer 10 years ago
Con Kolivas 611a06b31f Make sure to check the pthread conditional when polling for stalled sends since there will always be a send in the list 10 years ago
Con Kolivas c650382b2d Discard messages being sent to clients who error on select 10 years ago
Con Kolivas 30df779bfa Polling on a blocked writer should be 100ms not 1ms 10 years ago
Con Kolivas 73e807a6b6 Don't extract sockaddr when we have an old fd 10 years ago
Con Kolivas 61bc8628f3 Implement a handover option which allows ckpool to inherit the socket from a running instance before shutting it down keeping miners talking to the existing connection 10 years ago
Con Kolivas a832b64006 Fix getfd function to really send a full struct msghdr returning a new fd to copy sockets across processes 10 years ago
Con Kolivas fd45d582d4 Add messages for when each process is ready 10 years ago
Con Kolivas 5d266a0faa Use cmdmatch in connector and ckpool 10 years ago
Con Kolivas f564714345 Poll more frequently when a client is not ready to be written to instead of waiting for it 10 years ago
Con Kolivas 5b2b4c73ef Remove all handling of interrupted calls which may have been blocking appropriate failure modes 10 years ago