]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Added declarations of all our socket functions.
authorMartin Mares <mj@ucw.cz>
Sun, 24 May 1998 09:19:26 +0000 (09:19 +0000)
committerMartin Mares <mj@ucw.cz>
Sun, 24 May 1998 09:19:26 +0000 (09:19 +0000)
lib/socket.h

index f1c9a64fc554af921e98ab059d182f1f655ea40b..ee7432b0e7b7a40d7a695bfecd4d7ec67ee720a8 100644 (file)
 
 #include "lib/resource.h"
 
-typedef struct birdsock socket;
+typedef struct birdsock {
+  resource r;
+  int type;                            /* Socket type */
+  void *data;                          /* User data */
+  ip_addr saddr, daddr;                        /* IPA_NONE = unspecified */
+  unsigned sport, dport;               /* 0 = unspecified (for IP: protocol type) */
+  int tos;                             /* TOS and priority, -1 = default */
+  int ttl;                             /* Time To Live, -1 = default */
+  struct iface *iface;                 /* Bound to interface */
+
+  byte *rbuf, *rpos;                   /* NULL=allocate automatically */
+  unsigned rbsize;
+  void (*rx_hook)(struct birdsock *);  /* NULL=receiving turned off */
+
+  byte *tbuf, *tpos;                   /* NULL=allocate automatically */
+  byte *ttx;                           /* Internal */
+  unsigned tbsize;
+  void (*tx_hook)(struct birdsock *);
+
+  void (*err_hook)(struct birdsock *, int);
+} socket;
+
+socket *sk_get(pool *);                        /* Allocate new socket */
+int sk_open(socket *);                 /* Open socket */
+int sk_send(socket *);                 /* Try to send queued data, > 0 if succeeded */
+int sk_send_to(socket *, ip_addr, unsigned); /* Send queued data to given destination */
+
+/*
+ *     Socket types                 SA SP DA DP IF  SendTo     (?=may, -=must not, *=must)
+ */
+
+#define SK_TCP_PASSIVE 0          /* ?  *  -  -  -  -          */
+#define SK_TCP_ACTIVE  1          /* ?  ?  *  *  -  -          */
+#define SK_UDP         2          /* ?  ?  -  -  -  ?          */
+#define SK_UDP_MC       3          /* ?  ?  *  *  *  -         */
+#define SK_IP          4          /* ?  ?  -  *  -  ?          */
+#define SK_IP_MC       5          /* ?  ?  *  *  *  -          */
 
 #endif