return s;
}
+#if !defined(CONFIG_WIN32) && defined(CONFIG_MARU)
+#include <arpa/inet.h>
+#include <sys/socket.h>
+#include <ifaddrs.h>
+#define BRIDGE_NAME "bridge1"
+static char *get_interface_name_from_ip(void)
+{
+ struct ifaddrs *ifaddrs, *ifaddr;
+ struct sockaddr_in *sa;
+ char *addr;
+
+ getifaddrs(&ifaddrs);
+ for (ifaddr = ifaddrs; ifaddr; ifaddr = ifaddr->ifa_next) {
+ if (ifaddr->ifa_addr->sa_family == AF_INET) {
+ sa = (struct sockaddr_in *) ifaddr->ifa_addr;
+ addr = inet_ntoa(sa->sin_addr);
+ if (0 == strcmp(addr, get_emul_host_ip())) {
+ freeifaddrs(ifaddrs);
+ if (0 == strcmp(addr, BRIDGE_NAME)) {
+ fprintf(stdout, "interface is bridge\n");
+ return NULL;
+ }
+ return ifaddr->ifa_name;
+ }
+ }
+ }
+
+ freeifaddrs(ifaddrs);
+ return NULL;
+}
+#endif
+
static int launch_script(const char *setup_script, const char *ifname, int fd)
{
int pid, status;
-#if defined(CONFIG_DARWIN) && defined(CONFIG_MARU)
- char *args[5];
- const gchar* cocoasudo_path = g_strdup_printf("%scocoasudo", get_bin_path());
- const char* message = "--prompt=Emulator needs privileged mode to setup bridged network.";
+#if !defined(CONFIG_WIN32) && defined(CONFIG_MARU)
+ const char* sudo_path = "/usr/bin/sudo";
+ char *host_ifname = get_interface_name_from_ip();
+ int arg_cnt = 0;
+ if (host_ifname == NULL) {
+ arg_cnt = 4;
+ } else {
+ arg_cnt = 5;
+ }
+ char *args[arg_cnt];
#else
char *args[3];
#endif
}
}
parg = args;
-#if defined(CONFIG_DARWIN) && defined(CONFIG_MARU)
- *parg++ = (char *)cocoasudo_path;
- *parg++ = (char *)message;
+#if !defined(CONFIG_WIN32) && defined(CONFIG_MARU)
+ *parg++ = (char *)sudo_path;
#endif
*parg++ = (char *)setup_script;
*parg++ = (char *)ifname;
+ if (host_ifname) {
+ *parg++ = (char *)host_ifname;
+ }
*parg = NULL;
-#if defined(CONFIG_DARWIN) && defined(CONFIG_MARU)
- execv(cocoasudo_path, args);
+
+#if !defined(CONFIG_WIN32) && defined(CONFIG_MARU)
+ execv(sudo_path, args);
#else
execv(setup_script, args);
#endif
#!/bin/sh +x
-BASEIF=eth0
NETMASK=`ifconfig $BASE | grep "inet " | awk '{print $4}' | cut -d : -f2`
GW=`netstat -rn | grep ^0.0.0.0 | awk '{print $2}'`
-BR=br-tizen-vm-1
+BR=bridge1
# Check if bridge interface exists.
CHECK_BR=`ifconfig $BR`
# ifconfig up tap device.
ifconfig $1 0.0.0.0 promisc up
-# Take interface down.
-ifdown $BASEIF
-ifconfig $BASEIF 0.0.0.0 promisc up
+if [ "$2" != "" ]
+then
+ # Take interface down.
+ ifdown $2
+ ifconfig $2 0.0.0.0 promisc up
-# Add tap device and interface to bridge.
-brctl addif $BR $BASEIF
+ # Add tap device and interface to bridge.
+ brctl addif $BR $2
+fi
brctl addif $BR $1
# Add the default route.