diff --git a/common/utils/file_utils.hpp b/common/utils/file_utils.hpp
index b81b84a6..60c9b6d6 100644
--- a/common/utils/file_utils.hpp
+++ b/common/utils/file_utils.hpp
@@ -1,6 +1,6 @@
/***
This file is part of snapcast
- Copyright (C) 2014-2020 Johannes Pohl
+ Copyright (C) 2014-2021 Johannes Pohl
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,15 +16,24 @@
along with this program. If not, see .
***/
-#ifndef FILE_UTILS_H
-#define FILE_UTILS_H
+#ifndef FILE_UTILS_HPP
+#define FILE_UTILS_HPP
+// local headers
#include "string_utils.hpp"
-#include
+
+// 3rd party headers
+
+// standard headers
#ifndef WINDOWS
#include
#include
+#include
+#include
#endif
+
+#include
+#include
#include
#include
@@ -35,26 +44,13 @@ namespace file
{
-static bool exists(const std::string& filename)
-{
- if (filename.empty())
- return false;
-#ifdef WINDOWS
- DWORD dwAttrib = GetFileAttributes(filename.c_str());
- return (dwAttrib != INVALID_FILE_ATTRIBUTES);
-#else
- struct stat buffer;
- return (stat(filename.c_str(), &buffer) == 0);
-#endif
-}
-
#ifndef WINDOWS
static void do_chown(const std::string& file_path, const std::string& user_name, const std::string& group_name)
{
if (user_name.empty() && group_name.empty())
return;
- if (!exists(file_path))
+ if (!std::filesystem::exists(file_path))
return;
uid_t uid = -1;
diff --git a/server/streamreader/airplay_stream.cpp b/server/streamreader/airplay_stream.cpp
index 908b1145..d7537629 100644
--- a/server/streamreader/airplay_stream.cpp
+++ b/server/streamreader/airplay_stream.cpp
@@ -24,9 +24,11 @@
#include "common/aixlog.hpp"
#include "common/snap_exception.hpp"
#include "common/utils.hpp"
-#include "common/utils/file_utils.hpp"
#include "common/utils/string_utils.hpp"
+// standard headers
+#include
+
using namespace std;
namespace streamreader
@@ -220,7 +222,7 @@ void AirplayStream::do_disconnect()
{
ProcessStream::do_disconnect();
// Shairpot-sync created but does not remove the pipe
- if (utils::file::exists(pipePath_) && (remove(pipePath_.c_str()) != 0))
+ if (std::filesystem::exists(pipePath_) && (remove(pipePath_.c_str()) != 0))
LOG(INFO, LOG_TAG) << "Failed to remove metadata pipe \"" << pipePath_ << "\": " << errno << "\n";
}
@@ -281,10 +283,10 @@ void AirplayStream::initExeAndPath(const string& filename)
{
path_ = "";
exe_ = findExe(filename);
- if (!fileExists(exe_) || (exe_ == "/"))
+ if (!std::filesystem::exists(exe_) || (exe_ == "/"))
{
exe_ = findExe("shairport-sync");
- if (!fileExists(exe_))
+ if (!std::filesystem::exists(exe_))
throw SnapException("shairport-sync not found");
}
diff --git a/server/streamreader/librespot_stream.cpp b/server/streamreader/librespot_stream.cpp
index 3061f7d5..73ac1feb 100644
--- a/server/streamreader/librespot_stream.cpp
+++ b/server/streamreader/librespot_stream.cpp
@@ -26,6 +26,7 @@
#include "common/utils/string_utils.hpp"
// standard headers
+#include
#include
@@ -89,10 +90,10 @@ void LibrespotStream::initExeAndPath(const std::string& filename)
{
path_ = "";
exe_ = findExe(filename);
- if (!fileExists(exe_) || (exe_ == "/"))
+ if (!std::filesystem::exists(exe_) || (exe_ == "/"))
{
exe_ = findExe("librespot");
- if (!fileExists(exe_))
+ if (!std::filesystem::exists(exe_))
throw SnapException("librespot not found");
}
diff --git a/server/streamreader/process_stream.cpp b/server/streamreader/process_stream.cpp
index ef2ab464..1e80ae6d 100644
--- a/server/streamreader/process_stream.cpp
+++ b/server/streamreader/process_stream.cpp
@@ -28,6 +28,8 @@
// standard headers
#include
+#include
+#include
using namespace std;
@@ -48,17 +50,10 @@ ProcessStream::ProcessStream(PcmStream::Listener* pcmListener, boost::asio::io_c
}
-bool ProcessStream::fileExists(const std::string& filename) const
-{
- struct stat buffer;
- return (stat(filename.c_str(), &buffer) == 0);
-}
-
-
std::string ProcessStream::findExe(const std::string& filename) const
{
/// check if filename exists
- if (fileExists(filename))
+ if (std::filesystem::exists(filename))
return filename;
std::string exe = filename;
@@ -95,7 +90,7 @@ void ProcessStream::initExeAndPath(const std::string& filename)
exe_ = exe_.substr(exe_.find_last_of('/') + 1);
}
- if (!fileExists(path_ + exe_))
+ if (!std::filesystem::exists(path_ + exe_))
throw SnapException("file not found: \"" + filename + "\"");
}
diff --git a/server/streamreader/process_stream.hpp b/server/streamreader/process_stream.hpp
index b9bdd998..4de6dbdd 100644
--- a/server/streamreader/process_stream.hpp
+++ b/server/streamreader/process_stream.hpp
@@ -68,7 +68,6 @@ protected:
virtual void onStderrMsg(const std::string& line);
virtual void initExeAndPath(const std::string& filename);
- bool fileExists(const std::string& filename) const;
std::string findExe(const std::string& filename) const;
size_t wd_timeout_sec_;