118 Commits (be87144fe1580cb299fe30dc8439136cf6d3b76d)

Author SHA1 Message Date
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
Con Kolivas 06c106087a Demote client disconnected message 10 years ago
ckolivas a9e33c354a Pass the connector IP address to the stratifier to be stored in the client data and passed to ckdb on auth 11 years ago
Con Kolivas 1b387ad429 Add address name to loginfo output on new connector connection 11 years ago
ckolivas 5ea74680b6 Resolve the address name of new clients in the connector 11 years ago
ckolivas c9e7dd5780 We do not retry the accept call if it fails 11 years ago
ckolivas b6e9d18bfc Handle signal interruptions on all poll and select calls 11 years ago
Con Kolivas e40128a2da Allow the loglevel to be changed on the fly 11 years ago
Con Kolivas 1b3a972df2 Don't start receiving data till we are accepting connections in the connector 11 years ago
Con Kolivas d96b111653 Send a message from the generator to the connector to tell it when it can accept or should reject incoming connections 11 years ago
Con Kolivas 50efbcba5f Fix various warnings 11 years ago
Con Kolivas ca805e44f0 Provide a getfd function for getting the main connector file descriptor for seamless restarts 11 years ago
Con Kolivas 20e056c4a1 Close sock in connector loop after we've finished using it 11 years ago
Con Kolivas 63ccad9105 Remove interrupted retry in connector 11 years ago
Con Kolivas aa70f0db5e Default unspecified port for proxy to 3334 11 years ago
Con Kolivas b297a35632 Remove unused buffer ram in send_client and demote messages to info level only 11 years ago
Con Kolivas 86e70edfbc Make all child processes ping the parent process at regular intervals and then die if it has disappeared. Do not attempt to send unix messages to dead processes and abort instantly on socket EINTR 11 years ago
Con Kolivas c4f0d57ae8 Fix various memory leaks 11 years ago
Con Kolivas a3a586ee6e Use the retry on EINTR only on unix sockets 11 years ago
Con Kolivas 7fabe1f14f With sigpipe masked, interrupted send calls are likely fatal 11 years ago
Con Kolivas f48558d2b5 Detach child processes from the tty leaving only the main process to talk to it and exit all processes in a consistent way with more information on termination 11 years ago
Con Kolivas c9f550207f Send one on all process failure codes 11 years ago
Con Kolivas f07fb994ed Fix missing close socket in connector 11 years ago
Con Kolivas 78c1b2dfda Make process instances an array within the ckpool struct allowing us to enable only those we need when we add more modules to future code 11 years ago
Con Kolivas 8631f33809 Accept ping requests on the various unix sockets 11 years ago
Con Kolivas b85946cc31 Failure to accept in connector should be a fatal error 11 years ago
Con Kolivas 4f1d13e922 Send the last remaining send request without checking if it is ready for writes to avoid busy looping 11 years ago
Con Kolivas 2ffdd791f7 Add support for dropclient being sent to the connector process 11 years ago
Con Kolivas bfb90fa632 Handle all poll revents with a recv and invalidate clients that don't respond 11 years ago
Con Kolivas 5721ec1dcf Reset revents before polling 11 years ago
Con Kolivas 68ea10ac53 Fix name 11 years ago
Con Kolivas 9290d1566a Remove old instances from regularly used hashtables 11 years ago
Con Kolivas dc9012d777 Use a 2nd hashtable of connected clients indexed by fd for fast lookup 11 years ago
Con Kolivas a615b56d76 Install signal handlers which push the signal to the top process which will try to gracefully shut down each child process 11 years ago
Con Kolivas 457f1c17ee Create a separate thread for sending messages to clients, not blocking on any clients not ready for reads 11 years ago
Con Kolivas eabd8848bc Add basic pool stats, updating and displaying them in a separate thread every 15s 11 years ago
Con Kolivas bab86af441 Optimise receiver loop 11 years ago
Con Kolivas 077825a09d Use only the one client instance struct in connector, ensuring it gets zeroed that way 11 years ago
Con Kolivas a6fe8f392c Sleep briefly, don't poll when no fds are present 11 years ago