260 Commits (bace2d9f9a2e095336a1d0f8bf5990c0fcfc7464)

Author SHA1 Message Date
Con Kolivas cb640b6ab2 Check for epoll hangups fully 10 years ago
Con Kolivas dcfcae1779 Add errno details to write based close 10 years ago
Con Kolivas b73f44f00c Tidy up and demote oversize message, adding client id 10 years ago
Con Kolivas 5365f1a420 Increase listen backlog to 8k 10 years ago
Con Kolivas 882bd693dd Display connector stats every ~60s in passthrough mode 10 years ago
Con Kolivas 68e44be3ce Check for oversized client message before doing any reads to avoid possibility of exactly the wrong size buffer to ever invalidate the client, adding more info to a downgraded message 10 years ago
Con Kolivas 8447e3ff55 Microoptimise 10 years ago
Con Kolivas 27d68200ec Add better stats about queued sends consisten with the list changes 10 years ago
Con Kolivas ed44843e37 Append all new sender_ends in csender instead of only the first 10 years ago
Con Kolivas f835697165 Microoptimisation 10 years ago
Con Kolivas 7c62450297 Increase listen backlog to speed up reconnects up to the system config limits 10 years ago
Con Kolivas 83b23d864f Remove decrease of listen backlog which is of questionable utility 10 years ago
Con Kolivas f580a82a06 Drop the subclients of passthroughs that no longer exist 10 years ago
Con Kolivas 883d870060 Use the simpler read/write calls and make all client sockets non-blocking 10 years ago
Con Kolivas 3919d18260 Rework write path to have no potentially blocking calls and be able to send partial messages 10 years ago
Con Kolivas 1efe7120c4 Use ref_client_by_id in send_client instead of open coding it 10 years ago
Con Kolivas ec39117a1c Don't return client if it is invalid in ref_client_by_id in the connector 10 years ago
Con Kolivas 0395dd052f Use the client reference count in the connector to protect the client fd, closing it only once there are no more references to it 10 years ago
Con Kolivas 9375362044 Revert "Use a unique event structure for each client added to the epoll list" 10 years ago
Con Kolivas 8f1336986f Use a unique event structure for each client added to the epoll list 10 years ago
Con Kolivas 6a159bf5dc We won't get no error if we are not testing fd -1 sockets any more, and use errno for consistent parsing of socket close errors 10 years ago
Con Kolivas 62d1ec3f8a Use signal handlers from sender and receiver threads in the connector avoid needing to pthread tryjoin on every message 10 years ago
Con Kolivas 2bde0bbe3d Avoid trying to parse messages or test the client's error if their fd has already been invalidated 10 years ago
Con Kolivas d0f7ec7c35 Decrease verbosity of missing client warning in receiver, adding id number to the output 10 years ago
Con Kolivas 6c0c7dd7c4 Rework parse_client_msg to use the non blocking recv return values avoiding the need for an extra wait_read_select 10 years ago
Con Kolivas 84ca31fcca Drop stratifier id when client id is not found in connector 10 years ago
Con Kolivas 93d5760b2d Set server to the passthrough server client in passthrough mode 10 years ago
Con Kolivas e095ba4b49 Mask out error 0 in socket error messages 10 years ago
Con Kolivas 3f3dc7f4f3 Implement a stratum mining.term call which notifies the stratifier this client is terminating and use it to signal upstream pools when passthrough subclients have disconnected 10 years ago
Con Kolivas e9441f2e1a Drop passthrough proxy connection from stratifier 10 years ago
Con Kolivas 8bb50fa058 Process epoll read messages before hangups and errors and add more info about the type of hang up, increasing verbosity when it's an unexpected error 10 years ago
Con Kolivas 0b96be0144 Use non blocking receive in parse_client_msg as we check for read readiness with wait_read_select first, and there is the unlikely event the state changes 10 years ago
Con Kolivas da2f62aea9 Pass through the downstream clients' address and server 10 years ago
Con Kolivas bf72ebbee6 Reinstate checking for zero as a return from recv for cleanly disconnected clients 10 years ago
Con Kolivas 75d24d1d07 Reference clients in the epoll list by their client id to avoid double lookup and possible wrong client selection 10 years ago
Con Kolivas 88fcb55faa Revert "Check clients match in epoll loop" 10 years ago
Con Kolivas b50f2ba86c Check clients match in epoll loop 10 years ago
Con Kolivas e012108280 Explicitly check for EPOLLRDHUP as well 10 years ago
ckolivas 91d2aca51f Detect pollhup in wait_read_select and not through recv fail conditions 10 years ago
ckolivas 49ce587949 nolinger client sockets when we're about to close them 10 years ago
ckolivas da20ac7f3e Disable user of nolinger on client sockets 10 years ago
Con Kolivas cd754e98e4 Move connector to using unix receive queues 10 years ago
Con Kolivas 655f82f09d Remove clients from the epoll list when invalidating them to avoid a receiver event and check they still exist in their original form on getting a receiver event 10 years ago
Con Kolivas 24d9155f62 Recycle client instances in the connector 10 years ago
Con Kolivas 4c97df787d Remove use of upgradeable locks in connector 10 years ago
Con Kolivas d4304de798 These weren't the droids we were looking for. 10 years ago
Con Kolivas 66e6b1fa76 Unused variable 10 years ago
Con Kolivas d75dd5543c Try async messages again 10 years ago
Con Kolivas 6b3cd82525 Revert "Use async send proc as a separate thread from workqueues" 10 years ago
Con Kolivas 7de43b1c6e Use async send proc as a separate thread from workqueues 10 years ago