Make device close cleaner.

This commit is contained in:
Etienne Dechamps 2014-06-22 09:53:26 +01:00 committed by Guus Sliepen
parent 6382608653
commit ed1d0878af
9 changed files with 56 additions and 37 deletions

View file

@ -197,9 +197,11 @@ static void close_device(void) {
default:
close(device_fd);
}
device_fd = -1;
free(device);
free(iface);
free(device); device = NULL;
free(iface); iface = NULL;
device_info = NULL;
}
static bool read_packet(vpn_packet_t *packet) {

View file

@ -215,12 +215,13 @@ static bool setup_device(void) {
static void close_device(void) {
close(sp[0]);
close(sp[1]);
CloseHandle(device_handle);
CloseHandle(device_handle); device_handle = INVALID_HANDLE_VALUE;
kill(reader_pid, SIGKILL);
free(device);
free(iface);
free(device); device = NULL;
free(iface); iface = NULL;
device_info = NULL;
}
static bool read_packet(vpn_packet_t *packet) {

View file

@ -110,10 +110,12 @@ static bool setup_device(void) {
static void close_device(void) {
close(device_fd);
device_fd = -1;
free(type);
free(device);
free(iface);
free(type); type = NULL;
free(device); device = NULL;
free(iface); iface = NULL;
device_info = NULL;
}
static bool read_packet(vpn_packet_t *packet) {

View file

@ -213,10 +213,11 @@ static bool setup_device(void) {
}
static void close_device(void) {
CloseHandle(device_handle);
CloseHandle(device_handle); device_handle = INVALID_HANDLE_VALUE;
free(device);
free(iface);
free(device); device = NULL;
free(iface); iface = NULL;
device_info = NULL;
}
static bool read_packet(vpn_packet_t *packet) {

View file

@ -148,13 +148,15 @@ error:
}
static void close_device(void) {
close(device_fd);
close(device_fd); device_fd = -1;
free(device);
free(iface);
free(device); device = NULL;
free(iface); iface = NULL;
if(ai)
freeaddrinfo(ai);
if(ai) {
freeaddrinfo(ai); ai = NULL;
}
device_info = NULL;
}
static bool read_packet(vpn_packet_t *packet) {

View file

@ -83,10 +83,11 @@ static bool setup_device(void) {
}
static void close_device(void) {
close(device_fd);
close(device_fd); device_fd = -1;
free(device);
free(iface);
free(device); device = NULL;
free(iface); iface = NULL;
device_info = NULL;
}
static bool read_packet(vpn_packet_t *packet) {

View file

@ -287,11 +287,11 @@ static void close_device(void) {
}
}
close(ip_fd);
close(device_fd);
close(ip_fd); ip_fd = -1;
close(device_fd); device_fd = -1;
free(device);
free(iface);
free(device); device = NULL;
free(iface); iface = NULL;
}
static bool read_packet(vpn_packet_t *packet) {

View file

@ -156,22 +156,29 @@ static bool setup_device(void) {
}
void close_device(void) {
if(listen_fd >= 0)
close(listen_fd);
if(listen_fd >= 0) {
close(listen_fd); listen_fd = -1;
}
if(request_fd >= 0)
close(request_fd);
if(request_fd >= 0) {
close(request_fd); request_fd = -1;
}
if(data_fd >= 0)
close(data_fd);
if(data_fd >= 0) {
close(data_fd); data_fd = -1;
}
if(write_fd >= 0)
close(write_fd);
if(write_fd >= 0) {
close(write_fd); write_fd = -1;
}
unlink(device);
free(device);
if(iface) free(iface);
free(device); device = NULL;
if(iface) {
free(iface); iface = NULL;
}
device_info = NULL;
}
static bool read_packet(vpn_packet_t *packet) {

View file

@ -82,15 +82,18 @@ static bool setup_device(void) {
}
static void close_device(void) {
if(conn)
plug.vde_close(conn);
if(conn) {
plug.vde_close(conn); conn = NULL;
}
if(plug.dl_handle)
libvdeplug_dynclose(plug);
free(device);
free(device); device = NULL;
free(iface);
free(iface); iface = NULL;
device_info = NULL;
}
static bool read_packet(vpn_packet_t *packet) {