+
+static int get_xml_string(
+ xmlTextReaderPtr reader,
+ char *value,
+ int max_len)
+{
+ xmlChar *str;
+ str = get_xml_text(reader);
+ if (str != NULL){
+ strncpy(value,(char *)str,max_len);
+ xmlFree(str);
+ return 0;
+ }
+ else
+ return -1;
+}
+
+
+static int get_xml_time_t(
+ xmlTextReaderPtr reader,
+ time_t *value)
+{
+ xmlChar *text;
+ time_t temp;
+ if ((text = get_xml_text(reader)) != NULL){
+ errno = 0;
+#ifdef TIME_T_IS_32BIT
+ temp = strtol((char *)text,NULL, 0);
+#else
+#ifdef TIME_T_IS_64BIT
+ temp = strtoll((char *)text,NULL, 0);
+#else
+ if (sizeof(time_t) == 4){
+ temp = strtol((char *)text,NULL, 0);
+ } else {
+ temp = strtoll((char *)text,NULL, 0);
+ }
+#endif
+#endif
+ if (errno>0){
+ rrd_set_error("ling %d: get_xml_time_t from '%s' %s",
+ xmlTextReaderGetParserLineNumber(reader),
+ text,rrd_strerror(errno));
+ xmlFree(text);
+ return -1;
+ }
+ xmlFree(text);
+ *value = temp;