Con Kolivas
|
3dcae53e38
|
Return ETIMEDOUT regardless if we fail in cgsem_mswait since we may be waiting on it on shutdown and the return response is harmless.
|
2013-11-05 21:56:01 +11:00 |
|
Con Kolivas
|
759bd39f17
|
Avoid the extra generation of a byte flipped hash2 in struct work and directly use the LE work hash.
|
2013-11-02 11:07:44 +11:00 |
|
Con Kolivas
|
eaaf34a19d
|
Use a non blocking connect with a 1 second select timeout when initiating stratum to allow us to iterate over all IPs returned by getaddrinfo in round robin DNS pools.
|
2013-10-31 15:07:26 +11:00 |
|
Vitalii Demianets
|
f75fdbbbbe
|
Improve performance of work generation by optimizing hex2bin and bin2hex
sprintf is a very expensive function, do direct translation instead.
|
2013-10-29 21:56:08 +11:00 |
|
Con Kolivas
|
b424612cce
|
Use a sanity check on timeout on windows.
|
2013-10-27 13:35:47 +11:00 |
|
Con Kolivas
|
d342bcbe81
|
Provide a mechanism for informing drivers of updated work templates for stratum and gbt mining.
|
2013-10-25 11:57:27 +11:00 |
|
Con Kolivas
|
8dcbc86b97
|
Use windows' own higher resolution time and handlers allowing us to have higher precision absolute timeouts.
|
2013-10-23 10:19:04 +11:00 |
|
Con Kolivas
|
563cad189e
|
Fix lldiv error in windows cgminer_t calculation.
|
2013-10-23 09:13:50 +11:00 |
|
Con Kolivas
|
3956382450
|
Send pthread_cancel to failed completion_timeout that has timed out.
|
2013-10-18 22:04:21 +11:00 |
|
ckolivas
|
7838af1dc1
|
Remove unused variables.
|
2013-10-18 10:51:44 +11:00 |
|
ckolivas
|
0430165f7b
|
Fix cgcompletion return code and free on successful completion.
|
2013-10-18 10:26:31 +11:00 |
|
ckolivas
|
f826e35765
|
Provide a cg_completion_timeout helper function for unreliable functions that takes arbitrary functions and parameters and reliably returns.
|
2013-10-18 10:14:51 +11:00 |
|
Con Kolivas
|
c9c39ac14d
|
Give correct return code in cgsem_mswait
|
2013-10-14 11:44:13 +11:00 |
|
Con Kolivas
|
6e948d8750
|
Check for correct timeout error in cgsem_mswait
|
2013-10-14 11:34:08 +11:00 |
|
Con Kolivas
|
c75ce853a9
|
Implement a generic cgsem_mswait similar to sem_timedwait
|
2013-10-14 11:22:57 +11:00 |
|
Con Kolivas
|
d3c215fda6
|
Provide a lower level __bin2hex function that does not allocate memory itself.
|
2013-10-12 09:53:21 +11:00 |
|
Con Kolivas
|
7fbe999fa2
|
Drop logging level for failed to connect to stratum to verbose mode only since we hit it regularly.
|
2013-10-11 12:00:39 +11:00 |
|
Con Kolivas
|
97b5dd08b2
|
Limit ms_tdiff to 1 hour as a sanity check.
|
2013-10-07 23:34:48 +11:00 |
|
Con Kolivas
|
d5e9e08477
|
Prevent overflows in us_tdiff and ms_tdiff.
|
2013-10-07 23:33:14 +11:00 |
|
Con Kolivas
|
44b9cf50e3
|
Limit the duration we wait for reads in BF1 based on time already elapsed to account for other delays such as work restart messages or out of work.
|
2013-09-26 12:11:25 +10:00 |
|
Con Kolivas
|
466d3beca0
|
Provide a --disable-libcurl config option to build support for stratum mining only.
|
2013-09-21 22:49:28 +10:00 |
|
Con Kolivas
|
566a80f05b
|
Cast -1 to (char) to cope with different default char types on ARM.
|
2013-09-14 10:13:06 +10:00 |
|
Con Kolivas
|
f319d3b910
|
Use inet_addr instead of inet_network to fix windows build.
|
2013-09-10 07:02:16 +10:00 |
|
Con Kolivas
|
7570d885da
|
Remove unused pbase variable.
|
2013-09-08 19:54:18 +10:00 |
|
Con Kolivas
|
89c07fa5c7
|
Add support for socks4/4a proxies with stratum, and drop back to socks4 support via the global --socks-proxy command to not break previous configurations.
|
2013-09-08 16:32:44 +10:00 |
|
Con Kolivas
|
f652b1e291
|
Fix warning on mingw build.
|
2013-09-08 10:30:32 +10:00 |
|
Con Kolivas
|
770556cdec
|
Use the --socks-proxy option with stratum, changing it to defaulting to socks5 and give appropriate message should it fail to connect.
|
2013-09-07 09:39:03 +10:00 |
|
Con Kolivas
|
ddbd3ab78e
|
Cope with trailing slashes in stratum urls.
|
2013-09-07 09:14:12 +10:00 |
|
ckolivas
|
55249db361
|
Add more debugging messages when negotiating with proxies for stratum.
|
2013-09-06 13:41:40 +10:00 |
|
ckolivas
|
a589de5a8b
|
Test specifically for socks5h in socks support for stratum.
|
2013-09-06 10:28:36 +10:00 |
|
Con Kolivas
|
d7003ecccf
|
Add support for socks5 proxy with stratum
|
2013-09-06 09:21:46 +10:00 |
|
Con Kolivas
|
17019804c1
|
Provide support for negotiating a stratum connection via http proxies.
|
2013-09-06 00:34:04 +10:00 |
|
Con Kolivas
|
8fa01556f2
|
Connect to the proxy URL and port if specified for stratum sockets instead of the pool directly.
|
2013-09-05 23:21:42 +10:00 |
|
Con Kolivas
|
b783d94c6d
|
Extract any proxy url and port to be used by sockaddr if possible using extract_sockaddr.
|
2013-09-05 23:14:53 +10:00 |
|
Con Kolivas
|
8ede407df7
|
Make extract_sockaddr set variables passed to it rather than pool struct members.
|
2013-09-05 23:10:19 +10:00 |
|
Con Kolivas
|
83b5f62474
|
Don't decref json values in stratum parsing due to memory corruption.
|
2013-08-31 22:24:38 +10:00 |
|
Con Kolivas
|
bec40c5b68
|
Provide base structures for getaddrinfo.
|
2013-08-31 13:32:40 +10:00 |
|
Con Kolivas
|
c9c61e72c8
|
Fix win32 build.
|
2013-08-28 07:05:18 +10:00 |
|
Con Kolivas
|
036c7b73f1
|
Fix OSX build.
|
2013-08-25 16:34:07 +10:00 |
|
Con Kolivas
|
79ca14f5e8
|
Provide an osx fix for cgtimers and a fallback to timevals for all other platforms !linux !win32 !osx.
|
2013-08-25 15:17:34 +10:00 |
|
Con Kolivas
|
f009347e39
|
Move two more timer functions out of define macros to enable them to be used by future osx code.
|
2013-08-25 15:02:01 +10:00 |
|
Con Kolivas
|
ec881c41a4
|
cgtimer_sub is now the same since cgtimer_t should be the same on all platforms.
|
2013-08-25 14:59:35 +10:00 |
|
Con Kolivas
|
e1433f8ef8
|
Use timespecs on windows as cgtimer_t to capitalise on the higher resolution clock changes.
|
2013-08-22 13:49:22 +10:00 |
|
Con Kolivas
|
d8e2a43712
|
Abstract out the conversion of system time to an lldiv_t in decimicroseconds.
|
2013-08-22 12:55:09 +10:00 |
|
Con Kolivas
|
acc1b7df1b
|
Use our own gettimeofday implementation on windows for it to be consistent across ming builds and higher resolution.
|
2013-08-22 12:24:39 +10:00 |
|
Con Kolivas
|
903d007cb4
|
Provide cgtimer_sub helper functions.
|
2013-08-20 22:47:13 +10:00 |
|
Con Kolivas
|
9dc63cee53
|
Provide cgtimer_to_ms helper functions.
|
2013-08-20 22:35:38 +10:00 |
|
Con Kolivas
|
7d0c9b5060
|
Rename cgsleep_prepare_r as cgtimer_time to get time in cgtimer_t format and call cgsleep_prepare_r as a macro for cgtimer_time
|
2013-08-20 22:27:14 +10:00 |
|
Con Kolivas
|
ee2a5ae8f4
|
TimeBeginPeriod and TimeEndPeriod do not add significant overhead when run the entire time for cgminer so avoid trying to maintain balanced numbers of them for specific time calls to simplify code.
|
2013-08-20 20:46:09 +10:00 |
|
Con Kolivas
|
eeac9d81fc
|
Replace all references to the old n*sleep functions with the equivalent cgsleep_*s replacements.
|
2013-08-20 19:23:49 +10:00 |
|
Con Kolivas
|
7d448cd754
|
timeGetTime uses huge resources on windows so revert to using timevals for its implementation of cgtimer_t
|
2013-08-19 23:39:49 +10:00 |
|
Con Kolivas
|
0414bf0960
|
Quotient/remainder error in ms division.
|
2013-08-19 21:36:00 +10:00 |
|
Con Kolivas
|
b238139cf9
|
Provide cgtimer_to_timeval helper functions.
|
2013-08-19 17:44:45 +10:00 |
|
Con Kolivas
|
09679e9f8b
|
Provide a timeval_to_cgtime helper function to reuse values.
|
2013-08-19 17:38:20 +10:00 |
|
Con Kolivas
|
09e9091dd7
|
Simplify cgsleep code for windows by using a typedef for cgtimer_t that resolves to clock resolution, using that internally.
|
2013-08-19 13:54:56 +10:00 |
|
Con Kolivas
|
404cbdea84
|
On windows use the higher accuracy timegettime function to really get 1ms clock and timer accuracy.
|
2013-08-19 13:29:23 +10:00 |
|
Con Kolivas
|
ffa12a138a
|
Fix missed endtimeperiod in overrun timer on windows.
|
2013-08-18 14:39:26 +10:00 |
|
Con Kolivas
|
ad87db07d9
|
Make cgsleep_us_r take an int64_t for us.
|
2013-08-18 14:39:26 +10:00 |
|
Con Kolivas
|
703c7309c2
|
Make the cgsleep functions build on windows.
|
2013-08-18 14:39:26 +10:00 |
|
Con Kolivas
|
8114473228
|
Set high resolution timing on windows within the cgsleep functions.
|
2013-08-18 11:39:09 +10:00 |
|
Con Kolivas
|
621eb00309
|
Provide reentrant versions of cgsleep functions to allow start time to be set separately from the beginning of the actual sleep, allowing scheduling delays to be counted in the sleep.
|
2013-08-18 10:49:52 +10:00 |
|
Con Kolivas
|
0b5edb24f9
|
Make the nmsleep and nusleep functions use the new cgsleep functions internally till functions are migrated to the new cgsleep API.
|
2013-08-18 10:36:25 +10:00 |
|
Con Kolivas
|
188210a3d2
|
Add a ms_to_timespec helper function, and create a cgsleep_ms function that uses absolute timers with clock_nanosleep to avoid overruns.
|
2013-08-18 10:28:28 +10:00 |
|
Con Kolivas
|
99cbf09dd1
|
Add a timeraddspec helper function.
|
2013-08-18 00:38:29 +10:00 |
|
Con Kolivas
|
1bcd9a43b1
|
Provide a us_to_timespec helper function.
|
2013-08-18 00:34:01 +10:00 |
|
Con Kolivas
|
2278204ddd
|
Provide a us_to_timeval helper function.
|
2013-08-18 00:27:33 +10:00 |
|
Con Kolivas
|
a6b1c31742
|
Add helper functions to convert timespec to timeval and vice versa.
|
2013-08-18 00:19:47 +10:00 |
|
Con Kolivas
|
e95ad0479f
|
Nonce2 stratum submission is not working with nonce2 lengths >4, revert the buggy __bin2hex function and use bin2hex.
|
2013-08-13 22:44:22 +10:00 |
|
Con Kolivas
|
87ae66c7e6
|
Create a work data template when receiving stratum notification, allowing a simple memcpy of the merkle root avoiding more hex2bin conversions on each work generation.
|
2013-08-13 05:49:32 +10:00 |
|
Con Kolivas
|
46b6b07afa
|
Avoid a potential overflow should a pool specify a large nonce2 length with stratum.
|
2013-08-12 16:02:20 +10:00 |
|
Con Kolivas
|
5237bf350d
|
Perform merkle bin hex2bin on stratum notify to avoid doing it on each work generation.
|
2013-08-12 11:36:28 +10:00 |
|
Con Kolivas
|
8bc469e916
|
Reuse just the one pool coinbase variable in stratum, avoiding more string functions and storage in gen_stratum_work on each work generation.
|
2013-08-12 11:16:46 +10:00 |
|
Con Kolivas
|
c542e47aa3
|
Use a nonce2 offset variable for both gbt and stratum to consolidate requirements on work generation.
|
2013-08-12 10:49:38 +10:00 |
|
Kano
|
eca6ace2d5
|
util.c update quit call for new functions
|
2013-08-12 09:00:52 +10:00 |
|
Kano
|
bab9ba9603
|
use correct define for OSX in util.c
|
2013-08-12 08:58:20 +10:00 |
|
Kano
|
bd3612c104
|
util.c expand quit to show file/func/line
|
2013-08-12 08:38:02 +10:00 |
|
Kano
|
cf30053793
|
Merge remote-tracking branch 'conman/master'
|
2013-08-12 08:35:29 +10:00 |
|
Con Kolivas
|
b423fe9de8
|
Cache the hex2bin of pool nonce1 in stratum, avoiding hex2bin on each work generation.
|
2013-08-11 14:06:17 +10:00 |
|
Con Kolivas
|
fef649dfef
|
Cache the binary generation of coinbase1 and 2 on stratum, avoiding a hex2bin of coinbase1 and 2 on each work generation.
|
2013-08-11 13:47:46 +10:00 |
|
Kano
|
48d91c7f2d
|
cgsem - increase information on failure
|
2013-08-10 10:36:38 +10:00 |
|
ckolivas
|
eb9278ca53
|
Check for negative wait time in socket_full.
|
2013-07-19 19:32:57 +10:00 |
|
ckolivas
|
f2ae7fadb2
|
Adjust socket wait timeout in recv_line according to how long we've already waited to avoid a 60 second wait dropping to 1 second due to a blocked socket.
|
2013-07-19 19:09:23 +10:00 |
|
Con Kolivas
|
1b5ea442b8
|
Show an integer only for diff if it is one.
|
2013-06-21 18:02:38 +10:00 |
|
Con Kolivas
|
6560878e03
|
Suspend stratum connections when we know they've failed and don't try to recv data from them once the socket no longer exists.
|
2013-06-16 22:33:49 +10:00 |
|
Con Kolivas
|
13a4aaa61a
|
Failure to read and write on pseudo semaphores on apple happens routinely on shut down so should not be a quit error, just a warning.
|
2013-06-13 14:31:37 +10:00 |
|
Con Kolivas
|
12a2cb0d3c
|
Demote failed hex2bin result to LOG_INFO and check return result in driver-bflsc to avoid doing find_work_by_midstate.
|
2013-06-09 22:37:49 +10:00 |
|
ckolivas
|
9b2e517f30
|
Use cgsem structures instead of the flaky pings in the work queue to start mining threads and remove the unused thr_info_freeze function.
|
2013-06-09 12:20:04 +10:00 |
|
ckolivas
|
104b14ec7f
|
Failed reads and writes on cgsem_post and cgsem_wait should be extremely rare.
|
2013-06-06 13:22:12 +10:00 |
|
ckolivas
|
b59c33800b
|
Implement cgminer specific cgsem semaphores to imitate unnamed semaphore behaviour on osx which does not support them.
|
2013-06-06 13:08:00 +10:00 |
|
Con Kolivas
|
d52ab244ee
|
Provide an nusleep equivalent function to nmsleep.
|
2013-05-28 23:00:14 +10:00 |
|
Con Kolivas
|
64b08f383b
|
All stratum calls to recv_line are serialised from the one place so there is no need to use locking around recv().
|
2013-05-19 10:23:59 +10:00 |
|
Con Kolivas
|
f227515e38
|
Set pool->probed to true after an attempt to resolve the url via stratum code.
|
2013-05-18 13:09:01 +10:00 |
|
Con Kolivas
|
3336880e3b
|
Show pool difficulty more verbosely if it changes via stratum.
|
2013-05-13 22:42:39 +10:00 |
|
mhren
|
c5bfc45233
|
Update util.c
Apple OS/X does not define MSG_NOSIGNAL. Use SO_NOSIGPIPE instead
|
2013-05-11 23:32:57 -05:00 |
|
Con Kolivas
|
3972fe223b
|
Show a different warning and loglevel for failure to resolve a URL on first or subsequent testing of stratum pool URLs.
|
2013-05-11 15:03:40 +10:00 |
|
Con Kolivas
|
2645797fca
|
Set all stratum sockets to nonblocking to avoid trying to use MSG_DONTWAIT on windows.
|
2013-05-09 22:04:33 +10:00 |
|
Con Kolivas
|
d89936a96c
|
Fix warnings on win32 build.
|
2013-05-09 21:10:53 +10:00 |
|
ckolivas
|
832012f61d
|
Only use MSG_NOSIGNAL for !win32 since it doesn't exist on windows.
|
2013-05-09 13:42:53 +10:00 |
|
ckolivas
|
6acfdbd661
|
Use MSG_NOSIGNAL on stratum send()
|
2013-05-09 13:36:34 +10:00 |
|
ckolivas
|
a7cbbc9fc3
|
Set TCP_NODELAY for !linux for raw sockets.
|
2013-05-09 12:08:42 +10:00 |
|