Con Kolivas
666fcc3f55
Move staged threads to hashes so we can sort them by time.
14 years ago
Con Kolivas
dfec430cb8
Make the tcp setsockopts unique to linux in the hope it allows freebsd et. al to compile.
14 years ago
Con Kolivas
d89a6c57b1
Since we check roll time per work item now, it need only be debug log level.
14 years ago
Con Kolivas
3edc1dfe2a
Test at appropriate target difficulty now.
14 years ago
Con Kolivas
1e77f04481
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.
14 years ago
Con Kolivas
426f72dec7
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.
14 years ago
Con Kolivas
657812ada4
Probe for slightly longer for when network conditions are lagging.
14 years ago
Con Kolivas
d6dd5d700b
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.
14 years ago
Con Kolivas
5f667e7eab
Get rid of extra line feeds.
14 years ago
Con Kolivas
53e05c6413
Log to the output file at any time with warnings and errors, instead of just when verbose mode is on.
14 years ago
Con Kolivas
0006eb2da4
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.
14 years ago
Con Kolivas
e82e390295
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.
14 years ago
Con Kolivas
98f609b5be
Sanity check to prove locking.
14 years ago
Con Kolivas
a187fe1e7b
Try to do every curses manipulation under the curses lock.
14 years ago
Con Kolivas
5f54e164c9
Only use the sockoptfunction if the version of curl is recent enough.
14 years ago
Con Kolivas
401983136c
Do away with GET for dealing with longpoll forever. POST is the one that works everywhere, not the other way around.
14 years ago
Ycros
0c25ff8416
OSX: fix setsockopt compile bug
14 years ago
Ycros
d37c3fe56b
Win32 threading and longpoll keepalive fixes.
14 years ago
Con Kolivas
fe8b041654
Make --no-longpoll work again.
14 years ago
Con Kolivas
b0a8f279f7
Implement the ability to live add, enable, disable, and switch to pools.
14 years ago
Michael Kedzierski
d987006cd8
TCP KEEPALIVE support for long polling.
14 years ago
Con Kolivas
b56ed74867
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.
14 years ago
Con Kolivas
81ff7fb3dc
Explicitly probe each pool to see if work can be retrieved from it and what it supports.
14 years ago
Con Kolivas
913e120262
Test for rolltime and save it correctly when testing for longpoll.
14 years ago
Con Kolivas
0ce3df10d2
Store whether each server supports X-Roll-Ntime or not.
14 years ago
Con Kolivas
321c4798d4
Make longpoll switch servers should it not match the current pool.
14 years ago
Con Kolivas
cdc72daed9
Some servers regularly return empty responses. Drop the message from ERR to INFO.
14 years ago
Con Kolivas
44c975be65
Long timeouts are causing reset connections and longpoll can recover if the connection needs to be restarted, so remove the timeout settings.
14 years ago
Con Kolivas
0c253734e1
Provide a control lock around global bools to avoid racing on them.
14 years ago
Con Kolivas
6e30c0701c
longpoll seems to work either way with post or get but some servers prefer get so change to httpget.
14 years ago
Con Kolivas
579bd42919
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 7b9b078114
.
Conflicts:
util.c
Timeout was a bandaid for other going-idle reasons and never helped. Revert it.
14 years ago
Con Kolivas
c36cc61f64
Ensure we connect at least once successfully before continuing to try to connect.
14 years ago
Con Kolivas
e21e923648
Make the curses interface optional with a new --text-only -T option.
14 years ago
Con Kolivas
e335d5211f
Cope with servers that return empty bodies that would otherwise crash jansson.
14 years ago
Con Kolivas
24fa8202a7
Revert "Longpoll is not supposed to use POST and this could be leading to longpoll failures."
...
This reverts commit ad0be6cfbe
.
Wrong fix and probably an inappropriate thing to do anyway.
14 years ago
Con Kolivas
10d66b2437
Fix isatty being undefined.
14 years ago
Con Kolivas
7b9b078114
Change get_work to use a timeout when trying to tq_pop as a sanity failsafe in case of unusual circumstances.
14 years ago
Con Kolivas
ad0be6cfbe
Longpoll is not supposed to use POST and this could be leading to longpoll failures.
14 years ago
Con Kolivas
43ef5f5d3f
Get rid of the flaky time_lock and use the thread safe localtime_r instead.
14 years ago
Con Kolivas
231cd4fd9e
va list needs to be copied as it's invalidated either way.
14 years ago
Con Kolivas
73a864c51c
vfprintf invalidates the va args so do it after the curses output.
14 years ago
Con Kolivas
90839cdf5a
Implement a completely curses based display and don't output to stderr when log is enabled unless it's redirected away from the terminal.
14 years ago
Con Kolivas
3565634198
Show communication error once only on failure.
14 years ago
Con Kolivas
3d9f244e02
Make all applog at least 80 columns wide obviating the need for spaces at the end of select messages to clear the status line.
14 years ago
Ycros
05355d3c79
Fix occasional crash when performing json rpc calls.
14 years ago
Con Kolivas
bb49287449
Make longpoll aware of when new block detection has detected a new block first and avoid flushing the work queue twice.
14 years ago
Rusty Russell
e2d912eb4a
vapplog: new helper function for reporting errors.
14 years ago
Con Kolivas
0f351d8466
Always log warnings and error messages.
14 years ago
Con Kolivas
0a80d4b04d
Display the output as a refreshing line and only push continuous log to stderr if desired.
14 years ago
Con Kolivas
af6e7937ca
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.
14 years ago