etter error handling

This commit is contained in:
antelle 2021-04-14 21:31:29 +02:00
parent 603e698f5a
commit dc5ada1c04
No known key found for this signature in database
GPG Key ID: 63C9777AAB7C563C
1 changed files with 25 additions and 21 deletions

View File

@ -39,27 +39,6 @@ struct State {
State state{};
std::string keeweb_pipe_name() {
std::string pipe_name;
uv_passwd_t user_info;
auto err = uv_os_get_passwd(&user_info);
if (err) {
std::cerr << "Error getting user: " << uv_err_name(err) << std::endl;
} else {
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32)
pipe_name = "\\\\.\\pipe\\keeweb-browser-" + std::string{user_info.username};
#else
pipe_name = std::filesystem::temp_directory_path() /
("keeweb-browser-" + std::to_string(user_info.uid) + ".sock");
#endif
uv_os_free_passwd(&user_info);
}
return pipe_name;
}
void process_keeweb_queue();
void process_stdout_queue();
void close_keeweb_pipe();
@ -214,10 +193,35 @@ void keeweb_pipe_connect_cb(uv_connect_t *req, int status) {
}
}
std::string keeweb_pipe_name() {
std::string pipe_name;
uv_passwd_t user_info;
auto err = uv_os_get_passwd(&user_info);
if (err) {
std::cerr << "Error getting user info: " << uv_err_name(err) << std::endl;
} else {
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32)
pipe_name = "\\\\.\\pipe\\keeweb-browser-" + std::string{user_info.username};
#else
pipe_name = std::filesystem::temp_directory_path() /
("keeweb-browser-" + std::to_string(user_info.uid) + ".sock");
#endif
uv_os_free_passwd(&user_info);
}
return pipe_name;
}
void connect_keeweb_pipe() {
state.keeweb_connect_attempts++;
auto pipe_name = keeweb_pipe_name();
if (pipe_name.empty()) {
quit_on_error();
return;
}
auto keeweb_pipe = new uv_pipe_t{};
uv_pipe_init(uv_default_loop(), keeweb_pipe, false);