diff --git a/API-README b/API-README index ef61c81f..2d7110c4 100644 --- a/API-README +++ b/API-README @@ -952,7 +952,9 @@ or in your cgminer.conf And in miner.php set $mcast = true; This will ignore the value of $rigs and overwrite it with the list of zero or -more rigs found on the network in the timout specified +more rigs found on the network in the timeout specified +A rig will not reply if the API settings would mean it would also ignore an +API request from the web server running miner.php --------- @@ -1196,6 +1198,14 @@ Set $mcast to true to look for your rigs and ignore $rigs --------- +Default: + $mcastexpect = 0; + +The minimum number of rigs expected to be found when $mcast is true +If fewer are found, an error will be included at the top of the page + +--------- + Default: $mcastaddr = '224.0.0.75'; diff --git a/miner.php b/miner.php index 137db7ee..5c6198c1 100644 --- a/miner.php +++ b/miner.php @@ -2,7 +2,7 @@ session_start(); # global $title, $miner, $port, $readonly, $notify, $rigs; -global $mcast, $mcastaddr, $mcastport, $mcastcode; +global $mcast, $mcastexpect, $mcastaddr, $mcastport, $mcastcode; global $mcastlistport, $mcasttimeout; global $rigipsecurity, $rigtotals, $forcerigtotals; global $socksndtimeoutsec, $sockrcvtimeoutsec; @@ -10,6 +10,7 @@ global $checklastshare, $poolinputs, $hidefields; global $ignorerefresh, $changerefresh, $autorefresh; global $allowcustompages, $customsummarypages; global $miner_font_family, $miner_font_size; +global $bad_font_family, $bad_font_size; global $colouroverride, $placebuttons, $userlist; # # See API-README for more details of these variables and how @@ -48,6 +49,9 @@ $rigs = array('127.0.0.1:4028'); # Set $mcast to true to look for your rigs and ignore $rigs $mcast = false; # +# Set $mcastexpect to at least how many rigs you expect it to find +$mcastexpect = 0; +# # API Multicast address all cgminers are listening on $mcastaddr = '224.0.0.75'; # @@ -176,9 +180,12 @@ $warnfont = ''; $warnoff = ''; $dfmt = 'H:i:s j-M-Y \U\T\CP'; # -$miner_font_family = 'verdana,arial,sans'; +$miner_font_family = 'Verdana, Arial, sans-serif, sans'; $miner_font_size = '13pt'; # +$bad_font_family = '"Times New Roman", Times, serif'; +$bad_font_size = '18pt'; +# # Edit this or redefine it in myminer.php to change the colour scheme # See $colourtable below for the list of names $colouroverride = array(); @@ -198,7 +205,7 @@ if (file_exists('myminer.php')) # This is the system default that must always contain all necessary # colours so it must be a constant # You can override these values with $colouroverride -# The only one missing is in $warnfont +# The only one missing is $warnfont # - which you can override directly anyway global $colourtable; $colourtable = array( @@ -210,6 +217,8 @@ $colourtable = array( 'td.h background' => '#c4ffff', 'td.err color' => 'black', 'td.err background' => '#ff3050', + 'td.bad color' => 'black', + 'td.bad background' => '#ff3050', 'td.warn color' => 'black', 'td.warn background' => '#ffb050', 'td.sta color' => 'green', @@ -269,9 +278,10 @@ function getdom($domname) return getcss($domname, true); } # -function htmlhead($checkapi, $rig, $pg = null, $noscript = false) +function htmlhead($mcerr, $checkapi, $rig, $pg = null, $noscript = false) { global $title, $miner_font_family, $miner_font_size; + global $bad_font_family, $bad_font_size; global $error, $readonly, $poolinputs, $here; global $ignorerefresh, $autorefresh; @@ -300,6 +310,7 @@ function htmlhead($checkapi, $rig, $pg = null, $noscript = false) $readonly = true; } $miner_font = "font-family:$miner_font_family; font-size:$miner_font_size;"; + $bad_font = "font-family:$bad_font_family; font-size:$bad_font_size;"; echo "
$refreshmetaDate: '.date($dfmt).' | '); + echo otherrow('Date: '.date($dfmt).' | '); } # global $singlerigsum; @@ -1810,8 +1835,6 @@ function doOne($rig, $preprocess) global $haderror, $readonly, $notify, $rigs; global $placebuttons; - htmlhead(true, $rig); - if ($placebuttons == 'top' || $placebuttons == 'both') pagebuttons($rig, null); @@ -2451,6 +2474,8 @@ function processcustompage($pagename, $sections, $sum, $ext, $namemap) $results[$cmd][$num] = $process; } } + else + otherrow('Bad "$rigs" array | '); } $shownsomething = false; @@ -2566,21 +2591,19 @@ function showcustompage($pagename) global $customsummarypages; global $placebuttons; - htmlhead(false, null, $pagename); - if ($placebuttons == 'top' || $placebuttons == 'both') pagebuttons(null, $pagename); if (!isset($customsummarypages[$pagename])) { - otherrow("Unknown custom summary page '$pagename' | "); + otherrow("Unknown custom summary page '$pagename' | "); return; } $c = count($customsummarypages[$pagename]); if ($c < 2 || $c > 3) { - $rw = "Invalid custom summary page '$pagename' ("; + $rw = " | Invalid custom summary page '$pagename' ("; $rw .= count($customsummarypages[$pagename]).') | '; otherrow($rw); return; @@ -2625,7 +2648,7 @@ function showcustompage($pagename) if (count($page) <= 1) { - otherrow("Invalid custom summary page '$pagename' no content | "); + otherrow("Invalid custom summary page '$pagename' no content | "); return; } @@ -2639,7 +2662,7 @@ function onlylogin() { global $here; - htmlhead(false, null, null, true); + htmlhead('', false, null, null, true); ?>
No rigs defined | "); + if ($mcast === true) + $action = 'found'; + else + $action = 'defined'; + + minhead(); + otherrow("No rigs $action | "); return; } + else + { + if ($mcast === true && count($rigs) < $mcastexpect) + $mcerr = othrow('Found '.count($rigs)." rigs but expected at least $mcastexpect | "); + } if ($ignorerefresh == false) { @@ -2811,7 +2848,8 @@ function display() if ($pg !== null && $pg !== '') { - showcustompage($pg); + htmlhead($mcerr, false, null, $pg); + showcustompage($pg, $mcerr); return; } } @@ -2830,10 +2868,14 @@ function display() $miner = $parts[0]; $port = $parts[1]; + htmlhead($mcerr, true, 0); doOne(0, $preprocess); } else - otherrow('Invalid "$rigs" array | '); + { + minhead($mcerr); + otherrow('Invalid "$rigs" array | '); + } return; } @@ -2846,15 +2888,19 @@ function display() $miner = $parts[0]; $port = $parts[1]; + htmlhead($mcerr, true, 0); doOne($rig, $preprocess); } else - otherrow('Invalid "$rigs" array | '); + { + minhead($mcerr); + otherrow('Invalid "$rigs" array | '); + } return; } - htmlhead(false, null); + htmlhead($mcerr, false, null); if ($placebuttons == 'top' || $placebuttons == 'both') pagebuttons(null, null); @@ -2880,7 +2926,7 @@ function display() pagebuttons(null, null); } # -if (isset($mcast) && $mcast === true) +if ($mcast === true) getrigs(); display(); #