Recent Posts
-
November 16, 2020
Openssl生成golang Grpc 自签名tls的v3_req证书
生成根证书的私钥```text选的椭圆曲线算法,后面生成server和client端的时候类似$ openssl ecparam -genkey -name prime256v1 -out root_ca.key也可以选RSA的吧,向下面这样$ openssl genrsa -out ca.key 2048``` 生成根证书x509格式(公钥)```text$ openssl req -new -x509 -days 40000 -key root_ca.key -out root_...
-
October 28, 2020
Golang修改设置全局默认resolver的dns的ip地址
package mainimport ( "context" "fmt" "net")func CloudflareDialer(ctx context.Context, network, address string) (net.Conn, error) { d := net.Dialer{} return d.DialContext(ctx, "udp", "1.1.1.1:53")}func main() { net.DefaultResolver.PreferGo = true n...
-
October 07, 2020
Golang的reflect包要使用unsafe才能修改结构的私有成员的值
poll.FD.ZeroReadIsEOF 控制文件读入0字节时,是否单做EOF错误返回, 因为linux的串口文件设置了超时会返回0字节,但不想把他单做错误来处理。func DisableiZeroReadIsEOF(conn Conn) { serialPort, ok := conn.(*serial.Port) if !ok { return } p := reflect.ValueOf(serialPort) if !p.IsValid() { return } f := p...
-
September 22, 2020
Windows10修改键盘映射禁用某个按键
好像是之前进过水,笔记本的win键出现问题了,不停的狂跳,要么一直处于key down状态,键盘上也没法输出了,还好按下大小写锁定后, 用shift + 可以输入密码登录。之前拆过笔记本想把键盘拿出来看一下,最后没成功,联想的都是一次性不可逆的塑料钉固定,拆了没法再 重新固定了,搞的键盘松松垮垮的。今天发现笔记本的键盘按键键帽也是可以直接扣出来的,直接用手往自己这个方向揭起来就可以了,但 只能看到键盘的软胶电路,也没法看清楚底下是怎么接触的。本来是想修改一下 https://github....
-
September 21, 2020
Gdb的ptype命令查看struct结构的各个子成员的内存布局
比较新的gdb的ptype命令支持/o选项,打印结构的内存布局了,类似pahole命令吧(gdb) help ptypePrint definition of type TYPE.Usage: ptype[/FLAGS] TYPE | EXPRESSIONArgument may be any type (for example a type name defined by typedef,or "struct STRUCT-TAG" or "class CLASS-NAME" or "u...
-
September 04, 2020
编译php 7.2 Configure配置 With Libzip时报告off_t错误
./configure –enable-zip –with-libzip 使用自己编译的libzip-1.7.3时,出现下面这个错误checking size of off_t... 0configure: error: off_t undefined; check your library configuration看网上介绍应该是php的配置脚本有问题,它的实际错误其实是ld 找不到libzip.so 文件吧,不知道php7.4有没有这个问题,上次编译php-7.4时用是系统l自带的i...
-
August 05, 2020
Php的swoole和grpc扩展一起使用时kill不能杀死swoole进程的问题 Grpc的fork模式问题
发现swoole的一个服务,用普通的kill总是杀不死,最后还是留一个进程在那里非要用 kill -9 才能结束掉。看了一下,进程是卡死在 grpc shutdown的信号量上面了。#0 0x00007f533454d48c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0#1 0x00007f53301ada52 in gpr_cv_wait () from /lib64/libgrpc.so.11#2 ...
-
July 28, 2020
Linux系统bash高级重定向之dev fd
[root@localhost ]# cat <(echo "test")testbash里面有这种高级用法,把输出直接通过重定向转给另外一个命令,类似管道| 重定向.http://www.gnu.org/software/bash/manual/html_node/Redirections.html/dev/fd/fdIf fd is a valid integer, file descriptor fd is duplicated./dev/fd 其实一个软连接指向/proc...
-
July 24, 2020
C11和linux内核的静态断言static_assert和build_bug_on
以前的常用的编译期错误报告,就是#if 和 #error 的宏检查吧,不过这个能针对宏的值做检查,c语言有一个很古老的assert函数,这个运行时检查会影响性能吧。不过c11/c++11 加了一个 static_assert,这个的好处就是支持对所有常量的判断,而且是编译期的检查不影响性能。印象中记得有这么一个东西,上次想在内核里面用的时候没找到,刚看了一下内核代码发现linux内核已经包装了 BUILD_BUG_ON系列的宏了,不过static_assert应该也还能用。https:/...
-
July 24, 2020
Linux的bpf过滤器的nop空指令
https://elixir.bootlin.com/linux/latest/source/Documentation/networking/filter.txt ja 6 Jump to label BPF_JUMP(BPF_JMP + BPF_JA, 0, 0, 0),像上面那样插入一个jmp 跳转到到下一行代码 ,最后应该会被jit生成器给删掉,也就是空指令的效果吧,不过和nop指令还是有区别的。https:...