function weathermap_memory_check($note = "MEM") { if (function_exists("memory_get_usage")) { $mem_used = nice_bandwidth(memory_get_usage()); $mem_allowed = ini_get("memory_limit"); debug("{$note}: memory_get_usage() says " . $mem_used . "Bytes used. Limit is " . $mem_allowed . "\n"); } }
function WriteConfig($filename) { global $WEATHERMAP_VERSION; $fd=fopen($filename, "w"); $output=""; if ($fd) { $output.="# Automatically generated by php-weathermap v$WEATHERMAP_VERSION\n\n"; if (count($this->fonts) > 0) { foreach ($this->fonts as $fontnumber => $font) { if ($font->type == 'truetype') $output.=sprintf("FONTDEFINE %d %s %d\n", $fontnumber, $font->file, $font->size); if ($font->type == 'gd') $output.=sprintf("FONTDEFINE %d %s\n", $fontnumber, $font->file); } $output.="\n"; } $basic_params = array( array('background','BACKGROUND',CONFIG_TYPE_LITERAL), array('width','WIDTH',CONFIG_TYPE_LITERAL), array('height','HEIGHT',CONFIG_TYPE_LITERAL), array('htmlstyle','HTMLSTYLE',CONFIG_TYPE_LITERAL), array('kilo','KILO',CONFIG_TYPE_LITERAL), array('keyfont','KEYFONT',CONFIG_TYPE_LITERAL), array('timefont','TIMEFONT',CONFIG_TYPE_LITERAL), array('titlefont','TITLEFONT',CONFIG_TYPE_LITERAL), array('title','TITLE',CONFIG_TYPE_LITERAL), array('htmloutputfile','HTMLOUTPUTFILE',CONFIG_TYPE_LITERAL), array('htmlstylesheet','HTMLSTYLESHEET',CONFIG_TYPE_LITERAL), array('imageuri','IMAGEURI',CONFIG_TYPE_LITERAL), array('imageoutputfile','IMAGEOUTPUTFILE',CONFIG_TYPE_LITERAL) ); foreach ($basic_params as $param) { $field = $param[0]; $keyword = $param[1]; if ($this->$field != $this->inherit_fieldlist[$field]) { if($param[2] == CONFIG_TYPE_COLOR) $output.="$keyword " . render_colour($this->$field) . "\n"; if($param[2] == CONFIG_TYPE_LITERAL) $output.="$keyword " . $this->$field . "\n"; } } if (($this->timex != $this->inherit_fieldlist['timex']) || ($this->timey != $this->inherit_fieldlist['timey']) || ($this->stamptext != $this->inherit_fieldlist['stamptext'])) $output.="TIMEPOS " . $this->timex . " " . $this->timey . " " . $this->stamptext . "\n"; if (($this->mintimex != $this->inherit_fieldlist['mintimex']) || ($this->mintimey != $this->inherit_fieldlist['mintimey']) || ($this->minstamptext != $this->inherit_fieldlist['minstamptext'])) $output.="MINTIMEPOS " . $this->mintimex . " " . $this->mintimey . " " . $this->minstamptext . "\n"; if (($this->maxtimex != $this->inherit_fieldlist['maxtimex']) || ($this->maxtimey != $this->inherit_fieldlist['maxtimey']) || ($this->maxstamptext != $this->inherit_fieldlist['maxstamptext'])) $output.="MAXTIMEPOS " . $this->maxtimex . " " . $this->maxtimey . " " . $this->maxstamptext . "\n"; if (($this->titlex != $this->inherit_fieldlist['titlex']) || ($this->titley != $this->inherit_fieldlist['titley'])) $output.="TITLEPOS " . $this->titlex . " " . $this->titley . "\n"; $output.="\n"; foreach ($this->colours as $scalename=>$colours) { // not all keys will have keypos but if they do, then all three vars should be defined if ( (isset($this->keyx[$scalename])) && (isset($this->keyy[$scalename])) && (isset($this->keytext[$scalename])) && (($this->keytext[$scalename] != $this->inherit_fieldlist['keytext']) || ($this->keyx[$scalename] != $this->inherit_fieldlist['keyx']) || ($this->keyy[$scalename] != $this->inherit_fieldlist['keyy']))) { // sometimes a scale exists but without defaults. A proper scale object would sort this out... if($this->keyx[$scalename] == '') { $this->keyx[$scalename] = -1; } if($this->keyy[$scalename] == '') { $this->keyy[$scalename] = -1; } $output.="KEYPOS " . $scalename." ". $this->keyx[$scalename] . " " . $this->keyy[$scalename] . " " . $this->keytext[$scalename] . "\n"; } if ( (isset($this->keystyle[$scalename])) && ($this->keystyle[$scalename] != $this->inherit_fieldlist['keystyle']['DEFAULT']) ) { $extra=''; if ( (isset($this->keysize[$scalename])) && ($this->keysize[$scalename] != $this->inherit_fieldlist['keysize']['DEFAULT']) ) { $extra = " ".$this->keysize[$scalename]; } $output.="KEYSTYLE " . $scalename." ". $this->keystyle[$scalename] . $extra . "\n"; } $locale = localeconv(); $decimal_point = $locale['decimal_point']; foreach ($colours as $k => $colour) { if (!isset($colour['special']) || ! $colour['special'] ) { $top = rtrim(rtrim(sprintf("%f",$colour['top']),"0"),$decimal_point); $bottom= rtrim(rtrim(sprintf("%f",$colour['bottom']),"0"),$decimal_point); if ($bottom > 1000) { $bottom = nice_bandwidth($colour['bottom'], $this->kilo); } if ($top > 1000) { $top = nice_bandwidth($colour['top'], $this->kilo); } $tag = (isset($colour['tag'])? $colour['tag']:''); if( ($colour['red1'] == -1) && ($colour['green1'] == -1) && ($colour['blue1'] == -1)) { $output.=sprintf("SCALE %s %-4s %-4s none %s\n", $scalename, $bottom, $top, $tag); } elseif (!isset($colour['red2'])) { $output.=sprintf("SCALE %s %-4s %-4s %3d %3d %3d %s\n", $scalename, $bottom, $top, $colour['red1'], $colour['green1'], $colour['blue1'],$tag); } else { $output.=sprintf("SCALE %s %-4s %-4s %3d %3d %3d %3d %3d %3d %s\n", $scalename, $bottom, $top, $colour['red1'], $colour['green1'], $colour['blue1'], $colour['red2'], $colour['green2'], $colour['blue2'], $tag); } } else { $output.=sprintf("%sCOLOR %d %d %d\n", $k, $colour['red1'], $colour['green1'], $colour['blue1']); } } $output .= "\n"; } foreach ($this->hints as $hintname=>$hint) { $output .= "SET $hintname $hint\n"; } // this doesn't really work right, but let's try anyway if($this->has_includes) { $output .= "\n# Included files\n"; foreach ($this->included_files as $ifile) { $output .= "INCLUDE $ifile\n"; } } $output.="\n# End of global section\n\n"; fwrite($fd, $output); ## fwrite($fd,$this->nodes['DEFAULT']->WriteConfig()); ## fwrite($fd,$this->links['DEFAULT']->WriteConfig()); # fwrite($fd, "\n\n# Node definitions:\n"); foreach (array("template","normal") as $which) { if($which == "template") fwrite($fd,"\n# TEMPLATE-only NODEs:\n"); if($which == "normal") fwrite($fd,"\n# regular NODEs:\n"); foreach ($this->nodes as $node) { if(!preg_match("/^::\s/",$node->name)) { if($node->defined_in == $this->configfile) { if($which=="template" && $node->x === NULL) { wm_debug("TEMPLATE\n"); fwrite($fd,$node->WriteConfig()); } if($which=="normal" && $node->x !== NULL) { fwrite($fd,$node->WriteConfig()); } } } } if($which == "template") fwrite($fd,"\n# TEMPLATE-only LINKs:\n"); if($which == "normal") fwrite($fd,"\n# regular LINKs:\n"); foreach ($this->links as $link) { if(!preg_match("/^::\s/",$link->name)) { if($link->defined_in == $this->configfile) { if($which=="template" && $link->a === NULL) fwrite($fd,$link->WriteConfig()); if($which=="normal" && $link->a !== NULL) fwrite($fd,$link->WriteConfig()); } } } } fwrite($fd, "\n\n# That's All Folks!\n"); fclose($fd); } else { wm_warn ("Couldn't open config file $filename for writing"); return (FALSE); } return (TRUE); }
$map->links[$name]->overliburl[IN][] = $overlib; $map->links[$name]->overliburl[OUT][] = $overlib; $map->links[$name]->infourl[IN] = $infourl; $map->links[$name]->infourl[OUT] = $infourl; } else { print " Couldn't find a graph that uses this rrd??\n"; } } else { print " Failed to find RRD file for {$tgt_host}/{$interface}\n"; } } print " SPEED {$total_speed}\n"; $map->links[$name]->max_bandwidth_in = $total_speed; $map->links[$name]->max_bandwidth_out = $total_speed; $map->links[$name]->max_bandwidth_in_cfg = nice_bandwidth($total_speed); $map->links[$name]->max_bandwidth_out_cfg = nice_bandwidth($total_speed); if ($map_widths) { foreach ($width_map as $map_speed => $map_width) { if ($total_speed <= $map_speed) { $map->links[$name]->width = $width_map[$map_speed]; print " WIDTH " . $width_map[$map_speed] . "\n"; continue 2; } } } } } else { print "Skipping link with targets\n"; } } }