summaryrefslogtreecommitdiff
path: root/accel-pppd/extra/logwtmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pppd/extra/logwtmp.c')
-rw-r--r--accel-pppd/extra/logwtmp.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/accel-pppd/extra/logwtmp.c b/accel-pppd/extra/logwtmp.c
new file mode 100644
index 0000000..5848102
--- /dev/null
+++ b/accel-pppd/extra/logwtmp.c
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <utmp.h>
+
+#include "ppp.h"
+#include "events.h"
+#include "triton.h"
+#include "log.h"
+
+#include "memdebug.h"
+
+
+static void ev_ppp_started(struct ppp_t *ppp)
+{
+ logwtmp(ppp->ifname, ppp->username, ppp->ctrl->calling_station_id);
+}
+
+static void ev_ppp_finished(struct ppp_t *ppp)
+{
+ logwtmp(ppp->ifname, "", "");
+}
+
+static void init(void)
+{
+ triton_event_register_handler(EV_PPP_STARTED, (triton_event_func)ev_ppp_started);
+ triton_event_register_handler(EV_PPP_FINISHED, (triton_event_func)ev_ppp_finished);
+}
+
+DEFINE_INIT(200, init);