📄 ne_private.h
字号:
/* HTTP Request Handling Copyright (C) 1999-2004, Joe Orton <joe@manyfish.co.uk> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA*//* THIS IS NOT A PUBLIC INTERFACE. You CANNOT include this header file * from an application. */ #ifndef NE_PRIVATE_H#define NE_PRIVATE_H#include "ne_request.h"#include "ne_socket.h"#include "ne_ssl.h"struct host_info { char *hostname; unsigned int port; ne_sock_addr *address; /* if non-NULL, result of resolving 'hostname'. */ /* current network address obtained from 'address' being used. */ const ne_inet_addr *current; char *hostport; /* URI hostport segment */};/* Store every registered callback in a generic container, and cast * the function pointer when calling it. */struct hook { void (*fn)(void); void *userdata; const char *id; /* non-NULL for accessors. */ struct hook *next;};#define HAVE_HOOK(st,func) (st->hook->hooks->func != NULL)#define HOOK_FUNC(st, func) (*st->hook->hooks->func)/* Session support. */struct ne_session_s { /* Connection information */ ne_socket *socket; /* non-zero if connection has been established. */ int connected; /* non-zero if connection has persisted beyond one request. */ int persisted; int is_http11; /* >0 if connected server is known to be * HTTP/1.1 compliant. */ char *scheme; struct host_info server, proxy; /* Settings */ unsigned int use_proxy:1; /* do we have a proxy server? */ unsigned int no_persist:1; /* set to disable persistent connections */ unsigned int use_ssl:1; /* whether a secure connection is required */ unsigned int in_connect:1; /* doing a proxy CONNECT */ int expect100_works; /* known state of 100-continue support */ ne_progress progress_cb; void *progress_ud; ne_notify_status notify_cb; void *notify_ud; int rdtimeout; /* read timeout. */ struct hook *create_req_hooks, *pre_send_hooks, *post_send_hooks; struct hook *destroy_req_hooks, *destroy_sess_hooks, *private; char *user_agent; /* full User-Agent: header field */#ifdef NEON_SSL ne_ssl_client_cert *client_cert; ne_ssl_certificate *server_cert; ne_ssl_context *ssl_context;#endif /* Server cert verification callback: */ ne_ssl_verify_fn ssl_verify_fn; void *ssl_verify_ud; /* Client cert provider callback: */ ne_ssl_provide_fn ssl_provide_fn; void *ssl_provide_ud; /* Error string */ char error[BUFSIZ];};typedef int (*ne_push_fn)(void *userdata, const char *buf, size_t count);/* Pulls the request body for the given request, passing blocks to the * given callback. */int ne_pull_request_body(ne_request *req, ne_push_fn fn, void *ud);/* Do the SSL negotiation. */int ne_negotiate_ssl(ne_request *req);/* 0.24.x hack to fix ne_compress layer problems */void ne_kill_pre_send(ne_session *sess, ne_pre_send_fn fn, void *userdata);#endif /* HTTP_PRIVATE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -