case STATE_HEADER:
do_header:
+ data->tries = 0;
if (!data->fp) {
data->state = STATE_UNOPENED;
goto open_file;
if (!strcasecmp(key, "Timestamp")) {
data->timestamp = atoi(value);
- vp = paircreate(PW_PACKET_ORIGINAL_TIMESTAMP,
+ vp = paircreate(PW_PACKET_ORIGINAL_TIMESTAMP, 0,
PW_TYPE_DATE);
if (vp) {
vp->vp_date = (uint32_t) data->timestamp;
*/
vp = pairfind(packet->vps, PW_ACCT_DELAY_TIME, 0);
if (!vp) {
- vp = paircreate(PW_ACCT_DELAY_TIME, PW_TYPE_INTEGER);
+ vp = paircreate(PW_ACCT_DELAY_TIME, 0, PW_TYPE_INTEGER);
rad_assert(vp != NULL);
pairadd(&packet->vps, vp);
}
vp->vp_integer += time(NULL) - data->timestamp;
}
+ /*
+ * Set the transmission count.
+ */
+ vp = pairfind(packet->vps, PW_PACKET_TRANSMIT_COUNTER, 0);
+ if (!vp) {
+ vp = paircreate(PW_PACKET_TRANSMIT_COUNTER, 0, PW_TYPE_INTEGER);
+ rad_assert(vp != NULL);
+ pairadd(&packet->vps, vp);
+ }
+ vp->vp_integer = data->tries;
+
*pfun = rad_accounting;
if (debug_flag) {
listen_detail_t *data = this->data;
free(data->filename);
+ data->filename = NULL;
pairfree(&data->vps);
- if (data->fp != NULL) fclose(data->fp);
+ if (data->fp != NULL) {
+ fclose(data->fp);
+ data->fp = NULL;
+ }
}
-int detail_print(rad_listen_t *this, char *buffer, size_t bufsize)
+int detail_print(const rad_listen_t *this, char *buffer, size_t bufsize)
{
if (!this->server) {
return snprintf(buffer, bufsize, "%s",
{ NULL, -1, 0, NULL, NULL } /* end the list */
};
+extern int check_config;
/*
* Parse a detail section.
RADCLIENT *client;
char buffer[2048];
+ if (check_config) return 0;
+
if (!this->data) {
this->data = rad_malloc(sizeof(*data));
memset(this->data, 0, sizeof(*data));