The ServerModule symbol resolves to a server_module_t type, which is a data structure defined in server_module.h from libserver:
typedef struct _server_module_t {
char *name;
char *description;
int ver_major, ver_minor, ver_micro;
int build_ver_major, build_ver_minor, build_ver_micro;
char **authors;
cfg_opt_t *configuration\_options;
int (*construct)(void *);
int (*prestart)(cfg_t *);
void * (*operator)(void *);
void (*report)(FILE *);
} server_module_t;
- name
- Name of the module
- description
- Brief description of modules purpose
- ver_major
- Major version of the module
- ver_minor
- Minor version of the module
- ver_micro
- Micro version of the module
- build_ver_major
- Major version of ServerKit used to compile the module
- build_ver_minor
- Minor version of ServerKit used to compile the module
- build_ver_micro
- Micro version of ServerKit used to compile the module
- authors
- NULL terminated array of module author strings
- configuration_options
- Libconfuse type which describes the modules configuration options
- construct
- Function for very early module initialization
- prestart
- Function for post-configuration pre-userswitch activities, like binding to privileged ports
- operator
- Function passed to pthread_create, basically the modules main entry point
- report
- Function for reporting statistics, usually this involves sending some module-specific statistics to the supplied stdio FILE
2007-12-06