Patch from Robert Vogelgesang:
authorPaul Mackerras <paulus@samba.org>
Thu, 28 Oct 2004 00:32:32 +0000 (00:32 +0000)
committerPaul Mackerras <paulus@samba.org>
Thu, 28 Oct 2004 00:32:32 +0000 (00:32 +0000)
commitb46005d557c870f1125f2fc4dd139adc0bdc54c5
tree82df5e7094a18e86c41874b12a5206be502f7524
parentcbb598e017f8808949953dc57e42c8cf4e9aeb92
Patch from Robert Vogelgesang:
This patch fixes the link statistics for connections that
go through multiple IPCP up-down cycles.  Such connections
happen typically in a setup where pppd is used as a back-end
by a L2TP daemon, in case the PPP session at the other side
of the L2TP tunnel reconnects, but the L2TP daemon at that
side just reuses the old L2TP tunnel instead of creating a
new one.

The patch is most important when RADIUS accounting is in use:
Each IPCP-down initiates a RADIUS-Accounting-Stop packet, which
indicates the end of a session.  Without this patch, the
accounting information in each subsequent RADIUS-Accounting-Stop
packet of the very same connection would contain cumulative
data since the connection start, but not the data of the last
"sub-session"; in other words, the accounting data sent to
the RADIUS server would indicate that the client had used much
more session time and transfered much more data.
NOTE: The problem fixed by this patch exists even when the
radius plugin is not in use; when extracting accounting data
from the syslog, you can work around the bug, because you
can see there that the same instance of pppd had multiple
sessions; you cannot see this in the RADIUS accounting data.

Furthermore, this patch suppresses duplicate printing/syslogging
of identical data.
pppd/ipcp.c
pppd/main.c
pppd/pppd.h