treewide: Introduce support for missing g_memdup2
diff --git a/Makefile.am b/Makefile.am
index ba8e1b9..0159fcb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -704,8 +704,8 @@
sbin_PROGRAMS = src/ofonod
-src_ofonod_SOURCES = $(builtin_sources) $(gatchat_sources) \
- linux/gsmmux.h linux/gpio.h src/ofono.ver \
+src_ofonod_SOURCES = $(builtin_sources) $(gatchat_sources) src/ofono.ver \
+ linux/gsmmux.h linux/gpio.h src/missing.h \
src/main.c src/ofono.h src/log.c src/plugin.c \
src/modem.c src/common.h src/common.c \
src/manager.c src/dbus.c src/util.h src/util.c \
diff --git a/configure.ac b/configure.ac
index 8cbfee6..3e589d8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -63,7 +63,10 @@
AC_CHECK_LIB(dl, dlopen, dummy=yes,
AC_MSG_ERROR(dynamic linking loader is required))
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.68, dummy=yes, [
+PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.68, [
+ AC_DEFINE_UNQUOTED(HAVE_G_MEMDUP2, 1,
+ [Define to 1 if you have the `g_memdup2' function.])
+], [
PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.60, dummy=yes,
AC_MSG_ERROR(GLib >= 2.60 is required))
])
diff --git a/drivers/hsomodem/gprs-context.c b/drivers/hsomodem/gprs-context.c
index 44dc89a..aafcaa0 100644
--- a/drivers/hsomodem/gprs-context.c
+++ b/drivers/hsomodem/gprs-context.c
@@ -37,6 +37,7 @@
#include "gatresult.h"
#include "hsomodem.h"
+#include "src/missing.h"
#define HSO_DISCONNECTED 0
#define HSO_CONNECTED 1
diff --git a/drivers/huaweimodem/gprs-context.c b/drivers/huaweimodem/gprs-context.c
index 2a1a828..edc01ba 100644
--- a/drivers/huaweimodem/gprs-context.c
+++ b/drivers/huaweimodem/gprs-context.c
@@ -39,6 +39,7 @@
#include "gattty.h"
#include "huaweimodem.h"
+#include "src/missing.h"
static const char *none_prefix[] = { NULL };
static const char *dhcp_prefix[] = { "^DHCP:", NULL };
diff --git a/drivers/iceramodem/gprs-context.c b/drivers/iceramodem/gprs-context.c
index 21b748a..fdc7f84 100644
--- a/drivers/iceramodem/gprs-context.c
+++ b/drivers/iceramodem/gprs-context.c
@@ -40,6 +40,7 @@
#include "gattty.h"
#include "iceramodem.h"
+#include "src/missing.h"
#define ICERA_DISCONNECTED 0
#define ICERA_CONNECTED 1
diff --git a/drivers/mbmmodem/gprs-context.c b/drivers/mbmmodem/gprs-context.c
index acfa211..d6c3a3c 100644
--- a/drivers/mbmmodem/gprs-context.c
+++ b/drivers/mbmmodem/gprs-context.c
@@ -38,6 +38,7 @@
#include "gatresult.h"
#include "mbmmodem.h"
+#include "src/missing.h"
#define MBM_E2NAP_DISCONNECTED 0
#define MBM_E2NAP_CONNECTED 1
diff --git a/drivers/stemodem/gprs-context.c b/drivers/stemodem/gprs-context.c
index e1b51dc..4348e15 100644
--- a/drivers/stemodem/gprs-context.c
+++ b/drivers/stemodem/gprs-context.c
@@ -49,6 +49,7 @@
#include "if_caif.h"
#include "caif_rtnl.h"
#include "common.h"
+#include "src/missing.h"
#define MAX_DNS 2
#define IP_ADDR_LEN 20
diff --git a/drivers/swmodem/gprs-context.c b/drivers/swmodem/gprs-context.c
index 6532aa4..b63c895 100644
--- a/drivers/swmodem/gprs-context.c
+++ b/drivers/swmodem/gprs-context.c
@@ -40,6 +40,7 @@
#include "gattty.h"
#include "swmodem.h"
+#include "src/missing.h"
static const char *none_prefix[] = { NULL };
diff --git a/gatchat/gatmux.c b/gatchat/gatmux.c
index 2e4ce9f..95ffeb8 100644
--- a/gatchat/gatmux.c
+++ b/gatchat/gatmux.c
@@ -38,6 +38,7 @@
#include "ringbuffer.h"
#include "gatmux.h"
#include "gsm0710.h"
+#include "src/missing.h"
static const char *cmux_prefix[] = { "+CMUX:", NULL };
static const char *none_prefix[] = { NULL };
diff --git a/gatchat/ppp_ipcp.c b/gatchat/ppp_ipcp.c
index 4d19e1b..4d4dd37 100644
--- a/gatchat/ppp_ipcp.c
+++ b/gatchat/ppp_ipcp.c
@@ -34,6 +34,7 @@
#include "gatutil.h"
#include "gatppp.h"
#include "ppp.h"
+#include "src/missing.h"
#define IPCP_SUPPORTED_CODES ((1 << PPPCP_CODE_TYPE_CONFIGURE_REQUEST) | \
(1 << PPPCP_CODE_TYPE_CONFIGURE_ACK) | \
diff --git a/gatchat/ppp_ipv6cp.c b/gatchat/ppp_ipv6cp.c
index ac2b758..cde4020 100644
--- a/gatchat/ppp_ipv6cp.c
+++ b/gatchat/ppp_ipv6cp.c
@@ -34,6 +34,7 @@
#include "gatppp.h"
#include "ppp.h"
+#include "missing.h"
#define IPV6CP_SUPPORTED_CODES ((1 << PPPCP_CODE_TYPE_CONFIGURE_REQUEST) | \
(1 << PPPCP_CODE_TYPE_CONFIGURE_ACK) | \
diff --git a/src/missing.h b/src/missing.h
new file mode 100644
index 0000000..aa96e27
--- /dev/null
+++ b/src/missing.h
@@ -0,0 +1,24 @@
+/*
+ *
+ * oFono - Open Source Telephony
+ *
+ * Copyright (C) 2008-2011 Intel Corporation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifndef HAVE_G_MEMDUP2
+#define g_memdup2(mem, size) g_memdup((mem), (size))
+#endif
diff --git a/src/modem.c b/src/modem.c
index bd4c104..f4f414c 100644
--- a/src/modem.c
+++ b/src/modem.c
@@ -31,8 +31,8 @@
#include <gdbus.h>
#include "ofono.h"
-
#include "common.h"
+#include "missing.h"
#define DEFAULT_POWERED_TIMEOUT (20)
diff --git a/src/network.c b/src/network.c
index 0d54bb3..bfb8817 100644
--- a/src/network.c
+++ b/src/network.c
@@ -36,6 +36,7 @@
#include "simutil.h"
#include "util.h"
#include "storage.h"
+#include "missing.h"
#define SETTINGS_STORE "netreg"
#define SETTINGS_GROUP "Settings"
diff --git a/src/sim.c b/src/sim.c
index 4a05ac3..0c4afef 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -47,6 +47,7 @@
#include "storage.h"
#include "simfs.h"
#include "stkutil.h"
+#include "missing.h"
/*
* A new session object will be created if a USim/ISim applications are
diff --git a/src/simfs.c b/src/simfs.c
index 8b838b0..3d4f628 100644
--- a/src/simfs.c
+++ b/src/simfs.c
@@ -39,6 +39,7 @@
#include "simfs.h"
#include "simutil.h"
#include "storage.h"
+#include "missing.h"
#define SIM_CACHE_MODE 0600
#define SIM_CACHE_BASEPATH STORAGEDIR "/%s-%i"
diff --git a/src/simutil.c b/src/simutil.c
index 5d2aa6a..9013460 100644
--- a/src/simutil.c
+++ b/src/simutil.c
@@ -33,6 +33,7 @@
#include "simutil.h"
#include "util.h"
#include "smsutil.h"
+#include "missing.h"
struct sim_eons {
struct sim_eons_operator_info *pnn_list;
diff --git a/src/smsutil.c b/src/smsutil.c
index 6911f83..8e57a06 100644
--- a/src/smsutil.c
+++ b/src/smsutil.c
@@ -38,6 +38,7 @@
#include "util.h"
#include "storage.h"
#include "smsutil.h"
+#include "missing.h"
#define uninitialized_var(x) x = x
diff --git a/src/voicecall.c b/src/voicecall.c
index 6265e4d..3da258d 100644
--- a/src/voicecall.c
+++ b/src/voicecall.c
@@ -38,6 +38,7 @@
#include "simutil.h"
#include "smsutil.h"
#include "storage.h"
+#include "missing.h"
#define MAX_VOICE_CALLS 16
diff --git a/tools/stktest.c b/tools/stktest.c
index 5863bc5..80d277e 100644
--- a/tools/stktest.c
+++ b/tools/stktest.c
@@ -36,6 +36,7 @@
#include <gdbus.h>
#include <gatchat/gatserver.h>
+#include "src/missing.h"
#include "unit/stk-test-data.h"
#define OFONO_SERVICE "org.ofono"