util.c


Log

Author Commit Date CI Message
Con Kolivas 5179d224 2012-01-20T15:36:42 Introduce a --net-delay option which guarantees at least 250ms between any networking requests to not overload slow routers.
Luke Dashjr ebe21db3 2012-01-17T22:05:20 Advertise that we can make our own midstate, so the pool can skip generating it for us
Con Kolivas 4cf433c9 2012-01-17T16:21:08 Remove TCP_NODELAY from curl options as many small packets may be contributing to network overload.
Con Kolivas 638c8c52 2012-01-01T14:21:22 Make curl use a fresh connection if the json rpc call fails for any reason in case curl is relying on dead persistent connections.
Con Kolivas 19e373b8 2011-12-30T11:31:16 All threads are detached so there is no need to join them and it may dereference causing crash on exit.
Kano 5033dcd3 2011-12-27T18:33:49 fix test/set of thr->pth to also work in windows
Con Kolivas 2257b502 2011-12-27T11:37:30 Simplify longpoll changeover to just check which pool it should grab its next longpoll from. This should prevent locking hangs and thread cancellation crashes.
Con Kolivas a51514d9 2011-12-27T10:30:04 White space cleanup.
Con Kolivas b69aa234 2011-12-26T10:49:27 Use control_lock to protect thr->pth for thread creation/destruction.
Con Kolivas 59293a37 2011-12-26T09:29:16 Only pthread_join when pthread_cancel does not return an error.
Con Kolivas 13c40f75 2011-12-25T00:06:25 Zero all pthread_t identities upon cancelling threads.
Con Kolivas 689f8abb 2011-10-09T12:33:54 Try to use SSL if the server supports it.
Con Kolivas 4128b954 2011-09-26T18:49:15 Add a --donation feature which reads a url/userpass from the author's site and contributes a percentage of getworks to the author, but default to off.
Kano ba14a670 2011-09-21T21:45:24 Remove EOL spaces from stderr and curses
Kano 8ecd15a6 2011-09-20T16:19:21 Add BLOCK! notification and remove end of line blanks when not needed
Con Kolivas b8ea0dd1 2011-09-17T13:23:58 Update curses logging to allow LOG_WARNING and LOG_ERR messages to still go through while within the menu, and drop share message to LOG_NOTICE.
Con Kolivas 8e2becc1 2011-09-15T11:45:24 Change pth from being a pointer as we can dereference if we're unlucky on stopping longpoll.
Con Kolivas 833e020d 2011-09-15T10:33:23 Standardise the way all non-mining threads are destroyed to make sure we can safely cancel them, freeing ram and NULLifying pointers.
Luke Dashjr 1f15d7ea 2011-09-09T17:52:21 Advertise rollntime extension support Thanks to raijin for testing!
Con Kolivas a0a5858d 2011-09-06T12:00:40 Use the presence of X-Roll-Ntime in the header as a bool for exists unless N is found in the response.
Con Kolivas 5d845f2f 2011-09-02T10:13:33 If curl does not have sockopts, do not try to compile the json_rpc_call_sockopt_cb function, making it possible to build against older curl libraries.
Con Kolivas a593afdb 2011-08-31T13:23:36 Use the curses_lock to protect the curses_active variable and test it under lock.
Con Kolivas 437d6f05 2011-08-26T13:32:41 Disable curl debugging with opt protocol since it spews to stderr.
Con Kolivas 91a2e701 2011-08-26T12:12:54 Actually check the value returned for the x-roll-ntime extension to make sure it isn't saying N.
Con Kolivas 666fcc3f 2011-08-24T08:06:15 Move staged threads to hashes so we can sort them by time.
Con Kolivas dfec430c 2011-08-22T08:04:30 Make the tcp setsockopts unique to linux in the hope it allows freebsd et. al to compile.
Con Kolivas d89a6c57 2011-08-18T21:35:05 Since we check roll time per work item now, it need only be debug log level.
Con Kolivas 3edc1dfe 2011-08-17T22:33:46 Test at appropriate target difficulty now.
Con Kolivas 1e77f044 2011-08-17T12:43:39 Clean up the longpoll management to ensure the right paths go to the right pool and display whether we're connected to LP or not in the status line.
Con Kolivas 426f72de 2011-08-16T10:27:19 As we have keepalives now, blaming network flakiness on timeouts appears to have been wrong. Set a timeout for longpoll to 1 hour, and most other network connectivity to 1 minute.
Con Kolivas 657812ad 2011-08-16T10:15:47 Probe for slightly longer for when network conditions are lagging.
Con Kolivas d6dd5d70 2011-08-14T01:54:47 Test each work item to see if it can be rolled instead of per-pool and roll whenever possible, adhering to the 60 second timeout.
Con Kolivas 5f667e7e 2011-07-30T13:36:08 Get rid of extra line feeds.
Con Kolivas 53e05c64 2011-07-28T19:55:54 Log to the output file at any time with warnings and errors, instead of just when verbose mode is on.
Con Kolivas 0006eb2d 2011-07-28T10:36:48 Make the "quiet" mode still update the status and display errors, and add a new --real-quiet option which disables all output and can be set once while running.
Con Kolivas e82e3902 2011-07-27T16:40:52 If work has been cloned it is already at the head of the list and when being reinserted into the queue it should be placed back at the head of the list.
Con Kolivas 98f609b5 2011-07-27T10:31:44 Sanity check to prove locking.
Con Kolivas a187fe1e 2011-07-25T13:00:44 Try to do every curses manipulation under the curses lock.
Con Kolivas 5f54e164 2011-07-25T10:58:32 Only use the sockoptfunction if the version of curl is recent enough.
Con Kolivas 40198313 2011-07-24T17:34:57 Do away with GET for dealing with longpoll forever. POST is the one that works everywhere, not the other way around.
Ycros 0c25ff84 2011-07-23T17:11:16 OSX: fix setsockopt compile bug
Ycros d37c3fe5 2011-07-22T23:43:26 Win32 threading and longpoll keepalive fixes.
Con Kolivas fe8b0416 2011-07-22T12:22:55 Make --no-longpoll work again.
Con Kolivas b0a8f279 2011-07-22T11:46:26 Implement the ability to live add, enable, disable, and switch to pools.
Michael Kedzierski d987006c 2011-07-20T23:48:06 TCP KEEPALIVE support for long polling.
Con Kolivas b56ed748 2011-07-19T23:06:11 When json rpc errors occur they occur in spits and starts, so trying to limit them with the comms error bool doesn't stop a flood of them appearing. Make the json errors LOG_INFO level instead so they don't normally show up.
Con Kolivas 81ff7fb3 2011-07-19T13:01:08 Explicitly probe each pool to see if work can be retrieved from it and what it supports.
Con Kolivas 913e1202 2011-07-19T12:29:33 Test for rolltime and save it correctly when testing for longpoll.
Con Kolivas 0ce3df10 2011-07-19T11:45:58 Store whether each server supports X-Roll-Ntime or not.
Con Kolivas 321c4798 2011-07-19T10:53:04 Make longpoll switch servers should it not match the current pool.
Con Kolivas cdc72dae 2011-07-19T09:26:23 Some servers regularly return empty responses. Drop the message from ERR to INFO.
Con Kolivas 44c975be 2011-07-19T01:39:22 Long timeouts are causing reset connections and longpoll can recover if the connection needs to be restarted, so remove the timeout settings.
Con Kolivas 0c253734 2011-07-18T10:12:38 Provide a control lock around global bools to avoid racing on them.
Con Kolivas 6e30c070 2011-07-17T14:39:53 longpoll seems to work either way with post or get but some servers prefer get so change to httpget.
Con Kolivas 579bd429 2011-07-15T08:53:05 Revert "Change get_work to use a timeout when trying to tq_pop as a sanity failsafe in case of unusual circumstances." This reverts commit 7b9b0781146dde69378d53bafd3c8817fb8909e9. Conflicts: util.c Timeout was a bandaid for other going-idle reasons and never helped. Revert it.
Con Kolivas c36cc61f 2011-07-14T22:16:06 Ensure we connect at least once successfully before continuing to try to connect.
Con Kolivas e21e9236 2011-07-14T21:46:22 Make the curses interface optional with a new --text-only -T option.
Con Kolivas e335d521 2011-07-13T09:59:02 Cope with servers that return empty bodies that would otherwise crash jansson.
Con Kolivas 24fa8202 2011-07-12T22:38:47 Revert "Longpoll is not supposed to use POST and this could be leading to longpoll failures." This reverts commit ad0be6cfbe9eb0256f78ce50f0c0d99c1be5d925. Wrong fix and probably an inappropriate thing to do anyway.
Con Kolivas 10d66b24 2011-07-12T19:28:24 Fix isatty being undefined.
Con Kolivas 7b9b0781 2011-07-12T19:19:00 Change get_work to use a timeout when trying to tq_pop as a sanity failsafe in case of unusual circumstances.
Con Kolivas ad0be6cf 2011-07-12T17:16:08 Longpoll is not supposed to use POST and this could be leading to longpoll failures.
Con Kolivas 43ef5f5d 2011-07-11T22:45:19 Get rid of the flaky time_lock and use the thread safe localtime_r instead.
Con Kolivas 231cd4fd 2011-07-11T22:07:17 va list needs to be copied as it's invalidated either way.
Con Kolivas 73a864c5 2011-07-11T21:56:34 vfprintf invalidates the va args so do it after the curses output.
Con Kolivas 90839cdf 2011-07-11T13:41:31 Implement a completely curses based display and don't output to stderr when log is enabled unless it's redirected away from the terminal.
Con Kolivas 35656341 2011-07-10T22:32:17 Show communication error once only on failure.
Con Kolivas 3d9f244e 2011-07-09T17:30:54 Make all applog at least 80 columns wide obviating the need for spaces at the end of select messages to clear the status line.
Ycros 05355d3c 2011-07-09T16:10:35 Fix occasional crash when performing json rpc calls.
Con Kolivas bb492874 2011-07-07T14:29:39 Make longpoll aware of when new block detection has detected a new block first and avoid flushing the work queue twice.
Rusty Russell e2d912eb 2011-07-06T16:44:36 vapplog: new helper function for reporting errors.
Con Kolivas 0f351d84 2011-07-06T12:57:38 Always log warnings and error messages.
Con Kolivas 0a80d4b0 2011-07-05T22:04:54 Display the output as a refreshing line and only push continuous log to stderr if desired.
Con Kolivas af6e7937 2011-07-05T10:42:11 Signal handling in dns lookup code is responsible for libcurl crashes when multithreading. Disable signal handling and use many curl handles instead, thus making work more asynchronous. Theoretically a curl can wait forever on a dns lookup with this but it's extremely unlikely.
Con Kolivas ffdffe77 2011-07-02T12:12:35 Make sure the work gets attributed to the correct gpu. Add an fflush to stderr to minimise garbled output when multiple threads write at once.
Con Kolivas 13b43cfa 2011-07-03T00:28:51 Update copyright and authors.
Ycros 9fe21064 2011-06-25T08:18:29 Fixed up using config.h instead of cpuminer-config.h.
Con Kolivas 4cd5f47e 2011-06-23T21:09:22 Revert "Multiple compiler warning fixes." This reverts commit a5cbfbde2610e9f60e14b41a4e0595bcb34c772a. Broke.
Con Kolivas 88761e6c 2011-06-23T21:04:29 Multiple compiler warning fixes.
Jeff Garzik 6a3b05e6 2011-05-09T22:10:16 jansson 2.x compatibility
Jeff Garzik 7ff1280b 2011-04-11T17:32:25 util: correct off-by-one in month display
Jeff Garzik a7d9f317 2011-03-22T13:58:32 Add User-Agent header to each HTTP request
Jeff Garzik 2fd9d544 2011-03-21T04:02:13 Convert remaining [f]print to applog(). Also, remove a few superfluous printouts.
Jeff Garzik 24afd617 2011-03-18T17:24:16 Introduce more standardized logging (incl. optional syslog). Also, improve portability of alloca.
Jeff Garzik 7a87bee9 2011-03-18T02:53:13 Add long polling support
Jeff Garzik 0258fae4 2011-03-14T23:36:28 Fix Windows build, that broke with yasm integration
Jeff Garzik 4f7a51e9 2011-03-14T23:17:34 Move all RPC I/O to separate thread.
Jeff Garzik d4ddd315 2011-03-02T22:06:25 Make CURL follow redirects. Suggested by prcarter.
Jeff Garzik b2372e70 2011-02-12T19:57:50 Turn off target testing for release, as some strange results appeared.
Jeff Garzik c0935a94 2011-02-10T00:41:44 Re-use CURL object, thereby caching DNS and HTTP connections where possible.
Jeff Garzik 51eb1b4e 2011-02-04T11:53:51 Move verbose proof-of-work/target comparison display into -D (debug)
Jeff Garzik 714c0fd7 2011-02-03T00:46:55 Continue scanhash, even if high 32 bits are zero. Previously, we would stop the scan if the high 32 bits of the hash were zero, as a quick shortcut for testing the full hash. If this quick test succeeded, we would pass the work to the server for full validation. Change this logic to perform full validation inside minerd, so that work may be resumed more quickly if hash > target.
Jeff Garzik c68ffb30 2011-02-02T18:47:04 Display proof-of-work hash when one is discovered
Jeff Garzik 2f9a6dee 2010-12-28T17:13:59 Improve CURL HTTP request error diagnostics.
Jeff Garzik 9e5a173c 2010-12-28T15:22:53 Improve JSON-RPC result/error checking, and improve error diagnostic output.
Jeff Garzik 35ea649d 2010-11-26T23:12:24 Improve hash performance statistics.
Jeff Garzik 945be82e 2010-11-25T04:03:59 Move utility routines to util.c.