Fixed errors when requesting short URLs, fixed race condition during shutdown of controller.

This commit is contained in:
Thulinma 2015-06-18 16:06:35 +02:00
parent a3354aeee6
commit eaabf9e800
2 changed files with 6 additions and 4 deletions

View file

@ -263,10 +263,6 @@ int main(int argc, char ** argv){
//join all joinable threads
statsThread.join();
monitorThread.join();
//give everything some time to print messages
Util::wait(100);
//close stderr to make the stderr reading thread exit
close(STDERR_FILENO);
//write config
if ( !Controller::WriteFile(Controller::conf.getString("configFile"), Controller::Storage.toString())){
std::cerr << "Error writing config " << Controller::conf.getString("configFile") << std::endl;
@ -281,6 +277,10 @@ int main(int argc, char ** argv){
}
//stop all child processes
Util::Procs::StopAll();
//give everything some time to print messages
Util::wait(100);
//close stderr to make the stderr reading thread exit
close(STDERR_FILENO);
std::cout << "Killed all processes, wrote config to disk. Exiting." << std::endl;
return 0;
}

View file

@ -41,6 +41,7 @@ namespace Mist {
bool isMatch(const std::string & url, const std::string & m, std::string & streamname){
size_t found = m.find('$');
if (found != std::string::npos){
if (url.size() < m.size()){return false;}
if (m.substr(0, found) == url.substr(0, found) && m.substr(found+1) == url.substr(url.size() - (m.size() - found) + 1)){
streamname = url.substr(found, url.size() - m.size() + 1);
return true;
@ -52,6 +53,7 @@ namespace Mist {
bool isPrefix(const std::string & url, const std::string & m, std::string & streamname){
size_t found = m.find('$');
if (found != std::string::npos){
if (url.size() < m.size()){return false;}
size_t found_suf = url.find(m.substr(found+1), found);
if (m.substr(0, found) == url.substr(0, found) && found_suf != std::string::npos){
streamname = url.substr(found, found_suf - found);