add accounting parameter account_all_origin
This commit is contained in:
parent
1e722029bc
commit
7fd4346bbb
3 changed files with 38 additions and 2 deletions
|
|
@ -316,8 +316,13 @@ every connected use will be dumped to a file in this directory. Each
|
||||||
file dumped begins with a header, where each line is prefixed by #.
|
file dumped begins with a header, where each line is prefixed by #.
|
||||||
Following the header is a single line for every connected user, fields
|
Following the header is a single line for every connected user, fields
|
||||||
separated by a space.<BR> The fields are username, ip, qos,
|
separated by a space.<BR> The fields are username, ip, qos,
|
||||||
uptxoctets, downrxoctets. The qos field is 1 if a standard user, and
|
uptxoctets, downrxoctets, origin (optional). The qos field is 1 if a standard user, and
|
||||||
2 if the user is throttled.
|
2 if the user is throttled. The origin field is dump if account_all_origin is set to true
|
||||||
|
(origin value: L=LAC data, R=Remote LNS data, P=PPPOE data).
|
||||||
|
</LI>
|
||||||
|
|
||||||
|
<LI><B>account_all_origin</B> (boolean)<BR>
|
||||||
|
If set to true, all origin of the usage is dumped to the accounting file (LAC+Remote LNS+PPPOE)(default false).
|
||||||
</LI>
|
</LI>
|
||||||
|
|
||||||
<LI><B>setuid</B> (int)<BR>
|
<LI><B>setuid</B> (int)<BR>
|
||||||
|
|
|
||||||
30
l2tpns.c
30
l2tpns.c
|
|
@ -152,6 +152,7 @@ config_descriptt config_values[] = {
|
||||||
CONFIG("throttle_speed", rl_rate, UNSIGNED_LONG),
|
CONFIG("throttle_speed", rl_rate, UNSIGNED_LONG),
|
||||||
CONFIG("throttle_buckets", num_tbfs, INT),
|
CONFIG("throttle_buckets", num_tbfs, INT),
|
||||||
CONFIG("accounting_dir", accounting_dir, STRING),
|
CONFIG("accounting_dir", accounting_dir, STRING),
|
||||||
|
CONFIG("account_all_origin", account_all_origin, BOOL),
|
||||||
CONFIG("dump_speed", dump_speed, BOOL),
|
CONFIG("dump_speed", dump_speed, BOOL),
|
||||||
CONFIG("multi_read_count", multi_read_count, INT),
|
CONFIG("multi_read_count", multi_read_count, INT),
|
||||||
CONFIG("scheduler_fifo", scheduler_fifo, BOOL),
|
CONFIG("scheduler_fifo", scheduler_fifo, BOOL),
|
||||||
|
|
@ -4939,6 +4940,21 @@ static int dump_session(FILE **f, sessiont *s)
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG(3, 0, 0, "Dumping accounting information to %s\n", filename);
|
LOG(3, 0, 0, "Dumping accounting information to %s\n", filename);
|
||||||
|
if(config->account_all_origin)
|
||||||
|
{
|
||||||
|
fprintf(*f, "# dslwatch.pl dump file V1.01\n"
|
||||||
|
"# host: %s\n"
|
||||||
|
"# endpoint: %s\n"
|
||||||
|
"# time: %ld\n"
|
||||||
|
"# uptime: %ld\n"
|
||||||
|
"# format: username ip qos uptxoctets downrxoctets origin(L=LAC, R=Remote LNS, P=PPPOE)\n",
|
||||||
|
hostname,
|
||||||
|
fmtaddr(config->iftun_n_address[tunnel[s->tunnel].indexudp] ? config->iftun_n_address[tunnel[s->tunnel].indexudp] : my_address, 0),
|
||||||
|
now,
|
||||||
|
now - basetime);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
fprintf(*f, "# dslwatch.pl dump file V1.01\n"
|
fprintf(*f, "# dslwatch.pl dump file V1.01\n"
|
||||||
"# host: %s\n"
|
"# host: %s\n"
|
||||||
"# endpoint: %s\n"
|
"# endpoint: %s\n"
|
||||||
|
|
@ -4950,14 +4966,28 @@ static int dump_session(FILE **f, sessiont *s)
|
||||||
now,
|
now,
|
||||||
now - basetime);
|
now - basetime);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LOG(4, 0, 0, "Dumping accounting information for %s\n", s->user);
|
LOG(4, 0, 0, "Dumping accounting information for %s\n", s->user);
|
||||||
|
if(config->account_all_origin)
|
||||||
|
{
|
||||||
|
fprintf(*f, "%s %s %d %u %u %s\n",
|
||||||
|
s->user, // username
|
||||||
|
fmtaddr(htonl(s->ip), 0), // ip
|
||||||
|
(s->throttle_in || s->throttle_out) ? 2 : 1, // qos
|
||||||
|
(uint32_t) s->cin_delta, // uptxoctets
|
||||||
|
(uint32_t) s->cout_delta, // downrxoctets
|
||||||
|
(s->tunnel == TUNNEL_ID_PPPOE)?"P":(tunnel[s->tunnel].isremotelns?"R":"L")); // Origin
|
||||||
|
}
|
||||||
|
else if (!tunnel[s->tunnel].isremotelns && (s->tunnel != TUNNEL_ID_PPPOE))
|
||||||
|
{
|
||||||
fprintf(*f, "%s %s %d %u %u\n",
|
fprintf(*f, "%s %s %d %u %u\n",
|
||||||
s->user, // username
|
s->user, // username
|
||||||
fmtaddr(htonl(s->ip), 0), // ip
|
fmtaddr(htonl(s->ip), 0), // ip
|
||||||
(s->throttle_in || s->throttle_out) ? 2 : 1, // qos
|
(s->throttle_in || s->throttle_out) ? 2 : 1, // qos
|
||||||
(uint32_t) s->cin_delta, // uptxoctets
|
(uint32_t) s->cin_delta, // uptxoctets
|
||||||
(uint32_t) s->cout_delta); // downrxoctets
|
(uint32_t) s->cout_delta); // downrxoctets
|
||||||
|
}
|
||||||
|
|
||||||
s->cin_delta = s->cout_delta = 0;
|
s->cin_delta = s->cout_delta = 0;
|
||||||
|
|
||||||
|
|
|
||||||
1
l2tpns.h
1
l2tpns.h
|
|
@ -696,6 +696,7 @@ typedef struct
|
||||||
int num_tbfs; // number of throttle buckets
|
int num_tbfs; // number of throttle buckets
|
||||||
|
|
||||||
char accounting_dir[128];
|
char accounting_dir[128];
|
||||||
|
int account_all_origin; // Accouting all origin (LAC data + Remote LNS Data + PPPOE data)
|
||||||
in_addr_t bind_address;
|
in_addr_t bind_address;
|
||||||
in_addr_t peer_address;
|
in_addr_t peer_address;
|
||||||
int send_garp; // Set to true to garp for vip address on startup
|
int send_garp; // Set to true to garp for vip address on startup
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue