fred-mod-whoisd
|
#include "Logger.h"
Go to the source code of this file.
Classes | |
struct | whois_request |
struct | obj_domain |
struct | obj_nsset |
struct | keyset_dsrecord |
struct | keyset_dnskey |
struct | obj_keyset |
struct | obj_contact |
struct | obj_registrar |
struct | general_object |
Macros | |
#define | CORBA_OK 0 |
#define | CORBA_OK_LIMIT 1 |
#define | CORBA_SERVICE_FAILED 2 |
#define | CORBA_INTERNAL_ERROR 3 |
#define | CORBA_UNKNOWN_ERROR 4 |
#define | TIME_BUFFER_LENGTH 60 |
#define | MAX_ERROR_MSG_LEN 100 |
#define | MAX_OBJECT_COUNT 100 |
#define | T_NONE 0 /* Nothing. */ |
#define | T_DOMAIN 1 /* Object type domain. */ |
#define | T_NSSET 2 /* Object type nsset. */ |
#define | T_CONTACT 4 /* Object type contact. */ |
#define | T_REGISTRAR 8 /* Object type registrar. */ |
#define | T_KEYSET 16 /* Object type keyset. */ |
Typedefs | |
typedef void * | service_Whois |
typedef void * | service_Logger |
Enumerations | |
enum | search_axis { SA_NONE = 0 , SA_REGISTRANT , SA_ADMIN_C , SA_TEMP_C , SA_NSSET , SA_KEYSET , SA_NSERVER , SA_TECH_C } |
enum | whois_action_type { Info = 1105 } |
Functions | |
int | whois_corba_call (service_Whois service, const whois_request *wr, general_object *objects, char *timebuf, char *errmsg) |
void | whois_release_data (general_object *object_list) |
int | check_duplicates (int type, char *handle, general_object *objects, int index_free) |
int | whois_log_new_message (service_Logger service, const char *sourceIP, const char *content, ccReg_RequestProperties *properties, ccReg_TID *log_entry_id, char *errmsg) |
int | whois_close_log_message (service_Logger service, const char *content, ccReg_RequestProperties *properties, ccReg_TID log_entry_id, CORBA_long result_code, char *errmsg) |
This file defines interface to CORBA backend.
The program is divided into two parts. First contains apache stuff and second implements CORBA calls to CORBA server, which are declared here.
#define MAX_ERROR_MSG_LEN 100 |
Length of buffer used to hold error message from corba backend.
#define MAX_OBJECT_COUNT 100 |
Length of array for result objects and also a limit for maximal number of objects returned by whois query.
#define TIME_BUFFER_LENGTH 60 |
Length of buffer used to hold time of response generation (must be enough even for RFC822 date).
typedef void* service_Logger |
reference to the logger corba service
typedef void* service_Whois |
reference to the whois corba service
enum search_axis |
Axes used in reverse searches.
enum whois_action_type |
For now, only one action type is performed by whois
int check_duplicates | ( | int | type, |
char * | handle, | ||
general_object * | objects, | ||
int | index_free | ||
) |
Check for duplicates in array of objects.
type | Which type of objects to look for. |
handle | Handle of the object. |
objects | The structure for holding any type of object |
index_free | First free item in array of objects. |
int whois_close_log_message | ( | service_Logger | service, |
const char * | content, | ||
ccReg_RequestProperties * | properties, | ||
ccReg_TID | log_entry_id, | ||
CORBA_long | result_code, | ||
char * | errmsg | ||
) |
Update and close existing event using logging daemon
service | Whois CORBA object reference. |
content | Raw content of the message. |
properties | Custom properties parsed from the content |
log_entry_id | ID of the log entry to be close |
errmsg | Buffer for error message. |
int whois_corba_call | ( | service_Whois | service, |
const whois_request * | wr, | ||
general_object * | objects, | ||
char * | timebuf, | ||
char * | errmsg | ||
) |
The core function of whois module performs actual query.
service | Corba reference of remote whois object. |
wr | Representation of whois request. |
objects | List of objects to be printed. |
timebuf | Time of response generation (buffer must be TIME_BUFFER_LENGTH bytes long). |
errmsg | Buffer for error message. |
Call the right function for the specific object type / search axis / handle combination
service | Whois CORBA object reference. |
wr | Whois request. |
objects | Array of resulting objects. |
timebuf | Timestamp. |
errmsg |
int whois_log_new_message | ( | service_Logger | service, |
const char * | sourceIP, | ||
const char * | content, | ||
ccReg_RequestProperties * | properties, | ||
ccReg_TID * | log_entry_id, | ||
char * | errmsg | ||
) |
Log a message using logging daemon
service | Whois CORBA object reference. |
sourceIP | IP of the host which sent the request. |
content | Raw content of the message. |
properties | Custom properties parsed from the content |
errmsg | Buffer for error message. |
Log a new event using logging daemon
service | Whois CORBA object reference. |
sourceIP | IP of the host which sent the request. |
content | Raw content of the message. |
properties | Custom properties parsed from the content |
log_entry_id | Output of ID from event logger |
errmsg | Buffer for error message. |
void whois_release_data | ( | general_object * | objects | ) |
Release data.
We don't want to mix apache pools with malloc and free routines within one file, so we have to explicitly call this function in order to release whois data returned from previous call. You must NOT pass NULL pointer as argument.
object_list | Whois data to be freed. |
Release data of any of the objects
objects | Object to release |