if (im == NULL)
return 0;
- if (im->use_rrdcached)
- {
- rrdc_disconnect ();
- im->use_rrdcached = 0;
- }
+ if (im->daemon_addr != NULL)
+ free(im->daemon_addr);
for (i = 0; i < (unsigned) im->gdes_c; i++) {
if (im->gdes[i].data_first) {
* - a connection to the daemon has been established
* - this is the first occurrence of that RRD file
*/
- if (im->use_rrdcached)
+ if (rrdc_is_connected(im->daemon_addr))
{
int status;
return (-1);
}
}
- } /* if (im->use_rrdcached) */
+ } /* if (rrdc_is_connected()) */
if ((rrd_fetch_fn(im->gdes[i].rrd,
im->gdes[i].cf,
return -1;
}
-/* find the largest common denominator for all the numbers
+/* find the greatest common divisor for all the numbers
in the 0 terminated num array */
long lcd(
long *num)
#endif
#endif
im->base = 1000;
+ im->daemon_addr = NULL;
im->draw_x_grid = 1;
im->draw_y_grid = 1;
im->extra_flags = 0;
im->grinfo_current = (rrd_info_t *) NULL;
im->imgformat = IF_PNG;
im->imginfo = NULL;
- im->use_rrdcached = 0;
im->lazy = 0;
im->logarithmic = 0;
im->maxval = DNAN;
break;
case 'd':
{
- int status;
- if (im->use_rrdcached)
+ if (im->daemon_addr != NULL)
{
rrd_set_error ("You cannot specify --daemon "
"more than once.");
return;
}
- status = rrdc_connect (optarg);
- if (status != 0)
+
+ im->daemon_addr = strdup(optarg);
+ if (im->daemon_addr == NULL)
{
- rrd_set_error ("rrdc_connect(%s) failed with status %i.",
- optarg, status);
- return;
+ rrd_set_error("strdup failed");
+ return;
}
- im->use_rrdcached = 1;
+
break;
}
case '?':
}
} /* while (1) */
- if (im->use_rrdcached == 0)
- {
- char *temp;
-
- temp = getenv (ENV_RRDCACHED_ADDRESS);
- if (temp != NULL)
- {
- int status;
-
- status = rrdc_connect (temp);
- if (status != 0)
- {
- rrd_set_error ("rrdc_connect(%s) failed with status %i.",
- temp, status);
- return;
- }
- im->use_rrdcached = 1;
- }
+ { /* try to connect to rrdcached */
+ int status = rrdc_connect(im->daemon_addr);
+ if (status != 0) return;
}
pango_cairo_context_set_font_options(pango_layout_get_context(im->layout), im->font_options);
graph_desc_t *src, *dst;
rrd_value_t *data;
long step, steps;
- unsigned long end;
dst = &im->gdes[gdi];
src = &im->gdes[dst->vidx];
data = src->data + src->ds;
- end =
- src->end_orig % (long) src->step ==
- 0 ? src->end_orig : (src->end_orig + (long) src->step -
- src->end_orig % (long) src->step);
- steps = (end - src->start) / src->step;
+ steps = (src->end - src->start) / src->step;
#if 0
printf
("DEBUG: start == %lu, end == %lu, %lu steps\n",
- src->start, src->end_orig, steps);
+ src->start, src->end, steps);
#endif
switch (dst->vf.op) {
case VDEF_PERCENT:{