1. 程式人生 > >strongswan -- STRONGSWAN_CONF是如何傳到代碼裏的

strongswan -- STRONGSWAN_CONF是如何傳到代碼裏的

png src image 有關 http 讀取 con 賦值 wan

  配置文件strongswan.conf是通過STRONGSWAN_CONF讀取並加載的。

  技術分享圖片

  通過source insight加載了strongswan整個工程文件(只包括.c和.h文件),發現沒有地方給STRONGSWAN_CONF賦值。

  技術分享圖片

  而在charon進程加載時,STRONGSWAN_CONF是有值的,這個值是從哪裏來的呢?

  搜索了strongswan所有代碼,發現與STRONGSWAN_CONF有關的有如下幾處:

  技術分享圖片

  圖中顯示Makefile.am和Makefile.in中有STRONGSWAN_CONF相關的語句。

  Makefile.in中的語句如下圖:

  技術分享圖片

  

gcc的參數“-D”含義如下:

-Dmacro

以字符串“1”定義 MACRO 宏

   相當於C語言中的#define macro

-Dmacro=defn

以字符串“defn”定義 MACRO 宏

   相當於C語言中的#define macro defn

  其他參數介紹可參見:

https://www.cnblogs.com/zhangsir6/articles/2956798.html

  

  實際make的時候執行的是Makefile。打開Makefile可以看到,其中引用了Makefile.in和Makefile.am。

   技術分享圖片

  如此一來便追蹤到STRONGSWAN_CONF的源頭。

註:

打開strongswan的Makefile發現如下兩句註釋,可以看出Makefile.am、Makefile.in和Makefile相生相依的關系。

  技術分享圖片

strongswan -- STRONGSWAN_CONF是如何傳到代碼裏的