mirror of https://github.com/keeweb/keeweb.git
etter error handling
This commit is contained in:
parent
603e698f5a
commit
dc5ada1c04
|
@ -39,27 +39,6 @@ struct State {
|
||||||
|
|
||||||
State 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_keeweb_queue();
|
||||||
void process_stdout_queue();
|
void process_stdout_queue();
|
||||||
void close_keeweb_pipe();
|
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() {
|
void connect_keeweb_pipe() {
|
||||||
state.keeweb_connect_attempts++;
|
state.keeweb_connect_attempts++;
|
||||||
|
|
||||||
auto pipe_name = keeweb_pipe_name();
|
auto pipe_name = keeweb_pipe_name();
|
||||||
|
if (pipe_name.empty()) {
|
||||||
|
quit_on_error();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
auto keeweb_pipe = new uv_pipe_t{};
|
auto keeweb_pipe = new uv_pipe_t{};
|
||||||
uv_pipe_init(uv_default_loop(), keeweb_pipe, false);
|
uv_pipe_init(uv_default_loop(), keeweb_pipe, false);
|
||||||
|
|
Loading…
Reference in New Issue