diff --git a/elements/userlevel/chattersocket.cc b/elements/userlevel/chattersocket.cc index 15dc170521..0b52bb7f4b 100644 --- a/elements/userlevel/chattersocket.cc +++ b/elements/userlevel/chattersocket.cc @@ -217,6 +217,7 @@ ChatterSocket::initialize_socket(ErrorHandler *errh) struct sockaddr_un sa; sa.sun_family = AF_UNIX; memcpy(sa.sun_path, _unix_pathname.c_str(), _unix_pathname.length() + 1); + unlink(_unix_pathname.c_str()); if (bind(_socket_fd, (struct sockaddr *)&sa, sizeof(sa)) < 0) return initialize_socket_error(errh, "bind"); } diff --git a/elements/userlevel/controlsocket.cc b/elements/userlevel/controlsocket.cc index 6d3190162c..ecadabf21f 100644 --- a/elements/userlevel/controlsocket.cc +++ b/elements/userlevel/controlsocket.cc @@ -215,6 +215,7 @@ ControlSocket::initialize_socket(ErrorHandler *errh) struct sockaddr_un sa; sa.sun_family = AF_UNIX; memcpy(sa.sun_path, _unix_pathname.c_str(), _unix_pathname.length() + 1); + unlink(_unix_pathname.c_str()); if (bind(_socket_fd, (struct sockaddr *)&sa, sizeof(sa)) < 0) return initialize_socket_error(errh, "bind"); diff --git a/elements/userlevel/socket.cc b/elements/userlevel/socket.cc index 83e38f2c86..987c8a7dd5 100644 --- a/elements/userlevel/socket.cc +++ b/elements/userlevel/socket.cc @@ -208,6 +208,8 @@ Socket::initialize(ErrorHandler *errh) } if (ret < 0) #endif + if (_local_pathname != "") + unlink(_local_pathname.c_str()); if (bind(_fd, (struct sockaddr *)&_local, _local_len) < 0) return initialize_socket_error(errh, "bind"); }