summaryrefslogtreecommitdiffstats
path: root/drivers/cdmamodem
diff options
context:
space:
mode:
authorBertrand Aygon <bertrand.aygon@intel.com>2011-07-24 05:32:42 +0200
committerMarcel Holtmann <marcel@holtmann.org>2011-07-24 16:45:14 +0200
commit6d986fe379b364be163baf9267abc8c2ea42aa54 (patch)
tree4d40753fd0c4bfced996206ab2b3eba4633a99d8 /drivers/cdmamodem
parentbff43cead1e04e83277f449b9f0905a875bc1154 (diff)
downloadofono-6d986fe379b364be163baf9267abc8c2ea42aa54.tar.bz2
cdmamodem: check for TUN/TAP devices in ConnMan atom.
Diffstat (limited to 'drivers/cdmamodem')
-rw-r--r--drivers/cdmamodem/connman.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/cdmamodem/connman.c b/drivers/cdmamodem/connman.c
index ce9a7483..0df93eb5 100644
--- a/drivers/cdmamodem/connman.c
+++ b/drivers/cdmamodem/connman.c
@@ -28,6 +28,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
+#include <sys/stat.h>
#include <glib.h>
@@ -41,6 +42,8 @@
#include "cdmamodem.h"
+#define TUN_SYSFS_DIR "/sys/devices/virtual/misc/tun"
+
#define STATIC_IP_NETMASK "255.255.255.255"
static const char *none_prefix[] = { NULL };
@@ -240,9 +243,15 @@ static int cdma_connman_probe(struct ofono_cdma_connman *cm,
{
GAtChat *chat = data;
struct connman_data *cd;
+ struct stat st;
DBG("");
+ if (stat(TUN_SYSFS_DIR, &st) < 0) {
+ ofono_error("Missing support for TUN/TAP devices");
+ return -ENODEV;
+ }
+
cd = g_try_new0(struct connman_data, 1);
if (cd == NULL)
return -ENOMEM;