ZBLOG

分析一下这段代码的作用 ``` static bool conn_update_state_alg(struct conntrack *ct, struct dp_packet *pkt, struct conn_lookup_ctx *ctx, struct conn *conn, const struct nat_action_info_t *nat_action_info, ...

这段代码的作用是更新连接跟踪的状态,并且对于FTP控制流量,保持序列追踪和序列偏移源的同步。具体来说:

  • 接受一个连接跟踪数据结构ct,一个数据包pkt,一个连接查找上下文ctx,一个连接conn,一个NAT操作信息nat_action_info,一个连接跟踪算法控制类型ct_alg_ctl,当前时间now,一个桶号bucket和一个标志位create_new_conn。
  • 如果ct_alg_ctl为FTP控制流量(is_ftp_ctl(ct_alg_ctl)返回true),则执行以下操作:
    • 如果ctx的回复方向与连接的序列偏移方向不同,则调用handle_ftp_ctl函数处理FTP控制流量,然后使用conn_update_state函数更新连接状态,并将create_new_conn设置为更新后的值。
    • 如果ctx的回复方向与连接的序列偏移方向相同,则直接使用conn_update_state函数更新连接状态,并将create_new_conn设置为更新后的值。如果create_new_conn为false,则调用handle_ftp_ctl函数处理FTP控制流量。
    • 返回true表示已经处理了FTP控制流量。
  • 如果ct_alg_ctl不是FTP控制流量,则返回false。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=395

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?