para.h: Fix typo in comment.
[paraslash.git] / net.h
diff --git a/net.h b/net.h
index 831cd3b8b72f2b3a7f90592c64f6a5f725c4b7d7..75389aecda5d7a5101771f526d74887f34177513 100644 (file)
--- a/net.h
+++ b/net.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2009 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2010 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
 #define UNIX_PATH_MAX 108
 #endif
 
-/** \cond Userland defines for Linux DCCP support. */
+/* Userland defines for Linux DCCP support. */
+
 #ifndef IPPROTO_DCCP
-#define IPPROTO_DCCP   33      /* IANA assigned value */
-#define SOCK_DCCP      6       /* Linux socket type   */
-#define SOL_DCCP       269     /* Linux socket level  */
-/* Per-connection CCID support (since v2.6.30-rc1) */
-#define DCCP_SOCKOPT_AVAILABLE_CCIDS   12      /* List of supported CCIDs */
-#define DCCP_SOCKOPT_CCID              13      /* Sets both TX/RX CCID    */
-#define DCCP_SOCKOPT_TX_CCID           14      /* Set/get the TX CCID     */
-#define DCCP_SOCKOPT_RX_CCID           15      /* Set/get the RX CCID     */
+#define IPPROTO_DCCP 33 /**< IANA assigned value. */
 #endif
-/** \endcond */
 
+#ifndef SOCK_DCCP
+#define SOCK_DCCP 6 /**< Linux socket type. */
+#endif
+
+#ifndef DCCP_SOCKOPT_RX_CCID
+/** Per-connection CCID support (set/get the RX CCID, since v2.6.30-rc1). */
+#define DCCP_SOCKOPT_RX_CCID 15
+#endif
+
+#ifndef SOL_DCCP
+#define SOL_DCCP 269 /**< Linux socket level. */
+#endif
+
+#ifndef DCCP_SOCKOPT_GET_CUR_MPS
+#define DCCP_SOCKOPT_GET_CUR_MPS  5 /**< Max packet size, RFC 4340, 14. */
+#endif
+
+#ifndef DCCP_SOCKOPT_AVAILABLE_CCIDS
+#define DCCP_SOCKOPT_AVAILABLE_CCIDS 12 /**< List of supported CCIDs. */
+#endif
+
+#ifndef DCCP_SOCKOPT_CCID
+#define DCCP_SOCKOPT_CCID 13 /**< Sets both TX/RX CCID. */
+#endif
+
+#ifndef DCCP_SOCKOPT_TX_CCID
+#define DCCP_SOCKOPT_TX_CCID 14 /**< Set/get the TX CCID. */
+#endif
 
 /**
  * Flowopts: Transport-layer independent encapsulation of socket options
@@ -115,6 +136,11 @@ static inline int para_listen_simple(unsigned l4type, uint16_t port)
 extern char *local_name(int sockfd);
 extern char *remote_name(int sockfd);
 
+/**
+ * Determining maximum payload (packet) size
+ */
+extern int generic_max_transport_msg_size(int sockfd);
+
 int send_bin_buffer(int, const char *, size_t);
 int send_buffer(int, const char *);
 __printf_2_3 int send_va_buffer(int fd, const char *fmt, ...);
@@ -122,17 +148,18 @@ __printf_2_3 int send_va_buffer(int fd, const char *fmt, ...);
 int recv_bin_buffer(int fd, char *buf, size_t size);
 int recv_buffer(int fd, char *buf, size_t size);
 
-int para_accept(int, void *addr, socklen_t size);
+int para_accept(int fd, fd_set *rfds, void *addr, socklen_t size, int *new_fd);
 int create_local_socket(const char *name, struct sockaddr_un *unix_addr,
        mode_t mode);
-int create_remote_socket(const char *name);
+int connect_local_socket(const char *name);
 int recv_cred_buffer(int, char *, size_t);
 ssize_t send_cred_buffer(int, char*);
-int recv_pattern(int fd, const char *pattern, size_t bufsize);
 
 /**
  * Functions and definitions to support \p IPPROTO_DCCP
  */
-/** Hardcoded maximum number of separate CCID modules compiled into a host */
+/** Estimated worst-case length of a DCCP header including options. */
+#define DCCP_MAX_HEADER                128
+/** Hardcoded maximum number of separate CCID modules compiled into a host. */
 #define DCCP_MAX_HOST_CCIDS    20
-extern const uint8_t *dccp_available_ccids(uint8_t *ccids, uint8_t *nccids);
+extern int dccp_available_ccids(uint8_t **ccid_array);