我在我的应用程序中使用 libradius。在调用rad_send_request()后此信息可用的结构struct rad_handle是私有的,因此我无法从我的应用程序访问h->servers[h->srv].addr。
有什么方法可以知道我之前使用rad_add_server()添加的几个 RADIUS 服务器中的哪一个响应了我的rad_send_request ()发送的RAD_ACCESS_REQUEST ?
libradius API 无法确定此信息。
一旦您收到来自服务器的响应,它就已经丢弃了有关哪个服务器地址回复它的信息。
您唯一的选择是制作包含此信息的自定义版本的 libradius。
库本身很小,因此理解它以便进行这种更改应该很简单。
这当然是假设bsd libradius,而不是FreeRadius 客户端库