mirror of
https://github.com/OpenVPN/openvpn.git
synced 2024-09-20 03:52:28 +02:00
client-connect: Move adding inotify watch into its own function
This makes the code a more readable and also prepares reusing the function for client-connect return files Signed-off-by: Arne Schwabe <arne@rfc2549.org> Acked-by: Antonio Quartulli <a@unstable.cc> Message-Id: <20200711093655.23686-10-arne@rfc2549.org> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg20284.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
parent
4d500451e8
commit
708d1694c7
@ -2552,6 +2552,32 @@ multi_schedule_context_wakeup(struct multi_context *m, struct multi_instance *mi
|
||||
compute_wakeup_sigma(&mi->context.c2.timeval));
|
||||
}
|
||||
|
||||
#if defined(ENABLE_ASYNC_PUSH) && defined(ENABLE_DEF_AUTH)
|
||||
static void
|
||||
add_inotify_file_watch(struct multi_context *m, struct multi_instance *mi,
|
||||
int inotify_fd, const char *file)
|
||||
{
|
||||
/* watch acf file */
|
||||
long watch_descriptor = inotify_add_watch(inotify_fd, file,
|
||||
IN_CLOSE_WRITE | IN_ONESHOT);
|
||||
if (watch_descriptor >= 0)
|
||||
{
|
||||
if (mi->inotify_watch != -1)
|
||||
{
|
||||
hash_remove(m->inotify_watchers,
|
||||
(void *) (unsigned long)mi->inotify_watch);
|
||||
}
|
||||
hash_add(m->inotify_watchers, (const uintptr_t *)watch_descriptor,
|
||||
mi, true);
|
||||
mi->inotify_watch = watch_descriptor;
|
||||
}
|
||||
else
|
||||
{
|
||||
msg(M_NONFATAL | M_ERRNO, "MULTI: inotify_add_watch error");
|
||||
}
|
||||
}
|
||||
#endif /* if defined(ENABLE_ASYNC_PUSH) && defined(ENABLE_DEF_AUTH) */
|
||||
|
||||
/*
|
||||
* Figure instance-specific timers, convert
|
||||
* earliest to absolute time in mi->wakeup,
|
||||
@ -2589,21 +2615,8 @@ multi_process_post(struct multi_context *m, struct multi_instance *mi, const uns
|
||||
if (ks && ks->auth_control_file && was_unauthenticated
|
||||
&& (ks->authenticated == KS_AUTH_DEFERRED))
|
||||
{
|
||||
/* watch acf file */
|
||||
long watch_descriptor = inotify_add_watch(m->top.c2.inotify_fd, ks->auth_control_file, IN_CLOSE_WRITE | IN_ONESHOT);
|
||||
if (watch_descriptor >= 0)
|
||||
{
|
||||
if (mi->inotify_watch != -1)
|
||||
{
|
||||
hash_remove(m->inotify_watchers, (void *) (unsigned long)mi->inotify_watch);
|
||||
}
|
||||
hash_add(m->inotify_watchers, (const uintptr_t *)watch_descriptor, mi, true);
|
||||
mi->inotify_watch = watch_descriptor;
|
||||
}
|
||||
else
|
||||
{
|
||||
msg(M_NONFATAL | M_ERRNO, "MULTI: inotify_add_watch error");
|
||||
}
|
||||
add_inotify_file_watch(m, mi, m->top.c2.inotify_fd,
|
||||
ks->auth_control_file);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user