addr.sun_family = AF_UNIX;
::memcpy(addr.sun_path, name.c_str(), name_len + 1);
- // remove path
- ::unlink(addr.sun_path);
-
if (-1 == ::bind(fd, (struct sockaddr *)&addr, sizeof(addr))) {
::close(fd);
throw std::runtime_error("Cannot bind socket, errno=" + std::to_string(errno));
int Server::init(const std::string &name, int backlog, bool is_systemd)
{
- if (is_systemd)
+ if (is_systemd) {
fd_ = create_unix_socket_sd(name, backlog);
- else
+ } else {
+ // remove path
+ ::unlink(name.c_str());
fd_ = create_unix_socket(name, backlog);
-
- name_ = name;
+ name_ = name;
+ }
return 0;
}