1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-09 22:38:01 +00:00
Commit Graph

209 Commits

Author SHA1 Message Date
Con Kolivas
a6f1a62220 Create helper functions for checking when a socket is ready to read on and receive a single line at a time.
Begin stratum authorisation process.
2012-09-28 04:35:16 +10:00
Con Kolivas
07e6bd1262 Provide a helper function for reading a single \n terminated string from a socket. 2012-09-27 13:50:05 +10:00
Con Kolivas
f6f43500c0 Detect stratum in common place when adding urls, and use a bool to tell us when it's active. 2012-09-27 09:06:56 +10:00
Con Kolivas
8fd149eec9 Fix warnings. 2012-09-26 16:51:08 +10:00
Con Kolivas
e3f1b02e9a Extract and store various parameters on stratum init confirming successful mining notify. 2012-09-26 16:49:51 +10:00
Con Kolivas
c0de671c4f Use existing socket macros and close the socket on failure in init stratum. 2012-09-26 15:40:26 +10:00
Con Kolivas
a1b17229b8 Initiate stratum and grab first json result. 2012-09-26 15:23:01 +10:00
Con Kolivas
58873c1dfa Get detailed addressinfo from the parsed URL for future raw socket usage when possible. IPV4 only for now. 2012-09-25 20:23:59 +10:00
Con Kolivas
ee3b7865e2 Prepare for getaddrinfo call. 2012-09-25 05:46:07 +10:00
Kano
41dcb10d4c util.c - bug - proxy - no data end condition 2012-09-21 20:55:48 +10:00
Kano
bd3c98aaaf Optional WorkTime details with each Accepted/Rejected work item 2012-09-15 14:04:57 +10:00
Kano
e043f5a5aa bug: remove proxy: from the front of the proxy used 2012-09-12 08:32:00 +10:00
Kano
cef9731fbc CURL support for individual proxy per pool and all proxy types 2012-09-12 07:44:00 +10:00
Kano
d5f485c517 Pools: add RollTime info to API 'stats' and 'Stats' button in miner.php 2012-08-23 19:20:12 +10:00
Con Kolivas
8745ba1e6d Windows' timer resolution is limited to 15ms accuracy. This was breaking dynamic intensity since it tries to measure below this.
Since we are repeatedly sampling similar timeframes, we can average the gpu_us result over 5 different values to get very fine precision.
2012-08-15 09:38:45 +10:00
Luke Dashjr
9c648c1749 Bugfix: Calculate nsec in nmsleep correctly
The old algorithm (msecs * 1000000) - (sec / 1000000000) gets total nsec,
including seconds, since the sec/1e9 should be multiplying. It's also
vulnerable to easy overflows. Using ldiv gets the quotient and remainder
in a single operation (at least on x86) and avoids overflow.
2012-07-11 20:10:52 +00:00
Con Kolivas
bc0b14063f Cope with signals interrupting the nanosleep of nmsleep. 2012-07-08 21:35:19 +10:00
Con Kolivas
3271be145f Provide a ms based sleep function that uses nanosleep to avoid the inaccuracy of usleep on SMP systems. 2012-07-06 15:01:39 +10:00
ckolivas
1a43f79547 Mingw doesn't support asprintf, use sprintf. 2012-07-01 12:02:10 +10:00
ckolivas
1e9421475c Timersub is supported on all build platforms so do away with custom timerval_subtract function. 2012-07-01 10:44:23 +10:00
ckolivas
75ea616422 Minor style police on util.c 2012-07-01 10:35:08 +10:00
ckolivas
8f954d40ec Get rid of unused result warning with asprintf. 2012-07-01 10:17:12 +10:00
Con Kolivas
3267b534a8 Implement rudimentary X-Mining-Hashrate support. 2012-06-28 10:43:52 +10:00
ckolivas
c5a21fabf0 Extend nrolltime to support the expiry= parameter. Do this by turning the rolltime bool into an integer set to the expiry time. If the pool supports rolltime but not expiry= then set the expiry time to the standard scantime. 2012-06-23 23:43:22 +10:00
Con Kolivas
268039cc7e Indentation clean up. 2012-04-28 00:32:47 +10:00
Con Kolivas
eda382990a Create one longpoll thread per pool, using backup pools for those pools that don't have longpoll.
Use the work created from the longpoll return only if we don't have failover-enabled, and only flag the work as a longpoll if it is the current pool.
This will work around the problem of trying to restart the single longpoll thread on pool changes that was leading to race conditions.
It will also have less work restarts from the multiple longpolls received from different pools.
2012-04-27 11:58:47 +10:00
Con Kolivas
9609dbc42d Set lp_path to NULL after free for consistency. 2012-04-20 21:09:37 +10:00
nelisky
17b9baa9da Removing dmalloc import left behind by mistake 2012-04-20 03:36:42 -07:00
nelisky
44bcb69ccd Fixing leak in resp_hdr_cb
Memory is allocated for key and val, and longpoll address, when found, is stored in the header_info and prevented from being freed there. This pointer is stored during pool probing but once that's done it was just being lost.

Not so visible but also leaking was the refuse reason string.
2012-04-19 14:45:40 -07:00
Luke Dashjr
ed8382c88d Make curses TUI support optional at compile-time. 2012-03-12 18:38:45 -04:00
Con Kolivas
d1cddf8bad Update licensing to GPL V3. 2012-02-21 22:23:07 +11:00
Con Kolivas
f4284a21a8 Set the lp_sent variable under lock since there will almost always be a race on setting this variable, potentially leading to multiple LPs being sent
out.
2012-02-21 09:22:04 +11:00
Con Kolivas
fe4b5e1fc6 Set the lp_sent bool earlier to minimise the number of extra longpolls sent out. 2012-02-20 08:26:46 +11:00
Con Kolivas
39906718d2 Keep track of when a longpoll has been sent for a pool and if the current pool is requesting work but has not sent a longpoll request, convert one of
the work items to a longpoll as we may have switched pools but still be using the longpoll from the previous pool.
2012-02-19 22:07:31 +11:00
Con Kolivas
810ad04578 More copyright updates. 2012-02-18 23:16:08 +11:00
Con Kolivas
be9db9ce63 Copyright updates. 2012-02-18 23:00:21 +11:00
Con Kolivas
06721957a0 Freeze the queues on all threads that are sent the pause message to prevent them trying to start up again with saved pings in their queues. 2012-02-18 16:34:06 +11:00
Con Kolivas
3d3a3a2f3a Fix unused warnings on win32. 2012-02-15 21:42:12 +11:00
Luke Dashjr
9631c0b02a Fix initialization warning with jansson 1.3 2012-02-15 21:29:15 +11:00
Con Kolivas
56907db2d6 Fix harmless warnings with -Wsign-compare to allow cgminer to build with -W. 2012-02-12 18:21:30 +11:00
Con Kolivas
111238489f Fix missing field initialisers warnings. 2012-02-12 17:53:50 +11:00
Con Kolivas
07c2ee5317 Put win32 equivalents of nanosleep and sleep into compat.h fixing sleep() for adl.c. 2012-02-12 17:00:44 +11:00
zefir
e0fec35751 modularized logging, support for priority based logging
Functions related to logging are extracted into dedicated source files
for better maintainability.

The existing low-level logging API is extended with a generalized scheme
providing log functions log_{error, warning, notice, info, debug} that
log messages based on a global opt_log_level.

opt_log_level for now is set to LOG_NOTICE and might be modified via
command line options or config files in future releases.
2012-02-11 20:26:25 +01:00
Con Kolivas
405a2120f8 Remove unnecessary check for opt_debug on every invocation of applog at LOG_DEBUG and place the check in applog(). 2012-02-11 20:11:18 +11:00
Con Kolivas
b706da9374 Merge branch 'reject_reason' of https://github.com/luke-jr/cgminer into reject 2012-02-11 14:55:12 +11:00
Con Kolivas
5b4761003c Move from the thread safe localtime_r to regular localtime which is the only one supported on newer pthread libraries on mingw32 to make it compile with
the newer ming. Thread safety is of no importance where localtime is used in this code.
2012-02-09 21:54:23 +11:00
Luke Dashjr
f7a9897e13 Display X-Reject-Reason, when provided 2012-02-06 09:44:42 -05:00
Con Kolivas
de4c6c29d7 Provide support for the submitold extension on a per-pool basis based on the value being detected in a longpoll. 2012-02-06 18:12:22 +11:00
Con Kolivas
e57ac0177f Remove unused get_dondata function. 2012-02-05 22:43:42 +11:00
Con Kolivas
36d2fa485c Silence unused parameter warnings. 2012-02-05 22:39:28 +11:00
ckolivas
13fa5772ad Probe but don't set the timeout to 15 seconds as some networks take a long time to timeout. 2012-02-04 20:04:49 +11:00
ckolivas
1832b20c40 Revert "Some networks can take a long time to resolve so go back to 60 second timeouts instead of 15."
This reverts commit c86a670ce6.

This changed more than just the timeout.
2012-02-04 20:04:07 +11:00
ckolivas
c86a670ce6 Some networks can take a long time to resolve so go back to 60 second timeouts instead of 15. 2012-02-04 13:06:04 +11:00
Con Kolivas
bdec295fee Set the latest network access time on share submission for --net-delay even if we're not delaying that submission for further network access. 2012-01-30 17:58:22 +11:00
Kano
b188157c2f Resume advertising midstate support 2012-01-30 16:43:14 +11:00
Con Kolivas
3de7c7f9c2 Stop advertising midstate support until it's fixed. 2012-01-30 15:51:46 +11:00
Con Kolivas
09184720c2 As share submission is usually staggered, and delays can be costly, submit shares without delay even when --net-delay is enabled. 2012-01-30 15:09:58 +11:00
Con Kolivas
82af288e69 Revert "Fix various harmless warnings."
This reverts commit a4b67f030f.
2012-01-29 22:57:29 +11:00
Con Kolivas
a4b67f030f Fix various harmless warnings. 2012-01-29 21:06:17 +11:00
Luke Dashjr
fe88648e5d Advertise longpoll support in X-Mining-Extensions 2012-01-26 23:32:50 +11:00
Con Kolivas
6442c1aba0 Style police. 2012-01-22 20:36:57 +11:00
Midnight Magic
21633b9bee Bringing back TCP_NODELAY, but also ensuring it doesn't conflict with
--net-delay : Nagle's may infact delay some packets longer than
necessary..
2012-01-22 01:07:53 -08:00
Con Kolivas
e15d57d729 Implement socks4 proxy support. 2012-01-22 09:36:21 +11:00
Con Kolivas
5179d22463 Introduce a --net-delay option which guarantees at least 250ms between any networking requests to not overload slow routers. 2012-01-20 15:36:42 +11:00
Luke Dashjr
ebe21db3dc Advertise that we can make our own midstate, so the pool can skip generating it for us 2012-01-17 22:05:20 -05:00
Con Kolivas
4cf433c917 Remove TCP_NODELAY from curl options as many small packets may be contributing to network overload. 2012-01-17 16:21:08 +11:00
Con Kolivas
638c8c526f Make curl use a fresh connection if the json rpc call fails for any reason in case curl is relying on dead persistent connections. 2012-01-01 14:21:22 +11:00
Con Kolivas
19e373b803 All threads are detached so there is no need to join them and it may dereference causing crash on exit. 2011-12-30 11:31:16 +11:00
Kano
5033dcd355 fix test/set of thr->pth to also work in windows 2011-12-27 18:33:49 +11:00
Con Kolivas
2257b5023a Simplify longpoll changeover to just check which pool it should grab its next longpoll from. This should prevent locking hangs and thread cancellation
crashes.
2011-12-27 11:40:53 +11:00
Con Kolivas
a51514d9d1 White space cleanup. 2011-12-27 10:30:04 +11:00
Con Kolivas
b69aa23470 Use control_lock to protect thr->pth for thread creation/destruction. 2011-12-26 10:50:00 +11:00
Con Kolivas
59293a37d6 Only pthread_join when pthread_cancel does not return an error. 2011-12-26 09:29:16 +11:00
Con Kolivas
13c40f753b Zero all pthread_t identities upon cancelling threads. 2011-12-25 00:06:25 +11:00
Con Kolivas
689f8abbaa Try to use SSL if the server supports it. 2011-10-09 12:33:54 +11:00
Con Kolivas
4128b954a6 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. 2011-09-27 11:02:45 +10:00
Kano
8ecd15a616 Add BLOCK! notification and remove end of line blanks when not needed 2011-09-20 16:19:21 +10:00
Con Kolivas
b8ea0dd194 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. 2011-09-17 13:25:04 +10:00
Con Kolivas
8e2becc12d Change pth from being a pointer as we can dereference if we're unlucky on stopping longpoll. 2011-09-15 11:46:17 +10:00
Con Kolivas
833e020dfd Standardise the way all non-mining threads are destroyed to make sure we can safely cancel them, freeing ram and NULLifying pointers. 2011-09-15 10:34:59 +10:00
Luke Dashjr
1f15d7eafa Advertise rollntime extension support
Thanks to raijin for testing!
2011-09-10 09:24:33 +10:00
Con Kolivas
a0a5858d15 Use the presence of X-Roll-Ntime in the header as a bool for exists unless N is found in the response. 2011-09-06 12:00:40 +10:00
Con Kolivas
5d845f2fb1 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. 2011-09-02 10:13:33 +10:00
Con Kolivas
a593afdbeb Use the curses_lock to protect the curses_active variable and test it under lock. 2011-08-31 13:23:36 +10:00
Con Kolivas
437d6f05cc Disable curl debugging with opt protocol since it spews to stderr. 2011-08-26 13:32:41 +10:00
Con Kolivas
91a2e7012b Actually check the value returned for the x-roll-ntime extension to make sure it isn't saying N. 2011-08-26 12:12:54 +10:00
Con Kolivas
666fcc3f55 Move staged threads to hashes so we can sort them by time. 2011-08-24 12:51:38 +10:00
Con Kolivas
dfec430cb8 Make the tcp setsockopts unique to linux in the hope it allows freebsd et. al to compile. 2011-08-22 08:05:21 +10:00
Con Kolivas
d89a6c57b1 Since we check roll time per work item now, it need only be debug log level. 2011-08-18 21:35:05 +10:00
Con Kolivas
3edc1dfe2a Test at appropriate target difficulty now. 2011-08-17 22:33:46 +10:00
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. 2011-08-17 12:43:39 +10:00
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.
2011-08-16 10:27:19 +10:00
Con Kolivas
657812ada4 Probe for slightly longer for when network conditions are lagging. 2011-08-16 10:15:47 +10:00
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. 2011-08-14 01:54:47 +10:00
Con Kolivas
5f667e7eab Get rid of extra line feeds. 2011-07-30 13:36:08 +10:00
Con Kolivas
53e05c6413 Log to the output file at any time with warnings and errors, instead of just when verbose mode is on. 2011-07-28 19:55:54 +10:00
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. 2011-07-28 10:36:48 +10:00
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. 2011-07-27 16:40:52 +10:00
Con Kolivas
98f609b5be Sanity check to prove locking. 2011-07-27 10:31:44 +10:00
Con Kolivas
a187fe1e7b Try to do every curses manipulation under the curses lock. 2011-07-25 13:00:44 +10:00