Tmp-String-0

时间:2018-07-23 15:19:42

标签: freeradius

我正在尝试在启用了dhcp的站点中使用Tmp-String-0变量。

我的版本过旧并且已经投入生产(2.1.12)。

这是我的dhcp文件的内容。

dhcp DHCP-Discover {

    update control{
            Tmp-String-0 = "%{sql: CALL sqlprocedure('%{DHCP-Agent-Circuit-Id}','%{DHCP-Gateway-IP-Address}','%{DHCP-Relay-Remote-Id}')}"
    }

    if(control:Tmp-String-0 != "" ) {
            update reply {
                    DHCP-Message-Type = DHCP-Offer
            }
    }
    else {
            update reply {
                    DHCP-Message-Type = DHCP-NAK
            }
    }

update reply {
DHCP-Your-IP-Address = "control:Tmp-String-0"
}
}

这是我在调试模式下得到的结果。

rlm_sql_mysql: query:   CALL sqlprocedure('value','1.2.3.4','value')
sql_xlat finished
rlm_sql (sql): Released sql socket id: 4
expand: %{sql: CALL sqlprocedure('%{DHCP-Agent-Circuit-Id}','%{DHCP-Gateway-IP-Address}','%{DHCP-Relay-Remote-Id}')} -> 10.10.10.10
++[control] returns noop
++? if (control:Tmp-String-0 != "" )
? Evaluating (control:Tmp-String-0 != "" ) -> TRUE
++? if (control:Tmp-String-0 != "" ) -> TRUE
++- entering if (control:Tmp-String-0 != "" ) {...}
+++[reply] returns noop
++- if (control:Tmp-String-0 != "" ) returns noop
++ ... skipping else for request 445: Preceding "if" was taken
ERROR: Failed parsing value "control:Tmp-String-0" for attribute DHCP-Your- 
IP-Address: Failed to find IP address for control:Tmp-String-0
++[reply] returns fail

我不知道这有什么问题,也许我应该使用运算符“ =”而不是“:=”。

你怎么看?

非常感谢,威尔

1 个答案:

答案 0 :(得分:0)

您尝试了以下方法

update reply {
DHCP-Your-IP-Address = "Tmp-String-0"
}