xrtHttpOriginCursorInit

初始化 Origin 列表游标。

void xrtHttpOriginCursorInit( xhttporigincursor* pCursor );
参数说明
xhttporigincursor* pCursor游标
返回:初始化 Origin 列表游标。

示例已编译验证

httporigincursorinit obj;
xrtHttpOriginCursorInit(&obj, pCursor);

xrtHttpOriginNull

建立可用于比较和写出的 null Origin。

void xrtHttpOriginNull(xhttporigin* pOrigin);
参数说明
xhttporigin* pOrigin起始位置
返回:建立可用于比较和写出的 null Origin。

示例已编译验证

/* 建立可用于比较和写出的 null Origin。 */
result = xrtHttpOriginNull(pOrigin);

xrtHttpOriginParse

严格解析 null 或一个 RFC 6454 serialized-origin。

bool xrtHttpOriginParse( xstrview Text, xhttporigin* pOrigin );
参数说明
xstrview Text文本视图
xhttporigin* pOrigin起始位置
返回:严格解析 null 或一个 RFC 6454 serialized-origin。

示例已编译验证

/* 严格解析 null 或一个 RFC 6454 serialized-origin。 */
result = xrtHttpOriginParse(Text, pOrigin);

xrtHttpOriginFromUrl

从绝对分层 URL 提取 scheme、host 和 port,路径与查询不进入 Origin。

bool xrtHttpOriginFromUrl( const xurl* pUrl, xhttporigin* pOrigin );
参数说明
const xurl* pUrlURL 文本
xhttporigin* pOrigin起始位置
返回:从绝对分层 URL 提取 scheme、host 和 port,路径与查询不进入 Origin。

示例已编译验证

/* 从绝对分层 URL 提取 scheme、host 和 port,路径与查询不进入 Origin。 */
result = xrtHttpOriginFromUrl(pUrl, pOrigin);

xrtHttpOriginValid

严格验证完整 Origin 字段值,包括 RFC 6454 的历史 Origin 列表形式。

bool xrtHttpOriginValid(xstrview Value);
参数说明
xstrview Value值
返回:严格验证完整 Origin 字段值,包括 RFC 6454 的历史 Origin 列表形式。

示例已编译验证

/* 严格验证完整 Origin 字段值,包括 RFC 6454 的历史 Origin 列表形式。 */
result = xrtHttpOriginValid(Value);

xrtHttpOriginNext

完整预校验后按线路顺序迭代 Origin;游标在首次调用时绑定输入。

xhttpnext xrtHttpOriginNext( xstrview Value, xhttporigincursor* pCursor, xhttporigin* pOrigin );
参数说明
xstrview Value值
xhttporigincursor* pCursor游标
xhttporigin* pOrigin起始位置
返回:完整预校验后按线路顺序迭代 Origin;游标在首次调用时绑定输入。

示例已编译验证

/* 完整预校验后按线路顺序迭代 Origin;游标在首次调用时绑定输入。 */
result = xrtHttpOriginNext(Value, pCursor, pOrigin);

xrtHttpOriginFields

XRT_API xhttpnext xrtHttpOriginFields( const xhttpfield* pFields, size_t iCount, xhttporigin* pOrigin );

;
返回:XRT_API xhttpnext xrtHttpOriginFields( const xhttpfield* pFields, size_t iCount, xhttporigin* pOrigin );

示例已编译验证

/* XRT_API xhttpnext xrtHttpOriginFields( const xhttpfield* pFields, size_t iCount, xhttporigin* pOrigin ); */
result = xrtHttpOriginFields();

xrtHttpOriginSame

XRT_API bool xrtHttpOriginSame( const xhttporigin* pLeft, const xhttporigin* pRight );

;
返回:XRT_API bool xrtHttpOriginSame( const xhttporigin* pLeft, const xhttporigin* pRight );

示例已编译验证

/* XRT_API bool xrtHttpOriginSame( const xhttporigin* pLeft, const xhttporigin* pRight ); */
result = xrtHttpOriginSame();

xrtHttpOriginWrite

按 ASCII 规范写出一个 Origin,不附加零字符。

bool xrtHttpOriginWrite( const xhttporigin* pOrigin, void* pOutput, size_t iCapacity, size_t* pSize );
参数说明
const xhttporigin* pOrigin起始位置
void* pOutput出:输出缓冲
size_t iCapacity容量
size_t* pSize出:大小
返回:按 ASCII 规范写出一个 Origin,不附加零字符。

示例已编译验证

/* 按 ASCII 规范写出一个 Origin,不附加零字符。 */
result = xrtHttpOriginWrite(pOrigin, pOutput, iCapacity, pSize);

xrtHttpOriginListWrite

XRT_API bool xrtHttpOriginListWrite( const xhttporigin* pOrigins, size_t iCount, void* pOutput, size_t iCapacity, size_t* pSize );

;
返回:XRT_API bool xrtHttpOriginListWrite( const xhttporigin* pOrigins, size_t iCount, void* pOutput, size_t iCapacity, size_t* pSize );

示例已编译验证

/* XRT_API bool xrtHttpOriginListWrite( const xhttporigin* pOrigins, size_t iCount, void* pOutput, size_t iCapacity, size_t* pSize ); */
result = xrtHttpOriginListWrite();

xrtHttpOriginBuild

构建零结尾 Origin 字段值,返回值由 xrtFree 释放。

str xrtHttpOriginBuild( const xhttporigin* pOrigins, size_t iCount, size_t* pSize );
参数说明
const xhttporigin* pOriginsOrgns 参数
size_t iCount数量
size_t* pSize出:大小
返回:构建零结尾 Origin 字段值,返回值由 xrtFree 释放。

示例已编译验证

/* 构建零结尾 Origin 字段值,返回值由 xrtFree 释放。 */
result = xrtHttpOriginBuild(pOrigins, iCount, pSize);