Files
Viper_VRTE/openssl/bio.vp
T
TermiNexus c0d56b127d chore(comments): includes 头注释英文化(R11 收尾)
把 includes 下 64 个 .vp 的文件头注释(含 traceback.vp 第 13-427 行的整块文件级说明)以及 2 处漏网的正文中文注释(ast/lexer.vp、json/__writer.vp)与 1 处中文 docstring(memhub.vp)逐行译为英文;同步把 fltk/gen_ffi.py 的生成模板与其自身注释英文化,使重新生成仍为英文。

只改注释/文档串文字:行数与代码逐字节不变(骨架比对 140 文件漂移 0),运行时中文字符串字面量 305 处保持原样。验证:三重重编 SUCCESS(170.21s)+ 全量 77/77 顺序回归通过 + VET 编译 SUCCESS / --search-paths 7 条 exit 0。
2026-10-06 09:42:25 +08:00

158 lines
6.8 KiB
Plaintext

import t, c
from openssl.types import *
# ============================================================
# openssl/bio.vp — BIO (memory / file / Socket / Connect abstract IO)
# Corresponding header: bio.h
#
# Includes BIO_ADDR/BIO_ADDRINFO: hostname resolution (getaddrinfo wrapper) + TCP connect/read/write.
# ============================================================
# ---- BIO_METHOD accessors ----
extern def BIO_s_mem() -> BioMethodPtr
extern def BIO_s_socket() -> BioMethodPtr
extern def BIO_s_connect() -> BioMethodPtr
extern def BIO_s_accept() -> BioMethodPtr
extern def BIO_s_fd() -> BioMethodPtr
extern def BIO_s_file() -> BioMethodPtr
extern def BIO_s_null() -> BioMethodPtr
extern def BIO_f_buffer() -> BioMethodPtr
# ---- Create / free ----
# BIO *BIO_new(const BIO_METHOD *type)
extern def BIO_new(type: BioMethodPtr) -> BioPtr
# BIO *BIO_new_socket(int sock, int close_flag)
extern def BIO_new_socket(sock: int, close_flag: int) -> BioPtr
# BIO *BIO_new_connect(const char *host_port)
extern def BIO_new_connect(host_port: str) -> BioPtr
# BIO *BIO_new_accept(const char *host_port)
extern def BIO_new_accept(host_port: str) -> BioPtr
# BIO *BIO_new_fd(int fd, int close_flag)
extern def BIO_new_fd(fd: int, close_flag: int) -> BioPtr
# BIO *BIO_new_mem_buf(const void *buf, int len)
extern def BIO_new_mem_buf(buf: bytes, len: int) -> BioPtr
# BIO *BIO_new_file(const char *filename, const char *mode)
extern def BIO_new_file(filename: str, mode: str) -> BioPtr
# int BIO_free(BIO *a) / void BIO_free_all(BIO *a)
extern def BIO_free(a: BioPtr) -> int
extern def BIO_free_all(a: BioPtr)
extern def BIO_vfree(a: BioPtr)
# ---- Read / write ----
# int BIO_read(BIO *b, void *data, int dlen)
extern def BIO_read(b: BioPtr, data: bytes, dlen: int) -> int
# int BIO_write(BIO *b, const void *data, int dlen)
extern def BIO_write(b: BioPtr, data: bytes, dlen: int) -> int
# int BIO_gets(BIO *bp, char *buf, int size)
extern def BIO_gets(bp: BioPtr, buf: bytes, size: int) -> int
# int BIO_puts(BIO *bp, const char *buf)
extern def BIO_puts(bp: BioPtr, buf: str) -> int
# size_t BIO_ctrl_pending(BIO *b)
extern def BIO_ctrl_pending(b: BioPtr) -> sizet
# size_t BIO_ctrl_wpending(BIO *b)
extern def BIO_ctrl_wpending(b: BioPtr) -> sizet
# ---- BIO control (backing ctrl for macros; connect/nonblocking implemented here) ----
# long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg)
extern def BIO_ctrl(bp: BioPtr, cmd: int, larg: int32, parg: bytes) -> int32
# int BIO_do_connect(BIO *b) -- macro: BIO_ctrl(b, BIO_C_DO_STATE_MACHINE, 0, NULL)
define BioCDoStateMachine = 101
define BioCSetConnect = 100
define BioCSetNbio = 102
define BioCSetFd = 104
define BioCGetFd = 105
define BioNoclose = 0x00
define BioClose = 0x01
# BIO chain
# BIO *BIO_push(BIO *b, BIO *append) / BIO *BIO_pop(BIO *b)
extern def BIO_push(b: BioPtr, append: BioPtr) -> BioPtr
extern def BIO_pop(b: BioPtr) -> BioPtr
# ---- Convenience control wrappers (match bio.h macros; avoid raw BIO_ctrl in Viper) ----
def bio_set_conn_hostname(b: BioPtr, name: str):
BIO_ctrl(b, BioCSetConnect, 0, name)
def bio_set_conn_port(b: BioPtr, port: str):
BIO_ctrl(b, BioCSetConnect, 1, port)
def bio_set_nbio(b: BioPtr, n: int):
BIO_ctrl(b, BioCSetNbio, n, None)
def bio_do_connect(b: BioPtr) -> int:
return BIO_ctrl(b, BioCDoStateMachine, 0, None)
# ============================================================
# Socket primitives (BIO manages fd directly)
# ============================================================
define BioSockReuseaddr = 0x01
define BioSockV6Only = 0x02
define BioSockKeepalive = 0x04
define BioSockNonblock = 0x08
define BioSockNodelay = 0x10
# int BIO_socket(int domain, int socktype, int protocol, int options)
extern def BIO_socket(domain: int, socktype: int, protocol: int, options: int) -> int
# int BIO_connect(int sock, const BIO_ADDR *addr, int options)
extern def BIO_connect(sock: int, addr: BioAddrPtr, options: int) -> int
# int BIO_bind(int sock, const BIO_ADDR *addr, int options)
extern def BIO_bind(sock: int, addr: BioAddrPtr, options: int) -> int
# int BIO_listen(int sock, const BIO_ADDR *addr, int options)
extern def BIO_listen(sock: int, addr: BioAddrPtr, options: int) -> int
# int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options)
extern def BIO_accept_ex(accept_sock: int, addr: BioAddrPtr, options: int) -> int
# int BIO_closesocket(int sock)
extern def BIO_closesocket(sock: int) -> int
# int BIO_sock_init(void)
extern def BIO_sock_init() -> int
# int BIO_socket_nbio(int fd, int mode)
extern def BIO_socket_nbio(fd: int, mode: int) -> int
# int BIO_set_tcp_ndelay(int sock, int turn_on)
extern def BIO_set_tcp_ndelay(sock: int, turn_on: int) -> int
# int BIO_sock_should_retry(int i)
extern def BIO_sock_should_retry(i: int) -> int
# ============================================================
# BIO_ADDR / BIO_ADDRINFO (network addresses, for TCP resolution)
# ============================================================
# BIO_ADDR *BIO_ADDR_new(void) / dup
extern def BIO_ADDR_new() -> BioAddrPtr
extern def BIO_ADDR_dup(ap: BioAddrPtr) -> BioAddrPtr
extern def BIO_ADDR_free(ap: BioAddrPtr)
# int BIO_ADDR_family(const BIO_ADDR *ap)
extern def BIO_ADDR_family(ap: BioAddrPtr) -> int
# unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap)
extern def BIO_ADDR_rawport(ap: BioAddrPtr) -> uint16
# int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l)
extern def BIO_ADDR_rawaddress(ap: BioAddrPtr, p: bytes, l: bytes) -> int
# char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric) -> result must be CRYPTO_free'd
extern def BIO_ADDR_hostname_string(ap: BioAddrPtr, numeric: int) -> str
# char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric)
extern def BIO_ADDR_service_string(ap: BioAddrPtr, numeric: int) -> str
# char *BIO_ADDR_path_string(const BIO_ADDR *ap)
extern def BIO_ADDR_path_string(ap: BioAddrPtr) -> str
# BIO_ADDRINFO iteration
extern def BIO_ADDRINFO_free(bai: BioAddrInfoPtr)
# const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai)
extern def BIO_ADDRINFO_next(bai: BioAddrInfoPtr) -> BioAddrInfoPtr
# int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai)
extern def BIO_ADDRINFO_family(bai: BioAddrInfoPtr) -> int
# int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai)
extern def BIO_ADDRINFO_socktype(bai: BioAddrInfoPtr) -> int
# int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai)
extern def BIO_ADDRINFO_protocol(bai: BioAddrInfoPtr) -> int
# const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai)
extern def BIO_ADDRINFO_address(bai: BioAddrInfoPtr) -> BioAddrPtr
# Hostname resolution (getaddrinfo wrapper)
define BioLookupClient = 0
define BioLookupServer = 1
# int BIO_lookup(const char *host, const char *service, int lookup_type,
# int family, int socktype, BIO_ADDRINFO **res)
extern def BIO_lookup(host: str, service: str, lookup_type: int,
family: int, socktype: int, res: bytes) -> int