]> sjero.net Git - wget/blobdiff - src/connect.h
[svn] Rewrote bindport and acceptport to use a more standard calling convention.
[wget] / src / connect.h
index 75eb9caaa2f5ba8ff3aadbf4f345e6108c6782a1..9d67d070df139e7f45b7f13e6dd92380f4e285ff 100644 (file)
@@ -6,7 +6,7 @@ This file is part of GNU Wget.
 GNU Wget is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ (at your option) any later version.
 
 GNU Wget is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,22 +30,49 @@ so, delete this exception statement from your version.  */
 #ifndef CONNECT_H
 #define CONNECT_H
 
-#include "host.h"
+#include "host.h"              /* for definition of ip_address */
+
+#ifndef ENABLE_IPV6
+# ifndef HAVE_SOCKADDR_STORAGE
+#  define sockaddr_storage sockaddr_in
+# endif
+#endif /* ENABLE_IPV6 */
 
 /* Function declarations */
 
-int connect_to_one PARAMS ((ip_address *, unsigned short, int));
-int connect_to_many PARAMS ((struct address_list *, unsigned short, int));
-void set_connection_host_name PARAMS ((const char *));
+/* Returned by connect_to_host when host name cannot be resolved.  */
+enum {
+  E_HOST = -100
+};
+int connect_to_host PARAMS ((const char *, int));
+int connect_to_ip PARAMS ((const ip_address *, int, const char *));
 
-int test_socket_open PARAMS ((int));
+int bind_local PARAMS ((const ip_address *, int *));
+int accept_connection PARAMS ((int));
+
+enum {
+  ENDPOINT_LOCAL,
+  ENDPOINT_PEER
+};
+int socket_ip_address PARAMS ((int, ip_address *, int));
+
+/* Flags for select_fd's WAIT_FOR argument. */
+enum {
+  WAIT_FOR_READ = 1,
+  WAIT_FOR_WRITE = 2
+};
 int select_fd PARAMS ((int, double, int));
-uerr_t bindport PARAMS ((unsigned short *, int));
-uerr_t acceptport PARAMS ((int *));
-void closeport PARAMS ((int));
-int conaddr PARAMS ((int, ip_address *));
+int test_socket_open PARAMS ((int));
 
-int iread PARAMS ((int, char *, int));
-int iwrite PARAMS ((int, char *, int));
+typedef int (*xreader_t) PARAMS ((int, char *, int, void *));
+typedef int (*xwriter_t) PARAMS ((int, char *, int, void *));
+typedef int (*xpoller_t) PARAMS ((int, double, int, void *));
+typedef void (*xcloser_t) PARAMS ((int, void *));
+void register_extended PARAMS ((int,
+                               xreader_t, xwriter_t, xpoller_t, xcloser_t,
+                               void *));
 
+int xread PARAMS ((int, char *, int, double));
+int xwrite PARAMS ((int, char *, int, double));
+void xclose PARAMS ((int));
 #endif /* CONNECT_H */