通过编写可以编译和链接到共享库的 C 语言程序,将用户定义的功能添加到日志路由后台进程。‑‑ LogRoute API 函数包含三个部分:
注册函数可以使用 CA ControlMinder 后台进程初始化您的 LogRoute API 函数并 进行注册。 实施函数可以将您的任务添加到标准日志路由后台进程。 在后台进程本身终止时,终止函数可以正常取消注册并关闭您的程序。
LogRoute API 函数可以利用由 CA ControlMinder 提供的函数和标头文件。 所有的日志路由函数都使用相同的注册、实施和终止函数。
LogRoute API 函数准备就绪后,即可将共享库添加到日志路由后台进程的配置文件中。
日志路由后台进程使用配置文件来确定要选择的审核日志记录,以及这些记录发送到的位置。 您可以编辑配置文件,将特定审核信息路由到日志路由后台进程支持的各种选定目标。
注意:有关配置文件和 selogrd 后台进程语法的详细信息,请参阅《参考指南》。
LogRoute API 函数使用由 CA ControlMinder 提供的内置函数和标头文件,它提供以下预定义的 selogrd 函数:‑
CA ControlMinder 提供以下预定义的 selogrcd 函数:
所有 LogRoute API 函数还必须针对实施的每个目标类型包含以下目标函数:
使用 pfSend、pfFree 和 pfSense 指针可以访问分组到 LOGRAPI_FUNCS 结构中的这三个函数。 API 程序员必须提供用于这些函数的各个代码,因为每个函数都完全依赖于任务。‑
本部分提供编译并将 LogRoute API 函数与 CA ControlMinder 后台进程链接的说明。 这些常规说明介绍了最常见的系统配置。 每个系统都有自己特定的要求。 有关特定系统的编译器或链接器的确切详细信息,请参阅您的系统指南。
必须在 LogRoute API 函数中包含标头文件 lograpi.h 和 selogtype.h。 这些文件位于 API 子目录中。 将以下两行放在文件的顶部附近:
#include <lograpi.h> #include <selogtype.h>
可以使用任何与 ANSI‑C 兼容的编译器。
在编译代码之后,将生成一个包含编译版本函数的共享库。 apisamples 目录包含示例日志路由函数和演示流程的 makefile。 请注意,编译共享库通常需要使用其他编译器参数来创建位置独立代码。‑ 有关在特定系统中创建共享库的信息,请参阅有关编译器或链接器的文档。
在编写代码并创建共享库之后,将共享库添加到与代码应链接到的后台进程相关的“按需”共享库配置文件。‑
如果已编写 selogrd 的共享库,请将共享库添加到文件 ACDir/etc/selogrd.ext。 如果已编写 selogrcd 的共享库,请将共享库添加到文件 ACDir/etc/selogrcd.ext。
每个文件都包含两列:驱动程序名称和共享库路径。 按照惯例,驱动程序名称是与您的目标类型具有相同名称的字符串;不过,它可以是任何有效的 C 语言符号。
例如,如果您已编写代码来实施传呼机,则目标名称应为 pager,完整文件条目将为:
pager /usr/local/lib/libseospager.so
此文件条目意味着,后台进程 selogrd 在启动时加载共享库 /usr/local/lib/libseospager.so 并调用您的函数。
尽管一些系统支持名为 _init 的预定义函数,但建议您使用 driver_RegisterDestination 函数。 这是从共享库调用的第一个函数。
函数 driver_RegisterDestination 可注册新目标类型。 在后台进程关闭时,建议您使用函数 driver_UnregisterDestination,而不是预定义函数 _fini。
注意:使用 CA ControlMinder 函数而不是预定义的系统函数将为您的代码赋予更高的可移植性。
后台进程 selogrcd 与 selogrd 使用相同的文件配置格式。 但是,selogrcd 搜索 driver_Register 和 driver_UnRegister 函数。 如果函数 driver_UnRegister 不是必需的,可以忽略。
版权所有 © 2013 CA。
保留所有权利。
|
|