<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [ipsec][strongswan] strongswan源碼分析--(五)plugin的配置文件的添加方法與管理架構(gòu)解析

      前言

      我們知道,strongswan是基于插件式管理的。不同的插件有不同的配置文件,在這下面,

      我們以netlink的插件為例:etc/strongswan.d/charon/kernel-netlink.conf

      在這個(gè)文件里,提供了不同的針對(duì)插件的配置項(xiàng)。接下來(lái)我們將講解,如何開(kāi)發(fā)這些配置項(xiàng)。

       

      配置文件結(jié)構(gòu)

      在開(kāi)始之前,先了解一下strongswan的配置文件組織結(jié)構(gòu),

      strongswan的所有配置項(xiàng)都是層級(jí)結(jié)構(gòu)組織的,如:charon.plugins.kernel-netlink.force_receive_buffer_size

      樹(shù)狀結(jié)構(gòu),它們擁有共同的父節(jié)點(diǎn),charon。

      在配置文件里面,可以include其他的配置文件。

      strongswan的所有配置文件,也都是樹(shù)型引用的,它們擁有同一個(gè)共同的父節(jié)點(diǎn),也就是所有配置文件的入口:etc/strongswan.conf

      所有的plugin的配置文件,都在目錄etc/strongswan.d/charon/下,并以插件的名字命令,形如kernel-netlink.conf

       

      配置文件的讀取和使用

      做了簡(jiǎn)單的代碼分析,如 [dev][ipsec] strongswan plugin加載優(yōu)先級(jí)原理 中提到的,

      charon程序的一開(kāi)始,便進(jìn)行了所有配置文件的加載。在library_init()函數(shù)里。

      配置文件的生成

      作為開(kāi)發(fā)者,我們將通過(guò)netlink plugin,來(lái)學(xué)習(xí)如何正確的為plugin設(shè)置配置文件。

      在strongswan的代碼里,所有的配置文件管理,都在這個(gè)目錄下

      strongswan.git/conf

      plugin在它的子目錄里,strongswan.git/conf/plugins

       

      配置文件是自動(dòng)生成的,通過(guò)模塊,和腳本的輔助。

      兩個(gè)模版文件:

      default.conf, default.opt

      配置文件的生成過(guò)程,在Makefile中:Makefile.am

       

      大該的過(guò)程如下:

      1. 讀取configure階段開(kāi)啟的所以plugin列表。

      2. 在plugins目前下讀取每一個(gè)plugin的自定義配置項(xiàng),如kernel-netlink.opt

      3. 如果沒(méi)有默認(rèn)配置項(xiàng)的,將使用默認(rèn)的配置項(xiàng)配置文件:default.opt

      4. 將自定義配置項(xiàng)中的配置,通過(guò)配置文件魔板整合生成對(duì)應(yīng)plugin的配置文件 如:kernel-netlink.conf

      這個(gè)配置文件在代碼倉(cāng)庫(kù)中是沒(méi)有的,而是在編譯安裝過(guò)程中生成的。

      5. 為其他plugin重復(fù)以上步驟。

       

      幾段關(guān)鍵的代碼:

      1. 指定所有配置文件作為target的宏

      # we only install snippets for enabled plugins
      plugins_install_tmp = $(charon_plugins:%=plugins/%.tmp)
      plugins_install_src = $(charon_plugins:%=plugins/%.conf)

      2。整合魔板與定制內(nèi)容的target

      .opt.conf:
          $(AM_V_GEN) \
          case "$<" in \
          *plugins/*) \
              sed \
              -e "s:\@PLUGIN_NAME\@:`basename $< .opt`:" \
              $(srcdir)/default.opt | cat - $< | \
              $(PYTHON) $(srcdir)/format-options.py -f conf -r charon.plugins > $(srcdir)/$@ \
              ;; \
          *) \
              $(PYTHON) $(srcdir)/format-options.py -f conf -r charon.plugins $< > $(srcdir)/$@ \
              ;; \
          esac
      
      # we need another implicit rule to generate files from the generic template only
      # if the rules above did not catch it.  this requires an intermediate step that
      # generates a copy of the generic config template.
      $(plugins_install_tmp):
          @mkdir -p $(builddir)/plugins
          @cp $(srcdir)/default.conf $(builddir)/$@
      
      .tmp.conf:
          $(AM_V_GEN) \
          sed \
          -e "s:\@PLUGIN_NAME\@:`basename $< .tmp`:" \
          $(builddir)/$< > $(builddir)/$@

       

      舉例:

      假設(shè)我們現(xiàn)在要自開(kāi)發(fā)一個(gè)plugin,classic-tong并為其指定以下配置項(xiàng),只需要在目錄

      plugins下,添加一個(gè)文件,classic-tong.opt

      并編輯內(nèi)容:

      charon.plugins.classic-tong.timeout = 0

      就可以了。

       

      posted on 2019-06-05 18:55  toong  閱讀(3263)  評(píng)論(0)    收藏  舉報(bào)

      主站蜘蛛池模板: 久久精品波多野结衣| 和林格尔县| 中文字幕久久人妻熟人妻| 美女爽到高潮嗷嗷嗷叫免费网站| 日韩精品一区二区三区中文无码| 国产不卡一区二区在线| 熟女一区二区中文在线| 日本55丰满熟妇厨房伦| 莱芜市| 国产亚洲999精品aa片在线爽| 94人妻少妇偷人精品| 国产精品久久久久久av| 久久久久免费看成人影片| 四虎精品视频永久免费| 国产成人精品午夜2022| 亚洲欧美在线观看| 深夜精品免费在线观看| 337p西西人体大胆瓣开下部| 亚洲人成人影院在线观看| 久热综合在线亚洲精品| 依依成人精品视频在线观看| 国产久久热这里只有精品| 国内在线视频一区二区三区| 久久精品夜色噜噜亚洲aa| 无码日韩做暖暖大全免费不卡| 德江县| 性xxxx搡xxxxx搡欧美| 亚洲av无码精品色午夜蛋壳| 亚洲欧美日韩国产手机在线| 亚洲国产美女精品久久久久| 精品国产丝袜自在线拍国语| 国产精品一区中文字幕| 日韩精品国内国产一区二| 日韩高清亚洲日韩精品一区二区| 4hu亚洲人成人无码网www电影首页| 好吊视频专区一区二区三区| 中文字幕日韩熟女av| 婷婷四房播播| 亚洲美女厕所偷拍美女尿尿 | 国产成人乱色伦区| 亚洲一本二区偷拍精品|