正在显示
3 个修改的文件
包含
23 行增加
和
6 行删除
| @@ -1339,11 +1339,6 @@ int SrsConfig::parse_options(int argc, char** argv) | @@ -1339,11 +1339,6 @@ int SrsConfig::parse_options(int argc, char** argv) | ||
| 1339 | } | 1339 | } |
| 1340 | } | 1340 | } |
| 1341 | 1341 | ||
| 1342 | - // cwd | ||
| 1343 | - char cwd[256]; | ||
| 1344 | - getcwd(cwd, sizeof(cwd)); | ||
| 1345 | - _cwd = cwd; | ||
| 1346 | - | ||
| 1347 | // config | 1342 | // config |
| 1348 | show_help = true; | 1343 | show_help = true; |
| 1349 | for (int i = 1; i < argc; i++) { | 1344 | for (int i = 1; i < argc; i++) { |
| @@ -1411,6 +1406,18 @@ int SrsConfig::parse_options(int argc, char** argv) | @@ -1411,6 +1406,18 @@ int SrsConfig::parse_options(int argc, char** argv) | ||
| 1411 | return ret; | 1406 | return ret; |
| 1412 | } | 1407 | } |
| 1413 | 1408 | ||
| 1409 | +int SrsConfig::initialize_cwd() | ||
| 1410 | +{ | ||
| 1411 | + int ret = ERROR_SUCCESS; | ||
| 1412 | + | ||
| 1413 | + // cwd | ||
| 1414 | + char cwd[256]; | ||
| 1415 | + getcwd(cwd, sizeof(cwd)); | ||
| 1416 | + _cwd = cwd; | ||
| 1417 | + | ||
| 1418 | + return ret; | ||
| 1419 | +} | ||
| 1420 | + | ||
| 1414 | string SrsConfig::config() | 1421 | string SrsConfig::config() |
| 1415 | { | 1422 | { |
| 1416 | return config_file; | 1423 | return config_file; |
| @@ -288,6 +288,11 @@ public: | @@ -288,6 +288,11 @@ public: | ||
| 288 | */ | 288 | */ |
| 289 | virtual int parse_options(int argc, char** argv); | 289 | virtual int parse_options(int argc, char** argv); |
| 290 | /** | 290 | /** |
| 291 | + * initialize the cwd for server, | ||
| 292 | + * because we may change the workdir. | ||
| 293 | + */ | ||
| 294 | + virtual int initialize_cwd(); | ||
| 295 | + /** | ||
| 291 | * get the config file path. | 296 | * get the config file path. |
| 292 | */ | 297 | */ |
| 293 | virtual std::string config(); | 298 | virtual std::string config(); |
| @@ -34,6 +34,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -34,6 +34,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 34 | #include <gperftools/profiler.h> | 34 | #include <gperftools/profiler.h> |
| 35 | #endif | 35 | #endif |
| 36 | 36 | ||
| 37 | +using namespace std; | ||
| 38 | + | ||
| 37 | #include <srs_kernel_error.hpp> | 39 | #include <srs_kernel_error.hpp> |
| 38 | #include <srs_app_server.hpp> | 40 | #include <srs_app_server.hpp> |
| 39 | #include <srs_app_config.hpp> | 41 | #include <srs_app_config.hpp> |
| @@ -283,11 +285,14 @@ int main(int argc, char** argv) | @@ -283,11 +285,14 @@ int main(int argc, char** argv) | ||
| 283 | } | 285 | } |
| 284 | 286 | ||
| 285 | // change the work dir and set cwd. | 287 | // change the work dir and set cwd. |
| 286 | - std::string cwd = _srs_config->get_work_dir(); | 288 | + string cwd = _srs_config->get_work_dir(); |
| 287 | if (!cwd.empty() && cwd != "./" && (ret = chdir(cwd.c_str())) != ERROR_SUCCESS) { | 289 | if (!cwd.empty() && cwd != "./" && (ret = chdir(cwd.c_str())) != ERROR_SUCCESS) { |
| 288 | srs_error("change cwd to %s failed. ret=%d", cwd.c_str(), ret); | 290 | srs_error("change cwd to %s failed. ret=%d", cwd.c_str(), ret); |
| 289 | return ret; | 291 | return ret; |
| 290 | } | 292 | } |
| 293 | + if ((ret = _srs_config->initialize_cwd()) != ERROR_SUCCESS) { | ||
| 294 | + return ret; | ||
| 295 | + } | ||
| 291 | 296 | ||
| 292 | // config parsed, initialize log. | 297 | // config parsed, initialize log. |
| 293 | if ((ret = _srs_log->initialize()) != ERROR_SUCCESS) { | 298 | if ((ret = _srs_log->initialize()) != ERROR_SUCCESS) { |
-
请 注册 或 登录 后发表评论