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 "$refreshmeta $title @@ -308,6 +319,7 @@ td { $miner_font ".getcss('td')."} td.two { $miner_font ".getcss('td.two')."} td.h { $miner_font ".getcss('td.h')."} td.err { $miner_font ".getcss('td.err')."} +td.bad { $bad_font ".getcss('td.bad')."} td.warn { $miner_font ".getcss('td.warn')."} td.sta { $miner_font ".getcss('td.sta')."} td.tot { $miner_font ".getcss('td.tot')."} @@ -339,6 +351,14 @@ echo "\n"; '; } # +function othrow($row) +{ + return "$row"; +} +# function otherrow($row) { - echo "$row"; + echo othrow($row); } # function endrow() @@ -1149,7 +1174,7 @@ function showdatetime() { global $dfmt; - otherrow(''); + echo otherrow(''); } # 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(''); } $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(""); + otherrow(""); return; } $c = count($customsummarypages[$pagename]); if ($c < 2 || $c > 3) { - $rw = "'; otherrow($rw); return; @@ -2625,7 +2648,7 @@ function showcustompage($pagename) if (count($page) <= 1) { - otherrow(""); + otherrow(""); return; } @@ -2639,7 +2662,7 @@ function onlylogin() { global $here; - htmlhead(false, null, null, true); + htmlhead('', false, null, null, true); ?> @@ -2739,6 +2762,7 @@ function checklogin() function display() { global $miner, $port; + global $mcast, $mcastexpect; global $readonly, $notify, $rigs; global $ignorerefresh, $autorefresh; global $allowcustompages, $customsummarypages; @@ -2750,11 +2774,24 @@ function display() if ($pagesonly === 'login') return; + $mcerr = ''; + if ($rigs == null or count($rigs) == 0) { - otherrow(""); + if ($mcast === true) + $action = 'found'; + else + $action = 'defined'; + + minhead(); + otherrow(""); return; } + else + { + if ($mcast === true && count($rigs) < $mcastexpect) + $mcerr = othrow('"); + } 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(''); + { + minhead($mcerr); + otherrow(''); + } return; } @@ -2846,15 +2888,19 @@ function display() $miner = $parts[0]; $port = $parts[1]; + htmlhead($mcerr, true, 0); doOne($rig, $preprocess); } else - otherrow(''); + { + minhead($mcerr); + otherrow(''); + } 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(); #
Date: '.date($dfmt).'Date: '.date($dfmt).'Bad "$rigs" arrayUnknown custom summary page '$pagename'Unknown custom summary page '$pagename'Invalid custom summary page '$pagename' ("; + $rw = "Invalid custom summary page '$pagename' ("; $rw .= count($customsummarypages[$pagename]).')Invalid custom summary page '$pagename' no content Invalid custom summary page '$pagename' no content
 
No rigs definedNo rigs $actionFound '.count($rigs)." rigs but expected at least $mcastexpectInvalid "$rigs" arrayInvalid "$rigs" arrayInvalid "$rigs" arrayInvalid "$rigs" array