+ return counter.user_counter - check->vp_integer;
+}
+
+
+static int add_defaults(rlm_counter_t *data)
+{
+ datum key_datum;
+ datum time_datum;
+ const char *default1 = "DEFAULT1";
+ const char *default2 = "DEFAULT2";
+
+ DEBUG2("rlm_counter: add_defaults: Start");
+
+ key_datum.dptr = (char *) default1;
+ key_datum.dsize = strlen(default1);
+ time_datum.dptr = (char *) &data->reset_time;
+ time_datum.dsize = sizeof(time_t);
+
+ if (gdbm_store(data->gdbm, key_datum, time_datum, GDBM_REPLACE) < 0){
+ radlog(L_ERR, "rlm_counter: Failed storing data to %s: %s",
+ data->filename, gdbm_strerror(gdbm_errno));
+ return RLM_MODULE_FAIL;
+ }
+ DEBUG2("rlm_counter: DEFAULT1 set to %d",(int)data->reset_time);
+
+ key_datum.dptr = (char *) default2;
+ key_datum.dsize = strlen(default2);
+ time_datum.dptr = (char *) &data->last_reset;
+ time_datum.dsize = sizeof(time_t);
+
+ if (gdbm_store(data->gdbm, key_datum, time_datum, GDBM_REPLACE) < 0){
+ radlog(L_ERR, "rlm_counter: Failed storing data to %s: %s",
+ data->filename, gdbm_strerror(gdbm_errno));
+ return RLM_MODULE_FAIL;
+ }
+ DEBUG2("rlm_counter: DEFAULT2 set to %d",(int)data->last_reset);
+ DEBUG2("rlm_counter: add_defaults: End");
+
+ return RLM_MODULE_OK;