upstream commit

move dispatch to struct ssh; ok djm@
diff --git a/dispatch.h b/dispatch.h
index 3e3d1a1..cd51dbc 100644
--- a/dispatch.h
+++ b/dispatch.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: dispatch.h,v 1.11 2006/04/20 09:27:09 djm Exp $ */
+/* $OpenBSD: dispatch.h,v 1.12 2015/01/19 20:07:45 markus Exp $ */
 
 /*
  * Copyright (c) 2000 Markus Friedl.  All rights reserved.
@@ -24,18 +24,35 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <signal.h>
+#ifndef DISPATCH_H
+#define DISPATCH_H
+
+#define DISPATCH_MAX	255
 
 enum {
 	DISPATCH_BLOCK,
 	DISPATCH_NONBLOCK
 };
 
-typedef void dispatch_fn(int, u_int32_t, void *);
+struct ssh;
 
-void	 dispatch_init(dispatch_fn *);
-void	 dispatch_set(int, dispatch_fn *);
-void	 dispatch_range(u_int, u_int, dispatch_fn *);
-void	 dispatch_run(int, volatile sig_atomic_t *, void *);
-void	 dispatch_protocol_error(int, u_int32_t, void *);
-void	 dispatch_protocol_ignore(int, u_int32_t, void *);
+typedef int dispatch_fn(int, u_int32_t, void *);
+
+int	dispatch_protocol_error(int, u_int32_t, void *);
+int	dispatch_protocol_ignore(int, u_int32_t, void *);
+void	ssh_dispatch_init(struct ssh *, dispatch_fn *);
+void	ssh_dispatch_set(struct ssh *, int, dispatch_fn *);
+void	ssh_dispatch_range(struct ssh *, u_int, u_int, dispatch_fn *);
+int	ssh_dispatch_run(struct ssh *, int, volatile sig_atomic_t *, void *);
+void	ssh_dispatch_run_fatal(struct ssh *, int, volatile sig_atomic_t *, void *);
+
+#define dispatch_init(dflt) \
+	ssh_dispatch_init(active_state, (dflt))
+#define dispatch_range(from, to, fn) \
+	ssh_dispatch_range(active_state, (from), (to), (fn))
+#define dispatch_set(type, fn) \
+	ssh_dispatch_set(active_state, (type), (fn))
+#define dispatch_run(mode, done, ctxt) \
+	ssh_dispatch_run_fatal(active_state, (mode), (done), (ctxt))
+
+#endif