util.c


Log

Author Commit Date CI Message
Con Kolivas e5babfa2 2012-10-15T11:40:32 Watch for buffer overflows on receiving data into the socket buffer.
Con Kolivas 2a9b3e33 2012-10-14T09:54:04 String alignment to 4 byte boundaries and optimisations for bin<->hex conversions.
Con Kolivas fc72ad55 2012-10-12T14:57:42 Off by one error.
Con Kolivas 9ccfcee6 2012-10-12T14:55:52 Prevent overflows of the port char array in extract_sockaddr.
ckolivas 7f522ef8 2012-10-11T14:23:09 Add support for client.get_version for stratum.
Con Kolivas a533f106 2012-10-11T00:08:45 Update reconnect message to show whole address including port.
Con Kolivas 5226a399 2012-10-11T00:06:44 Look for null values and parse correct separate array entries for url and port with client reconnect commands for stratum.
Con Kolivas 7c04a00e 2012-10-10T23:56:24 The command for stratum is client.reconnect, not mining.reconnect.
Con Kolivas 783af876 2012-10-10T23:41:29 Implement rudimentary mining.reconnect support for stratum.
Con Kolivas 974f65c6 2012-10-10T23:22:24 Ignore the value of stratum_active on calling initiate_stratum and assume we're always trying to reinitiate it, and set the active flag to false in that function.
Con Kolivas 07605fad 2012-10-10T23:07:33 stratum auth can be unset if we fail to authorise on subsequent calls to auth_stratum which undoes the requirement of setting it in one place so set it in pool_active.
Con Kolivas ef822a25 2012-10-08T11:08:04 Detect stratum outage based on either select timing out or receiving an empty buffer and properly re-establish connection by disabling the stratum_active flag, coping with empty buffers in parse_stratum.
Con Kolivas 7a01578c 2012-10-06T10:14:30 Only hand off to stratum from getwork if we succeed in initiating the protocol.
Con Kolivas ef63ea31 2012-10-05T12:45:07 Drop stratum connect failed message to verbose level only since it's a regular probing message.
Con Kolivas fa444294 2012-10-05T12:41:59 TCP Keepalive in curl is only in very recent versions and not required with regular messages on stratum anyway.
Con Kolivas a8d69302 2012-10-05T12:37:29 Move stratum sockets to curl infrastructure with locking around send+recv to begin support for proxies and ssl.
Con Kolivas deb0a9b6 2012-10-04T23:18:33 Windows doesn't work with MSG_PEEK on recv so move to a continuously updating buffer for incoming messages.
Con Kolivas 77c5a006 2012-10-04T21:00:32 Alloca is unreliable on windows so use static arrays in util.c stratum code.
Con Kolivas c113534f 2012-10-04T15:35:28 Begin support for mingw stratum build. Conflicts: configure.ac
Con Kolivas 2fae9064 2012-10-03T21:10:30 Don't try to parse unneeded parameters in response to mining.subscribe.
Con Kolivas 9698858a 2012-10-03T18:19:31 Remove the sshare hash entry if we failed to send it.
Con Kolivas 3cb373d6 2012-10-03T12:01:29 Change notify message to info level to avoid spamming repeatedly when a pool is down.
Con Kolivas 1b7aa48c 2012-10-02T11:46:48 Initiate stratum the first time in pool_active only, allowing us to switch to it on getting a failed getwork and detecting the presence of stratum on the url at that time.
Con Kolivas d122a789 2012-10-02T10:19:45 Use 5 second timeout on sock full for now as a temporary workaround.
Con Kolivas d851bf3d 2012-10-02T10:10:52 Revert "Don't wait on select when first detecting stratum, just receive one line." This reverts commit 496af92afd3e2cfe0d507e7199bc35b17ecee766. Not quite right.
Con Kolivas 496af92a 2012-10-02T10:06:37 Don't wait on select when first detecting stratum, just receive one line.
Con Kolivas bbb092e0 2012-10-02T09:08:47 Make the stratum recv buffer larger than the recvsize.
Con Kolivas 2941febd 2012-10-02T00:00:55 Store a sockaddr url of the stripped url used in determining sockaddr to not confuse it with the stratum url and fix build warnings.
Con Kolivas eaf7ed0d 2012-10-01T22:13:20 Detect if a getwork based pool has the X-Stratum header on startup, and if so, switch to the stratum based pool.
Con Kolivas b5617734 2012-09-30T23:10:43 Provide locking around stratum send operations to avoid races.
Con Kolivas 8baac0d6 2012-09-30T23:03:45 Submit shares from stratum through the abstracted submit share function detecting what message they belong to and showing the data from the associated work, and then deleting it from the hash.
Con Kolivas fa4c9bf6 2012-09-30T22:40:41 Use a more robust mechanism to obtain a \n terminated string over a socket.
Con Kolivas 2de95151 2012-09-30T20:24:24 Abstract out share submit as a function to be useable by stratum.
Con Kolivas 739cba28 2012-09-30T19:19:46 Rename parse_stratum to parse_method as it is only for stratum messages that contain methods.
Con Kolivas 9180a557 2012-09-30T19:11:22 Count each stratum notify as a getwork equivalent.
Con Kolivas aa6aa29c 2012-09-29T17:06:48 Check that stratum is already active in initiate_stratum to avoid de-authorising ourselves by subscribing again.
Con Kolivas 7415d7aa 2012-09-29T16:10:13 Begin implementing a hash database of submissions and attempt sending results.
Con Kolivas ac47f7f3 2012-09-29T14:16:16 Store and display stripped url in its own variable.
Con Kolivas 636f4b14 2012-09-29T11:38:52 Generate the work target in gen_stratum_work, setting default diff to 1 in case it is not yet set.
Con Kolivas 1f6fe551 2012-09-29T02:16:22 Generate the coinbase for generation of stratum based work.
Con Kolivas 1f64491f 2012-09-29T01:48:01 The number of transactions is variable so make merkle a variable length dynamically allocated array and track how many there are for stratum.
Con Kolivas 1221a80d 2012-09-29T01:03:23 Rename nonce2 to n2size reflecting that it's a size variable and not the actual nonce.
Con Kolivas 56255a0c 2012-09-28T18:01:33 Create a stratum thread per pool that has stratum that monitors the socket and serves received data.
Con Kolivas 31c3759e 2012-09-28T10:37:42 Check return value of stratum_parse.
Con Kolivas ac9a4378 2012-09-28T10:31:45 Complete authorisation in stratum.
Con Kolivas 33102659 2012-09-28T10:18:58 Implement stratum parsing of notify parameters and storing them in the pool stratum work structure.
Con Kolivas 9d4a44e8 2012-09-28T09:57:42 Create helper functions for duplicating json strings to avoid keeping json references in use.
Con Kolivas b86a8939 2012-09-28T05:30:36 Append \n in the sock_send function instead of adding it when constructing json in stratum.
Con Kolivas d416d223 2012-09-28T05:26:29 Don't keep any json references around with stratum structures.
Con Kolivas 7e2dcc6f 2012-09-28T05:16:52 Create parse_stratum function that hands off stratum parameters to other functions to manage pool stratum work struct variables. Implement mining difficulty setting.
Con Kolivas a6f1a622 2012-09-28T04:35:16 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.
Con Kolivas 07e6bd12 2012-09-27T13:50:05 Provide a helper function for reading a single \n terminated string from a socket.
Con Kolivas f6f43500 2012-09-27T09:06:56 Detect stratum in common place when adding urls, and use a bool to tell us when it's active.
Con Kolivas 8fd149ee 2012-09-26T16:51:08 Fix warnings.
Con Kolivas e3f1b02e 2012-09-26T16:49:51 Extract and store various parameters on stratum init confirming successful mining notify.
Con Kolivas c0de671c 2012-09-26T15:40:26 Use existing socket macros and close the socket on failure in init stratum.
Con Kolivas a1b17229 2012-09-26T15:23:01 Initiate stratum and grab first json result.
Con Kolivas 58873c1d 2012-09-25T20:23:59 Get detailed addressinfo from the parsed URL for future raw socket usage when possible. IPV4 only for now.
Con Kolivas ee3b7865 2012-09-25T05:46:07 Prepare for getaddrinfo call.
Kano 41dcb10d 2012-09-21T20:55:48 util.c - bug - proxy - no data end condition
Kano bd3c98aa 2012-09-15T14:04:57 Optional WorkTime details with each Accepted/Rejected work item
Kano e043f5a5 2012-09-12T08:32:00 bug: remove proxy: from the front of the proxy used
Kano cef9731f 2012-09-12T07:44:00 CURL support for individual proxy per pool and all proxy types
Kano d5f485c5 2012-08-23T19:20:12 Pools: add RollTime info to API 'stats' and 'Stats' button in miner.php
Con Kolivas 8745ba1e 2012-08-15T09:38:45 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.
Luke Dashjr 9c648c17 2012-07-11T20:10:52 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.
Con Kolivas bc0b1406 2012-07-08T21:35:19 Cope with signals interrupting the nanosleep of nmsleep.
Con Kolivas 3271be14 2012-07-06T15:01:39 Provide a ms based sleep function that uses nanosleep to avoid the inaccuracy of usleep on SMP systems.
ckolivas 1a43f795 2012-07-01T12:02:10 Mingw doesn't support asprintf, use sprintf.
ckolivas 1e942147 2012-07-01T10:44:23 Timersub is supported on all build platforms so do away with custom timerval_subtract function.
ckolivas 75ea6164 2012-07-01T10:35:08 Minor style police on util.c
ckolivas 8f954d40 2012-07-01T10:17:12 Get rid of unused result warning with asprintf.
Con Kolivas 3267b534 2012-06-28T10:43:52 Implement rudimentary X-Mining-Hashrate support.
ckolivas c5a21fab 2012-06-23T23:43:22 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.
Con Kolivas 268039cc 2012-04-28T00:32:47 Indentation clean up.
Con Kolivas eda38299 2012-04-27T11:58:47 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.
Con Kolivas 9609dbc4 2012-04-20T21:09:37 Set lp_path to NULL after free for consistency.
nelisky 17b9baa9 2012-04-20T03:36:42 Removing dmalloc import left behind by mistake
nelisky 44bcb69c 2012-04-19T14:45:40 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.
Luke Dashjr ed8382c8 2012-03-12T14:56:05 Make curses TUI support optional at compile-time.
Con Kolivas d1cddf8b 2012-02-21T22:23:07 Update licensing to GPL V3.
Con Kolivas f4284a21 2012-02-21T09:20:31 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.
Con Kolivas fe4b5e1f 2012-02-20T08:24:41 Set the lp_sent bool earlier to minimise the number of extra longpolls sent out.
Con Kolivas 39906718 2012-02-19T22:07:31 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.
Con Kolivas 810ad045 2012-02-18T23:16:08 More copyright updates.
Con Kolivas be9db9ce 2012-02-18T23:00:21 Copyright updates.
Con Kolivas 06721957 2012-02-18T16:34:06 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.
Con Kolivas 3d3a3a2f 2012-02-15T21:42:12 Fix unused warnings on win32.
Luke Dashjr 9631c0b0 2012-02-13T21:46:14 Fix initialization warning with jansson 1.3
Con Kolivas 56907db2 2012-02-12T18:21:30 Fix harmless warnings with -Wsign-compare to allow cgminer to build with -W.
Con Kolivas 11123848 2012-02-12T17:53:50 Fix missing field initialisers warnings.
Con Kolivas 07c2ee53 2012-02-12T17:00:44 Put win32 equivalents of nanosleep and sleep into compat.h fixing sleep() for adl.c.
zefir e0fec357 2012-02-11T19:31:34 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.
Con Kolivas 405a2120 2012-02-11T20:11:18 Remove unnecessary check for opt_debug on every invocation of applog at LOG_DEBUG and place the check in applog().
Con Kolivas b706da93 2012-02-11T14:55:12 Merge branch 'reject_reason' of https://github.com/luke-jr/cgminer into reject
Con Kolivas 5b476100 2012-02-09T21:54:23 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.
Luke Dashjr f7a9897e 2012-01-26T00:07:42 Display X-Reject-Reason, when provided
Con Kolivas de4c6c29 2012-02-06T18:12:22 Provide support for the submitold extension on a per-pool basis based on the value being detected in a longpoll.
Con Kolivas e57ac017 2012-02-05T22:43:42 Remove unused get_dondata function.
Con Kolivas 36d2fa48 2012-02-05T22:39:28 Silence unused parameter warnings.