diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2010-10-21 18:23:20 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-10-21 18:23:20 +0200 |
commit | 49544d43d8820b9e5c8389102b263df011425333 (patch) | |
tree | aeab0b5123fe7e44ee79ab5aa36a439b0cdebb77 | |
parent | 6394d5b4423ca0b098eac07df4db8d36b79814e1 (diff) | |
download | ofono-49544d43d8820b9e5c8389102b263df011425333.tar.bz2 |
atmodem: Check for TUN/TAP support before enabling PPP
-rw-r--r-- | drivers/atmodem/gprs-context.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/atmodem/gprs-context.c b/drivers/atmodem/gprs-context.c index c90d6c2e..df5b08b3 100644 --- a/drivers/atmodem/gprs-context.c +++ b/drivers/atmodem/gprs-context.c @@ -27,6 +27,8 @@ #include <string.h> #include <stdlib.h> #include <stdio.h> +#include <errno.h> +#include <sys/stat.h> #include <glib.h> @@ -40,6 +42,8 @@ #include "atmodem.h" +#define TUN_SYSFS_DIR "/sys/devices/virtual/misc/tun" + #define STATIC_IP_NETMASK "255.255.255.255" static const char *none_prefix[] = { NULL }; @@ -255,8 +259,17 @@ static int at_gprs_context_probe(struct ofono_gprs_context *gc, { GAtChat *chat = data; struct gprs_context_data *gcd; + struct stat st; + + if (stat(TUN_SYSFS_DIR, &st) < 0) { + ofono_error("Missing support for TUN/TAP devices"); + return -ENODEV; + } gcd = g_new0(struct gprs_context_data, 1); + if (!gcd) + return -ENOMEM; + gcd->chat = g_at_chat_clone(chat); ofono_gprs_context_set_data(gc, gcd); |