[Pacemaker] [libqb]Unlink of files bound to sockets

Grüninger, Andreas (LGL Extern) Andreas.Grueninger at lgl.bwl.de
Thu Dec 18 15:01:01 UTC 2014


I sent yesterday this email to the mailing list of libq 'quarterback-devel at lists.fedorahosted.org'.
But there is nearly no activity since august.

I use the current trunk of libqb.
In qb_ipcc_us_sock_close  nd qb_ipcs_us_withdraw  of lib/ipc_setup.c sockets are closed.
Is there a reason why the files bound to the sockets are not deleted with unlink?
Is unlinking not necessary with Linux?
I found thousands of files in statedir=/var/corosync/run after a while.

I tried this and it seems to work without errors.

e.g.
void
qb_ipcc_us_sock_close(int32_t sock)
{
  #ifdef QB_SOLARIS
  struct sockaddr_un un_addr;
  socklen_t un_addr_len = sizeof(struct sockaddr_un);
  #endif
  shutdown(sock, SHUT_RDWR);
  #ifdef QB_SOLARIS
  if (getsockname(sock, (struct sockaddr *)&un_addr, &un_addr_len) == 0) {
    if(strstr(un_addr.sun_path,"-") != NULL) {
      qb_util_log(LOG_DEBUG, "un_addr.sun_path=%s", un_addr.sun_path);
      unlink(un_addr.sun_path);
    }
  } else {
    qb_util_log(LOG_DEBUG, "getsockname returned errno=%d", errno);
  }
  #endif
  close(sock);
}

Regards

Andreas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clusterlabs.org/pipermail/pacemaker/attachments/20141218/695fd90f/attachment-0003.html>


More information about the Pacemaker mailing list