projects
/
rrdtool.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* this preserves principle of least surprise when dealing with files that
[rrdtool.git]
/
src
/
rrd_client.c
diff --git
a/src/rrd_client.c
b/src/rrd_client.c
index
76fded0
..
5583bfe
100644
(file)
--- a/
src/rrd_client.c
+++ b/
src/rrd_client.c
@@
-518,6
+518,7
@@
int rrdc_update (const char *filename, int values_num, /* {{{ */
rrdc_response_t *res;
int status;
int i;
rrdc_response_t *res;
int status;
int i;
+ char file_path[PATH_MAX];
memset (buffer, 0, sizeof (buffer));
buffer_ptr = &buffer[0];
memset (buffer, 0, sizeof (buffer));
buffer_ptr = &buffer[0];
@@
-527,6
+528,10
@@
int rrdc_update (const char *filename, int values_num, /* {{{ */
if (status != 0)
return (ENOBUFS);
if (status != 0)
return (ENOBUFS);
+ /* change to absolute path for rrdcached */
+ if (*filename != '/' && realpath(filename, file_path) != NULL)
+ filename = file_path;
+
status = buffer_add_string (filename, &buffer_ptr, &buffer_free);
if (status != 0)
return (ENOBUFS);
status = buffer_add_string (filename, &buffer_ptr, &buffer_free);
if (status != 0)
return (ENOBUFS);
@@
-562,6
+567,7
@@
int rrdc_flush (const char *filename) /* {{{ */
size_t buffer_size;
rrdc_response_t *res;
int status;
size_t buffer_size;
rrdc_response_t *res;
int status;
+ char file_path[PATH_MAX];
if (filename == NULL)
return (-1);
if (filename == NULL)
return (-1);
@@
-574,6
+580,10
@@
int rrdc_flush (const char *filename) /* {{{ */
if (status != 0)
return (ENOBUFS);
if (status != 0)
return (ENOBUFS);
+ /* change to absolute path for rrdcached */
+ if (*filename != '/' && realpath(filename, file_path) != NULL)
+ filename = file_path;
+
status = buffer_add_string (filename, &buffer_ptr, &buffer_free);
if (status != 0)
return (ENOBUFS);
status = buffer_add_string (filename, &buffer_ptr, &buffer_free);
if (status != 0)
return (ENOBUFS);