};
DiscoveryFeed::DiscoveryFeed(const DOMElement* e, const char* appId)
- : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".DiscoveryFeed"), &g_Blocker), m_cacheToClient(false)
+ : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT ".DiscoveryFeed"), &g_Blocker), m_cacheToClient(false)
{
pair<bool,const char*> prop = getString("Location");
if (!prop.first)
prop = getString("dir");
if (prop.first)
m_dir = prop.second;
- XMLToolingConfig::getConfig().getPathResolver()->resolve(m_dir, PathResolver::XMLTOOLING_RUN_FILE);
+ XMLToolingConfig::getConfig().getPathResolver()->resolve(m_dir, PathResolver::XMLTOOLING_CACHE_FILE);
m_log.info("feed files will be cached in %s", m_dir.c_str());
#ifndef SHIBSP_LITE
m_feedLock.reset(Mutex::create());
// Anything left will be orphaned, but that shouldn't happen too often.
time_t now = time(nullptr);
while (!m_feedQueue.empty() && now - m_feedQueue.front().second > 120) {
- string fname = m_dir + '/' + m_feedQueue.front().first;
+ string fname = m_dir + '/' + m_feedQueue.front().first + ".json";
remove(fname.c_str());
m_feedQueue.pop();
}
string etag = '"' + s + '"';
request.setResponseHeader("ETag", etag.c_str());
}
- request.setContentType("application/json");
+ request.setContentType("application/json; charset=UTF-8");
return make_pair(true, request.sendResponse(buf));
}
}
}
if (out["feed"].string()) {
istringstream buf(out["feed"].string());
- request.setContentType("application/json");
+ request.setContentType("application/json; charset=UTF-8");
return make_pair(true, request.sendResponse(buf));
}
throw ConfigurationException("Discovery feed was empty.");
string etag = '"' + s + '"';
request.setResponseHeader("ETag", etag.c_str());
}
- request.setContentType("application/json");
+ request.setContentType("application/json; charset=UTF-8");
return make_pair(true, request.sendResponse(feed));
}
catch (std::exception& ex) {
// Clean up any old files.
while (m_feedQueue.size() > 1 && (now - m_feedQueue.front().second > 120)) {
- string fname = m_dir + '/' + m_feedQueue.front().first;
+ string fname = m_dir + '/' + m_feedQueue.front().first + ".json";
remove(fname.c_str());
m_feedQueue.pop();
}