haproxy中两个常用的宏

简介: list_for_each(pos, head)pos、head 都为list类型一般来说,head是list的虚拟头,依次取list上的各个节点container_of(ptr, type, member)ptr:现已知的指针type:要求的结构体类型member:指针在结构体中的名称该宏用于在已知结构中某个成员地址的情况下,求得结构体的起始地址两个连用haproxy中结构体间常含list成员,用于将多个节点串在一起,在依次取各节点成员的时候,需要上述两个宏搭配使用。

list_for_each(pos, head)

  • pos、head 都为list类型
  • 一般来说,head是list的虚拟头,依次取list上的各个节点

    container_of(ptr, type, member)

  • ptr:现已知的指针
  • type:要求的结构体类型
  • member:指针在结构体中的名称
  • 该宏用于在已知结构中某个成员地址的情况下,求得结构体的起始地址

两个连用

haproxy中结构体间常含list成员,用于将多个节点串在一起,在依次取各节点成员的时候,需要上述两个宏搭配使用。

list_for_each(pos_scad, sp->current_server_cad) {
    s_cad = container_of(pos_scad, struct server_cad, srv_link);
}

依次取得各server_cad的地址,方便下面对该节点进行取值或赋值。

目录
相关文章
|
5月前
|
应用服务中间件 数据库 nginx
nginx 第三方模块 与变量
nginx 第三方模块 与变量
|
Shell 应用服务中间件 nginx
|
应用服务中间件 nginx
Nginx 配置指令的执行顺序(二)
我们前面已经知道,当 set 指令用在 location 配置块中时,都是在当前请求的 rewrite 阶段运行的。事实上,在此上下文中,ngx_rewrite 模块中的几乎全部指令,都运行在 rewrite 阶段,包括 Nginx 变量漫谈(二) 中介绍过的 rewrite 指令。
1294 0
|
应用服务中间件 nginx
Nginx基本配置文件和变量详解
Nginx基本配置文件和变量详解 1. 基本配置文件
|
监控
Zabbix实践-宏变量
一、.宏介绍 宏是一种抽象概念(Abstraction),它根据一些列预定义的规则替换一定的文本模式,而解释或编译器在遇到宏时会自动进行这一模式替换。类似地,zabbix基于宏保存预设文本模式,并且在调用时将其替换为其中的文本。
1750 0
|
网络协议 应用服务中间件 nginx
|
应用服务中间件 nginx
|
应用服务中间件 nginx