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* pUrl | URL 文本 |
| 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* pOrigins | Orgns 参数 |
| size_t iCount | 数量 |
| size_t* pSize | 出:大小 |
返回:构建零结尾 Origin 字段值,返回值由 xrtFree 释放。
示例已编译验证
/* 构建零结尾 Origin 字段值,返回值由 xrtFree 释放。 */ result = xrtHttpOriginBuild(pOrigins, iCount, pSize);