wsutil: Use file descriptor in file_needs_reopen()
There's no extra benefit in having FILE pointer (over file descriptor) passed to file_needs_reopen(). Change-Id: Id49eb2f02b776c2f1ccd9d67fedd7eac38432f52 Reviewed-on: https://code.wireshark.org/review/34600 Reviewed-by: Craig Jackson <cejackson51@gmail.com> Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
This commit is contained in:
parent
7d36ae9e74
commit
66ad175c47
|
@ -5342,8 +5342,8 @@ ssl_load_keyfile(const gchar *tls_keylog_filename, FILE **keylog_file,
|
||||||
|
|
||||||
ssl_debug_printf("trying to use TLS keylog in %s\n", tls_keylog_filename);
|
ssl_debug_printf("trying to use TLS keylog in %s\n", tls_keylog_filename);
|
||||||
|
|
||||||
/* if the keylog file was deleted, re-open it */
|
/* if the keylog file was deleted/overwritten, re-open it */
|
||||||
if (*keylog_file && file_needs_reopen(*keylog_file, tls_keylog_filename)) {
|
if (*keylog_file && file_needs_reopen(ws_fileno(*keylog_file), tls_keylog_filename)) {
|
||||||
ssl_debug_printf("%s file got deleted, trying to re-open\n", G_STRFUNC);
|
ssl_debug_printf("%s file got deleted, trying to re-open\n", G_STRFUNC);
|
||||||
fclose(*keylog_file);
|
fclose(*keylog_file);
|
||||||
*keylog_file = NULL;
|
*keylog_file = NULL;
|
||||||
|
|
|
@ -640,8 +640,8 @@ wg_keylog_read(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reopen file if it got deleted.
|
// Reopen file if it got deleted/overwritten.
|
||||||
if (wg_keylog_file && file_needs_reopen(wg_keylog_file, pref_keylog_file)) {
|
if (wg_keylog_file && file_needs_reopen(ws_fileno(wg_keylog_file), pref_keylog_file)) {
|
||||||
g_debug("Key log file got changed or deleted, trying to re-open.");
|
g_debug("Key log file got changed or deleted, trying to re-open.");
|
||||||
wg_keylog_reset();
|
wg_keylog_reset();
|
||||||
}
|
}
|
||||||
|
|
|
@ -2124,7 +2124,7 @@ files_identical(const char *fname1, const char *fname2)
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
file_needs_reopen(FILE* fp, const char* filename)
|
file_needs_reopen(int fd, const char* filename)
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/* Windows handles st_dev in a way unsuitable here:
|
/* Windows handles st_dev in a way unsuitable here:
|
||||||
|
@ -2139,7 +2139,7 @@ file_needs_reopen(FILE* fp, const char* filename)
|
||||||
* Thus instead of using fstat(), use Windows specific API.
|
* Thus instead of using fstat(), use Windows specific API.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
HANDLE open_handle = (HANDLE)_get_osfhandle(ws_fileno(fp));
|
HANDLE open_handle = (HANDLE)_get_osfhandle(fd);
|
||||||
HANDLE current_handle = CreateFile(utf_8to16(filename), FILE_READ_ATTRIBUTES,
|
HANDLE current_handle = CreateFile(utf_8to16(filename), FILE_READ_ATTRIBUTES,
|
||||||
FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
|
FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
|
||||||
NULL, OPEN_EXISTING, 0, NULL);
|
NULL, OPEN_EXISTING, 0, NULL);
|
||||||
|
@ -2177,7 +2177,7 @@ file_needs_reopen(FILE* fp, const char* filename)
|
||||||
|
|
||||||
/* consider a file deleted when stat fails for either file,
|
/* consider a file deleted when stat fails for either file,
|
||||||
* or when the residing device / inode has changed. */
|
* or when the residing device / inode has changed. */
|
||||||
if (0 != ws_fstat64(ws_fileno(fp), &open_stat))
|
if (0 != ws_fstat64(fd, &open_stat))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
if (0 != ws_stat64(filename, ¤t_stat))
|
if (0 != ws_stat64(filename, ¤t_stat))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
#ifndef FILESYSTEM_H
|
#ifndef FILESYSTEM_H
|
||||||
#define FILESYSTEM_H
|
#define FILESYSTEM_H
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include "ws_symbol_export.h"
|
#include "ws_symbol_export.h"
|
||||||
#include "ws_attributes.h"
|
#include "ws_attributes.h"
|
||||||
|
|
||||||
|
@ -306,7 +305,7 @@ WS_DLL_PUBLIC gboolean files_identical(const char *fname1, const char *fname2);
|
||||||
/*
|
/*
|
||||||
* Check if file has been recreated since it was opened.
|
* Check if file has been recreated since it was opened.
|
||||||
*/
|
*/
|
||||||
WS_DLL_PUBLIC gboolean file_needs_reopen(FILE* fp, const char* filename);
|
WS_DLL_PUBLIC gboolean file_needs_reopen(int fd, const char* filename);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copy a file in binary mode, for those operating systems that care about
|
* Copy a file in binary mode, for those operating systems that care about
|
||||||
|
|
Loading…
Reference in New Issue