Exemple #1
0
void 
check_mainloop(void)
{
	time_t          now = 0, then = 0;
	useconds_t      sleeptime;
	int        	delta = 0;
	
	/* init */
	status_alerted.alert_load = false;
	status_alerted.alert_disk = false;
	status_alerted.alert_cpu = false;
	sleeptime = 100000;
	
	numcpus = num_cpus();
	http_fetch_url(hburl);

	vbprintf("Found %d cpus\n", numcpus);

	database_init();

	/*
	 * XXX: Right here we're just spinning in place. The reason for this
	 * is to be able to have different intervals for the checking process
	 * (disk/cpu/load), and also for the heartbeat-process, which might
	 * check at different intervals. I might separate this out into
	 * another file so we have a rudimentary timer-based scheduler that
	 * can shoot off different functions at variable intervals.
	 */

	time(&then);	
	while (1) {
		int sampletrig = 0, hbtrig = 0;

		time(&now);

		delta = (int) now - (int) then;
		sampletrig = delta % interval;
		hbtrig = delta % hbinterval;
		
		if (!sampletrig) {
			load_check();
			disk_check(diskpaths);
			cpu_check();
			check_alert();
			sleep(1); /* make sure trig status is over */
		}		
		
		if (!hbtrig) {
			http_fetch_url(hburl);
			sleep(1); /* make sure trig status is over */
		}	
		usleep(sleeptime);	
	}
}
Exemple #2
0
int
main (void)
{
  int ret;
  int sd, ii;
  gnutls_session_t session;
  char buffer[MAX_BUF + 1];
  gnutls_srp_client_credentials_t srp_cred;
  gnutls_certificate_credentials_t cert_cred;

  gnutls_global_init ();

  /* now enable the gnutls-extra library which contains the
   * SRP stuff. 
   */
  gnutls_global_init_extra ();

  gnutls_srp_allocate_client_credentials (&srp_cred);
  gnutls_certificate_allocate_credentials (&cert_cred);

  gnutls_certificate_set_x509_trust_file (cert_cred, CAFILE,
					  GNUTLS_X509_FMT_PEM);
  gnutls_srp_set_client_credentials (srp_cred, USERNAME, PASSWORD);

  /* connects to server 
   */
  sd = tcp_connect ();

  /* Initialize TLS session 
   */
  gnutls_init (&session, GNUTLS_CLIENT);


  /* Set the priorities.
   */
  gnutls_priority_set_direct (session, "NORMAL:+SRP:+SRP-RSA:+SRP-DSS", NULL);

  /* put the SRP credentials to the current session
   */
  gnutls_credentials_set (session, GNUTLS_CRD_SRP, srp_cred);
  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, cert_cred);

  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);

  /* Perform the TLS handshake
   */
  ret = gnutls_handshake (session);

  if (ret < 0)
    {
      fprintf (stderr, "*** Handshake failed\n");
      gnutls_perror (ret);
      goto end;
    }
  else
    {
      printf ("- Handshake was completed\n");
    }

  gnutls_record_send (session, MSG, strlen (MSG));

  ret = gnutls_record_recv (session, buffer, MAX_BUF);
  if (gnutls_error_is_fatal (ret) == 1 || ret == 0)
    {
      if (ret == 0)
	{
	  printf ("- Peer has closed the GNUTLS connection\n");
	  goto end;
	}
      else
	{
	  fprintf (stderr, "*** Error: %s\n", gnutls_strerror (ret));
	  goto end;
	}
    }
  else
    check_alert (session, ret);

  if (ret > 0)
    {
      printf ("- Received %d bytes: ", ret);
      for (ii = 0; ii < ret; ii++)
	{
	  fputc (buffer[ii], stdout);
	}
      fputs ("\n", stdout);
    }
  gnutls_bye (session, GNUTLS_SHUT_RDWR);

end:

  tcp_close (sd);

  gnutls_deinit (session);

  gnutls_srp_free_client_credentials (srp_cred);
  gnutls_certificate_free_credentials (cert_cred);

  gnutls_global_deinit ();

  return 0;
}
Exemple #3
0
 /** makes the event at p available to those following this cursor */
 void     publish( int64_t p )
 {
    check_alert();
    _begin = p + 1;
    _cursor.store( p );
 }
Exemple #4
0
 /** 
  * makes the event at pos available to those following this cursor 
  */
 void publish(int64_t pos) {
   check_alert();
   begin_ = pos + 1;
   cursor_.store(pos);
 }