📄 io.c
字号:
#include <u.h>#include <libc.h>#include <bio.h>#include <ip.h>#include <plumb.h>#include <thread.h>#include <fcall.h>#include <9p.h>#include <mp.h>#include <libsec.h>#include "dat.h"#include "fns.h"static long_iovfprint(va_list *arg){ int fd; char *fmt; va_list arg2; fd = va_arg(*arg, int); fmt = va_arg(*arg, char*); arg2 = va_arg(*arg, va_list); return vfprint(fd, fmt, arg2);}intiovfprint(Ioproc *io, int fd, char *fmt, va_list arg){ return iocall(io, _iovfprint, fd, fmt, arg);}intioprint(Ioproc *io, int fd, char *fmt, ...){ int n; va_list arg; va_start(arg, fmt); n = iovfprint(io, fd, fmt, arg); va_end(arg); return n;}static long_iotlsdial(va_list *arg){ char *addr, *local, *dir; int *cfdp, fd, tfd, usetls; TLSconn conn; addr = va_arg(*arg, char*); local = va_arg(*arg, char*); dir = va_arg(*arg, char*); cfdp = va_arg(*arg, int*); usetls = va_arg(*arg, int); fd = dial(addr, local, dir, cfdp); if(fd < 0) return -1; if(!usetls) return fd; memset(&conn, 0, sizeof conn); tfd = tlsClient(fd, &conn); if(tfd < 0){ print("tls %r\n"); close(fd); return -1; } /* BUG: check cert here? */ if(conn.cert) free(conn.cert); close(fd); return tfd;}intiotlsdial(Ioproc *io, char *addr, char *local, char *dir, int *cfdp, int usetls){ return iocall(io, _iotlsdial, addr, local, dir, cfdp, usetls);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -