mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
src: convert code to use new socket portability wrappers
Convert to use socket wrappers. Aside from the header file include change, this requires changing close -> closesocket since our portability isn't trying to replace the close function. Reviewed-by: Pavel Hrdina <phrdina@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
b5c95d042b
commit
210e19702e
@ -44,6 +44,7 @@
|
|||||||
# include <selinux/selinux.h>
|
# include <selinux/selinux.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "virsocket.h"
|
||||||
#include "virnetsocket.h"
|
#include "virnetsocket.h"
|
||||||
#include "virutil.h"
|
#include "virutil.h"
|
||||||
#include "viralloc.h"
|
#include "viralloc.h"
|
||||||
@ -403,7 +404,8 @@ int virNetSocketNewListenTCP(const char *nodename,
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
bindErrno = errno;
|
bindErrno = errno;
|
||||||
VIR_FORCE_CLOSE(fd);
|
closesocket(fd);
|
||||||
|
fd = -1;
|
||||||
runp = runp->ai_next;
|
runp = runp->ai_next;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -454,7 +456,8 @@ int virNetSocketNewListenTCP(const char *nodename,
|
|||||||
virObjectUnref(socks[i]);
|
virObjectUnref(socks[i]);
|
||||||
VIR_FREE(socks);
|
VIR_FREE(socks);
|
||||||
freeaddrinfo(ai);
|
freeaddrinfo(ai);
|
||||||
VIR_FORCE_CLOSE(fd);
|
if (fd != -1)
|
||||||
|
closesocket(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -521,7 +524,8 @@ int virNetSocketNewListenUNIX(const char *path,
|
|||||||
error:
|
error:
|
||||||
if (path[0] != '@')
|
if (path[0] != '@')
|
||||||
unlink(path);
|
unlink(path);
|
||||||
VIR_FORCE_CLOSE(fd);
|
if (fd != -1)
|
||||||
|
closesocket(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
@ -605,7 +609,8 @@ int virNetSocketNewConnectTCP(const char *nodename,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
savedErrno = errno;
|
savedErrno = errno;
|
||||||
VIR_FORCE_CLOSE(fd);
|
closesocket(fd);
|
||||||
|
fd = -1;
|
||||||
runp = runp->ai_next;
|
runp = runp->ai_next;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -637,7 +642,8 @@ int virNetSocketNewConnectTCP(const char *nodename,
|
|||||||
|
|
||||||
error:
|
error:
|
||||||
freeaddrinfo(ai);
|
freeaddrinfo(ai);
|
||||||
VIR_FORCE_CLOSE(fd);
|
if (fd != -1)
|
||||||
|
closesocket(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -758,8 +764,8 @@ int virNetSocketNewConnectUNIX(const char *path,
|
|||||||
VIR_FREE(lockpath);
|
VIR_FREE(lockpath);
|
||||||
VIR_FREE(rundir);
|
VIR_FREE(rundir);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0 && fd != -1)
|
||||||
VIR_FORCE_CLOSE(fd);
|
closesocket(fd);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1370,8 +1376,10 @@ void virNetSocketDispose(void *obj)
|
|||||||
virObjectUnref(sock->libsshSession);
|
virObjectUnref(sock->libsshSession);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (sock->ownsFd)
|
if (sock->ownsFd && sock->fd != -1) {
|
||||||
VIR_FORCE_CLOSE(sock->fd);
|
closesocket(sock->fd);
|
||||||
|
sock->fd = -1;
|
||||||
|
}
|
||||||
VIR_FORCE_CLOSE(sock->errfd);
|
VIR_FORCE_CLOSE(sock->errfd);
|
||||||
|
|
||||||
virProcessAbort(sock->pid);
|
virProcessAbort(sock->pid);
|
||||||
@ -2144,7 +2152,8 @@ int virNetSocketAccept(virNetSocketPtr sock, virNetSocketPtr *clientsock)
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FORCE_CLOSE(fd);
|
if (fd != -1)
|
||||||
|
closesocket(fd);
|
||||||
virObjectUnlock(sock);
|
virObjectUnlock(sock);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -2264,7 +2273,10 @@ void virNetSocketClose(virNetSocketPtr sock)
|
|||||||
|
|
||||||
virObjectLock(sock);
|
virObjectLock(sock);
|
||||||
|
|
||||||
VIR_FORCE_CLOSE(sock->fd);
|
if (sock->fd != -1) {
|
||||||
|
closesocket(sock->fd);
|
||||||
|
sock->fd = -1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_SYS_UN_H
|
#ifdef HAVE_SYS_UN_H
|
||||||
/* If a server socket, then unlink UNIX path */
|
/* If a server socket, then unlink UNIX path */
|
||||||
|
@ -21,10 +21,7 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include <sys/socket.h>
|
#include "virsocket.h"
|
||||||
#include <arpa/inet.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
|
|
||||||
#include "viralloc.h"
|
#include "viralloc.h"
|
||||||
#include "virbitmap.h"
|
#include "virbitmap.h"
|
||||||
#include "virportallocator.h"
|
#include "virportallocator.h"
|
||||||
@ -192,7 +189,8 @@ virPortAllocatorBindToPort(bool *used,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FORCE_CLOSE(fd);
|
if (fd != -1)
|
||||||
|
closesocket(fd);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user