Hello community,

here is the log from the commit of package tevent for openSUSE:Factory checked 
in at 2018-04-04 11:13:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tevent (Old)
 and      /work/SRC/openSUSE:Factory/.tevent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tevent"

Wed Apr  4 11:13:11 2018 rev:31 rq:588676 version:0.9.36

Changes:
--------
--- /work/SRC/openSUSE:Factory/tevent/tevent-man.changes        2017-12-03 
10:11:06.940018585 +0100
+++ /work/SRC/openSUSE:Factory/.tevent.new/tevent-man.changes   2018-04-04 
11:13:14.943011287 +0200
@@ -2 +2,11 @@
-Tue Nov 28 17:33:52 UTC 2017 - scabr...@suse.com
+Fri Mar 16 17:57:04 UTC 2018 - jmcdono...@suse.com
+
+- Update to version 0.9.36; (bso#13291);
+  + improve documentation of tevent_queue_add_optimize_empty()
+  + add tevent_queue_entry_untrigger()
+  + Minor cleanup. wakeup_fd can always be gotten from the event context.
+  + Use smb_set_close_on_exec() in example code.
+- Use tirpc on newer sytems
+
+-------------------------------------------------------------------
+Tue Nov 28 17:31:07 UTC 2017 - scabr...@suse.com
@@ -10 +20 @@
-Wed Jul 26 08:50:23 UTC 2017 - scabr...@suse.com
+Wed Jul 26 08:49:04 UTC 2017 - scabr...@suse.com
@@ -16 +26 @@
-Fri Jun 30 12:05:41 UTC 2017 - scabr...@suse.com
+Fri Jun 30 11:58:18 UTC 2017 - scabr...@suse.com
@@ -22,0 +33,6 @@
+
+-------------------------------------------------------------------
+Mon Feb  6 15:00:05 UTC 2017 - jeng...@inai.de
+
+- Drop redundant PreReq for ldconfig; this is autodetected.
+  Set RPM group right.
--- /work/SRC/openSUSE:Factory/tevent/tevent.changes    2017-12-03 
10:11:07.176010005 +0100
+++ /work/SRC/openSUSE:Factory/.tevent.new/tevent.changes       2018-04-04 
11:13:15.199001958 +0200
@@ -1,0 +2,10 @@
+Fri Mar 16 17:57:04 UTC 2018 - jmcdono...@suse.com
+
+- Update to version 0.9.36; (bso#13291);
+  + improve documentation of tevent_queue_add_optimize_empty()
+  + add tevent_queue_entry_untrigger()
+  + Minor cleanup. wakeup_fd can always be gotten from the event context.
+  + Use smb_set_close_on_exec() in example code.
+- Use tirpc on newer sytems
+
+-------------------------------------------------------------------

Old:
----
  tevent-0.9.34.tar.asc
  tevent-0.9.34.tar.gz

New:
----
  tevent-0.9.36.tar.asc
  tevent-0.9.36.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ tevent-man.spec ++++++
--- /var/tmp/diff_new_pack.vwwhWw/_old  2018-04-04 11:13:16.146967411 +0200
+++ /var/tmp/diff_new_pack.vwwhWw/_new  2018-04-04 11:13:16.150967265 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package tevent-man
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -53,7 +53,7 @@
 %define        build_make_smp_mflags %{?jobs:-j%jobs}
 %endif
 Url:            https://tevent.samba.org/
-Version:        0.9.34
+Version:        0.9.36
 Release:        0
 Summary:        An event system based on the talloc memory management library
 License:        GPL-3.0+

++++++ tevent.spec ++++++
--- /var/tmp/diff_new_pack.vwwhWw/_old  2018-04-04 11:13:16.166966682 +0200
+++ /var/tmp/diff_new_pack.vwwhWw/_new  2018-04-04 11:13:16.170966536 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package tevent-man
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 %define with_python3 0
 %endif
 
-%define talloc_version 2.1.10
+%define talloc_version 2.1.11
 %define build_man 0
 
 %if %{build_man}
@@ -33,6 +33,9 @@
 %else
 Name:           tevent
 BuildRequires:  libtalloc-devel >= %{talloc_version}
+%if 0%{?suse_version} >= 1330
+BuildRequires:  libtirpc-devel
+%endif
 %if 0%{?suse_version} > 1020
 BuildRequires:  pkg-config
 %else
@@ -43,9 +46,8 @@
 BuildRequires:  python3-devel
 BuildRequires:  python3-talloc >= %{talloc_version}
 BuildRequires:  python3-talloc-devel >= %{talloc_version}
-%else
-BuildRequires:  python-talloc-devel >= %{talloc_version}
 %endif # with_python3
+BuildRequires:  python-talloc-devel >= %{talloc_version}
 %endif # build_man
 %if 0%{?suse_version} == 0 || 0%{?suse_version} > 1140
 %define        build_make_smp_mflags %{?_smp_mflags}
@@ -53,7 +55,7 @@
 %define        build_make_smp_mflags %{?jobs:-j%jobs}
 %endif
 Url:            https://tevent.samba.org/
-Version:        0.9.34
+Version:        0.9.36
 Release:        0
 Summary:        An event system based on the talloc memory management library
 License:        GPL-3.0+

++++++ tevent-0.9.34.tar.gz -> tevent-0.9.36.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/ABI/tevent-0.9.35.sigs 
new/tevent-0.9.36/ABI/tevent-0.9.35.sigs
--- old/tevent-0.9.34/ABI/tevent-0.9.35.sigs    1970-01-01 01:00:00.000000000 
+0100
+++ new/tevent-0.9.36/ABI/tevent-0.9.35.sigs    2018-01-13 08:09:11.000000000 
+0100
@@ -0,0 +1,99 @@
+_tevent_add_fd: struct tevent_fd *(struct tevent_context *, TALLOC_CTX *, int, 
uint16_t, tevent_fd_handler_t, void *, const char *, const char *)
+_tevent_add_signal: struct tevent_signal *(struct tevent_context *, TALLOC_CTX 
*, int, int, tevent_signal_handler_t, void *, const char *, const char *)
+_tevent_add_timer: struct tevent_timer *(struct tevent_context *, TALLOC_CTX 
*, struct timeval, tevent_timer_handler_t, void *, const char *, const char *)
+_tevent_create_immediate: struct tevent_immediate *(TALLOC_CTX *, const char *)
+_tevent_loop_once: int (struct tevent_context *, const char *)
+_tevent_loop_until: int (struct tevent_context *, bool (*)(void *), void *, 
const char *)
+_tevent_loop_wait: int (struct tevent_context *, const char *)
+_tevent_queue_create: struct tevent_queue *(TALLOC_CTX *, const char *, const 
char *)
+_tevent_req_callback_data: void *(struct tevent_req *)
+_tevent_req_cancel: bool (struct tevent_req *, const char *)
+_tevent_req_create: struct tevent_req *(TALLOC_CTX *, void *, size_t, const 
char *, const char *)
+_tevent_req_data: void *(struct tevent_req *)
+_tevent_req_done: void (struct tevent_req *, const char *)
+_tevent_req_error: bool (struct tevent_req *, uint64_t, const char *)
+_tevent_req_nomem: bool (const void *, struct tevent_req *, const char *)
+_tevent_req_notify_callback: void (struct tevent_req *, const char *)
+_tevent_req_oom: void (struct tevent_req *, const char *)
+_tevent_schedule_immediate: void (struct tevent_immediate *, struct 
tevent_context *, tevent_immediate_handler_t, void *, const char *, const char 
*)
+_tevent_threaded_schedule_immediate: void (struct tevent_threaded_context *, 
struct tevent_immediate *, tevent_immediate_handler_t, void *, const char *, 
const char *)
+tevent_backend_list: const char **(TALLOC_CTX *)
+tevent_cleanup_pending_signal_handlers: void (struct tevent_signal *)
+tevent_common_add_fd: struct tevent_fd *(struct tevent_context *, TALLOC_CTX 
*, int, uint16_t, tevent_fd_handler_t, void *, const char *, const char *)
+tevent_common_add_signal: struct tevent_signal *(struct tevent_context *, 
TALLOC_CTX *, int, int, tevent_signal_handler_t, void *, const char *, const 
char *)
+tevent_common_add_timer: struct tevent_timer *(struct tevent_context *, 
TALLOC_CTX *, struct timeval, tevent_timer_handler_t, void *, const char *, 
const char *)
+tevent_common_add_timer_v2: struct tevent_timer *(struct tevent_context *, 
TALLOC_CTX *, struct timeval, tevent_timer_handler_t, void *, const char *, 
const char *)
+tevent_common_check_signal: int (struct tevent_context *)
+tevent_common_context_destructor: int (struct tevent_context *)
+tevent_common_fd_destructor: int (struct tevent_fd *)
+tevent_common_fd_get_flags: uint16_t (struct tevent_fd *)
+tevent_common_fd_set_close_fn: void (struct tevent_fd *, tevent_fd_close_fn_t)
+tevent_common_fd_set_flags: void (struct tevent_fd *, uint16_t)
+tevent_common_have_events: bool (struct tevent_context *)
+tevent_common_loop_immediate: bool (struct tevent_context *)
+tevent_common_loop_timer_delay: struct timeval (struct tevent_context *)
+tevent_common_loop_wait: int (struct tevent_context *, const char *)
+tevent_common_schedule_immediate: void (struct tevent_immediate *, struct 
tevent_context *, tevent_immediate_handler_t, void *, const char *, const char 
*)
+tevent_common_threaded_activate_immediate: void (struct tevent_context *)
+tevent_common_wakeup: int (struct tevent_context *)
+tevent_common_wakeup_fd: int (int)
+tevent_common_wakeup_init: int (struct tevent_context *)
+tevent_context_init: struct tevent_context *(TALLOC_CTX *)
+tevent_context_init_byname: struct tevent_context *(TALLOC_CTX *, const char *)
+tevent_context_init_ops: struct tevent_context *(TALLOC_CTX *, const struct 
tevent_ops *, void *)
+tevent_debug: void (struct tevent_context *, enum tevent_debug_level, const 
char *, ...)
+tevent_fd_get_flags: uint16_t (struct tevent_fd *)
+tevent_fd_set_auto_close: void (struct tevent_fd *)
+tevent_fd_set_close_fn: void (struct tevent_fd *, tevent_fd_close_fn_t)
+tevent_fd_set_flags: void (struct tevent_fd *, uint16_t)
+tevent_get_trace_callback: void (struct tevent_context *, 
tevent_trace_callback_t *, void *)
+tevent_loop_allow_nesting: void (struct tevent_context *)
+tevent_loop_set_nesting_hook: void (struct tevent_context *, 
tevent_nesting_hook, void *)
+tevent_num_signals: size_t (void)
+tevent_queue_add: bool (struct tevent_queue *, struct tevent_context *, struct 
tevent_req *, tevent_queue_trigger_fn_t, void *)
+tevent_queue_add_entry: struct tevent_queue_entry *(struct tevent_queue *, 
struct tevent_context *, struct tevent_req *, tevent_queue_trigger_fn_t, void *)
+tevent_queue_add_optimize_empty: struct tevent_queue_entry *(struct 
tevent_queue *, struct tevent_context *, struct tevent_req *, 
tevent_queue_trigger_fn_t, void *)
+tevent_queue_length: size_t (struct tevent_queue *)
+tevent_queue_running: bool (struct tevent_queue *)
+tevent_queue_start: void (struct tevent_queue *)
+tevent_queue_stop: void (struct tevent_queue *)
+tevent_queue_wait_recv: bool (struct tevent_req *)
+tevent_queue_wait_send: struct tevent_req *(TALLOC_CTX *, struct 
tevent_context *, struct tevent_queue *)
+tevent_re_initialise: int (struct tevent_context *)
+tevent_register_backend: bool (const char *, const struct tevent_ops *)
+tevent_req_default_print: char *(struct tevent_req *, TALLOC_CTX *)
+tevent_req_defer_callback: void (struct tevent_req *, struct tevent_context *)
+tevent_req_is_error: bool (struct tevent_req *, enum tevent_req_state *, 
uint64_t *)
+tevent_req_is_in_progress: bool (struct tevent_req *)
+tevent_req_poll: bool (struct tevent_req *, struct tevent_context *)
+tevent_req_post: struct tevent_req *(struct tevent_req *, struct 
tevent_context *)
+tevent_req_print: char *(TALLOC_CTX *, struct tevent_req *)
+tevent_req_received: void (struct tevent_req *)
+tevent_req_reset_endtime: void (struct tevent_req *)
+tevent_req_set_callback: void (struct tevent_req *, tevent_req_fn, void *)
+tevent_req_set_cancel_fn: void (struct tevent_req *, tevent_req_cancel_fn)
+tevent_req_set_cleanup_fn: void (struct tevent_req *, tevent_req_cleanup_fn)
+tevent_req_set_endtime: bool (struct tevent_req *, struct tevent_context *, 
struct timeval)
+tevent_req_set_print_fn: void (struct tevent_req *, tevent_req_print_fn)
+tevent_sa_info_queue_count: size_t (void)
+tevent_set_abort_fn: void (void (*)(const char *))
+tevent_set_debug: int (struct tevent_context *, void (*)(void *, enum 
tevent_debug_level, const char *, va_list), void *)
+tevent_set_debug_stderr: int (struct tevent_context *)
+tevent_set_default_backend: void (const char *)
+tevent_set_trace_callback: void (struct tevent_context *, 
tevent_trace_callback_t, void *)
+tevent_signal_support: bool (struct tevent_context *)
+tevent_thread_proxy_create: struct tevent_thread_proxy *(struct tevent_context 
*)
+tevent_thread_proxy_schedule: void (struct tevent_thread_proxy *, struct 
tevent_immediate **, tevent_immediate_handler_t, void *)
+tevent_threaded_context_create: struct tevent_threaded_context *(TALLOC_CTX *, 
struct tevent_context *)
+tevent_timeval_add: struct timeval (const struct timeval *, uint32_t, uint32_t)
+tevent_timeval_compare: int (const struct timeval *, const struct timeval *)
+tevent_timeval_current: struct timeval (void)
+tevent_timeval_current_ofs: struct timeval (uint32_t, uint32_t)
+tevent_timeval_is_zero: bool (const struct timeval *)
+tevent_timeval_set: struct timeval (uint32_t, uint32_t)
+tevent_timeval_until: struct timeval (const struct timeval *, const struct 
timeval *)
+tevent_timeval_zero: struct timeval (void)
+tevent_trace_point_callback: void (struct tevent_context *, enum 
tevent_trace_point)
+tevent_update_timer: void (struct tevent_timer *, struct timeval)
+tevent_wakeup_recv: bool (struct tevent_req *)
+tevent_wakeup_send: struct tevent_req *(TALLOC_CTX *, struct tevent_context *, 
struct timeval)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/ABI/tevent-0.9.36.sigs 
new/tevent-0.9.36/ABI/tevent-0.9.36.sigs
--- old/tevent-0.9.34/ABI/tevent-0.9.36.sigs    1970-01-01 01:00:00.000000000 
+0100
+++ new/tevent-0.9.36/ABI/tevent-0.9.36.sigs    2018-02-23 11:28:56.000000000 
+0100
@@ -0,0 +1,100 @@
+_tevent_add_fd: struct tevent_fd *(struct tevent_context *, TALLOC_CTX *, int, 
uint16_t, tevent_fd_handler_t, void *, const char *, const char *)
+_tevent_add_signal: struct tevent_signal *(struct tevent_context *, TALLOC_CTX 
*, int, int, tevent_signal_handler_t, void *, const char *, const char *)
+_tevent_add_timer: struct tevent_timer *(struct tevent_context *, TALLOC_CTX 
*, struct timeval, tevent_timer_handler_t, void *, const char *, const char *)
+_tevent_create_immediate: struct tevent_immediate *(TALLOC_CTX *, const char *)
+_tevent_loop_once: int (struct tevent_context *, const char *)
+_tevent_loop_until: int (struct tevent_context *, bool (*)(void *), void *, 
const char *)
+_tevent_loop_wait: int (struct tevent_context *, const char *)
+_tevent_queue_create: struct tevent_queue *(TALLOC_CTX *, const char *, const 
char *)
+_tevent_req_callback_data: void *(struct tevent_req *)
+_tevent_req_cancel: bool (struct tevent_req *, const char *)
+_tevent_req_create: struct tevent_req *(TALLOC_CTX *, void *, size_t, const 
char *, const char *)
+_tevent_req_data: void *(struct tevent_req *)
+_tevent_req_done: void (struct tevent_req *, const char *)
+_tevent_req_error: bool (struct tevent_req *, uint64_t, const char *)
+_tevent_req_nomem: bool (const void *, struct tevent_req *, const char *)
+_tevent_req_notify_callback: void (struct tevent_req *, const char *)
+_tevent_req_oom: void (struct tevent_req *, const char *)
+_tevent_schedule_immediate: void (struct tevent_immediate *, struct 
tevent_context *, tevent_immediate_handler_t, void *, const char *, const char 
*)
+_tevent_threaded_schedule_immediate: void (struct tevent_threaded_context *, 
struct tevent_immediate *, tevent_immediate_handler_t, void *, const char *, 
const char *)
+tevent_backend_list: const char **(TALLOC_CTX *)
+tevent_cleanup_pending_signal_handlers: void (struct tevent_signal *)
+tevent_common_add_fd: struct tevent_fd *(struct tevent_context *, TALLOC_CTX 
*, int, uint16_t, tevent_fd_handler_t, void *, const char *, const char *)
+tevent_common_add_signal: struct tevent_signal *(struct tevent_context *, 
TALLOC_CTX *, int, int, tevent_signal_handler_t, void *, const char *, const 
char *)
+tevent_common_add_timer: struct tevent_timer *(struct tevent_context *, 
TALLOC_CTX *, struct timeval, tevent_timer_handler_t, void *, const char *, 
const char *)
+tevent_common_add_timer_v2: struct tevent_timer *(struct tevent_context *, 
TALLOC_CTX *, struct timeval, tevent_timer_handler_t, void *, const char *, 
const char *)
+tevent_common_check_signal: int (struct tevent_context *)
+tevent_common_context_destructor: int (struct tevent_context *)
+tevent_common_fd_destructor: int (struct tevent_fd *)
+tevent_common_fd_get_flags: uint16_t (struct tevent_fd *)
+tevent_common_fd_set_close_fn: void (struct tevent_fd *, tevent_fd_close_fn_t)
+tevent_common_fd_set_flags: void (struct tevent_fd *, uint16_t)
+tevent_common_have_events: bool (struct tevent_context *)
+tevent_common_loop_immediate: bool (struct tevent_context *)
+tevent_common_loop_timer_delay: struct timeval (struct tevent_context *)
+tevent_common_loop_wait: int (struct tevent_context *, const char *)
+tevent_common_schedule_immediate: void (struct tevent_immediate *, struct 
tevent_context *, tevent_immediate_handler_t, void *, const char *, const char 
*)
+tevent_common_threaded_activate_immediate: void (struct tevent_context *)
+tevent_common_wakeup: int (struct tevent_context *)
+tevent_common_wakeup_fd: int (int)
+tevent_common_wakeup_init: int (struct tevent_context *)
+tevent_context_init: struct tevent_context *(TALLOC_CTX *)
+tevent_context_init_byname: struct tevent_context *(TALLOC_CTX *, const char *)
+tevent_context_init_ops: struct tevent_context *(TALLOC_CTX *, const struct 
tevent_ops *, void *)
+tevent_debug: void (struct tevent_context *, enum tevent_debug_level, const 
char *, ...)
+tevent_fd_get_flags: uint16_t (struct tevent_fd *)
+tevent_fd_set_auto_close: void (struct tevent_fd *)
+tevent_fd_set_close_fn: void (struct tevent_fd *, tevent_fd_close_fn_t)
+tevent_fd_set_flags: void (struct tevent_fd *, uint16_t)
+tevent_get_trace_callback: void (struct tevent_context *, 
tevent_trace_callback_t *, void *)
+tevent_loop_allow_nesting: void (struct tevent_context *)
+tevent_loop_set_nesting_hook: void (struct tevent_context *, 
tevent_nesting_hook, void *)
+tevent_num_signals: size_t (void)
+tevent_queue_add: bool (struct tevent_queue *, struct tevent_context *, struct 
tevent_req *, tevent_queue_trigger_fn_t, void *)
+tevent_queue_add_entry: struct tevent_queue_entry *(struct tevent_queue *, 
struct tevent_context *, struct tevent_req *, tevent_queue_trigger_fn_t, void *)
+tevent_queue_add_optimize_empty: struct tevent_queue_entry *(struct 
tevent_queue *, struct tevent_context *, struct tevent_req *, 
tevent_queue_trigger_fn_t, void *)
+tevent_queue_entry_untrigger: void (struct tevent_queue_entry *)
+tevent_queue_length: size_t (struct tevent_queue *)
+tevent_queue_running: bool (struct tevent_queue *)
+tevent_queue_start: void (struct tevent_queue *)
+tevent_queue_stop: void (struct tevent_queue *)
+tevent_queue_wait_recv: bool (struct tevent_req *)
+tevent_queue_wait_send: struct tevent_req *(TALLOC_CTX *, struct 
tevent_context *, struct tevent_queue *)
+tevent_re_initialise: int (struct tevent_context *)
+tevent_register_backend: bool (const char *, const struct tevent_ops *)
+tevent_req_default_print: char *(struct tevent_req *, TALLOC_CTX *)
+tevent_req_defer_callback: void (struct tevent_req *, struct tevent_context *)
+tevent_req_is_error: bool (struct tevent_req *, enum tevent_req_state *, 
uint64_t *)
+tevent_req_is_in_progress: bool (struct tevent_req *)
+tevent_req_poll: bool (struct tevent_req *, struct tevent_context *)
+tevent_req_post: struct tevent_req *(struct tevent_req *, struct 
tevent_context *)
+tevent_req_print: char *(TALLOC_CTX *, struct tevent_req *)
+tevent_req_received: void (struct tevent_req *)
+tevent_req_reset_endtime: void (struct tevent_req *)
+tevent_req_set_callback: void (struct tevent_req *, tevent_req_fn, void *)
+tevent_req_set_cancel_fn: void (struct tevent_req *, tevent_req_cancel_fn)
+tevent_req_set_cleanup_fn: void (struct tevent_req *, tevent_req_cleanup_fn)
+tevent_req_set_endtime: bool (struct tevent_req *, struct tevent_context *, 
struct timeval)
+tevent_req_set_print_fn: void (struct tevent_req *, tevent_req_print_fn)
+tevent_sa_info_queue_count: size_t (void)
+tevent_set_abort_fn: void (void (*)(const char *))
+tevent_set_debug: int (struct tevent_context *, void (*)(void *, enum 
tevent_debug_level, const char *, va_list), void *)
+tevent_set_debug_stderr: int (struct tevent_context *)
+tevent_set_default_backend: void (const char *)
+tevent_set_trace_callback: void (struct tevent_context *, 
tevent_trace_callback_t, void *)
+tevent_signal_support: bool (struct tevent_context *)
+tevent_thread_proxy_create: struct tevent_thread_proxy *(struct tevent_context 
*)
+tevent_thread_proxy_schedule: void (struct tevent_thread_proxy *, struct 
tevent_immediate **, tevent_immediate_handler_t, void *)
+tevent_threaded_context_create: struct tevent_threaded_context *(TALLOC_CTX *, 
struct tevent_context *)
+tevent_timeval_add: struct timeval (const struct timeval *, uint32_t, uint32_t)
+tevent_timeval_compare: int (const struct timeval *, const struct timeval *)
+tevent_timeval_current: struct timeval (void)
+tevent_timeval_current_ofs: struct timeval (uint32_t, uint32_t)
+tevent_timeval_is_zero: bool (const struct timeval *)
+tevent_timeval_set: struct timeval (uint32_t, uint32_t)
+tevent_timeval_until: struct timeval (const struct timeval *, const struct 
timeval *)
+tevent_timeval_zero: struct timeval (void)
+tevent_trace_point_callback: void (struct tevent_context *, enum 
tevent_trace_point)
+tevent_update_timer: void (struct tevent_timer *, struct timeval)
+tevent_wakeup_recv: bool (struct tevent_req *)
+tevent_wakeup_send: struct tevent_req *(TALLOC_CTX *, struct tevent_context *, 
struct timeval)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/buildtools/wafsamba/nothreads.py 
new/tevent-0.9.36/buildtools/wafsamba/nothreads.py
--- old/tevent-0.9.34/buildtools/wafsamba/nothreads.py  2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.36/buildtools/wafsamba/nothreads.py  2018-02-23 
11:28:56.000000000 +0100
@@ -43,7 +43,7 @@
         if tsk.__class__.stat: ret = tsk.__class__.stat(tsk)
         # actual call to task's run() function
         else: ret = tsk.call_run()
-    except Exception, e:
+    except Exception as e:
         tsk.err_msg = Utils.ex_stack()
         tsk.hasrun = EXCEPTION
 
@@ -177,7 +177,7 @@
 
             try:
                 st = tsk.runnable_status()
-            except Exception, e:
+            except Exception as e:
                 self.processed += 1
                 if self.stop and not Options.options.keep:
                     tsk.hasrun = SKIPPED
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/buildtools/wafsamba/samba_autoconf.py 
new/tevent-0.9.36/buildtools/wafsamba/samba_autoconf.py
--- old/tevent-0.9.34/buildtools/wafsamba/samba_autoconf.py     2016-10-07 
06:45:35.000000000 +0200
+++ new/tevent-0.9.36/buildtools/wafsamba/samba_autoconf.py     2018-02-23 
11:28:56.000000000 +0100
@@ -454,7 +454,8 @@
 
 @conf
 def CHECK_STRUCTURE_MEMBER(conf, structname, member,
-                           always=False, define=None, headers=None):
+                           always=False, define=None, headers=None,
+                           lib=None):
     '''check for a structure member'''
     if define is None:
         define = 'HAVE_%s' % member.upper()
@@ -463,6 +464,7 @@
                       define,
                       execute=False,
                       link=False,
+                      lib=lib,
                       always=always,
                       headers=headers,
                       local_include=False,
@@ -473,10 +475,13 @@
 def CHECK_CFLAGS(conf, cflags, fragment='int main(void) { return 0; }\n'):
     '''check if the given cflags are accepted by the compiler
     '''
+    check_cflags = TO_LIST(cflags)
+    if 'WERROR_CFLAGS' in conf.env:
+        check_cflags.extend(conf.env['WERROR_CFLAGS'])
     return conf.check(fragment=fragment,
                       execute=0,
                       type='nolink',
-                      ccflags=cflags,
+                      ccflags=check_cflags,
                       msg="Checking compiler accepts %s" % cflags)
 
 @conf
@@ -708,7 +713,9 @@
                         testflags=True)
 
         conf.ADD_CFLAGS('-Wformat=2 -Wno-format-y2k', testflags=True)
-        conf.ADD_CFLAGS('-Werror=format-security -Wformat-security', 
testflags=True)
+        conf.ADD_CFLAGS('-Wno-format-zero-length', testflags=True)
+        conf.ADD_CFLAGS('-Werror=format-security -Wformat-security',
+                        testflags=True, prereq_flags='-Wformat')
         # This check is because for ldb_search(), a NULL format string
         # is not an error, but some compilers complain about that.
         if CHECK_CFLAGS(conf, ["-Werror=format", "-Wformat=2"], '''
@@ -769,14 +776,15 @@
             conf.env[name] = conf.env['PREFIX'] + default
 
 @conf
-def ADD_NAMED_CFLAGS(conf, name, flags, testflags=False):
+def ADD_NAMED_CFLAGS(conf, name, flags, testflags=False, prereq_flags=[]):
     '''add some CFLAGS to the command line
        optionally set testflags to ensure all the flags work
     '''
+    prereq_flags = TO_LIST(prereq_flags)
     if testflags:
         ok_flags=[]
         for f in flags.split():
-            if CHECK_CFLAGS(conf, f):
+            if CHECK_CFLAGS(conf, [f] + prereq_flags):
                 ok_flags.append(f)
         flags = ok_flags
     if not name in conf.env:
@@ -784,11 +792,12 @@
     conf.env[name].extend(TO_LIST(flags))
 
 @conf
-def ADD_CFLAGS(conf, flags, testflags=False):
+def ADD_CFLAGS(conf, flags, testflags=False, prereq_flags=[]):
     '''add some CFLAGS to the command line
        optionally set testflags to ensure all the flags work
     '''
-    ADD_NAMED_CFLAGS(conf, 'EXTRA_CFLAGS', flags, testflags=testflags)
+    ADD_NAMED_CFLAGS(conf, 'EXTRA_CFLAGS', flags, testflags=testflags,
+                     prereq_flags=prereq_flags)
 
 @conf
 def ADD_LDFLAGS(conf, flags, testflags=False):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/buildtools/wafsamba/samba_conftests.py 
new/tevent-0.9.36/buildtools/wafsamba/samba_conftests.py
--- old/tevent-0.9.34/buildtools/wafsamba/samba_conftests.py    2017-04-28 
10:57:26.000000000 +0200
+++ new/tevent-0.9.36/buildtools/wafsamba/samba_conftests.py    2018-02-23 
11:28:56.000000000 +0100
@@ -50,7 +50,7 @@
     ret = None
     try:
         ret = self.run_c_code(*k, **kw)
-    except Configure.ConfigurationError, e:
+    except Configure.ConfigurationError as e:
         self.check_message_2(kw['errmsg'], 'YELLOW')
         if 'mandatory' in kw and kw['mandatory']:
             if Logs.verbose > 1:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/buildtools/wafsamba/samba_dist.py 
new/tevent-0.9.36/buildtools/wafsamba/samba_dist.py
--- old/tevent-0.9.34/buildtools/wafsamba/samba_dist.py 2017-08-24 
13:27:53.000000000 +0200
+++ new/tevent-0.9.36/buildtools/wafsamba/samba_dist.py 2018-02-23 
11:28:56.000000000 +0100
@@ -167,7 +167,7 @@
         absdir = os.path.join(srcdir, dir)
         try:
             files = vcs_dir_contents(absdir)
-        except Exception, e:
+        except Exception as e:
             Logs.error('unable to get contents of %s: %s' % (absdir, e))
             sys.exit(1)
         add_files_to_tarball(tar, srcdir, dir, dist_base, destdir, blacklist, 
files)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/buildtools/wafsamba/samba_python.py 
new/tevent-0.9.36/buildtools/wafsamba/samba_python.py
--- old/tevent-0.9.34/buildtools/wafsamba/samba_python.py       2017-04-28 
10:57:26.000000000 +0200
+++ new/tevent-0.9.36/buildtools/wafsamba/samba_python.py       2018-01-13 
08:07:51.000000000 +0100
@@ -109,6 +109,7 @@
                  public_deps='',
                  realname=None,
                  cflags='',
+                 cflags_end=None,
                  includes='',
                  init_function_sentinel=None,
                  local_include=True,
@@ -154,6 +155,7 @@
                       public_deps=public_deps,
                       includes=includes,
                       cflags=cflags,
+                      cflags_end=cflags_end,
                       local_include=local_include,
                       vars=vars,
                       realname=realname,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/tevent-0.9.34/buildtools/wafsamba/samba_third_party.py 
new/tevent-0.9.36/buildtools/wafsamba/samba_third_party.py
--- old/tevent-0.9.34/buildtools/wafsamba/samba_third_party.py  2017-04-28 
10:57:26.000000000 +0200
+++ new/tevent-0.9.36/buildtools/wafsamba/samba_third_party.py  2018-01-13 
08:07:51.000000000 +0100
@@ -39,3 +39,28 @@
     return conf.CHECK_BUNDLED_SYSTEM_PKG('cmocka', minversion='1.1.1')
 
 Build.BuildContext.CHECK_CMOCKA = CHECK_CMOCKA
+
+@conf
+def CHECK_SOCKET_WRAPPER(conf):
+    return conf.CHECK_BUNDLED_SYSTEM_PKG('socket_wrapper', minversion='1.1.9')
+Build.BuildContext.CHECK_SOCKET_WRAPPER = CHECK_SOCKET_WRAPPER
+
+@conf
+def CHECK_NSS_WRAPPER(conf):
+    return conf.CHECK_BUNDLED_SYSTEM_PKG('nss_wrapper', minversion='1.1.3')
+Build.BuildContext.CHECK_NSS_WRAPPER = CHECK_NSS_WRAPPER
+
+@conf
+def CHECK_RESOLV_WRAPPER(conf):
+    return conf.CHECK_BUNDLED_SYSTEM_PKG('resolv_wrapper', minversion='1.1.4')
+Build.BuildContext.CHECK_RESOLV_WRAPPER = CHECK_RESOLV_WRAPPER
+
+@conf
+def CHECK_UID_WRAPPER(conf):
+    return conf.CHECK_BUNDLED_SYSTEM_PKG('uid_wrapper', minversion='1.2.4')
+Build.BuildContext.CHECK_UID_WRAPPER = CHECK_UID_WRAPPER
+
+@conf
+def CHECK_PAM_WRAPPER(conf):
+    return conf.CHECK_BUNDLED_SYSTEM_PKG('pam_wrapper', minversion='1.0.4')
+Build.BuildContext.CHECK_PAM_WRAPPER = CHECK_PAM_WRAPPER
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/buildtools/wafsamba/wafsamba.py 
new/tevent-0.9.36/buildtools/wafsamba/wafsamba.py
--- old/tevent-0.9.34/buildtools/wafsamba/wafsamba.py   2017-10-10 
09:08:20.000000000 +0200
+++ new/tevent-0.9.36/buildtools/wafsamba/wafsamba.py   2018-02-23 
11:28:56.000000000 +0100
@@ -112,6 +112,7 @@
                   vnum=None,
                   soname=None,
                   cflags='',
+                  cflags_end=None,
                   ldflags='',
                   external_library=False,
                   realname=None,
@@ -195,6 +196,7 @@
                         private_headers= private_headers,
                         header_path    = header_path,
                         cflags         = cflags,
+                        cflags_end     = cflags_end,
                         group          = subsystem_group,
                         autoproto      = autoproto,
                         autoproto_extra_source=autoproto_extra_source,
@@ -898,7 +900,7 @@
             try:
                 os.makedirs(destpath)
                 os.chmod(destpath, chmod)
-            except OSError, e:
+            except OSError as e:
                 if not os.path.isdir(destpath):
                     raise Utils.WafError("Cannot create the folder '%s' 
(error: %s)" % (path, e))
 Build.BuildContext.INSTALL_DIR = INSTALL_DIR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/buildtools/wafsamba/wscript 
new/tevent-0.9.36/buildtools/wafsamba/wscript
--- old/tevent-0.9.34/buildtools/wafsamba/wscript       2017-04-28 
10:57:26.000000000 +0200
+++ new/tevent-0.9.36/buildtools/wafsamba/wscript       2018-02-23 
11:28:56.000000000 +0100
@@ -313,10 +313,6 @@
 
     conf.env.GIT_LOCAL_CHANGES = Options.options.GIT_LOCAL_CHANGES
 
-    conf.CHECK_COMMAND(['uname', '-a'],
-                       msg='Checking build system',
-                       define='BUILD_SYSTEM',
-                       on_target=False)
     conf.CHECK_UNAME()
 
     # see if we can compile and run a simple C program
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/echo_server.c 
new/tevent-0.9.36/echo_server.c
--- old/tevent-0.9.34/echo_server.c     2016-07-28 09:17:50.000000000 +0200
+++ new/tevent-0.9.36/echo_server.c     2018-01-13 08:07:51.000000000 +0100
@@ -118,6 +118,7 @@
                tevent_req_error(req, errno);
                return;
        }
+       smb_set_close_on_exec(ret);
        state->sock = ret;
        tevent_req_done(req);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/lib/replace/system/nis.h 
new/tevent-0.9.36/lib/replace/system/nis.h
--- old/tevent-0.9.34/lib/replace/system/nis.h  1970-01-01 01:00:00.000000000 
+0100
+++ new/tevent-0.9.36/lib/replace/system/nis.h  2018-02-23 11:28:56.000000000 
+0100
@@ -0,0 +1,83 @@
+/*
+   Unix SMB/CIFS implementation.
+
+   nis system include wrappers
+
+   Copyright (C) Andrew Tridgell 2004
+
+     ** NOTE! The following LGPL license applies to the replace
+     ** library. This does NOT imply that all of Samba is released
+     ** under the LGPL
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 3 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _nis_passwd_h
+#define _nis_passwd_h
+
+#if defined(HAVE_RPC_RPC_H)
+/*
+ * Check for AUTH_ERROR define conflict with rpc/rpc.h in prot.h.
+ */
+#if defined(HAVE_SYS_SECURITY_H) && defined(HAVE_RPC_AUTH_ERROR_CONFLICT)
+#undef AUTH_ERROR
+#endif /* HAVE_SYS_SECURITY_H && HAVE_RPC_AUTH_ERROR_CONFLICT */
+/*
+ * HP-UX 11.X has TCP_NODELAY and TCP_MAXSEG defined in <netinet/tcp.h> which
+ * was included above.  However <rpc/rpc.h> includes <sys/xti.h> which defines
+ * them again without checking if they already exsist.  This generates
+ * two "Redefinition of macro" warnings for every single .c file that is
+ * compiled.
+ */
+#if defined(HPUX) && defined(TCP_NODELAY)
+#undef TCP_NODELAY
+#endif /* HPUX && TCP_NODELAY */
+
+#if defined(HPUX) && defined(TCP_MAXSEG)
+#undef TCP_MAXSEG
+#endif /* HPUX && TCP_MAXSEG */
+
+#include <rpc/rpc.h>
+#endif /* HAVE_RPC_RPC_H */
+
+
+#if defined (HAVE_NETGROUP)
+
+#if defined(HAVE_RPCSVC_YP_PROT_H)
+/*
+ * HP-UX 11.X has TCP_NODELAY and TCP_MAXSEG defined in <netinet/tcp.h> which
+ * was included above.  However <rpc/rpc.h> includes <sys/xti.h> which defines
+ * them again without checking if they already exsist.  This generates
+ * two "Redefinition of macro" warnings for every single .c file that is
+ * compiled.
+ */
+#if defined(HPUX) && defined(TCP_NODELAY)
+#undef TCP_NODELAY
+#endif /* HPUX && TCP_MAXSEG */
+
+#if defined(HPUX) && defined(TCP_MAXSEG)
+#undef TCP_MAXSEG
+#endif /* HPUX && TCP_MAXSEG */
+
+#include <rpcsvc/yp_prot.h>
+
+#endif /* HAVE_RPCSVC_YP_PROT_H */
+
+#if defined(HAVE_RPCSVC_YPCLNT_H)
+#include <rpcsvc/ypclnt.h>
+#endif /* HAVE_RPCSVC_YPCLNT_H */
+
+#endif /* HAVE_NETGROUP */
+
+#endif /* _nis_passwd_h */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/lib/replace/system/readline.h 
new/tevent-0.9.36/lib/replace/system/readline.h
--- old/tevent-0.9.34/lib/replace/system/readline.h     2014-09-16 
20:04:31.000000000 +0200
+++ new/tevent-0.9.36/lib/replace/system/readline.h     2018-01-13 
08:07:51.000000000 +0100
@@ -26,6 +26,9 @@
 
 #ifdef HAVE_LIBREADLINE
 #  ifdef HAVE_READLINE_READLINE_H
+#    ifdef HAVE_READLINE_READLINE_WORKAROUND
+#      define _FUNCTION_DEF
+#    endif
 #    include <readline/readline.h>
 #    ifdef HAVE_READLINE_HISTORY_H
 #      include <readline/history.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/lib/replace/system/wscript_configure 
new/tevent-0.9.36/lib/replace/system/wscript_configure
--- old/tevent-0.9.34/lib/replace/system/wscript_configure      2014-09-16 
20:04:31.000000000 +0200
+++ new/tevent-0.9.36/lib/replace/system/wscript_configure      2018-02-23 
11:28:56.000000000 +0100
@@ -1,8 +1,5 @@
 #!/usr/bin/env python
 
-conf.CHECK_HEADERS('sys/capability.h')
-conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r')
-
 # solaris varients of getXXent_r
 conf.CHECK_C_PROTOTYPE('getpwent_r',
                        'struct passwd *getpwent_r(struct passwd *src, char 
*buf, int buflen)',
@@ -19,8 +16,3 @@
                        'struct group *getgrent_r(struct group *src, char *buf, 
size_t buflen)',
                        define='SOLARIS_GETGRENT_R', headers='grp.h')
 
-conf.CHECK_FUNCS('getgrouplist')
-conf.CHECK_HEADERS('ctype.h locale.h langinfo.h')
-conf.CHECK_HEADERS('fnmatch.h locale.h langinfo.h')
-conf.CHECK_HEADERS('sys/ipc.h sys/mman.h sys/shm.h')
-conf.CHECK_HEADERS('termios.h termio.h sys/termio.h')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/lib/replace/wscript 
new/tevent-0.9.36/lib/replace/wscript
--- old/tevent-0.9.34/lib/replace/wscript       2017-11-13 10:57:29.000000000 
+0100
+++ new/tevent-0.9.36/lib/replace/wscript       2018-02-23 11:28:56.000000000 
+0100
@@ -5,7 +5,7 @@
 
 blddir = 'bin'
 
-import sys, os
+import Logs, sys, os
 
 # find the buildtools directory
 srcdir = '.'
@@ -65,14 +65,42 @@
                         headers='sys/inotify.h')
 
     conf.CHECK_HEADERS('security/pam_appl.h zlib.h asm/unistd.h')
-    conf.CHECK_HEADERS('aio.h sys/unistd.h rpc/rpc.h rpc/nettype.h alloca.h 
float.h')
+    conf.CHECK_HEADERS('aio.h sys/unistd.h alloca.h float.h')
 
-    conf.CHECK_HEADERS('rpcsvc/nis.h rpcsvc/ypclnt.h sys/sysctl.h')
+    conf.SET_TARGET_TYPE('tirpc', 'EMPTY')
+    conf.CHECK_HEADERS('rpc/rpc.h rpc/nettype.h')
+    if not conf.CONFIG_SET('HAVE_RPC_RPC_H'):
+        if conf.CHECK_CFG(package='libtirpc', args='--cflags --libs',
+                       msg='Checking for libtirpc headers',
+                       uselib_store='TIRPC'):
+            conf.CHECK_HEADERS('rpc/rpc.h rpc/nettype.h', lib='tirpc', 
together=True)
+            conf.SET_TARGET_TYPE('tirpc', 'SYSLIB')
+    if not conf.CONFIG_SET('HAVE_RPC_RPC_H'):
+        if conf.CHECK_CFG(package='libntirpc', args='--cflags',
+                       msg='Checking for libntirpc headers',
+                       uselib_store='TIRPC'):
+            conf.CHECK_HEADERS('rpc/rpc.h rpc/nettype.h', lib='tirpc', 
together=True)
+            conf.SET_TARGET_TYPE('tirpc', 'SYSLIB')
+    if not conf.CONFIG_SET('HAVE_RPC_RPC_H'):
+            Logs.error('ERROR: No rpc/rpc.h header found, tirpc or libntirpc 
missing?')
+            sys.exit(1)
+
+    conf.SET_TARGET_TYPE('nsl', 'EMPTY')
+    conf.CHECK_HEADERS('rpc/rpc.h rpcsvc/yp_prot.h', lib='tirpc')
+    if not conf.CONFIG_SET('HAVE_RPCSVC_YP_PROT_H'):
+        if conf.CHECK_CFG(package='libnsl', args='--cflags --libs',
+                          msg='Checking for libnsl',
+                          uselib_store='NSL'):
+            conf.SET_TARGET_TYPE('nsl', 'SYSLIB')
+            conf.CHECK_HEADERS('rpc/rpc.h rpcsvc/yp_prot.h', lib='tirpc nsl')
+        else:
+            conf.SET_TARGET_TYPE('nsl', 'SYSLIB')
+    conf.CHECK_HEADERS('rpcsvc/nis.h rpcsvc/ypclnt.h', lib='tirpc nsl')
+
+    conf.CHECK_HEADERS('sys/sysctl.h')
     conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h 
sys/sysmacros.h')
     conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
 
-    conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', 
define='HAVE_RPCSVC_YP_PROT_H')
-
     conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
     conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
     conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
@@ -84,6 +112,9 @@
     if conf.CHECK_CFLAGS('-Wno-format-truncation'):
         conf.define('HAVE_WNO_FORMAT_TRUNCATION', '1')
 
+    if conf.CHECK_CFLAGS('-Wno-unused-function'):
+        conf.define('HAVE_WNO_UNUSED_FUNCTION', '1')
+
     # Check for process set name support
     conf.CHECK_CODE('''
                     #include <sys/prctl.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/tevent-0.9.34/lib/talloc/ABI/pytalloc-util-2.1.11.sigs 
new/tevent-0.9.36/lib/talloc/ABI/pytalloc-util-2.1.11.sigs
--- old/tevent-0.9.34/lib/talloc/ABI/pytalloc-util-2.1.11.sigs  1970-01-01 
01:00:00.000000000 +0100
+++ new/tevent-0.9.36/lib/talloc/ABI/pytalloc-util-2.1.11.sigs  2018-01-13 
08:07:51.000000000 +0100
@@ -0,0 +1,16 @@
+_pytalloc_check_type: int (PyObject *, const char *)
+_pytalloc_get_mem_ctx: TALLOC_CTX *(PyObject *)
+_pytalloc_get_ptr: void *(PyObject *)
+_pytalloc_get_type: void *(PyObject *, const char *)
+pytalloc_BaseObject_PyType_Ready: int (PyTypeObject *)
+pytalloc_BaseObject_check: int (PyObject *)
+pytalloc_BaseObject_size: size_t (void)
+pytalloc_CObject_FromTallocPtr: PyObject *(void *)
+pytalloc_Check: int (PyObject *)
+pytalloc_GenericObject_reference_ex: PyObject *(TALLOC_CTX *, void *)
+pytalloc_GenericObject_steal_ex: PyObject *(TALLOC_CTX *, void *)
+pytalloc_GetBaseObjectType: PyTypeObject *(void)
+pytalloc_GetObjectType: PyTypeObject *(void)
+pytalloc_reference_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
+pytalloc_steal: PyObject *(PyTypeObject *, void *)
+pytalloc_steal_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/tevent-0.9.34/lib/talloc/ABI/pytalloc-util.py3-2.1.11.sigs 
new/tevent-0.9.36/lib/talloc/ABI/pytalloc-util.py3-2.1.11.sigs
--- old/tevent-0.9.34/lib/talloc/ABI/pytalloc-util.py3-2.1.11.sigs      
1970-01-01 01:00:00.000000000 +0100
+++ new/tevent-0.9.36/lib/talloc/ABI/pytalloc-util.py3-2.1.11.sigs      
2018-01-13 08:07:51.000000000 +0100
@@ -0,0 +1,15 @@
+_pytalloc_check_type: int (PyObject *, const char *)
+_pytalloc_get_mem_ctx: TALLOC_CTX *(PyObject *)
+_pytalloc_get_ptr: void *(PyObject *)
+_pytalloc_get_type: void *(PyObject *, const char *)
+pytalloc_BaseObject_PyType_Ready: int (PyTypeObject *)
+pytalloc_BaseObject_check: int (PyObject *)
+pytalloc_BaseObject_size: size_t (void)
+pytalloc_Check: int (PyObject *)
+pytalloc_GenericObject_reference_ex: PyObject *(TALLOC_CTX *, void *)
+pytalloc_GenericObject_steal_ex: PyObject *(TALLOC_CTX *, void *)
+pytalloc_GetBaseObjectType: PyTypeObject *(void)
+pytalloc_GetObjectType: PyTypeObject *(void)
+pytalloc_reference_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
+pytalloc_steal: PyObject *(PyTypeObject *, void *)
+pytalloc_steal_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/lib/talloc/ABI/talloc-2.1.11.sigs 
new/tevent-0.9.36/lib/talloc/ABI/talloc-2.1.11.sigs
--- old/tevent-0.9.34/lib/talloc/ABI/talloc-2.1.11.sigs 1970-01-01 
01:00:00.000000000 +0100
+++ new/tevent-0.9.36/lib/talloc/ABI/talloc-2.1.11.sigs 2018-01-13 
08:07:51.000000000 +0100
@@ -0,0 +1,65 @@
+_talloc: void *(const void *, size_t)
+_talloc_array: void *(const void *, size_t, unsigned int, const char *)
+_talloc_free: int (void *, const char *)
+_talloc_get_type_abort: void *(const void *, const char *, const char *)
+_talloc_memdup: void *(const void *, const void *, size_t, const char *)
+_talloc_move: void *(const void *, const void *)
+_talloc_pooled_object: void *(const void *, size_t, const char *, unsigned 
int, size_t)
+_talloc_realloc: void *(const void *, void *, size_t, const char *)
+_talloc_realloc_array: void *(const void *, void *, size_t, unsigned int, 
const char *)
+_talloc_reference_loc: void *(const void *, const void *, const char *)
+_talloc_set_destructor: void (const void *, int (*)(void *))
+_talloc_steal_loc: void *(const void *, const void *, const char *)
+_talloc_zero: void *(const void *, size_t, const char *)
+_talloc_zero_array: void *(const void *, size_t, unsigned int, const char *)
+talloc_asprintf: char *(const void *, const char *, ...)
+talloc_asprintf_append: char *(char *, const char *, ...)
+talloc_asprintf_append_buffer: char *(char *, const char *, ...)
+talloc_autofree_context: void *(void)
+talloc_check_name: void *(const void *, const char *)
+talloc_disable_null_tracking: void (void)
+talloc_enable_leak_report: void (void)
+talloc_enable_leak_report_full: void (void)
+talloc_enable_null_tracking: void (void)
+talloc_enable_null_tracking_no_autofree: void (void)
+talloc_find_parent_byname: void *(const void *, const char *)
+talloc_free_children: void (void *)
+talloc_get_name: const char *(const void *)
+talloc_get_size: size_t (const void *)
+talloc_increase_ref_count: int (const void *)
+talloc_init: void *(const char *, ...)
+talloc_is_parent: int (const void *, const void *)
+talloc_named: void *(const void *, size_t, const char *, ...)
+talloc_named_const: void *(const void *, size_t, const char *)
+talloc_parent: void *(const void *)
+talloc_parent_name: const char *(const void *)
+talloc_pool: void *(const void *, size_t)
+talloc_realloc_fn: void *(const void *, void *, size_t)
+talloc_reference_count: size_t (const void *)
+talloc_reparent: void *(const void *, const void *, const void *)
+talloc_report: void (const void *, FILE *)
+talloc_report_depth_cb: void (const void *, int, int, void (*)(const void *, 
int, int, int, void *), void *)
+talloc_report_depth_file: void (const void *, int, int, FILE *)
+talloc_report_full: void (const void *, FILE *)
+talloc_set_abort_fn: void (void (*)(const char *))
+talloc_set_log_fn: void (void (*)(const char *))
+talloc_set_log_stderr: void (void)
+talloc_set_memlimit: int (const void *, size_t)
+talloc_set_name: const char *(const void *, const char *, ...)
+talloc_set_name_const: void (const void *, const char *)
+talloc_show_parents: void (const void *, FILE *)
+talloc_strdup: char *(const void *, const char *)
+talloc_strdup_append: char *(char *, const char *)
+talloc_strdup_append_buffer: char *(char *, const char *)
+talloc_strndup: char *(const void *, const char *, size_t)
+talloc_strndup_append: char *(char *, const char *, size_t)
+talloc_strndup_append_buffer: char *(char *, const char *, size_t)
+talloc_test_get_magic: int (void)
+talloc_total_blocks: size_t (const void *)
+talloc_total_size: size_t (const void *)
+talloc_unlink: int (const void *, void *)
+talloc_vasprintf: char *(const void *, const char *, va_list)
+talloc_vasprintf_append: char *(char *, const char *, va_list)
+talloc_vasprintf_append_buffer: char *(char *, const char *, va_list)
+talloc_version_major: int (void)
+talloc_version_minor: int (void)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/lib/talloc/talloc.c 
new/tevent-0.9.36/lib/talloc/talloc.c
--- old/tevent-0.9.34/lib/talloc/talloc.c       2017-02-27 20:23:11.000000000 
+0100
+++ new/tevent-0.9.36/lib/talloc/talloc.c       2018-01-13 08:07:51.000000000 
+0100
@@ -75,12 +75,13 @@
 #define TALLOC_MAGIC_REFERENCE ((const char *)1)
 
 #define TALLOC_MAGIC_BASE 0xe814ec70
-static unsigned int talloc_magic = (
-       ~TALLOC_FLAG_MASK & (
-               TALLOC_MAGIC_BASE +
-               (TALLOC_BUILD_VERSION_MAJOR << 24) +
-               (TALLOC_BUILD_VERSION_MINOR << 16) +
-               (TALLOC_BUILD_VERSION_RELEASE << 8)));
+#define TALLOC_MAGIC_NON_RANDOM ( \
+       ~TALLOC_FLAG_MASK & ( \
+               TALLOC_MAGIC_BASE + \
+               (TALLOC_BUILD_VERSION_MAJOR << 24) + \
+               (TALLOC_BUILD_VERSION_MINOR << 16) + \
+               (TALLOC_BUILD_VERSION_RELEASE << 8)))
+static unsigned int talloc_magic = TALLOC_MAGIC_NON_RANDOM;
 
 /* by default we abort when given a bad pointer (such as when talloc_free() is 
called
    on a pointer that came from malloc() */
@@ -332,6 +333,48 @@
        return talloc_magic;
 }
 
+static inline void _talloc_chunk_set_free(struct talloc_chunk *tc,
+                             const char *location)
+{
+       /*
+        * Mark this memory as free, and also over-stamp the talloc
+        * magic with the old-style magic.
+        *
+        * Why?  This tries to avoid a memory read use-after-free from
+        * disclosing our talloc magic, which would then allow an
+        * attacker to prepare a valid header and so run a destructor.
+        *
+        */
+       tc->flags = TALLOC_MAGIC_NON_RANDOM | TALLOC_FLAG_FREE
+               | (tc->flags & TALLOC_FLAG_MASK);
+
+       /* we mark the freed memory with where we called the free
+        * from. This means on a double free error we can report where
+        * the first free came from
+        */
+       if (location) {
+               tc->name = location;
+       }
+}
+
+static inline void _talloc_chunk_set_not_free(struct talloc_chunk *tc)
+{
+       /*
+        * Mark this memory as not free.
+        *
+        * Why? This is memory either in a pool (and so available for
+        * talloc's re-use or after the realloc().  We need to mark
+        * the memory as free() before any realloc() call as we can't
+        * write to the memory after that.
+        *
+        * We put back the normal magic instead of the 'not random'
+        * magic.
+        */
+
+       tc->flags = talloc_magic |
+               ((tc->flags & TALLOC_FLAG_MASK) & ~TALLOC_FLAG_FREE);
+}
+
 static void (*talloc_log_fn)(const char *message);
 
 _PUBLIC_ void talloc_set_log_fn(void (*log_fn)(const char *message))
@@ -429,11 +472,6 @@
        talloc_abort_fn(reason);
 }
 
-static void talloc_abort_magic(unsigned magic)
-{
-       talloc_abort("Bad talloc magic value - wrong talloc version 
used/mixed");
-}
-
 static void talloc_abort_access_after_free(void)
 {
        talloc_abort("Bad talloc magic value - access after free");
@@ -450,19 +488,15 @@
        const char *pp = (const char *)ptr;
        struct talloc_chunk *tc = discard_const_p(struct talloc_chunk, pp - 
TC_HDR_SIZE);
        if (unlikely((tc->flags & (TALLOC_FLAG_FREE | ~TALLOC_FLAG_MASK)) != 
talloc_magic)) {
-               if ((tc->flags & (~TALLOC_FLAG_MASK)) == talloc_magic) {
-                       talloc_abort_magic(tc->flags & (~TALLOC_FLAG_MASK));
-                       return NULL;
-               }
-
-               if (tc->flags & TALLOC_FLAG_FREE) {
+               if ((tc->flags & (TALLOC_FLAG_FREE | ~TALLOC_FLAG_MASK))
+                   == (TALLOC_MAGIC_NON_RANDOM | TALLOC_FLAG_FREE)) {
                        talloc_log("talloc: access after free error - first 
free may be at %s\n", tc->name);
                        talloc_abort_access_after_free();
                        return NULL;
-               } else {
-                       talloc_abort_unknown_value();
-                       return NULL;
                }
+
+               talloc_abort_unknown_value();
+               return NULL;
        }
        return tc;
 }
@@ -947,13 +981,7 @@
        pool_tc = talloc_chunk_from_pool(pool);
        next_tc = tc_next_chunk(tc);
 
-       tc->flags |= TALLOC_FLAG_FREE;
-
-       /* we mark the freed memory with where we called the free
-        * from. This means on a double free error we can report where
-        * the first free came from
-        */
-       tc->name = location;
+       _talloc_chunk_set_free(tc, location);
 
        TC_INVALIDATE_FULL_CHUNK(tc);
 
@@ -1103,13 +1131,7 @@
 
        _tc_free_children_internal(tc, ptr, location);
 
-       tc->flags |= TALLOC_FLAG_FREE;
-
-       /* we mark the freed memory with where we called the free
-        * from. This means on a double free error we can report where
-        * the first free came from
-        */
-       tc->name = location;
+       _talloc_chunk_set_free(tc, location);
 
        if (tc->flags & TALLOC_FLAG_POOL) {
                struct talloc_pool_hdr *pool;
@@ -1806,8 +1828,22 @@
        }
 #endif
 
-       /* by resetting magic we catch users of the old memory */
-       tc->flags |= TALLOC_FLAG_FREE;
+       /*
+        * by resetting magic we catch users of the old memory
+        *
+        * We mark this memory as free, and also over-stamp the talloc
+        * magic with the old-style magic.
+        *
+        * Why?  This tries to avoid a memory read use-after-free from
+        * disclosing our talloc magic, which would then allow an
+        * attacker to prepare a valid header and so run a destructor.
+        *
+        * What else?  We have to re-stamp back a valid normal magic
+        * on this memory once realloc() is done, as it will have done
+        * a memcpy() into the new valid memory.  We can't do this in
+        * reverse as that would be a real use-after-free.
+        */
+       _talloc_chunk_set_free(tc, NULL);
 
 #if ALWAYS_REALLOC
        if (pool_hdr) {
@@ -1906,7 +1942,7 @@
 
                if (new_chunk_size == old_chunk_size) {
                        TC_UNDEFINE_GROW_CHUNK(tc, size);
-                       tc->flags &= ~TALLOC_FLAG_FREE;
+                       _talloc_chunk_set_not_free(tc);
                        tc->size = size;
                        return ptr;
                }
@@ -1921,7 +1957,7 @@
 
                        if (space_left >= space_needed) {
                                TC_UNDEFINE_GROW_CHUNK(tc, size);
-                               tc->flags &= ~TALLOC_FLAG_FREE;
+                               _talloc_chunk_set_not_free(tc);
                                tc->size = size;
                                pool_hdr->end = tc_next_chunk(tc);
                                return ptr;
@@ -1951,12 +1987,24 @@
 got_new_ptr:
 #endif
        if (unlikely(!new_ptr)) {
-               tc->flags &= ~TALLOC_FLAG_FREE;
+               /*
+                * Ok, this is a strange spot.  We have to put back
+                * the old talloc_magic and any flags, except the
+                * TALLOC_FLAG_FREE as this was not free'ed by the
+                * realloc() call after all
+                */
+               _talloc_chunk_set_not_free(tc);
                return NULL;
        }
 
+       /*
+        * tc is now the new value from realloc(), the old memory we
+        * can't access any more and was preemptively marked as
+        * TALLOC_FLAG_FREE before the call.  Now we mark it as not
+        * free again
+        */
        tc = (struct talloc_chunk *)new_ptr;
-       tc->flags &= ~TALLOC_FLAG_FREE;
+       _talloc_chunk_set_not_free(tc);
        if (malloced) {
                tc->flags &= ~TALLOC_FLAG_POOLMEM;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/lib/talloc/talloc.h 
new/tevent-0.9.36/lib/talloc/talloc.h
--- old/tevent-0.9.34/lib/talloc/talloc.h       2017-04-28 10:57:26.000000000 
+0200
+++ new/tevent-0.9.36/lib/talloc/talloc.h       2018-02-23 11:28:56.000000000 
+0100
@@ -1226,7 +1226,7 @@
  *
  * @code
  *     ptr = talloc_array(ctx, type, count);
- *     if (ptr) memset(ptr, sizeof(type) * count);
+ *     if (ptr) memset(ptr, 0, sizeof(type) * count);
  * @endcode
  */
 void *talloc_zero_array(const void *ctx, #type, unsigned count);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/lib/talloc/testsuite.c 
new/tevent-0.9.36/lib/talloc/testsuite.c
--- old/tevent-0.9.34/lib/talloc/testsuite.c    2017-02-27 20:23:11.000000000 
+0100
+++ new/tevent-0.9.36/lib/talloc/testsuite.c    2018-01-13 08:07:51.000000000 
+0100
@@ -2006,6 +2006,72 @@
        return true;
 }
 
+static void test_magic_free_protection_abort(const char *reason)
+{
+       /* exit with errcode 42 to communicate successful test to the parent 
process */
+       if (strcmp(reason, "Bad talloc magic value - access after free") == 0) {
+               _exit(42);
+       }
+       /* not 42 */
+       _exit(404);
+}
+
+static bool test_magic_free_protection(void)
+{
+       void *pool = talloc_pool(NULL, 1024);
+       int *p1, *p2, *p3;
+       pid_t pid;
+       int exit_status;
+
+       printf("test: magic_free_protection\n");
+       p1 = talloc(pool, int);
+       p2 = talloc(pool, int);
+
+       /* To avoid complaints from the compiler assign values to the p1 & p2. 
*/
+       *p1 = 6;
+       *p2 = 9;
+
+       p3 = talloc_realloc(pool, p2, int, 2048);
+       torture_assert("pool realloc 2048",
+                      p3 != p2,
+                      "failed: pointer not changed");
+
+       /*
+        * Now access the memory in the pool after the realloc().  It
+        * should be marked as free, so use of the old pointer should
+        * trigger the abort function
+        */
+       pid = fork();
+       if (pid == 0) {
+               talloc_set_abort_fn(test_magic_free_protection_abort);
+
+               talloc_get_name(p2);
+
+               /* Never reached. Make compilers happy */
+               return true;
+       }
+
+       while (wait(&exit_status) != pid);
+
+       if (!WIFEXITED(exit_status)) {
+               printf("Child exited through unexpected abnormal means\n");
+               return false;
+       }
+       if (WEXITSTATUS(exit_status) != 42) {
+               printf("Child exited with wrong exit status\n");
+               return false;
+       }
+       if (WIFSIGNALED(exit_status)) {
+               printf("Child recieved unexpected signal\n");
+               return false;
+       }
+
+       talloc_free(pool);
+
+       printf("success: magic_free_protection\n");
+       return true;
+}
+
 static void test_reset(void)
 {
        talloc_set_log_fn(test_log_stdout);
@@ -2092,6 +2158,8 @@
        ret &= test_autofree();
        test_reset();
        ret &= test_magic_protection();
+       test_reset();
+       ret &= test_magic_free_protection();
 
        test_reset();
        talloc_disable_null_tracking();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/lib/talloc/wscript 
new/tevent-0.9.36/lib/talloc/wscript
--- old/tevent-0.9.34/lib/talloc/wscript        2017-08-24 13:27:53.000000000 
+0200
+++ new/tevent-0.9.36/lib/talloc/wscript        2018-01-13 08:07:51.000000000 
+0100
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 
 APPNAME = 'talloc'
-VERSION = '2.1.10'
+VERSION = '2.1.11'
 
 
 blddir = 'bin'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/tevent.h new/tevent-0.9.36/tevent.h
--- old/tevent-0.9.34/tevent.h  2017-06-15 23:19:32.000000000 +0200
+++ new/tevent-0.9.36/tevent.h  2018-02-23 11:28:56.000000000 +0100
@@ -936,8 +936,8 @@
  *
  * @param[in]  req      The request to use.
  *
- * @return              This function returns true is the request is 
cancelable,
- *                      othererwise false is returned.
+ * @return              This function returns true if the request is
+ *                      cancelable, otherwise false is returned.
  *
  * @note Even if the function returns true, the caller need to wait
  *       for the function to complete normally.
@@ -1611,6 +1611,9 @@
  * already called tevent_req_notify_callback(), tevent_req_error(),
  * tevent_req_done() or a similar function.
  *
+ * The trigger function has no chance to see the returned
+ * queue_entry in the optimized case.
+ *
  * The request can be removed from the queue by calling talloc_free()
  * (or a similar function) on the returned queue entry.
  *
@@ -1641,6 +1644,28 @@
                                        void *private_data);
 
 /**
+ * @brief Untrigger an already triggered queue entry.
+ *
+ * If a trigger function detects that it needs to remain
+ * in the queue, it needs to call tevent_queue_stop()
+ * followed by tevent_queue_entry_untrigger().
+ *
+ * @note In order to call tevent_queue_entry_untrigger()
+ * the queue must be already stopped and the given queue_entry
+ * must be the first one in the queue! Otherwise it calls abort().
+ *
+ * @note You can't use this together with tevent_queue_add_optimize_empty()
+ * because the trigger function don't have access to the quene entry
+ * in the case of an empty queue.
+ *
+ * @param[in]  queue_entry The queue entry to rearm.
+ *
+ * @see tevent_queue_add_entry()
+ * @see tevent_queue_stop()
+ */
+void tevent_queue_entry_untrigger(struct tevent_queue_entry *entry);
+
+/**
  * @brief Start a tevent queue.
  *
  * The queue is started by default.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/tevent_internal.h 
new/tevent-0.9.36/tevent_internal.h
--- old/tevent-0.9.34/tevent_internal.h 2017-10-10 09:08:20.000000000 +0200
+++ new/tevent-0.9.36/tevent_internal.h 2018-01-13 08:07:51.000000000 +0100
@@ -235,7 +235,6 @@
        pthread_mutex_t event_ctx_mutex;
 #endif
        struct tevent_context *event_ctx;
-       int wakeup_fd;
 };
 
 struct tevent_debug_ops {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/tevent_queue.c 
new/tevent-0.9.36/tevent_queue.c
--- old/tevent-0.9.34/tevent_queue.c    2016-08-24 10:42:51.000000000 +0200
+++ new/tevent-0.9.36/tevent_queue.c    2018-02-23 11:28:56.000000000 +0100
@@ -266,6 +266,19 @@
                                         trigger, private_data, true);
 }
 
+void tevent_queue_entry_untrigger(struct tevent_queue_entry *entry)
+{
+       if (entry->queue->running) {
+               abort();
+       }
+
+       if (entry->queue->list != entry) {
+               abort();
+       }
+
+       entry->triggered = false;
+}
+
 void tevent_queue_start(struct tevent_queue *queue)
 {
        if (queue->running) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/tevent_threads.c 
new/tevent-0.9.36/tevent_threads.c
--- old/tevent-0.9.34/tevent_threads.c  2017-11-13 10:57:29.000000000 +0100
+++ new/tevent-0.9.36/tevent_threads.c  2018-01-13 08:07:51.000000000 +0100
@@ -424,7 +424,6 @@
                return NULL;
        }
        tctx->event_ctx = ev;
-       tctx->wakeup_fd = ev->wakeup_fd;
 
        ret = pthread_mutex_init(&tctx->event_ctx_mutex, NULL);
        if (ret != 0) {
@@ -489,14 +488,13 @@
        }
 
        DLIST_ADD_END(ev->scheduled_immediates, im);
+       wakeup_fd = ev->wakeup_fd;
 
        ret = pthread_mutex_unlock(&ev->scheduled_mutex);
        if (ret != 0) {
                abort();
        }
 
-       wakeup_fd = tctx->wakeup_fd;
-
        ret = pthread_mutex_unlock(&tctx->event_ctx_mutex);
        if (ret != 0) {
                abort();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.34/wscript new/tevent-0.9.36/wscript
--- old/tevent-0.9.34/wscript   2017-11-13 10:57:39.000000000 +0100
+++ new/tevent-0.9.36/wscript   2018-02-23 11:28:56.000000000 +0100
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 
 APPNAME = 'tevent'
-VERSION = '0.9.34'
+VERSION = '0.9.36'
 
 blddir = 'bin'
 



Reply via email to