/*
- * $Id: main.c,v 1.13 2009-10-19 05:38:22 didg Exp $
- *
* Copyright (C) Joerg Lenneis 2003
* Copyright (c) Frank Lahm 2009
* All Rights Reserved. See COPYING.
else
timeout = 1;
- if ((cret = comm_rcv(&rqst, timeout, &set)) < 0)
+ if ((cret = comm_rcv(&rqst, timeout, &set, &now)) < 0)
return -1;
- now = time(NULL);
-
if (cret == 0) {
/* comm_rcv returned from select without receiving anything. */
- if (exit_sig)
+ if (exit_sig) {
/* Received signal (TERM|INT) */
return 0;
- if (now - time_last_rqst > dbp->idle_timeout) {
- if (comm_nbe() <= 0) {
- /* Idle timeout */
- return 0;
- }
- else {
- /* still active connections, reset time_last_rqst */
- time_last_rqst = now;
- }
}
+ if (now - time_last_rqst >= dbp->idle_timeout && comm_nbe() <= 0) {
+ /* Idle timeout */
+ return 0;
+ }
+ /* still active connections, reset time_last_rqst */
+ time_last_rqst = now;
} else {
/* We got a request */
time_last_rqst = now;
ret = 1;
break;
case CNID_DBD_OP_ADD:
- ret = dbd_add(dbd, &rqst, &rply);
+ ret = dbd_add(dbd, &rqst, &rply, 0);
break;
case CNID_DBD_OP_GET:
ret = dbd_get(dbd, &rqst, &rply);
ret = dbd_resolve(dbd, &rqst, &rply);
break;
case CNID_DBD_OP_LOOKUP:
- ret = dbd_lookup(dbd, &rqst, &rply);
+ ret = dbd_lookup(dbd, &rqst, &rply, 0);
break;
case CNID_DBD_OP_UPDATE:
ret = dbd_update(dbd, &rqst, &rply);
ret = -1;
break;
}
-
+
if ((cret = comm_snd(&rply)) < 0 || ret < 0) {
dbif_txn_abort(dbd);
return -1;
Shall we checkpoint bdb ?
"flush_interval" seconds passed ?
*/
- if (now > time_next_flush) {
+ if (now >= time_next_flush) {
LOG(log_info, logtype_cnid, "Checkpointing BerkeleyDB for volume '%s'", dbp->dir);
if (dbif_txn_checkpoint(dbd, 0, 0, 0) < 0)
return -1;