⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connect.h

📁 一个很有名的浏览器
💻 H
字号:
/* $Id: connect.h,v 1.30 2004/11/04 21:10:10 jonas Exp $ */#ifndef EL__LOWLEVEL_CONNECT_H#define EL__LOWLEVEL_CONNECT_H#include <sys/types.h>#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h> /* OS/2 needs this after sys/types.h */#endifstruct connection;struct connection_socket;struct uri;struct conn_info {	struct sockaddr_storage *addr; /* array of addresses */	void (*done)(struct connection *);	struct connection_socket *socket;	int addrno; /* array len / sizeof(sockaddr_storage) */	int triedno; /* index of last tried address */	int port;};enum read_buffer_close {	/* If a zero-byte message is read prematurely the connection will be	 * retried with error state S_CANT_READ. */	READ_BUFFER_RETRY_ONCLOSE	= 0,	/* If a zero-byte message is read flush the remaining bytes in the	 * buffer and tell the protocol handler to end the reading by calling	 * read_buffer->done(). */	READ_BUFFER_END_ONCLOSE	= 1,	/* Used for signaling to protocols - via the read_buffer->done()	 * callback - that a zero-byte message was read. */	READ_BUFFER_END		= 2,};struct read_buffer {	/* A routine called *each time new data comes in*, therefore	 * usually many times, not only when all the data arrives. */	void (*done)(struct connection *, struct read_buffer *);	struct connection_socket *socket;	int len;	enum read_buffer_close close;	int freespace;	unsigned char data[1]; /* must be at end of struct */};struct conn_info *init_connection_info(struct uri *uri, struct connection_socket *socket,		     void (*done)(struct connection *));void done_connection_info(struct connection *conn);void close_socket(struct connection *conn, struct connection_socket *socket);/* Establish connection with the host in @conn->uri. Storing the socket * descriptor in @socket. When the connection has been established the @done * callback will be run. */void make_connection(struct connection *conn, struct connection_socket *socket,		     void (*done)(struct connection *));void dns_found(/* struct connection */ void *, int);int get_pasv_socket(struct connection *, int, unsigned char *);#ifdef CONFIG_IPV6int get_pasv6_socket(struct connection *, int, struct sockaddr_storage *);#endif/* Writes @datalen bytes from @data buffer to the passed @socket. When all data * is written the @done callback will be called. */void write_to_socket(struct connection *conn, struct connection_socket *socket,		     unsigned char *data, int datalen, void (*done)(struct connection *));struct read_buffer *alloc_read_buffer(struct connection *c);/* Reads data from @socket into @buffer using @done as struct read_buffers * @done routine (called each time new data comes in). */void read_from_socket(struct connection *conn, struct connection_socket *socket,		      struct read_buffer *buffer, void (*done)(struct connection *, struct read_buffer *));void kill_buffer_data(struct read_buffer *, int);void dns_exception(void *);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -