util.c


Log

Author Commit Date CI Message
Con Kolivas c9c39ac1 2013-10-14T11:44:13 Give correct return code in cgsem_mswait
Con Kolivas 6e948d87 2013-10-14T11:34:08 Check for correct timeout error in cgsem_mswait
Con Kolivas c75ce853 2013-10-14T11:22:57 Implement a generic cgsem_mswait similar to sem_timedwait
Con Kolivas d3c215fd 2013-10-12T09:53:21 Provide a lower level __bin2hex function that does not allocate memory itself.
Con Kolivas 7fbe999f 2013-10-11T12:00:39 Drop logging level for failed to connect to stratum to verbose mode only since we hit it regularly.
Con Kolivas 936fca4d 2013-10-07T20:38:24 Limit ms_tdiff to 1 hour as a sanity check.
Con Kolivas 97b5dd08 2013-10-07T20:38:24 Limit ms_tdiff to 1 hour as a sanity check.
Con Kolivas d5e9e084 2013-10-07T15:37:34 Prevent overflows in us_tdiff and ms_tdiff.
Con Kolivas 2d1ba75e 2013-10-07T15:37:34 Prevent overflows in us_tdiff and ms_tdiff.
Con Kolivas 44b9cf50 2013-09-26T12:11:25 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.
Con Kolivas 466d3bec 2013-09-21T22:49:28 Provide a --disable-libcurl config option to build support for stratum mining only.
Con Kolivas 566a80f0 2013-09-14T10:13:06 Cast -1 to (char) to cope with different default char types on ARM.
Con Kolivas f319d3b9 2013-09-10T07:02:16 Use inet_addr instead of inet_network to fix windows build.
Con Kolivas 7570d885 2013-09-08T19:54:18 Remove unused pbase variable.
Con Kolivas 89c07fa5 2013-09-08T16:32:44 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.
Con Kolivas f652b1e2 2013-09-08T10:14:19 Fix warning on mingw build.
Con Kolivas e65df993 2013-09-08T10:14:19 Fix warning on mingw build.
Con Kolivas 770556cd 2013-09-07T09:39:03 Use the --socks-proxy option with stratum, changing it to defaulting to socks5 and give appropriate message should it fail to connect.
Con Kolivas ddbd3ab7 2013-09-07T09:14:12 Cope with trailing slashes in stratum urls.
ckolivas 55249db3 2013-09-06T13:41:40 Add more debugging messages when negotiating with proxies for stratum.
ckolivas a589de5a 2013-09-06T10:28:36 Test specifically for socks5h in socks support for stratum.
Con Kolivas d7003ecc 2013-09-06T09:21:46 Add support for socks5 proxy with stratum
Con Kolivas 17019804 2013-09-06T00:34:04 Provide support for negotiating a stratum connection via http proxies.
Con Kolivas 8fa01556 2013-09-05T23:21:42 Connect to the proxy URL and port if specified for stratum sockets instead of the pool directly.
Con Kolivas b783d94c 2013-09-05T23:14:53 Extract any proxy url and port to be used by sockaddr if possible using extract_sockaddr.
Con Kolivas 8ede407d 2013-09-05T23:10:19 Make extract_sockaddr set variables passed to it rather than pool struct members.
Con Kolivas 83b5f624 2013-08-31T22:24:38 Don't decref json values in stratum parsing due to memory corruption.
Con Kolivas bec40c5b 2013-08-31T13:32:40 Provide base structures for getaddrinfo.
Con Kolivas c9c61e72 2013-08-28T07:05:18 Fix win32 build.
Con Kolivas 036c7b73 2013-08-25T16:34:07 Fix OSX build.
Con Kolivas 79ca14f5 2013-08-25T15:17:34 Provide an osx fix for cgtimers and a fallback to timevals for all other platforms !linux !win32 !osx.
Con Kolivas f009347e 2013-08-25T15:02:01 Move two more timer functions out of define macros to enable them to be used by future osx code.
Con Kolivas ec881c41 2013-08-25T14:59:35 cgtimer_sub is now the same since cgtimer_t should be the same on all platforms.
Con Kolivas e1433f8e 2013-08-22T13:49:22 Use timespecs on windows as cgtimer_t to capitalise on the higher resolution clock changes.
Con Kolivas d8e2a437 2013-08-22T12:55:09 Abstract out the conversion of system time to an lldiv_t in decimicroseconds.
Con Kolivas acc1b7df 2013-08-22T12:24:39 Use our own gettimeofday implementation on windows for it to be consistent across ming builds and higher resolution.
Con Kolivas 903d007c 2013-08-20T22:47:13 Provide cgtimer_sub helper functions.
Con Kolivas 9dc63cee 2013-08-20T22:35:38 Provide cgtimer_to_ms helper functions.
Con Kolivas 7d0c9b50 2013-08-20T22:27:14 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
Con Kolivas ee2a5ae8 2013-08-20T20:46:09 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.
Con Kolivas eeac9d81 2013-08-20T19:23:49 Replace all references to the old n*sleep functions with the equivalent cgsleep_*s replacements.
Con Kolivas 7d448cd7 2013-08-19T23:39:49 timeGetTime uses huge resources on windows so revert to using timevals for its implementation of cgtimer_t
Con Kolivas 0414bf09 2013-08-19T21:36:00 Quotient/remainder error in ms division.
Con Kolivas b238139c 2013-08-19T17:44:45 Provide cgtimer_to_timeval helper functions.
Con Kolivas 09679e9f 2013-08-19T17:38:20 Provide a timeval_to_cgtime helper function to reuse values.
Con Kolivas 09e9091d 2013-08-19T13:54:56 Simplify cgsleep code for windows by using a typedef for cgtimer_t that resolves to clock resolution, using that internally.
Con Kolivas 404cbdea 2013-08-19T13:29:23 On windows use the higher accuracy timegettime function to really get 1ms clock and timer accuracy.
Con Kolivas ffa12a13 2013-08-18T14:35:01 Fix missed endtimeperiod in overrun timer on windows.
Con Kolivas ad87db07 2013-08-18T14:30:54 Make cgsleep_us_r take an int64_t for us.
Con Kolivas 703c7309 2013-08-18T14:26:41 Make the cgsleep functions build on windows.
Con Kolivas 81144732 2013-08-18T11:39:09 Set high resolution timing on windows within the cgsleep functions.
Con Kolivas 621eb003 2013-08-18T10:49:52 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.
Con Kolivas 0b5edb24 2013-08-18T10:36:25 Make the nmsleep and nusleep functions use the new cgsleep functions internally till functions are migrated to the new cgsleep API.
Con Kolivas 188210a3 2013-08-18T10:28:28 Add a ms_to_timespec helper function, and create a cgsleep_ms function that uses absolute timers with clock_nanosleep to avoid overruns.
Con Kolivas 99cbf09d 2013-08-18T00:38:29 Add a timeraddspec helper function.
Con Kolivas 1bcd9a43 2013-08-18T00:34:01 Provide a us_to_timespec helper function.
Con Kolivas 2278204d 2013-08-18T00:27:33 Provide a us_to_timeval helper function.
Con Kolivas a6b1c317 2013-08-18T00:19:47 Add helper functions to convert timespec to timeval and vice versa.
Con Kolivas e95ad047 2013-08-13T22:44:22 Nonce2 stratum submission is not working with nonce2 lengths >4, revert the buggy __bin2hex function and use bin2hex.
Con Kolivas 87ae66c7 2013-08-13T05:49:32 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.
Con Kolivas 46b6b07a 2013-08-12T16:02:20 Avoid a potential overflow should a pool specify a large nonce2 length with stratum.
Con Kolivas 5237bf35 2013-08-12T11:36:28 Perform merkle bin hex2bin on stratum notify to avoid doing it on each work generation.
Con Kolivas 8bc469e9 2013-08-12T11:16:46 Reuse just the one pool coinbase variable in stratum, avoiding more string functions and storage in gen_stratum_work on each work generation.
Con Kolivas c542e47a 2013-08-12T10:49:38 Use a nonce2 offset variable for both gbt and stratum to consolidate requirements on work generation.
Kano eca6ace2 2013-08-12T09:00:52 util.c update quit call for new functions
Kano bab9ba96 2013-08-12T08:58:20 use correct define for OSX in util.c
Kano bd3612c1 2013-08-12T08:38:02 util.c expand quit to show file/func/line
Kano cf300537 2013-08-12T08:35:29 Merge remote-tracking branch 'conman/master'
Con Kolivas b423fe9d 2013-08-11T14:06:17 Cache the hex2bin of pool nonce1 in stratum, avoiding hex2bin on each work generation.
Con Kolivas fef649df 2013-08-11T13:47:46 Cache the binary generation of coinbase1 and 2 on stratum, avoiding a hex2bin of coinbase1 and 2 on each work generation.
Kano 48d91c7f 2013-08-10T10:36:38 cgsem - increase information on failure
ckolivas eb9278ca 2013-07-19T19:32:57 Check for negative wait time in socket_full.
ckolivas f2ae7fad 2013-07-19T19:09:23 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.
Con Kolivas 1b5ea442 2013-06-21T18:02:38 Show an integer only for diff if it is one.
Con Kolivas 6560878e 2013-06-16T22:33:49 Suspend stratum connections when we know they've failed and don't try to recv data from them once the socket no longer exists.
Con Kolivas 13a4aaa6 2013-06-13T14:31:37 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.
Con Kolivas 12a2cb0d 2013-06-09T22:37:49 Demote failed hex2bin result to LOG_INFO and check return result in driver-bflsc to avoid doing find_work_by_midstate.
ckolivas 9b2e517f 2013-06-09T12:20:04 Use cgsem structures instead of the flaky pings in the work queue to start mining threads and remove the unused thr_info_freeze function.
ckolivas 104b14ec 2013-06-06T13:22:12 Failed reads and writes on cgsem_post and cgsem_wait should be extremely rare.
ckolivas b59c3380 2013-06-06T13:08:00 Implement cgminer specific cgsem semaphores to imitate unnamed semaphore behaviour on osx which does not support them.
Con Kolivas d52ab244 2013-05-28T23:00:14 Provide an nusleep equivalent function to nmsleep.
Con Kolivas 64b08f38 2013-05-19T10:23:59 All stratum calls to recv_line are serialised from the one place so there is no need to use locking around recv().
Con Kolivas f227515e 2013-05-18T13:09:01 Set pool->probed to true after an attempt to resolve the url via stratum code.
Con Kolivas 3336880e 2013-05-13T22:42:39 Show pool difficulty more verbosely if it changes via stratum.
mhren c5bfc452 2013-05-11T23:32:57 Update util.c Apple OS/X does not define MSG_NOSIGNAL. Use SO_NOSIGPIPE instead
Con Kolivas 3972fe22 2013-05-11T15:03:40 Show a different warning and loglevel for failure to resolve a URL on first or subsequent testing of stratum pool URLs.
Con Kolivas 2645797f 2013-05-09T22:04:33 Set all stratum sockets to nonblocking to avoid trying to use MSG_DONTWAIT on windows.
Con Kolivas d89936a9 2013-05-09T21:10:53 Fix warnings on win32 build.
ckolivas 832012f6 2013-05-09T13:42:53 Only use MSG_NOSIGNAL for !win32 since it doesn't exist on windows.
ckolivas 6acfdbd6 2013-05-09T13:36:34 Use MSG_NOSIGNAL on stratum send()
ckolivas a7cbbc9f 2013-05-09T12:08:42 Set TCP_NODELAY for !linux for raw sockets.
ckolivas 0676a1a8 2013-05-09T12:00:28 Use TCP_NODELAY with raw sockets if !opt_delaynet
Con Kolivas 68196588 2013-05-09T11:39:09 Make raw sockets compile on windows
Con Kolivas 43bcccf8 2013-05-09T10:41:27 Recheck select succeeds on EWOULDBLOCK for stratum.
Con Kolivas 6e969e93 2013-05-08T22:52:18 Recv() should all be non-blocking for raw sockets in stratum.
Con Kolivas cf80fe4a 2013-05-08T22:41:28 Change verbosity and error for getaddrinfo warnings in setup stratum socket.
Con Kolivas 1a43cb0b 2013-05-08T22:11:01 Free servinfo after p is checked in setup stratum socket.
Con Kolivas 31aa4f6c 2013-05-08T21:59:58 Use raw sockets without curl for stratum communications.
Con Kolivas 657e6447 2013-05-08T06:28:07 Sacrifice curl handle memory on stratum disconnects on all versions of libcurl to avoid curl corruption.
Con Kolivas 891f88b6 2013-05-06T16:54:55 Don't use TCP_NODELAY if opt_delaynet is enabled with stratum.