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

📄 conn.h

📁 一个WEB服务器的性能测试工具
💻 H
字号:
/*    httperf -- a tool for measuring web server performance    Copyright (C) 2000  Hewlett-Packard Company    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>    This file is part of httperf, a web server performance measurment    tool.    This program 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.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA    02111-1307 USA*/#ifndef conn_h#define conn_h#include "config.h"#include <sys/uio.h>#include <httperf.h>#include <object.h>#include <timer.h>#ifdef HAVE_SSL# include <openssl/ssl.h># include <openssl/err.h>#endif/* Maximum header line length that we can process properly.  Longer   lines will be treated as if they were only this long (i.e., they   will be truncated).  */#define MAX_HDR_LINE_LEN	1024struct Call;typedef enum Conn_State  {    S_INITIAL,    S_CONNECTING,    S_CONNECTED,    S_REPLY_STATUS,    S_REPLY_HEADER,    S_REPLY_CONTINUE,    S_REPLY_DATA,    S_REPLY_CHUNKED,    S_REPLY_FOOTER,    S_REPLY_DONE,    S_CLOSING,    S_FREE  }Conn_State;typedef struct Conn  {    Object obj;    Conn_State state;    struct Conn *next;    struct Call *sendq;		/* calls whose request needs to be sent */    struct Call *sendq_tail;    struct Call *recvq;		/* calls waiting for a reply */    struct Call *recvq_tail;    Timer *watchdog;    struct      {	Time time_connect_start;	/* time connect() got called */	u_int num_calls_completed;	/* # of calls that completed */      }    basic;			/* maintained by stat/stats_basic.c */    size_t hostname_len;    const char *hostname;	/* server's hostname (or 0 for default) */    size_t fqdname_len;    const char *fqdname;	/* fully qualified server name (or 0) */    int port;			/* server's port (or -1 for default) */    int	sd;			/* socket descriptor */    int myport;			/* local port number or -1 */    /* Since replies are read off the socket sequentially, much of the       reply-processing related state can be kept here instead of in       the reply structure: */    struct iovec line;		/* buffer used to parse reply headers */    size_t content_length;	/* content length (or INF if unknown) */    u_int has_body : 1;		/* does reply have a body? */    u_int is_chunked : 1;	/* is the reply chunked? */    char line_buf[MAX_HDR_LINE_LEN];	/* default line buffer */#ifdef HAVE_SSL    SSL *ssl;			/* SSL connection info */#endif  }Conn;extern int max_num_conn;extern Conn *conn;/* Initialize the new connection object C.  */extern void conn_init (Conn *c);/* Destroy the connection-specific state in connection object C.  */extern void conn_deinit (Conn *c);#define conn_new()	((Conn *) object_new (OBJ_CONN))#define conn_inc_ref(c)	object_inc_ref ((Object *) (c))#define conn_dec_ref(c)	object_dec_ref ((Object *) (c))#endif /* conn_h */

⌨️ 快捷键说明

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