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:
Tomasz Moń 2019-09-24 07:05:12 +02:00 committed by Guy Harris
parent 7d36ae9e74
commit 66ad175c47
4 changed files with 8 additions and 9 deletions

View File

@ -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);
/* if the keylog file was deleted, re-open it */
if (*keylog_file && file_needs_reopen(*keylog_file, tls_keylog_filename)) {
/* if the keylog file was deleted/overwritten, re-open it */
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);
fclose(*keylog_file);
*keylog_file = NULL;

View File

@ -640,8 +640,8 @@ wg_keylog_read(void)
return;
}
// Reopen file if it got deleted.
if (wg_keylog_file && file_needs_reopen(wg_keylog_file, pref_keylog_file)) {
// Reopen file if it got deleted/overwritten.
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.");
wg_keylog_reset();
}

View File

@ -2124,7 +2124,7 @@ files_identical(const char *fname1, const char *fname2)
}
gboolean
file_needs_reopen(FILE* fp, const char* filename)
file_needs_reopen(int fd, const char* filename)
{
#ifdef _WIN32
/* 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.
*/
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,
FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
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,
* 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;
if (0 != ws_stat64(filename, &current_stat))
return TRUE;

View File

@ -11,7 +11,6 @@
#ifndef FILESYSTEM_H
#define FILESYSTEM_H
#include <stdio.h>
#include "ws_symbol_export.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.
*/
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