1 --- lighttpd-1.4.20/src/mod_rrdtool.c~ 2008-07-30 22:38:32.000000000 +0300
2 +++ lighttpd-1.4.20/src/mod_rrdtool.c 2008-10-07 13:27:54.472090759 +0300
4 "not a regular file:", s->path_rrd);
9 - /* create a new one */
12 - buffer_copy_string_len(p->cmd, CONST_STR_LEN("create "));
13 - buffer_append_string_buffer(p->cmd, s->path_rrd);
14 - buffer_append_string_len(p->cmd, CONST_STR_LEN(
16 - "DS:InOctets:ABSOLUTE:600:U:U "
17 - "DS:OutOctets:ABSOLUTE:600:U:U "
18 - "DS:Requests:ABSOLUTE:600:U:U "
19 - "RRA:AVERAGE:0.5:1:600 "
20 - "RRA:AVERAGE:0.5:6:700 "
21 - "RRA:AVERAGE:0.5:24:775 "
22 - "RRA:AVERAGE:0.5:288:797 "
23 - "RRA:MAX:0.5:1:600 "
24 - "RRA:MAX:0.5:6:700 "
25 - "RRA:MAX:0.5:24:775 "
26 - "RRA:MAX:0.5:288:797 "
27 - "RRA:MIN:0.5:1:600 "
28 - "RRA:MIN:0.5:6:700 "
29 - "RRA:MIN:0.5:24:775 "
30 - "RRA:MIN:0.5:288:797\n"));
31 + /* still create DB if it's empty file */
32 + if (st.st_size > 0) {
33 + return HANDLER_GO_ON;
36 - if (-1 == (r = write(p->write_fd, p->cmd->ptr, p->cmd->used - 1))) {
37 - log_error_write(srv, __FILE__, __LINE__, "ss",
38 - "rrdtool-write: failed", strerror(errno));
40 + /* create a new one */
41 + buffer_copy_string_len(p->cmd, CONST_STR_LEN("create "));
42 + buffer_append_string_buffer(p->cmd, s->path_rrd);
43 + buffer_append_string_len(p->cmd, CONST_STR_LEN(
45 + "DS:InOctets:ABSOLUTE:600:U:U "
46 + "DS:OutOctets:ABSOLUTE:600:U:U "
47 + "DS:Requests:ABSOLUTE:600:U:U "
48 + "RRA:AVERAGE:0.5:1:600 "
49 + "RRA:AVERAGE:0.5:6:700 "
50 + "RRA:AVERAGE:0.5:24:775 "
51 + "RRA:AVERAGE:0.5:288:797 "
52 + "RRA:MAX:0.5:1:600 "
53 + "RRA:MAX:0.5:6:700 "
54 + "RRA:MAX:0.5:24:775 "
55 + "RRA:MAX:0.5:288:797 "
56 + "RRA:MIN:0.5:1:600 "
57 + "RRA:MIN:0.5:6:700 "
58 + "RRA:MIN:0.5:24:775 "
59 + "RRA:MIN:0.5:288:797\n"));
61 + if (-1 == (r = write(p->write_fd, p->cmd->ptr, p->cmd->used - 1))) {
62 + log_error_write(srv, __FILE__, __LINE__, "ss",
63 + "rrdtool-write: failed", strerror(errno));
65 - return HANDLER_ERROR;
67 + return HANDLER_ERROR;
70 - buffer_prepare_copy(p->resp, 4096);
71 - if (-1 == (r = read(p->read_fd, p->resp->ptr, p->resp->size))) {
72 - log_error_write(srv, __FILE__, __LINE__, "ss",
73 - "rrdtool-read: failed", strerror(errno));
74 + buffer_prepare_copy(p->resp, 4096);
75 + if (-1 == (r = read(p->read_fd, p->resp->ptr, p->resp->size))) {
76 + log_error_write(srv, __FILE__, __LINE__, "ss",
77 + "rrdtool-read: failed", strerror(errno));
79 - return HANDLER_ERROR;
81 + return HANDLER_ERROR;
87 - if (p->resp->ptr[0] != 'O' ||
88 - p->resp->ptr[1] != 'K') {
89 - log_error_write(srv, __FILE__, __LINE__, "sbb",
90 - "rrdtool-response:", p->cmd, p->resp);
91 + if (p->resp->ptr[0] != 'O' ||
92 + p->resp->ptr[1] != 'K') {
93 + log_error_write(srv, __FILE__, __LINE__, "sbb",
94 + "rrdtool-response:", p->cmd, p->resp);
96 - return HANDLER_ERROR;
98 + return HANDLER_ERROR;
101 return HANDLER_GO_ON;