]> andersk Git - openssh.git/blobdiff - nchan.h
- markus@cvs.openbsd.org 2001/05/17 21:34:15
[openssh.git] / nchan.h
diff --git a/nchan.h b/nchan.h
index 4e3a129b00455f7a98299cfe6e87c724f9d401d9..db04973f451e7d193ef6784222248671cf2232b2 100644 (file)
--- a/nchan.h
+++ b/nchan.h
@@ -1,4 +1,28 @@
-/* RCSID("$Id$"); */
+/*
+ * Copyright (c) 1999 Markus Friedl.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* RCSID("$OpenBSD: nchan.h,v 1.11 2001/05/04 23:47:34 markus Exp $"); */
 
 #ifndef NCHAN_H
 #define NCHAN_H
  * SSH Protocol 1.5 aka New Channel Protocol
  * Thanks to Martina, Axel and everyone who left Erlangen, leaving me bored.
  * Written by Markus Friedl in October 1999
- * 
+ *
  * Protocol versions 1.3 and 1.5 differ in the handshake protocol used for the
  * tear down of channels:
- * 
+ *
  * 1.3:        strict request-ack-protocol:
  *     CLOSE   ->
  *             <-  CLOSE_CONFIRM
- * 
+ *
  * 1.5:        uses variations of:
  *     IEOF    ->
  *             <-  OCLOSE
  *             <-  IEOF
  *     OCLOSE  ->
  *     i.e. both sides have to close the channel
- * 
+ *
  * See the debugging output from 'ssh -v' and 'sshd -d' of
  * ssh-1.2.27 as an example.
- * 
+ *
  */
 
 /* ssh-proto-1.5 overloads prot-1.3-message-types */
 #define CHAN_OUTPUT_WAIT_IEOF          0x40
 #define CHAN_OUTPUT_CLOSED             0x80
 
-/* EVENTS for the input state */
-void chan_rcvd_oclose(Channel *c);
-void chan_read_failed(Channel *c);
-void chan_ibuf_empty(Channel *c);
+#define CHAN_CLOSE_SENT                        0x01
+#define CHAN_CLOSE_RCVD                        0x02
+#define CHAN_DEAD                      0x04
+
+
+/* Channel EVENTS */
+typedef void    chan_event_fn(Channel * c);
+
+/* for the input state */
+extern chan_event_fn   *chan_rcvd_oclose;
+extern chan_event_fn   *chan_read_failed;
+extern chan_event_fn   *chan_ibuf_empty;
+
+/* for the output state */
+extern chan_event_fn   *chan_rcvd_ieof;
+extern chan_event_fn   *chan_write_failed;
+extern chan_event_fn   *chan_obuf_empty;
 
-/* EVENTS for the output state */
-void chan_rcvd_ieof(Channel *c);
-void chan_write_failed(Channel *c);
-void chan_obuf_empty(Channel *c);
+int chan_is_dead(Channel * c);
+void chan_mark_dead(Channel * c);
 
-void chan_init_iostates(Channel *c);
+void    chan_init_iostates(Channel * c);
+void   chan_init(void);
 #endif
This page took 0.035353 seconds and 4 git commands to generate.