FrcaCtrlCreate子程序

用途

创建快速响应高速缓存加速器 (FRCA) 控制实例。

FRCA 库 (libfrca.a)

语法

#include <frca.h>
int32_t FrcaCtrlCreate ( FrcaHandle,  InstanceSpec);
int32_t * FrcaHandle;
frca_ctrl_create_t * InstanceSpec;

描述

FrcaCtrlCreate子程序创建并配置与先前配置的 TCP 侦听套接字相关联的 FRCA 实例。 从 TCP 侦听套接字派生的 TCP 连接由 FRCA 实例拦截,并且如果适用,代表用户级别应用程序的内核中代码将生成足够的响应。

目前支持的唯一 FRCA 实例类型处理静态 GET 请求,作为超文本传输协议( HTTP )的一部分。

参数

描述
FrcaHandle 返回其他 FRCA API 子例程所需要的句柄以引用新配置的 FRCA 实例。
InstanceSpec 指向 frca_ctrl_create_t 结构,该结构指定了用于配置新创建的 FRCA 实例的参数。 该结构包含以下成员:
uint32_t  serverType;
char * serverName;
uint32_t  nListenSockets;
uint32_t * ListenSockets;
uint32_t  flags;
uint32_t  nMaxConnections;
uint32_t  nLogBufs;
char * logFile;
注: 结构成员不一定显示在此顺序中。
serverType
指定该 FRCA 实例的类型。 此字段必须设置为 FCTRL_SERVERTYPE_HTTP。
serverName
指定 HTTP 报头字段的值。
nListenSocket
指定 listenSockets指向的侦听套接字描述符数。
listenSocket
指定应该将 FRCA 实例配置为拦截的 TCP 侦听套接字。
注意:在调用FrcaCtrlCreate子程序时,必须存在 TCP 侦听套接字,并且必须设置 SO_KERNACCEPT 套接字选项。
标志
指定日志记录格式、日志记录子系统的初始状态,以及FRCA实例生成的响应是否应包含 Server: HTTP 报头字段。 有效的标志如下所示:
FCTRL_KEEPALIVE
FCTRL_日志格式
FCTRL_日志格式_ECLF
FCTRL_LOGFORMAT_虚拟主机
FCTRL_LOGMODE
FCTRL_LOGMODE_ON
FCTRL_发送服务器标头
nMaxConnections
指定在任何给定时间点允许的已拦截连接的最大数量。
nLogBufs
指定用于记录已成功处理的 HTTP GET请求信息的预分配日志缓冲区数量。
logFile
指定用于附加日志记录信息的文件的绝对路径。 HTTP GET引擎使用 logFile 作为基本名称,并附加一个序列号以生成实际的文件名。 每当当前日志文件的大小超过大约 1 千兆字节的阈值时,序号将递增 1 ,并且日志记录子系统开始附加到新的日志文件。
注: FRCA 实例会创建日志文件,但不会创建该文件的路径。 如果路径不存在或不可访问,那么 FRCA 实例将还原为缺省日志文件 /tmp/frca.log

返回值

描述
0 子例程已成功完成。
-1 子例程失败。 全局变量 错误号 已设置为指示特定类型的错误。

错误代码

描述
EINVAL FrcaHandleInstanceSpec 参数为零或类型不正确,或者 listenSockets 组件未指定任何套接字描述符。
Efault FrcaHandleInstanceSpecInstanceSpec 的组件指向无效地址。
准备就绪 当前正在装入或卸装该内核扩展。
ENOTSOCK TCP 侦听套接字不存在。