Allow linking with multiple device drivers.
[tinc] / src / dummy_device.c
similarity index 74%
rename from src/dummy/device.c
rename to src/dummy_device.c
index 25a38f2..9dd3fae 100644 (file)
@@ -1,6 +1,6 @@
 /*
     device.c -- Dummy device
-    Copyright (C) 2009 Guus Sliepen <guus@tinc-vpn.org>
+    Copyright (C) 2011 Guus Sliepen <guus@tinc-vpn.org>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #include "logger.h"
 #include "net.h"
 
-int device_fd = -1;
-char *device = "dummy";
-char *iface = "dummy";
 static char *device_info = "dummy device";
 
 static uint64_t device_total_in = 0;
 static uint64_t device_total_out = 0;
 
-bool setup_device(void) {
+static bool setup_device(void) {
+       device = "dummy";
+       iface = "dummy";
        logger(LOG_INFO, "%s (%s) is a %s", device, iface, device_info);
        return true;
 }
 
-void close_device(void) {
+static void close_device(void) {
 }
 
-bool read_packet(vpn_packet_t *packet) {
+static bool read_packet(vpn_packet_t *packet) {
        return false;
 }
 
-bool write_packet(vpn_packet_t *packet) {
+static bool write_packet(vpn_packet_t *packet) {
        device_total_out += packet->len;
        return true;
 }
 
-void dump_device_stats(void) {
+static void dump_device_stats(void) {
        logger(LOG_DEBUG, "Statistics for %s %s:", device_info, device);
        logger(LOG_DEBUG, " total bytes in:  %10"PRIu64, device_total_in);
        logger(LOG_DEBUG, " total bytes out: %10"PRIu64, device_total_out);
 }
+
+const devops_t dummy_devops = {
+       .setup = setup_device,
+       .close = close_device,
+       .read = read_packet,
+       .write = write_packet,
+       .dump_stats = dump_device_stats,
+};