ReloadableXMLFile::ReloadableXMLFile(const DOMElement* e, Category& log, bool startReloadThread)
: m_root(e), m_local(true), m_validate(false), m_filestamp(0), m_reloadInterval(0),
- m_lock(nullptr), m_loaded(false), m_log(log),
+ m_lock(nullptr), m_log(log), m_loaded(false),
#ifndef XMLTOOLING_LITE
m_credResolver(nullptr), m_trust(nullptr),
#endif
XMLToolingConfig::getConfig().getPathResolver()->resolve(m_backing, PathResolver::XMLTOOLING_RUN_FILE);
log.debug("backup remote resource to (%s)", m_backing.c_str());
try {
- ifstream backer(m_backing + ".tag");
+ string tagname = m_backing + ".tag";
+ ifstream backer(tagname.c_str());
if (backer) {
char cachebuf[256];
if (backer.getline(cachebuf, 255)) {
// Update the timestamp regardless.
m_filestamp = stat_buf.st_mtime;
- m_log.info("change detected, signaling reload thread...");
- m_reload_wait->signal();
+ if (m_reload_wait) {
+ m_log.info("change detected, signaling reload thread...");
+ m_reload_wait->signal();
+ }
+ else {
+ m_log.warn("change detected, but reload thread not started");
+ }
}
return this;
else {
// Data comes from a file we have to parse.
if (backup)
- m_log.warn("using local backup of remote resource");
+ m_log.info("using local backup of remote resource");
else
m_log.debug("loading configuration from external resource...");
m_log.debug("backing up remote resource to (%s)", m_backing.c_str());
try {
Locker locker(getBackupLock());
- ofstream backer(m_backing);
+ ofstream backer(m_backing.c_str());
backer << *(ret.second->getOwnerDocument());
preserveCacheTag();
}
{
if (!m_cacheTag.empty() && !m_backing.empty()) {
try {
- ofstream backer(m_backing + ".tag");
+ string tagname = m_backing + ".tag";
+ ofstream backer(tagname.c_str());
backer << m_cacheTag;
}
catch (exception&) {
if (tlist->item(i)->getTransformType()==TRANSFORM_ENVELOPED_SIGNATURE)
valid=true;
else if (tlist->item(i)->getTransformType()!=TRANSFORM_EXC_C14N &&
- tlist->item(i)->getTransformType()!=TRANSFORM_C14N &&
- tlist->item(i)->getTransformType()!=TRANSFORM_C14N11) {
+ tlist->item(i)->getTransformType()!=TRANSFORM_C14N
+#ifdef XMLTOOLING_XMLSEC_C14N11
+ && tlist->item(i)->getTransformType()!=TRANSFORM_C14N11
+#endif
+ ) {
valid=false;
break;
}