util.c


Log

Author Commit Date CI Message
Con Kolivas ae4ee34a 2013-04-06T15:49:55 Small timeouts on select() instead of instant timeout increase reliability of socket reads and writes.
Con Kolivas 2f89eef4 2013-04-06T11:21:55 Differentiate socket closed from socket error in recv_line.
Con Kolivas b6e3d5b4 2013-03-14T22:34:53 Make pool adding while running asynchronous, using the pool test thread functionality.
Con Kolivas 1a74bc56 2013-03-14T22:08:19 Only curl easy cleanup a stratum curl if it exists.
Con Kolivas 195ea635 2013-03-14T22:05:42 Sacrifice the ram of curl handles in stratum disconnects when we have built with old libcurl to avoid crashes.
Con Kolivas 26ddd1fd 2013-03-12T22:31:45 Move the stratum and GBT data to be protected under a new cg_lock data_lock.
Con Kolivas 66c567ab 2013-03-09T12:13:12 Use curl_easy_cleanup to close any open stratum sockets.
Con Kolivas 7e3ca570 2013-03-09T10:41:36 Set sockd to false should curl setup fail on stratum.
Con Kolivas 56068d68 2013-03-09T10:30:58 Close any open sockets when reusing a curl handle and reopen the socket whenever we're retrying stratum.
Con Kolivas 09c02b1c 2013-03-07T22:02:51 Shorten the time before keepalive probes are sent out and how frequently they're sent with stratum curls.
Con Kolivas 501f4cd6 2013-03-07T19:59:30 Clear the socket of anything in the receive buffer if we're going to retry connecting.
Con Kolivas c9b4f5c7 2013-03-07T15:34:44 Revert "Cope with out of order messages coming in upon attempting to auth_stratum." This reverts commit 237f67c6178bd8f4c5e9f807cdf9a010d17e9684.
Con Kolivas ed903ddf 2013-03-07T15:13:32 Clear just the socket buffer when we don't care what is left in a stratum socket.
Con Kolivas fbb25c4b 2013-03-07T15:10:38 Clear the stratum socket whenever we are closing it since the buffer is going to be reused.
Con Kolivas 0810212c 2013-03-07T14:20:33 Reset stratum_notify flag on suspend_stratum as well.
Con Kolivas 07ae6172 2013-03-07T14:15:28 Close any sockets opened if we fail to initiate stratum but have opened the socket.
Con Kolivas 6875dc46 2013-03-07T13:50:25 Close any existing stratum socket if we are attempting to restart stratum so the pool knows the connection has gone.
Con Kolivas 237f67c6 2013-03-07T11:36:04 Cope with out of order messages coming in upon attempting to auth_stratum.
Con Kolivas e3151799 2013-03-07T08:42:14 Implement client.show_message support for stratum.
Con Kolivas 0be6e9e7 2013-03-06T21:00:16 Make sure to retry only once with noresume support for stratum.
Con Kolivas 5abcf06b 2013-02-25T10:44:54 Merge branch 'master' into usb-dev
Con Kolivas 3c949e5f 2013-02-25T10:38:28 Try to extract the sessionid associated with mining.notify on 3rd level array and submit it along with the userid to support mining resume, failing gracefully and restarting if the pool rejects it.
Con Kolivas 5a3b3749 2013-02-25T08:59:11 Update copyright dates.
Con Kolivas 6bf79626 2013-02-23T13:59:37 Merge branch 'master' into usb-dev
Con Kolivas 3dcdb949 2013-02-23T13:07:47 Cope with misread sessionid on stratum for now.
ckolivas 6a0882f0 2013-02-22T16:55:39 Use the sessionid as passed on stratum connect to attempt to resume a connection once and then clear it if it fails, to use a new connection.
ckolivas 68d69109 2013-02-22T12:55:01 Move to storing the nonce1 in the work struct instead of the sessionid for the now defunct first draft mining.resume protocol.
ckolivas 22a50a5a 2013-02-17T00:10:36 Merge branch 'usb-dev' of github.com:ckolivas/cgminer into usb-dev
Con Kolivas a7859bb4 2013-02-16T03:52:06 Merge pull request #386 from luke-jr/bugfix_20130215a Bugfix: Missing pool_no parameter to applog for no-stratum-sessionid debug message
Luke Dashjr 7473c3dc 2013-02-16T05:06:38 Bugfix: Missing pool_no parameter to applog for no-stratum-sessionid debug message
Kano 4266245a 2013-02-16T14:15:17 Merge remote-tracking branch 'conman/master' into bflsc
Con Kolivas ab0cc58c 2013-02-15T23:15:11 Merge branch 'master' into usb-dev
Con Kolivas be4705a0 2013-02-15T23:05:29 Provide support for mining.resume with stratum, currently re-authorising after successful resumption pending finalising of the protocol process.
Con Kolivas 4cde791e 2013-02-15T21:31:44 Provide basic framework for restarting stratum depending on whether resume support exists or not.
Con Kolivas c29df976 2013-02-15T21:03:39 Abstract out the setting up of the stratum curl socket.
Con Kolivas c851f395 2013-02-15T14:46:30 Store session id for stratum if the pool supports it for future mining.resume support.
Kano c432c655 2013-02-13T14:50:55 debug_cb buffer type warning
Con Kolivas 3c91b292 2013-02-07T18:02:38 Merge branch 'master' into usb-dev
Con Kolivas 903c6663 2013-02-07T16:38:11 Fix logic fail on partial writes with stratum send that was leading to corrupt message submissions.
Con Kolivas 0244998e 2013-02-04T11:23:20 Merge branch 'master' into usb-dev
Con Kolivas d644fdf1 2013-02-04T11:19:12 Cache the coinbase length to speed up stratum work generation.
Con Kolivas 0870ab75 2013-02-04T11:06:05 Cache the header length when generating stratum work to avoid calculating it on every work generation, and to only need one alloc+sprintf, speeding up work generation.
Con Kolivas 51d11a28 2013-02-04T10:19:12 Provide a wrapper for aligning lengths of size_t to 4 byte boundaries.
Kano c1eae36f 2013-01-15T01:13:00 API stats - include pool network bytes + in miner.php
Con Kolivas e1387dc8 2012-12-29T11:29:59 Change the pool stratum socket buffer to be dynamically allocated to accomodate any size coinbase and keep receiving data in recv line for up to 60s if no end of line has been received.
Con Kolivas 6e2e7d36 2012-12-29T10:46:55 Differentiate socket full from sock full.
Con Kolivas 7f46f6e9 2012-12-29T10:42:45 Allow stratum to startup without notify but check it is valid before creating stratum work.
Con Kolivas e1d7ecdd 2012-12-29T09:45:40 Do not try to generate stratum work unless the notify command has succeeded.
Con Kolivas 944af31b 2012-12-26T09:31:41 Parse anything in the stratum socket if it's full without waiting. Empty the socket even if a connection is not needed in case there are share returns.
Con Kolivas cada0d31 2012-12-14T21:36:42 Check for EWOULDBLOCK when supported in send and recv as well.
Con Kolivas 2274af6a 2012-12-14T21:29:33 Use the raw send() command instead of curl_easy_send since curl raw socket usage introduces random bugs on windows.
Con Kolivas f66d59df 2012-12-14T21:20:52 Use raw recv() command in place of curl_easy_recv since the curl implementation introduces random bugs on windows builds when the recv fails.
Kano 138465bf 2012-12-13T00:56:10 Pool store data transfer stats
Con Kolivas ac3020f4 2012-12-10T21:55:28 Include prctl header for thread renaming to work.
Con Kolivas 15e5e36b 2012-12-09T14:13:24 Return value of keep_sockalive is no longer used.
Con Kolivas 8fcc67f3 2012-12-09T13:39:37 Remove dependency on mstcpip.h for windows build by making curl version >= 7.25.0 mandatory on windows builds, and use curl functions for keepalive whenever possible instead.
Con Kolivas 68f1b2c4 2012-12-08T22:14:47 Set successful connect to true on auth stratum to allow summary on exit from single stratum pool.
Con Kolivas be013e96 2012-12-07T09:36:22 Set pool probed to true on successful authorisation with stratum to avoid it being pinged later with pool_getswork.
Con Kolivas fc5d3a0e 2012-12-03T09:52:46 Suspend stratum connections to backup pools when there is no requirement to potentially grab work from them.
Denis Ahrens 271b05ab 2012-12-02T11:39:20 setting the name of the threads for linux,freebsd,openbsd and osx code is borrowed from bitcoins util.c, so it is already tested
Con Kolivas fc66a41e 2012-12-02T20:49:40 Style police.
Con Kolivas f94cff77 2012-12-02T18:06:55 Microoptimise and remove redundant copy of strdup function in calloc_strcat.
Con Kolivas 0ae02c6e 2012-12-01T08:26:31 Since we will be using calloc_str to put a string into it, convert the function to calloc_strcat which does it automatically.
Con Kolivas ee8609d9 2012-11-29T12:48:17 Provide helper functions calloc_str and realloc_strcat to create and extend arbitrary length arrays based on string length.
nelisky 6db7e2e5 2012-11-24T13:11:07 fixes target calc for mips openwrt
Con Kolivas 0b088d8d 2012-11-18T18:08:14 Provide rudimentary support for literal ipv6 addresses when parsing stratum URLs.
Con Kolivas f14bf5b1 2012-11-17T22:06:49 Merge pull request #326 from pshep/error_counters Error counters
Con Kolivas b3864d1a 2012-11-15T09:18:58 Support for fractional diffs and the classic just-below-1 share all FFs diff target.
Paul Sheppard dad6c704 2012-11-06T09:46:05 Merge branch 'master' into error_counters
Con Kolivas cc7c2745 2012-11-05T16:28:52 Manage appropriate response codes for share submission with GBT.
Paul Sheppard 84173c6c 2012-11-04T20:38:11 missing a break.
Paul Sheppard 9f74e650 2012-11-04T20:13:49 Tidy up device error counts
Luke Dashjr c2b5c5ee 2012-10-29T07:50:47 Bugfix: Free old stratum_work data before replacing it
Con Kolivas c2861d68 2012-10-30T19:22:02 There is no need for addrinfo any more.
ckolivas a2d57835 2012-10-30T16:45:27 server and client sockaddr_in are no longer used in struct pool.
Con Kolivas 48f24223 2012-10-29T12:35:21 Shorten the initiate stratum connect timeout to 30 seconds.
Con Kolivas 6f4c47eb 2012-10-29T11:58:58 Make stratum socket fail more robust on windows by disabling the send buffer. Reuse the same curl handle forcing a new connection instead of risking derefencing. Add information about submission failure to stratum send.
Con Kolivas aa97e87a 2012-10-28T09:15:45 Use keepalive with stratum sockets to improve its ability to detect broken connections.
Con Kolivas d9276557 2012-10-27T23:20:10 Show only the URL in the status bar to avoid long prefixes making for extra long lines.
Con Kolivas 6d3c880a 2012-10-22T22:48:12 Make sure to check pool stratum curl exists under lock before attempting any recv to not risk dereferencing upon attempting to reinitiate stratum.
Con Kolivas e575763a 2012-10-22T22:06:00 Avoid redefining macros and align to 4 byte boundaries.
ckolivas bb4bec98 2012-10-17T09:34:32 Use select on stratum send to make sure the socket is writeable.
Con Kolivas 99adf397 2012-10-16T19:47:31 Failure to calloc in bin2hex is a fatal failure always so just check for that failure within the function and abort, simplifying the rest of the code.
Con Kolivas b3d42589 2012-10-16T19:22:48 Provide locking around the change of the stratum curl structures to avoid possible races.
Con Kolivas e5babfa2 2012-10-15T11:40:32 Watch for buffer overflows on receiving data into the socket buffer.
Con Kolivas 2a9b3e33 2012-10-14T09:54:04 String alignment to 4 byte boundaries and optimisations for bin<->hex conversions.
Con Kolivas fc72ad55 2012-10-12T14:57:42 Off by one error.
Con Kolivas 9ccfcee6 2012-10-12T14:55:52 Prevent overflows of the port char array in extract_sockaddr.
ckolivas 7f522ef8 2012-10-11T14:23:09 Add support for client.get_version for stratum.
Con Kolivas a533f106 2012-10-11T00:08:45 Update reconnect message to show whole address including port.
Con Kolivas 5226a399 2012-10-11T00:06:44 Look for null values and parse correct separate array entries for url and port with client reconnect commands for stratum.
Con Kolivas 7c04a00e 2012-10-10T23:56:24 The command for stratum is client.reconnect, not mining.reconnect.
Con Kolivas 783af876 2012-10-10T23:41:29 Implement rudimentary mining.reconnect support for stratum.
Con Kolivas 974f65c6 2012-10-10T23:22:24 Ignore the value of stratum_active on calling initiate_stratum and assume we're always trying to reinitiate it, and set the active flag to false in that function.
Con Kolivas 07605fad 2012-10-10T23:07:33 stratum auth can be unset if we fail to authorise on subsequent calls to auth_stratum which undoes the requirement of setting it in one place so set it in pool_active.
Con Kolivas ef822a25 2012-10-08T11:08:04 Detect stratum outage based on either select timing out or receiving an empty buffer and properly re-establish connection by disabling the stratum_active flag, coping with empty buffers in parse_stratum.
Con Kolivas 7a01578c 2012-10-06T10:14:30 Only hand off to stratum from getwork if we succeed in initiating the protocol.
Con Kolivas ef63ea31 2012-10-05T12:45:07 Drop stratum connect failed message to verbose level only since it's a regular probing message.
Con Kolivas fa444294 2012-10-05T12:41:59 TCP Keepalive in curl is only in very recent versions and not required with regular messages on stratum anyway.
Con Kolivas a8d69302 2012-10-05T12:37:29 Move stratum sockets to curl infrastructure with locking around send+recv to begin support for proxies and ssl.