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); } }
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; }
/** makes the event at p available to those following this cursor */ void publish( int64_t p ) { check_alert(); _begin = p + 1; _cursor.store( p ); }
/** * makes the event at pos available to those following this cursor */ void publish(int64_t pos) { check_alert(); begin_ = pos + 1; cursor_.store(pos); }