projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix UBSAN failure in b64decode_tinc()
[tinc]
/
src
/
event.h
diff --git
a/src/event.h
b/src/event.h
index
d0129d0
..
386c0b5
100644
(file)
--- a/
src/event.h
+++ b/
src/event.h
@@
-1,6
+1,9
@@
+#ifndef TINC_EVENT_H
+#define TINC_EVENT_H
+
/*
event.h -- I/O, timeout and signal event handling
/*
event.h -- I/O, timeout and signal event handling
- Copyright (C) 2012 Guus Sliepen <guus@tinc-vpn.org>
+ Copyright (C) 2012
-2013
Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-17,9
+20,7
@@
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef __TINC_EVENT_H__
-#define __TINC_EVENT_H__
-
+#include "system.h"
#include "splay_tree.h"
#define IO_READ 1
#include "splay_tree.h"
#define IO_READ 1
@@
-32,6
+33,9
@@
typedef void (*signal_cb_t)(void *data);
typedef struct io_t {
int fd;
int flags;
typedef struct io_t {
int fd;
int flags;
+#ifdef HAVE_WINDOWS
+ WSAEVENT event;
+#endif
io_cb_t cb;
void *data;
splay_node_t node;
io_cb_t cb;
void *data;
splay_node_t node;
@@
-48,18
+52,24
@@
typedef struct signal_t {
int signum;
signal_cb_t cb;
void *data;
int signum;
signal_cb_t cb;
void *data;
- splay_node_t node;
} signal_t;
extern struct timeval now;
} signal_t;
extern struct timeval now;
+extern splay_tree_t io_tree;
+extern splay_tree_t timeout_tree;
+
extern void io_add(io_t *io, io_cb_t cb, void *data, int fd, int flags);
extern void io_add(io_t *io, io_cb_t cb, void *data, int fd, int flags);
+#ifdef HAVE_WINDOWS
+extern void io_add_event(io_t *io, io_cb_t cb, void *data, WSAEVENT event);
+#endif
extern void io_del(io_t *io);
extern void io_set(io_t *io, int flags);
extern void io_del(io_t *io);
extern void io_set(io_t *io, int flags);
-extern void timeout_add(timeout_t *timeout, timeout_cb_t cb, void *data, struct timeval *tv);
+extern void timeout_add(timeout_t *timeout, timeout_cb_t cb, void *data,
const
struct timeval *tv);
extern void timeout_del(timeout_t *timeout);
extern void timeout_del(timeout_t *timeout);
-extern void timeout_set(timeout_t *timeout, struct timeval *tv);
+extern void timeout_set(timeout_t *timeout, const struct timeval *tv);
+extern struct timeval *timeout_execute(struct timeval *diff);
extern void signal_add(signal_t *sig, signal_cb_t cb, void *data, int signum);
extern void signal_del(signal_t *sig);
extern void signal_add(signal_t *sig, signal_cb_t cb, void *data, int signum);
extern void signal_del(signal_t *sig);