The Assimilation Project
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
clientlib/nanoprobe.c File Reference

Library of code to support initial creation of a nanoprobe process. More...

#include <projectcommon.h>
#include <string.h>
#include <frameset.h>
#include <framesettypes.h>
#include <frametypes.h>
#include <compressframe.h>
#include <cryptframe.h>
#include <intframe.h>
#include <cstringframe.h>
#include <addrframe.h>
#include <ipportframe.h>
#include <seqnoframe.h>
#include <packetdecoder.h>
#include <netgsource.h>
#include <reliableudp.h>
#include <authlistener.h>
#include <nvpairframe.h>
#include <hblistener.h>
#include <hbsender.h>
#include <configcontext.h>
#include <pcap_min.h>
#include <jsondiscovery.h>
#include <switchdiscovery.h>
#include <fsprotocol.h>
#include <resourcecmd.h>
#include <resourcequeue.h>
#include <misc.h>
#include <nanoprobe.h>
Include dependency graph for clientlib/nanoprobe.c:

Go to the source code of this file.

Data Structures

struct  startup_cruft
 Stuff we need only for passing parameters through our glib infrastructures - to start up nanoprobes. More...
 

Functions

FSTATIC void nanoobey_sendexpecthb (AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FRAMESETTYPE_SENDEXPECTHB FrameSet class. More...
 
FSTATIC void nanoobey_sendhb (AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FrameSet class telling us to send heartbeats. More...
 
FSTATIC void nanoobey_expecthb (AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FrameSet class telling us to expect heartbeats. More...
 
FSTATIC void nanoobey_stopsendexpecthb (AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FrameSet class telling us to stop sending and expecting heartbeats. More...
 
FSTATIC void nanoobey_stopsendhb (AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FrameSet class telling us to stop sending heartbeats. More...
 
FSTATIC void nanoobey_stopexpecthb (AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FrameSet class telling us to stop expecting heartbeats. More...
 
FSTATIC void nanoobey_setconfig (AuthListener *, FrameSet *fs, NetAddr *)
 
FSTATIC void nanoobey_change_debug (gint plusminus, AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FrameSet class telling us to increment or decrement debug levels either on a specific set of classes, or on all classes. More...
 
FSTATIC void nanoobey_incrdebug (AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FrameSet class telling us to increment debug levels either on a specific set of classes, or on all classes. More...
 
FSTATIC void nanoobey_decrdebug (AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FrameSet class telling us to decrement debug levels either on a specific set of classes, or on all classes. More...
 
FSTATIC void nanoobey_startdiscover (AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FrameSet class telling us to perform a possibly repeating discovery action. More...
 
FSTATIC void nanoobey_stopdiscover (AuthListener *parent, FrameSet *fs, NetAddr *fromaddr)
 Act on (obey) a FrameSet class telling us to stop a repeating discovery action. More...
 
FSTATIC void nanoobey_dorscoperation (AuthListener *, FrameSet *, NetAddr *)
 
FSTATIC void _nano_send_rscexitstatus (ConfigContext *request, gpointer user_data, enum HowDied reason, int rc, int signal, gboolean core_dumped, const char *stringresult)
 Callback that gets called when a resource operation sends back status. More...
 
FSTATIC void nanoobey_cancelrscoperation (AuthListener *, FrameSet *, NetAddr *)
 
FSTATIC void nano_schedule_discovery (const char *instance,guint32 interval,const char *json,ConfigContext *config,NetGSource *transport,NetAddr *fromaddr)
 Schedule a discovery instance, potentially repetitively. More...
 
FSTATIC void nano_stop_discovery (const char *discoveryname, NetGSource *, NetAddr *)
 
FSTATIC gboolean nano_startupidle (gpointer gcruft)
 Nanoprobe bootstrap routine. More...
 
FSTATIC gboolean nano_reqconfig (gpointer gcruft)
 Function to request our initial configuration data This is typically called from a g_main_loop timeout, and is also called directly - at startup. More...
 
FSTATIC void _real_heartbeat_agent (HbListener *who)
 Standard nanoprobe 'hearbeat received' agent. More...
 
FSTATIC void _real_deadtime_agent (HbListener *who)
 Standard nanoprobe 'deadtime elapsed' agent. More...
 
FSTATIC void _real_warntime_agent (HbListener *who, guint64 howlate)
 Standard nanoprobe 'warntime elapsed' agent - called when a heartbeat arrives after 'warntime' but before 'deadtime'. More...
 
FSTATIC void _real_comealive_agent (HbListener *who, guint64 howlate)
 Standard nanoprobe 'returned-from-the-dead' agent - called when a heartbeats arrive after 'deadtime'. More...
 
FSTATIC void _real_martian_agent (NetAddr *who)
 Standard nanoprobe 'martian heartbeat received' agent. More...
 
FSTATIC HbListener_real_hblistener_new (NetAddr *addr, ConfigContext *context)
 Default HbListener constructor. More...
 
FSTATIC gboolean _nano_final_shutdown (gpointer unused)
 
FSTATIC gboolean shutdown_when_outdone (gpointer unused)
 Shut down everything when output is all ACKed - this is idle loop code. More...
 
void nanoprobe_report_upstream (guint16 reporttype, NetAddr *who, const char *systemnm, guint64 howlate)
 Construct a frameset reporting something - and send it upstream. More...
 
PacketDecodernano_packet_decoder (void)
 Return our nanoprobe packet decoder map. More...
 
WINEXPORT void nano_start_full (const char *initdiscoverpath, guint discover_interval, NetGSource *io, ConfigContext *config)
 Here is how the startup process works: More...
 
WINEXPORT void nano_shutdown (gboolean report)
 Shut down the things started up by nano_start_full() - mainly free storage to make valgrind happy... More...
 
WINEXPORT gboolean nano_initiate_shutdown (void)
 Initiate shutdown - return TRUE if we have shut down immediately... More...
 

Variables

void(* nanoprobe_deadtime_agent )(HbListener *) = NULL
 
void(* nanoprobe_heartbeat_agent )(HbListener *) = NULL
 
void(* nanoprobe_warntime_agent )(HbListener *, guint64 howlate) = NULL
 
void(* nanoprobe_comealive_agent )(HbListener *, guint64 howlate) = NULL
 
WINEXPORT NanoHbStats nano_hbstats = {0U, 0U, 0U, 0U, 0U}
 
gboolean nano_connected = FALSE
 
WINEXPORT int errcount = 0
 error count More...
 
WINEXPORT GMainLoop * mainloop = NULL
 
HbListener *(* nanoprobe_hblistener_new )(NetAddr *, ConfigContext *) = _real_hblistener_new
 
gboolean nano_shutting_down = FALSE
 
const char * procname = "nanoprobe"
 process name More...
 
ObeyFrameSetTypeMap collective_obeylist []
 The set of Collective Management Authority FrameTypes we know about, and what to do when we get them. More...
 

Detailed Description

Library of code to support initial creation of a nanoprobe process.

This includes the code to obey various CMA packets, and some functions to startup and shut down a nanoprobe process.

This file is part of the Assimilation Project.

Author
Copyright © 2011, 2012 - Alan Robertson alanr.nosp@m.@uni.nosp@m.x.sh
The Assimilation software is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The Assimilation software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with the Assimilation Project software. If not, see http://www.gnu.org/licenses/

Definition in file clientlib/nanoprobe.c.