Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

model.h File Reference


Detailed Description

Library to manipulate the system database model.

NOTE: MUST BE SINGLE THREADED ACCESS!!!

The program awnotify.sh is called to send email/pager alerts and can me customized to your local environment.

#include "awsqlite.h"
#include "monitor.h"
#include "model_pstmt.h"

Go to the source code of this file.

Data Structures

struct  aw_model_alert_slisting_s
struct  aw_model_event_slisting_s
struct  aw_model_group2user_s
struct  aw_model_group_listing_s
struct  aw_model_group_slisting_s
struct  aw_model_group_t
struct  aw_model_interface_detail_t
struct  aw_model_interface_listing_s
struct  aw_model_interface_name_t
struct  aw_model_interface_netmon_listing_s
struct  aw_model_netmon_s
struct  aw_model_node2group_s
struct  aw_model_node2nodegrp_s
struct  aw_model_node_detail_t
struct  aw_model_node_listing_s
struct  aw_model_node_slisting_s
struct  aw_model_node_t
struct  aw_model_nodeasset_t
struct  aw_model_nodegrp2node_s
struct  aw_model_nodegrp_listing_s
struct  aw_model_nodegrp_t
struct  aw_model_options_t
struct  aw_model_service2port_listing_s
struct  aw_model_service_detail_t
struct  aw_model_service_listing_s
struct  aw_model_service_name_t
struct  aw_model_service_netmon_listing_s
struct  aw_model_setting_t
struct  aw_model_stmt_t
struct  aw_model_subnet_listing_s
struct  aw_model_t
struct  aw_model_user2group_s
struct  aw_model_user_listing_s
struct  aw_model_user_slisting_s
struct  aw_model_user_t
struct  aw_model_userhandle_t
struct  aw_model_userinfo_t

Defines

#define AW_MODEL_NETMESSAGE_DEFAULT_PORT   9999

Typedefs

typedef aw_model_alert_slisting_s aw_model_alert_slisting_t
typedef aw_model_event_slisting_s aw_model_event_slisting_t
typedef aw_model_group2user_s aw_model_group2user_t
typedef aw_model_group_listing_s aw_model_group_listing_t
typedef aw_model_group_slisting_s aw_model_group_slisting_t
typedef aw_model_interface_listing_s aw_model_interface_listing_t
typedef aw_model_interface_netmon_listing_s aw_model_interface_netmon_listing_t
typedef aw_model_netmon_s aw_model_netmon_t
typedef aw_model_node2group_s aw_model_node2group_t
typedef aw_model_node2nodegrp_s aw_model_node2nodegrp_t
typedef aw_model_node_listing_s aw_model_node_listing_t
typedef aw_model_node_slisting_s aw_model_node_slisting_t
typedef aw_model_nodegrp2node_s aw_model_nodegrp2node_t
typedef aw_model_nodegrp_listing_s aw_model_nodegrp_listing_t
typedef aw_model_service2port_listing_s aw_model_service2port_listing_t
typedef aw_model_service_listing_s aw_model_service_listing_t
typedef aw_model_service_netmon_listing_s aw_model_service_netmon_listing_t
typedef aw_model_subnet_listing_s aw_model_subnet_listing_t
typedef aw_model_user2group_s aw_model_user2group_t
typedef aw_model_user_listing_s aw_model_user_listing_t
typedef aw_model_user_slisting_s aw_model_user_slisting_t

Enumerations

enum  aw_model_netmon_class_t { AW_MODEL_INTERFACE_HANDLER = 1, AW_MODEL_SERVICE_HANDLER }

Functions

int32_t aw_model_alert_user_slist (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t user_id, u_int32_t limit, aw_model_alert_slisting_t *alert_slisting)
 Init itertator to fill listing with data from alert table for alerts NOT acknowledged. Call user_slisting->iter.next() until <= 0 .

const aw_model_userhandle_t * aw_model_authenticate (aw_model_t *model, const byte_t *userid, const byte_t *password)
 Return non-zero if authenticated.

const aw_model_userhandle_t * aw_model_CHAP (aw_model_t *model, const byte_t *userid, u_int32_t prefix, const byte_t *response)
 Return non-zero if authenticated using CHAP.

void aw_model_close (aw_model_t *model)
 Closes connection to the model database and frees resources.

int32_t aw_model_discover (aw_model_t *model, const aw_model_userhandle_t *handle)
 Run network discovery as background process, update db (see aw_model_run_discover).

int32_t aw_model_discover_running (aw_model_t *model, const aw_model_userhandle_t *handle)
 Return non-zero if discovery process is running.

int32_t aw_model_escalate_alert (aw_model_t *model, const aw_model_userhandle_t *handle)
 If an alert has not been acknowlege with specfied time period then alert next user in group.

int32_t aw_model_event_today_slist (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t limit, aw_model_event_slisting_t *event_slisting)
 Init itertator to fill listing with data from event table for events today. Call user_slisting->iter.next() until <= 0 .

int32_t aw_model_execute_stmt (aw_model_t *model, aw_model_stmt_t *stmt)
 Execute compiled sql statment.

void aw_model_finalize_stmt (aw_model_t *model, aw_model_stmt_t *stmt)
 Free compiled sql statment.

void aw_model_free_handle (const aw_model_userhandle_t *handle)
 Free object.

int32_t aw_model_group2users (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t groupid, aw_model_group2user_t *group2user)
 Init itertator to update group membership. Call group2user->iter.next() until <= 0 .

int32_t aw_model_group_create (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *groupname)
 Create a group record with specified name.

int32_t aw_model_group_list (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t deleted, aw_model_group_listing_t *group_listing)
 Itertator to fill listing with data from group table. Call group_listing->iter.next() until <= 0 .

int32_t aw_model_group_node_slist (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodeid, aw_model_group_slisting_t *group_slisting)
 Init itertator to fill listing with data from group table for node. Call group_slisting->iter.next() until <= 0 .

int32_t aw_model_group_notnode_slist (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodeid, aw_model_group_slisting_t *group_slisting)
 Init itertator to fill listing with data from group table for groups NOT assoc w/node. Call group_slisting->iter.next() until <= 0 .

int32_t aw_model_group_notuser_slist (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t userid, aw_model_group_slisting_t *group_slisting)
 Init itertator to fill listing with data from group table for groups NOT assoc w/user. Call group_slisting->iter.next() until <= 0 .

int32_t aw_model_group_query (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t groupid, aw_model_group_t *group)
 Fill group with data from group table.

int32_t aw_model_group_update (aw_model_t *model, const aw_model_userhandle_t *handle, const aw_model_group_t *updated_group)
 Update group record.

int32_t aw_model_group_user_slist (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t userid, aw_model_group_slisting_t *group_slisting)
 Init itertator to fill listing with data from group table for user. Call group_slisting->iter.next() until <= 0 .

int32_t aw_model_ia_event_insert (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t interface_id, u_int32_t up, u_int32_t priority, aw_timestamp_t tstamp)
 Insert interface availability event if up/down change, trigger will update interface table.

int32_t aw_model_interface_alert (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t interface_id, u_int32_t up, aw_timestamp_t tstamp)
 Generate an alert for an ia event.

int32_t aw_model_interface_create (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodeid, const byte_t *ip)
 Create a interface record with assoc node,ip.

int32_t aw_model_interface_list_by_node (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodeid, u_int32_t deleted, aw_model_interface_listing_t *interface_listing)
 Itertator to fill listing with data from interface table for an interface. Call interface_listing->iter.next() until <= 0 .

int32_t aw_model_interface_name_query (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t interfaceid, aw_model_interface_name_t *interface_name)
 Fill interface with data from interface table.

int32_t aw_model_interface_netmon_list (aw_model_t *model, const aw_model_userhandle_t *handle, aw_model_interface_netmon_listing_t *interface_netmon_listing)
 Itertator to fill listing with data from interface table for an interface network probe. Call interface_listing->iter.next() until <= 0 .

int32_t aw_model_interface_query (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t interfaceid, aw_model_interface_detail_t *interfacedetail)
 Fill interface with data from interface table.

int32_t aw_model_interface_update (aw_model_t *model, const aw_model_userhandle_t *handle, const aw_model_interface_detail_t *updated_interfacedetail)
 Update interface record.

const aw_model_userhandle_t * aw_model_make_handle (u_int32_t userid, u_int32_t ro)
 Return handle object.

int32_t aw_model_mdns_event_insert (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *ip, u_int32_t port, const byte_t *service, const byte_t *protocol, const byte_t *name, u_int32_t up, u_int32_t priority, aw_timestamp_t tstamp)
 Insert mdns availability event if up/down change, trigger will update service table.

int32_t aw_model_message_alert (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *nodename, const byte_t *msg, aw_timestamp_t tstamp)
 Generate an alert for an nm event.

int32_t aw_model_netmon_add_probe_by_name (aw_model_t *model, aw_model_netmon_class_t handler_class, u_int32_t id, const byte_t *name, const byte_t *ip, u_int32_t port, const byte_t *proto, const byte_t *handler, u_int32_t timeout, u_int32_t cycle, const byte_t *handlercron, const byte_t *maintcron, u_int32_t perf)
 Add network monitoring service probe.

void aw_model_netmon_clear (aw_model_t *model)
 UNDO aw_model_netmon_init().

void aw_model_netmon_init (aw_model_t *model)
 Init all network monitoring (call this only 1 time!).

u_int32_t aw_model_netmon_is_disabled (aw_model_t *model)
 Test to see if network monitoring is running.

void aw_model_netmon_remove_probe (aw_model_t *model, aw_model_netmon_class_t handler_class, u_int32_t id)
 Stop all particular network monitoring probe.

void aw_model_netmon_restart (aw_model_t *model)
 Stop / start all network monitoring probes (if enabled).

void aw_model_netmon_start (aw_model_t *model)
 Start all network monitoring probes.

void aw_model_netmon_stop (aw_model_t *model)
 Stop all network monitoring probes.

int32_t aw_model_nm_event_insert (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *nodename, const byte_t *msg, u_int32_t priority, aw_timestamp_t tstamp)
 Insert node message event.

int32_t aw_model_node2groups (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodeid, aw_model_node2group_t *node2group)
 Init itertator to update a node's group association for alerts. Call node2group->iter.next() until <= 0 .

int32_t aw_model_node_create (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *name)
 Create a node record with assoc name.

int32_t aw_model_node_list (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t deleted, aw_model_node_listing_t *node_listing)
 Itertator to fill listing with data from node table. Call node_listing->iter.next() until <= 0 .

int32_t aw_model_node_list_by_nodegrp (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodegrpid, u_int32_t deleted, aw_model_node_listing_t *node_listing)
 Itertator to fill listing with data from node table for a nodegrp. Call node_listing->iter.next() until <= 0 .

int32_t aw_model_node_nodegrp_slist (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodegrpid, aw_model_node_slisting_t *node_slisting)
 Init itertator to fill listing with data from node table for nodegrp. Call node_slisting->iter.next() until <= 0 .

int32_t aw_model_node_notnodegrp_slist (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodegrpid, aw_model_node_slisting_t *node_slisting)
 Init itertator to fill listing with data from node table for nodes NOT assoc w/nodegrp. Call node_slisting->iter.next() until <= 0 .

int32_t aw_model_node_outages (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t limit, aw_model_node_listing_t *node_listing)
 Itertator to fill listing with data from node table for thos with outages. Call node_listing->iter.next() until <= 0 .

int32_t aw_model_node_query (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodeid, aw_model_node_detail_t *nodedetail)
 Fill node with data from node table.

int32_t aw_model_node_update (aw_model_t *model, const aw_model_userhandle_t *handle, const aw_model_node_detail_t *updated_nodedetail)
 Update node record.

int32_t aw_model_nodeasset_query (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodeid, aw_model_nodeasset_t *nodeasset)
 Fill nodeasset with data from nodeasset table.

int32_t aw_model_nodeasset_update (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodeid, const aw_model_nodeasset_t *nodeasset)
 Fill nodeasset table with data from nodeasset.

int32_t aw_model_nodegrp2nodes (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t append, u_int32_t nodegrpid, aw_model_nodegrp2node_t *nodegrp2node)
 Init itertator to update nodegrp membership. Call nodegrp2node->iter.next() until <= 0 .

int32_t aw_model_nodegrp_apply_active (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodegrpid, u_int32_t val)
 Set active indicator for all nodes in nodegrp.

int32_t aw_model_nodegrp_apply_deleted (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodegrpid, u_int32_t val)
 Set deleted indicator for all nodes in nodegrp.

int32_t aw_model_nodegrp_create (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *name)
 Create a nodegrp record with assoc name.

int32_t aw_model_nodegrp_list (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t deleted, aw_model_nodegrp_listing_t *nodegrp_listing)
 Itertator to fill listing with data from nodegrp table. Call nodegrp_listing->iter.next() until <= 0 .

int32_t aw_model_nodegrp_query (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t nodegrpid, aw_model_nodegrp_t *nodegrp)
 Fill nodegrp with data from nodegrp table.

int32_t aw_model_nodegrp_update (aw_model_t *model, const aw_model_userhandle_t *handle, const aw_model_nodegrp_t *updated_nodegrp)
 Update nodegrp record.

int32_t aw_model_open (const byte_t *db, aw_monitor_t *mon, const aw_model_options_t *options, aw_model_t *model)
 Opens a connection to the model database, creates a new database if there is not one currently. Associates monitor with model.

void aw_model_reset_stmt (aw_model_t *model, aw_model_stmt_t *stmt)
 Reset compiled sql statment.

int32_t aw_model_run_discover (aw_model_t *model, const aw_model_userhandle_t *handle)
 Run network discovery using a handler which detects completion (this is prefered way to run discovery).

int32_t aw_model_sa_event_insert (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t service_id, u_int32_t up, const byte_t *type, u_int32_t priority, aw_timestamp_t tstamp)
 Insert service availability event if up/down change, trigger will update service table.

void aw_model_schedule_discovery (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *mode)
int32_t aw_model_service2port_list (aw_model_t *model, const aw_model_userhandle_t *handle, aw_model_service2port_listing_t *service2port_listing)
 Itertator to fill listing with data from sport2service table. Call service2port_listing->iter.next() until <= 0 .

int32_t aw_model_service_alert (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t service_id, u_int32_t up, aw_timestamp_t tstamp)
 Generate an alert for an sa event.

int32_t aw_model_service_create (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t interfaceid, const byte_t *service)
 Create a service record with assoc interface,service.

int32_t aw_model_service_id_query (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *ip, u_int32_t port)
 Get service id from ip/port.

int32_t aw_model_service_list_by_interface (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t interfaceid, u_int32_t deleted, aw_model_service_listing_t *service_listing)
 Itertator to fill listing with data from service table for a service. Call service_listing->iter.next() until <= 0 .

int32_t aw_model_service_name_query (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t serviceid, aw_model_service_name_t *service_name)
 Fill service with data from service table.

int32_t aw_model_service_netmon_list (aw_model_t *model, const aw_model_userhandle_t *handle, aw_model_service_netmon_listing_t *service_netmon_listing)
 Itertator to fill listing with data from service table for an service network probe. Call service_listing->iter.next() until <= 0 .

int32_t aw_model_service_query (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t serviceid, aw_model_service_detail_t *servicedetail)
 Fill service with data from service table.

int32_t aw_model_service_unique (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t serviceid, byte_t *ip, u_int32_t port, byte_t *proto)
 Return non-zero if there WOULD be 2 ip,port,proto should this be inserted/updated.

int32_t aw_model_service_update (aw_model_t *model, const aw_model_userhandle_t *handle, const aw_model_service_detail_t *updated_servicedetail)
 Update service record.

int32_t aw_model_settings_query (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *kw, aw_model_setting_t *setting)
 Fill setting object with data from settings table.

int32_t aw_model_settings_update (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *kw, const byte_t *val)
 Update settings record.

int32_t aw_model_subnet_create (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *netmask)
 Create a subnet record with assoc netmask.

int32_t aw_model_subnet_list (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t deleted, aw_model_subnet_listing_t *subnet_listing)
 Itertator to fill listing with data from subnet table. Call subnet_listing->iter.next() until <= 0 .

int32_t aw_model_subnet_update (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t subnetid, u_int32_t active, u_int32_t deleted)
 Update subnet record.

int32_t aw_model_user2groups (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t userid, aw_model_user2group_t *user2group)
 Init itertator to update group membership. Call user2group->iter.next() until <= 0 .

int32_t aw_model_user_create (aw_model_t *model, const aw_model_userhandle_t *handle, const byte_t *loginid)
 Create a user record with assoc loginid.

int32_t aw_model_user_group_slist (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t groupid, aw_model_user_slisting_t *user_slisting)
 Init itertator to fill listing with data from user table for group. Call user_slisting->iter.next() until <= 0 .

int32_t aw_model_user_list (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t deleted, aw_model_user_listing_t *user_listing)
 Itertator to fill listing with data from user table. Call user_listing->iter.next() until <= 0 .

int32_t aw_model_user_notgroup_slist (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t groupid, aw_model_user_slisting_t *user_slisting)
 Init itertator to fill listing with data from user table for users NOT assoc w/group. Call user_slisting->iter.next() until <= 0 .

int32_t aw_model_user_query (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t userid, aw_model_user_t *user)
 Fill user with data from user table.

int32_t aw_model_user_update (aw_model_t *model, const aw_model_userhandle_t *handle, const aw_model_user_t *updated_user)
 Update user record.

int32_t aw_model_userinfo_query (aw_model_t *model, const aw_model_userhandle_t *handle, u_int32_t userid, aw_model_userinfo_t *userinfo)
 Fill userinfo with data from userinfo table for handle.

int32_t aw_model_userinfo_update (aw_model_t *model, const aw_model_userhandle_t *handle, const aw_model_userinfo_t *updated_userinfo)
 Update userinfo record.


Define Documentation

#define AW_MODEL_NETMESSAGE_DEFAULT_PORT   9999
 


Typedef Documentation

typedef struct aw_model_alert_slisting_s aw_model_alert_slisting_t
 

typedef struct aw_model_event_slisting_s aw_model_event_slisting_t
 

typedef struct aw_model_group2user_s aw_model_group2user_t
 

typedef struct aw_model_group_listing_s aw_model_group_listing_t
 

typedef struct aw_model_group_slisting_s aw_model_group_slisting_t
 

typedef struct aw_model_interface_listing_s aw_model_interface_listing_t
 

typedef struct aw_model_interface_netmon_listing_s aw_model_interface_netmon_listing_t
 

typedef struct aw_model_netmon_s aw_model_netmon_t
 

list for holding handlers to probe network

typedef struct aw_model_node2group_s aw_model_node2group_t
 

typedef struct aw_model_node2nodegrp_s aw_model_node2nodegrp_t
 

typedef struct aw_model_node_listing_s aw_model_node_listing_t
 

typedef struct aw_model_node_slisting_s aw_model_node_slisting_t
 

typedef struct aw_model_nodegrp2node_s aw_model_nodegrp2node_t
 

typedef struct aw_model_nodegrp_listing_s aw_model_nodegrp_listing_t
 

typedef struct aw_model_service2port_listing_s aw_model_service2port_listing_t
 

typedef struct aw_model_service_listing_s aw_model_service_listing_t
 

typedef struct aw_model_service_netmon_listing_s aw_model_service_netmon_listing_t
 

typedef struct aw_model_subnet_listing_s aw_model_subnet_listing_t
 

typedef struct aw_model_user2group_s aw_model_user2group_t
 

typedef struct aw_model_user_listing_s aw_model_user_listing_t
 

typedef struct aw_model_user_slisting_s aw_model_user_slisting_t
 


Enumeration Type Documentation

enum aw_model_netmon_class_t
 

types of handlers

Enumeration values:
AW_MODEL_INTERFACE_HANDLER 
AW_MODEL_SERVICE_HANDLER 


Function Documentation

int32_t aw_model_alert_user_slist (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  user_id,
u_int32_t  limit,
aw_model_alert_slisting_t *  alert_slisting
) 
 

Init itertator to fill listing with data from alert table for alerts NOT acknowledged. Call user_slisting->iter.next() until <= 0 .

aw_model_alert_user_slist

Parameters:
model Model object
handle Handle object for current user
user_id For which user
limit Max number of rows
alert_slisting Short listing object to be filled
Returns:
0 on data and -1 on error

const aw_model_userhandle_t* aw_model_authenticate (  aw_model_t *  model,
const byte_t *  userid,
const byte_t *  password
) 
 

Return non-zero if authenticated.

aw_model_authenticate

Parameters:
model Model object
userid User id
password Clear text password
Returns:
Non-NULL if authenticated

const aw_model_userhandle_t* aw_model_CHAP (  aw_model_t *  model,
const byte_t *  userid,
u_int32_t  prefix,
const byte_t *  response
) 
 

Return non-zero if authenticated using CHAP.

aw_model_CHAP

Parameters:
model Model object
userid User id
prefix Integer prefix used in CHAP
response Should be md5_hex(prefix concatentated with md5_hex(password))
Returns:
Non-NULL if authenticated

void aw_model_close (  aw_model_t *  model  ) 
 

Closes connection to the model database and frees resources.

aw_model_close

Parameters:
model Model object

int32_t aw_model_discover (  aw_model_t *  model,
const aw_model_userhandle_t *  handle
) 
 

Run network discovery as background process, update db (see aw_model_run_discover).

aw_model_discover

Parameters:
model Model object
handle Handle object for current user
Returns:
<= 0 on error, else pid of discovery process

int32_t aw_model_discover_running (  aw_model_t *  model,
const aw_model_userhandle_t *  handle
) 
 

Return non-zero if discovery process is running.

aw_model_discover_running

Parameters:
model Model object
handle Handle object for current user
Returns:
non-zero if discovery process is running

int32_t aw_model_escalate_alert (  aw_model_t *  model,
const aw_model_userhandle_t *  handle
) 
 

If an alert has not been acknowlege with specfied time period then alert next user in group.

aw_model_escalate_alert

Parameters:
model Model
handle Handle object for current user
Returns:
<=0 on error

int32_t aw_model_event_today_slist (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  limit,
aw_model_event_slisting_t *  event_slisting
) 
 

Init itertator to fill listing with data from event table for events today. Call user_slisting->iter.next() until <= 0 .

aw_model_event_today_slist

Parameters:
model Model object
handle Handle object for current user
limit Max number of rows
event_slisting Short listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_execute_stmt (  aw_model_t *  model,
aw_model_stmt_t *  stmt
) 
 

Execute compiled sql statment.

aw_model_execute_stmt

Parameters:
model Model
stmt The statement
Returns:
sqlite3 result code

void aw_model_finalize_stmt (  aw_model_t *  model,
aw_model_stmt_t *  stmt
) 
 

Free compiled sql statment.

aw_model_finalize_stmt

Parameters:
model Model
stmt The statement

void aw_model_free_handle (  const aw_model_userhandle_t *  handle  ) 
 

Free object.

aw_model_make_handle

Parameters:
handle Handle object

int32_t aw_model_group2users (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  groupid,
aw_model_group2user_t *  group2user
) 
 

Init itertator to update group membership. Call group2user->iter.next() until <= 0 .

aw_model_group2users

Parameters:
model Model object
handle Handle object for current user
groupid Group that we want to associate the users
group2user Iterator
Returns:
0 on data and -1 on error

int32_t aw_model_group_create (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  groupname
) 
 

Create a group record with specified name.

aw_model_group_create

Parameters:
model Model object
handle Handle object for current group
groupname Name of group
Returns:
<=0 on error, else id of group record

int32_t aw_model_group_list (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  deleted,
aw_model_group_listing_t *  group_listing
) 
 

Itertator to fill listing with data from group table. Call group_listing->iter.next() until <= 0 .

aw_model_group_list

Parameters:
model Model object
handle Handle object for current user
deleted If non-zero, then return users marked deleted
group_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_group_node_slist (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodeid,
aw_model_group_slisting_t *  group_slisting
) 
 

Init itertator to fill listing with data from group table for node. Call group_slisting->iter.next() until <= 0 .

aw_model_group_node_slist

Parameters:
model Model object
handle Handle object for current user
nodeid Node whose groups we want to find
group_slisting Short listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_group_notnode_slist (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodeid,
aw_model_group_slisting_t *  group_slisting
) 
 

Init itertator to fill listing with data from group table for groups NOT assoc w/node. Call group_slisting->iter.next() until <= 0 .

aw_model_group_notnode_slist

Parameters:
model Model object
handle Handle object for current user
nodeid Node that we want to find groups exclusive from
group_slisting Short listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_group_notuser_slist (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  userid,
aw_model_group_slisting_t *  group_slisting
) 
 

Init itertator to fill listing with data from group table for groups NOT assoc w/user. Call group_slisting->iter.next() until <= 0 .

aw_model_group_notuser_slist

Parameters:
model Model object
handle Handle object for current user
userid User that we want to find groups exclusive from
group_slisting Short listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_group_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  groupid,
aw_model_group_t *  group
) 
 

Fill group with data from group table.

aw_model_group_query

Parameters:
model Model object
handle Handle object for current user
groupid Group id of record to look up
group Group object to be filled
Returns:
Non-zero on error

int32_t aw_model_group_update (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const aw_model_group_t *  updated_group
) 
 

Update group record.

aw_model_group_update

Parameters:
model Model object
handle Handle object for current user
updated_group Group object used to update record
Returns:
Non-zero on error

int32_t aw_model_group_user_slist (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  userid,
aw_model_group_slisting_t *  group_slisting
) 
 

Init itertator to fill listing with data from group table for user. Call group_slisting->iter.next() until <= 0 .

aw_model_group_user_slist

Parameters:
model Model object
handle Handle object for current user
userid User whose groups we want to find
group_slisting Short listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_ia_event_insert (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  interface_id,
u_int32_t  up,
u_int32_t  priority,
aw_timestamp_t  tstamp
) 
 

Insert interface availability event if up/down change, trigger will update interface table.

aw_model_ia_event_insert

Parameters:
model Model object
handle Handle object for current user
interface_id Id in interface table
up 1 if up 0 if down
priority Integer
tstamp Timestamp of event
Returns:
<=0 on error, else id of event record

int32_t aw_model_interface_alert (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  interface_id,
u_int32_t  up,
aw_timestamp_t  tstamp
) 
 

Generate an alert for an ia event.

aw_model_interface_alert

Parameters:
model Model
handle Handle object for current user
interface_id Id in interface table
up 1 if up 0 if down
tstamp Timestamp of event
Returns:
<=0 on error

int32_t aw_model_interface_create (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodeid,
const byte_t *  ip
) 
 

Create a interface record with assoc node,ip.

aw_model_interface_create

Parameters:
model Model object
handle Handle object for current user
nodeid Id of node to assoc this interface
ip Ip of interface
Returns:
<=0 on error, else id of interface record

int32_t aw_model_interface_list_by_node (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodeid,
u_int32_t  deleted,
aw_model_interface_listing_t *  interface_listing
) 
 

Itertator to fill listing with data from interface table for an interface. Call interface_listing->iter.next() until <= 0 .

aw_model_interface_list_by_node

Parameters:
model Model object
handle Handle object for current user
nodeid The id for the node that we want to get the interfaces
deleted If non-zero, then return users marked deleted
interface_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_interface_name_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  interfaceid,
aw_model_interface_name_t *  interface_name
) 
 

Fill interface with data from interface table.

aw_model_interface_name_query

Parameters:
model Model object
handle Handle object for current user
interfaceid Interface id of record to look up
interface_name Interface name
Returns:
Non-zero on error

int32_t aw_model_interface_netmon_list (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
aw_model_interface_netmon_listing_t *  interface_netmon_listing
) 
 

Itertator to fill listing with data from interface table for an interface network probe. Call interface_listing->iter.next() until <= 0 .

aw_model_interface_netmon_list

Parameters:
model Model object
handle Handle object for current user
interface_netmon_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_interface_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  interfaceid,
aw_model_interface_detail_t *  interfacedetail
) 
 

Fill interface with data from interface table.

aw_model_interface_query

Parameters:
model Model object
handle Handle object for current user
interfaceid Interface id of record to look up
interfacedetail Interface object to be filled
Returns:
Non-zero on error

int32_t aw_model_interface_update (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const aw_model_interface_detail_t *  updated_interfacedetail
) 
 

Update interface record.

aw_model_interface_update

Parameters:
model Model object
handle Handle object for current user
updated_interfacedetail Interface object used to update record
Returns:
Non-zero on error

Todo:
we should just update the interface probe

const aw_model_userhandle_t* aw_model_make_handle (  u_int32_t  userid,
u_int32_t  ro
) 
 

Return handle object.

aw_model_make_handle

Parameters:
userid Internal id
ro Read only
Returns:
Object, NULL on oom

int32_t aw_model_mdns_event_insert (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  ip,
u_int32_t  port,
const byte_t *  service,
const byte_t *  protocol,
const byte_t *  name,
u_int32_t  up,
u_int32_t  priority,
aw_timestamp_t  tstamp
) 
 

Insert mdns availability event if up/down change, trigger will update service table.

aw_model_mdns_event_insert

Parameters:
model Model object
handle Handle object for current user
ip Ip address of service
port Port of service
protocol Protocol of service
name Name that is associated with service
up 1 if up 0 if down
priority Integer
tstamp Timestamp of event
Returns:
<=0 on error, else id of event record

int32_t aw_model_message_alert (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  nodename,
const byte_t *  msg,
aw_timestamp_t  tstamp
) 
 

Generate an alert for an nm event.

aw_model_message_alert

Parameters:
model Model
handle Handle object for current user
nodename Name of node to associate this alert
msg The event message
tstamp Timestamp of event
Returns:
<=0 on error

int32_t aw_model_netmon_add_probe_by_name (  aw_model_t *  model,
aw_model_netmon_class_t  handler_class,
u_int32_t  id,
const byte_t *  name,
const byte_t *  ip,
u_int32_t  port,
const byte_t *  proto,
const byte_t *  handler,
u_int32_t  timeout,
u_int32_t  cycle,
const byte_t *  handlercron,
const byte_t *  maintcron,
u_int32_t  perf
) 
 

Add network monitoring service probe.

aw_model_netmon_add_probe_by_name

Parameters:
model Model
handler_class Either AW_MODEL_INTERFACE_HANDLER or AW_MODEL_SERVICE_HANDLER
id Id in the database of service
name Name in database
ip IP address as string
port Port to probe
proto Protocol, 'tcp','udp'
handler Name of handler to use
timeout Timeout in seconds
cycle Cycle period in seconds
handlercron Cron string, if not empty then use as run schedule
maintcron Cron string
perf Non-zero if you want rrt performance monitoring
Returns:
Non-zero on error

void aw_model_netmon_clear (  aw_model_t *  model  ) 
 

UNDO aw_model_netmon_init().

aw_model_netmon_clear

Parameters:
model Model

void aw_model_netmon_init (  aw_model_t *  model  ) 
 

Init all network monitoring (call this only 1 time!).

aw_model_netmon_init

Parameters:
model Model

u_int32_t aw_model_netmon_is_disabled (  aw_model_t *  model  ) 
 

Test to see if network monitoring is running.

aw_model_netmon_is_disabled

Parameters:
model Model
Returns:
Non-zero if network monitoring is disabled

void aw_model_netmon_remove_probe (  aw_model_t *  model,
aw_model_netmon_class_t  handler_class,
u_int32_t  id
) 
 

Stop all particular network monitoring probe.

aw_model_netmon_remove_probe

Parameters:
model Model
handler_class Type of network monitor
id Id in database

void aw_model_netmon_restart (  aw_model_t *  model  ) 
 

Stop / start all network monitoring probes (if enabled).

aw_model_netmon_restart

Parameters:
model Model

void aw_model_netmon_start (  aw_model_t *  model  ) 
 

Start all network monitoring probes.

aw_model_netmon_start

Parameters:
model Model

void aw_model_netmon_stop (  aw_model_t *  model  ) 
 

Stop all network monitoring probes.

aw_model_netmon_stop

Parameters:
model Model

int32_t aw_model_nm_event_insert (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  nodename,
const byte_t *  msg,
u_int32_t  priority,
aw_timestamp_t  tstamp
) 
 

Insert node message event.

aw_model_nm_event_insert

Parameters:
model Model object
handle Handle object for current user
nodename Name of node to associate message
msg Message as string
priority Integer
tstamp Timestamp of event
Returns:
<=0 on error, else id of event record

int32_t aw_model_node2groups (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodeid,
aw_model_node2group_t *  node2group
) 
 

Init itertator to update a node's group association for alerts. Call node2group->iter.next() until <= 0 .

aw_model_node2groups

Parameters:
model Model object
handle Handle object for current node
groupid Group that we want to associate the nodes
node2group Iterator
Returns:
0 on data and -1 on error

int32_t aw_model_node_create (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  name
) 
 

Create a node record with assoc name.

aw_model_node_create

Parameters:
model Model object
handle Handle object for current user
name Name of node
Returns:
<=0 on error, else id of node record

int32_t aw_model_node_list (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  deleted,
aw_model_node_listing_t *  node_listing
) 
 

Itertator to fill listing with data from node table. Call node_listing->iter.next() until <= 0 .

aw_model_node_list

Parameters:
model Model object
handle Handle object for current user
deleted If non-zero, then return users marked deleted
node_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_node_list_by_nodegrp (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodegrpid,
u_int32_t  deleted,
aw_model_node_listing_t *  node_listing
) 
 

Itertator to fill listing with data from node table for a nodegrp. Call node_listing->iter.next() until <= 0 .

aw_model_node_list_by_nodegrp

Parameters:
model Model object
handle Handle object for current user
nodegrpid The id for the nodegrp that we want to get the nodes
deleted If non-zero, then return users marked deleted
node_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_node_nodegrp_slist (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodegrpid,
aw_model_node_slisting_t *  node_slisting
) 
 

Init itertator to fill listing with data from node table for nodegrp. Call node_slisting->iter.next() until <= 0 .

aw_model_node_nodegrp_slist

Parameters:
model Model object
handle Handle object for current user
nodegrpid Group whose users we want to find
node_slisting Short listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_node_notnodegrp_slist (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodegrpid,
aw_model_node_slisting_t *  node_slisting
) 
 

Init itertator to fill listing with data from node table for nodes NOT assoc w/nodegrp. Call node_slisting->iter.next() until <= 0 .

aw_model_node_notnodegrp_slist

Parameters:
model Model object
handle Handle object for current user
nodegrpid Group that we want to find users exclusive from
node_slisting Short listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_node_outages (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  limit,
aw_model_node_listing_t *  node_listing
) 
 

Itertator to fill listing with data from node table for thos with outages. Call node_listing->iter.next() until <= 0 .

aw_model_node_outages

Parameters:
model Model object
handle Handle object for current user
limit Max number of rows
node_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_node_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodeid,
aw_model_node_detail_t *  nodedetail
) 
 

Fill node with data from node table.

aw_model_node_query

Parameters:
model Model object
handle Handle object for current user
nodeid Node id of record to look up
nodedetail Node object to be filled
Returns:
Non-zero on error

int32_t aw_model_node_update (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const aw_model_node_detail_t *  updated_nodedetail
) 
 

Update node record.

aw_model_node_update

Parameters:
model Model object
handle Handle object for current user
updated_nodedetail Node object used to update record
Returns:
Non-zero on error

int32_t aw_model_nodeasset_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodeid,
aw_model_nodeasset_t *  nodeasset
) 
 

Fill nodeasset with data from nodeasset table.

aw_model_nodeasset_query

Parameters:
model Model object
handle Handle object for current user
nodeid Node id of record to look up
nodeasset Nodeasset object to be filled
Returns:
Non-zero on error

int32_t aw_model_nodeasset_update (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodeid,
const aw_model_nodeasset_t *  nodeasset
) 
 

Fill nodeasset table with data from nodeasset.

aw_model_nodeasset_update

Parameters:
model Model object
handle Handle object for current user
nodeid Node id of record to look up
nodeasset Nodeasset object with data
Returns:
Non-zero on error

int32_t aw_model_nodegrp2nodes (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  append,
u_int32_t  nodegrpid,
aw_model_nodegrp2node_t *  nodegrp2node
) 
 

Init itertator to update nodegrp membership. Call nodegrp2node->iter.next() until <= 0 .

aw_model_nodegrp2nodes

Parameters:
model Model object
handle Handle object for current user
append If non-zero just append the association rather then replacing all
nodegrpid Nodegrp that we want to associate the nodes
nodegrp2node Iterator
Returns:
0 on data and -1 on error

int32_t aw_model_nodegrp_apply_active (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodegrpid,
u_int32_t  val
) 
 

Set active indicator for all nodes in nodegrp.

aw_model_nodegrp_apply_active

Parameters:
model Model object
handle Handle object for current user
nodegrpid Nodegrp id
val 1 or 0
Returns:
Non-zero on error

int32_t aw_model_nodegrp_apply_deleted (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodegrpid,
u_int32_t  val
) 
 

Set deleted indicator for all nodes in nodegrp.

aw_model_nodegrp_apply_deleted

Parameters:
model Model object
handle Handle object for current user
nodegrpid Nodegrp id
val 1 or 0
Returns:
Non-zero on error

int32_t aw_model_nodegrp_create (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  name
) 
 

Create a nodegrp record with assoc name.

aw_model_nodegrp_create

Parameters:
model Model object
handle Handle object for current user
name Name of nodegrp
Returns:
<=0 on error, else id of nodegrp record

int32_t aw_model_nodegrp_list (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  deleted,
aw_model_nodegrp_listing_t *  nodegrp_listing
) 
 

Itertator to fill listing with data from nodegrp table. Call nodegrp_listing->iter.next() until <= 0 .

aw_model_nodegrp_list

Parameters:
model Model object
handle Handle object for current user
deleted If non-zero, then return users marked deleted
nodegrp_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_nodegrp_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  nodegrpid,
aw_model_nodegrp_t *  nodegrp
) 
 

Fill nodegrp with data from nodegrp table.

aw_model_nodegrp_query

Parameters:
model Model object
handle Handle object for current user
nodegrpid Nodegrp id of record to look up
nodegrp Nodegrp object to be filled
Returns:
Non-zero on error

int32_t aw_model_nodegrp_update (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const aw_model_nodegrp_t *  updated_nodegrp
) 
 

Update nodegrp record.

aw_model_nodegrp_update

Parameters:
model Model object
handle Handle object for current user
updated_nodegrp Nodegrp object used to update record
Returns:
Non-zero on error

int32_t aw_model_open (  const byte_t *  db,
aw_monitor_t *  mon,
const aw_model_options_t *  options,
aw_model_t *  model
) 
 

Opens a connection to the model database, creates a new database if there is not one currently. Associates monitor with model.

aw_model_open

Parameters:
db Directory name for database
mon Monitor for executing processes
options Options to set
model Model object to initialize and connection to database
Returns:
Non-zero on connection succuss

void aw_model_reset_stmt (  aw_model_t *  model,
aw_model_stmt_t *  stmt
) 
 

Reset compiled sql statment.

aw_model_reset_stmt

Parameters:
model Model
stmt The statement

int32_t aw_model_run_discover (  aw_model_t *  model,
const aw_model_userhandle_t *  handle
) 
 

Run network discovery using a handler which detects completion (this is prefered way to run discovery).

aw_model_run_discover

Parameters:
model Model object
handle Handle object for current user
Returns:
0 on success, non-zero on error

int32_t aw_model_sa_event_insert (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  service_id,
u_int32_t  up,
const byte_t *  type,
u_int32_t  priority,
aw_timestamp_t  tstamp
) 
 

Insert service availability event if up/down change, trigger will update service table.

aw_model_sa_event_insert

Parameters:
model Model object
handle Handle object for current user
service_id Id in service table
up 1 if up 0 if down
type One of 'connect','noconnect','service','noservice'
priority Integer
tstamp Timestamp of event
Returns:
<=0 on error, else id of event record

void aw_model_schedule_discovery (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  mode
) 
 

aw_model_schedule_discovery

Parameters:
model Model
handle Handle object for current user
mode Scheduling mode

int32_t aw_model_service2port_list (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
aw_model_service2port_listing_t *  service2port_listing
) 
 

Itertator to fill listing with data from sport2service table. Call service2port_listing->iter.next() until <= 0 .

aw_model_service2port_list

Parameters:
model Model object
handle Handle object for current user
service2port_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_service_alert (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  service_id,
u_int32_t  up,
aw_timestamp_t  tstamp
) 
 

Generate an alert for an sa event.

aw_model_service_alert

Parameters:
model Model
handle Handle object for current user
service_id Id in service table
up 1 if up 0 if down
tstamp Timestamp of event
Returns:
<=0 on error

int32_t aw_model_service_create (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  interfaceid,
const byte_t *  service
) 
 

Create a service record with assoc interface,service.

aw_model_service_create

Parameters:
model Model object
handle Handle object for current user
interfaceid Id of interface to assoc this service
service Name of service
Returns:
<=0 on error, else id of service record

int32_t aw_model_service_id_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  ip,
u_int32_t  port
) 
 

Get service id from ip/port.

aw_model_service_id_query

Parameters:
model Model object
handle Handle object for current user
ip IP address
port Port of service
Returns:
< 0 on error, 0 on nomatch, > 0 if match where value is row id

int32_t aw_model_service_list_by_interface (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  interfaceid,
u_int32_t  deleted,
aw_model_service_listing_t *  service_listing
) 
 

Itertator to fill listing with data from service table for a service. Call service_listing->iter.next() until <= 0 .

aw_model_service_list_by_interface

Parameters:
model Model object
handle Handle object for current user
interfaceid The id for the interface that we want to get the services
deleted If non-zero, then return users marked deleted
service_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_service_name_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  serviceid,
aw_model_service_name_t *  service_name
) 
 

Fill service with data from service table.

aw_model_service_name_query

Parameters:
model Model object
handle Handle object for current user
serviceid Service id of record to look up
service_name Service name
Returns:
Non-zero on error

int32_t aw_model_service_netmon_list (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
aw_model_service_netmon_listing_t *  service_netmon_listing
) 
 

Itertator to fill listing with data from service table for an service network probe. Call service_listing->iter.next() until <= 0 .

aw_model_service_netmon_list

Parameters:
model Model object
handle Handle object for current user
service_netmon_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_service_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  serviceid,
aw_model_service_detail_t *  servicedetail
) 
 

Fill service with data from service table.

aw_model_service_query

Parameters:
model Model object
handle Handle object for current user
serviceid Service id of record to look up
servicedetail Service object to be filled
Returns:
Non-zero on error

int32_t aw_model_service_unique (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  serviceid,
byte_t *  ip,
u_int32_t  port,
byte_t *  proto
) 
 

Return non-zero if there WOULD be 2 ip,port,proto should this be inserted/updated.

aw_model_service_unique

Parameters:
model Model object
handle Handle object for current user
serviceid Id of service
ip IP
port Port
proto Protcol
Returns:
See discussion

int32_t aw_model_service_update (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const aw_model_service_detail_t *  updated_servicedetail
) 
 

Update service record.

aw_model_service_update

Parameters:
model Model object
handle Handle object for current user
updated_servicedetail Service object used to update record
Returns:
Non-zero on error

Todo:
we should just update the service probe

int32_t aw_model_settings_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  kw,
aw_model_setting_t *  setting
) 
 

Fill setting object with data from settings table.

aw_model_settings_query

Parameters:
model Model object
handle Handle object for current user
kw Keyword to lookup
setting Settings object to be filled
Returns:
Non-zero on error

int32_t aw_model_settings_update (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  kw,
const byte_t *  val
) 
 

Update settings record.

aw_model_settings_update

Parameters:
model Model object
handle Handle object for current settings
kw Keyword
val Value
Returns:
Non-zero on error

int32_t aw_model_subnet_create (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  netmask
) 
 

Create a subnet record with assoc netmask.

aw_model_subnet_create

Parameters:
model Model object
handle Handle object for current user
netmask Netmask of subnet
Returns:
<=0 on error, else id of subnet record

int32_t aw_model_subnet_list (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  deleted,
aw_model_subnet_listing_t *  subnet_listing
) 
 

Itertator to fill listing with data from subnet table. Call subnet_listing->iter.next() until <= 0 .

aw_model_subnet_list

Parameters:
model Model object
handle Handle object for current user
deleted If non-zero, then return users marked deleted
subnet_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_subnet_update (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  subnetid,
u_int32_t  active,
u_int32_t  deleted
) 
 

Update subnet record.

aw_model_subnet_update

Parameters:
model Model object
handle Handle object for current subnet
subnetid Which record
active Set active to this
deleted Set deleted to this
Returns:
Non-zero on error

int32_t aw_model_user2groups (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  userid,
aw_model_user2group_t *  user2group
) 
 

Init itertator to update group membership. Call user2group->iter.next() until <= 0 .

aw_model_user2groups

Parameters:
model Model object
handle Handle object for current user
userid User that we want to associate the groups
user2group Iterator
Returns:
0 on data and -1 on error

int32_t aw_model_user_create (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const byte_t *  loginid
) 
 

Create a user record with assoc loginid.

aw_model_user_create

Parameters:
model Model object
handle Handle object for current user
loginid Loginid of user
Returns:
<=0 on error, else id of user record

int32_t aw_model_user_group_slist (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  groupid,
aw_model_user_slisting_t *  user_slisting
) 
 

Init itertator to fill listing with data from user table for group. Call user_slisting->iter.next() until <= 0 .

aw_model_user_group_slist

Parameters:
model Model object
handle Handle object for current user
groupid Group whose users we want to find
user_slisting Short listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_user_list (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  deleted,
aw_model_user_listing_t *  user_listing
) 
 

Itertator to fill listing with data from user table. Call user_listing->iter.next() until <= 0 .

aw_model_user_list

Parameters:
model Model object
handle Handle object for current user
deleted If non-zero, then return users marked deleted
user_listing Listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_user_notgroup_slist (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  groupid,
aw_model_user_slisting_t *  user_slisting
) 
 

Init itertator to fill listing with data from user table for users NOT assoc w/group. Call user_slisting->iter.next() until <= 0 .

aw_model_user_notgroup_slist

Parameters:
model Model object
handle Handle object for current user
groupid Group that we want to find users exclusive from
user_slisting Short listing object to be filled
Returns:
0 on data and -1 on error

int32_t aw_model_user_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  userid,
aw_model_user_t *  user
) 
 

Fill user with data from user table.

aw_model_user_query

Parameters:
model Model object
handle Handle object for current user
userid User id of record to look up
user User object to be filled
Returns:
Non-zero on error

int32_t aw_model_user_update (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const aw_model_user_t *  updated_user
) 
 

Update user record.

aw_model_user_update

Parameters:
model Model object
handle Handle object for current user
updated_user User object used to update record
Returns:
Non-zero on error

int32_t aw_model_userinfo_query (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
u_int32_t  userid,
aw_model_userinfo_t *  userinfo
) 
 

Fill userinfo with data from userinfo table for handle.

aw_model_userinfo_query

Parameters:
model Model object
handle Handle object for current user
userid Userid for userinfo
userinfo Userinfo object to be filled
Returns:
Non-zero on error

int32_t aw_model_userinfo_update (  aw_model_t *  model,
const aw_model_userhandle_t *  handle,
const aw_model_userinfo_t *  updated_userinfo
) 
 

Update userinfo record.

aw_model_userinfo_update

Parameters:
model Model object
handle Handle object for current userinfo
updated_userinfo Userinfo object used to update record
Returns:
Non-zero on error

Aware 0.11.1 Copyright (C) 1998-2005 Russell Leighton (russ@elegant-software.com)