/* 40 bytes IPv6 header - 20 bytes IPv4 header + 8 bytes fragment header */
#define MTU_DELTA 28
+#if defined TIZEN_EXT
+#define MAX_SIZE_ERROR_BUFFER 256
+#endif
volatile sig_atomic_t running = 1;
}
#if defined TIZEN_EXT
+ char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
int error = tun_alloc(tunnel->device4, tunnel->fd4, sizeof(tunnel->device4));
if (error < 0) {
- CLATD_LOG(LOG_FATAL, "tun_alloc/4 failed: %s", strerror(errno));
+ CLATD_LOG(LOG_FATAL, "tun_alloc/4 failed: %s",
+ strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
return;
}
error = set_nonblocking(tunnel->fd4);
if (error < 0) {
- CLATD_LOG(LOG_FATAL, "set_nonblocking failed: %s", strerror(errno));
+ CLATD_LOG(LOG_FATAL, "set_nonblocking failed: %s",
+ strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
return;
}
#endif
#define DBG 0
#endif
+#if defined TIZEN_EXT
+#define MAX_SIZE_ERROR_BUFFER 256
+#endif
#define INET_ADDRLEN 4
#define INET6_ADDRLEN 16
int ifc_init(void)
{
int ret;
+#if defined TIZEN_EXT
+ char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
+#endif
pthread_mutex_lock(&ifc_sock_mutex);
if (ifc_ctl_sock == -1) {
ifc_ctl_sock = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
if (ifc_ctl_sock < 0) {
#if defined TIZEN_EXT
- CLATD_LOG(LOG_ERROR, "socket() failed: %s", strerror(errno));
+ CLATD_LOG(LOG_ERROR, "socket() failed: %s",
+ strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
#else
printerr("socket() failed: %s\n", strerror(errno));
#endif
int ifc_init6(void)
{
+#if defined TIZEN_EXT
+ char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
+#endif
+
pthread_mutex_lock(&ifc_sock6_mutex);
if (ifc_ctl_sock6 == -1) {
ifc_ctl_sock6 = socket(AF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0);
if (ifc_ctl_sock6 < 0) {
#if defined TIZEN_EXT
- CLATD_LOG(LOG_ERROR, "socket() failed: %s", strerror(errno));
+ CLATD_LOG(LOG_ERROR, "socket() failed: %s",
+ strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
#else
printerr("socket() failed: %s\n", strerror(errno));
#endif
{
struct rtentry rt;
int result;
+#if defined TIZEN_EXT
+ char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
+#endif
ifc_init();
memset(&rt, 0, sizeof(rt));
init_sockaddr_in(&rt.rt_dst, 0);
if ((result = ioctl(ifc_ctl_sock, SIOCDELRT, &rt)) < 0) {
#if defined TIZEN_EXT
- CLATD_LOG(LOG_ERROR, "failed to remove default route for %s: %s", ifname, strerror(errno));
+ CLATD_LOG(LOG_ERROR, "failed to remove default route for %s: %s",
+ ifname, strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
#else
ALOGD("failed to remove default route for %s: %s", ifname, strerror(errno));
#endif
in_addr_t dns1,
in_addr_t dns2)
{
-#if !defined TIZEN_EXT
+#if defined TIZEN_EXT
+ char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
+#else
char dns_prop_name[PROPERTY_KEY_MAX];
#endif
if (ifc_up(ifname)) {
#if defined TIZEN_EXT
- CLATD_LOG(LOG_ERROR, "failed to turn on interface %s: %s", ifname, strerror(errno));
+ CLATD_LOG(LOG_ERROR, "failed to turn on interface %s: %s",
+ ifname, strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
#else
printerr("failed to turn on interface %s: %s\n", ifname, strerror(errno));
#endif
}
if (ifc_set_addr(ifname, address)) {
#if defined TIZEN_EXT
- CLATD_LOG(LOG_ERROR, "failed to set ipaddr %s: %s", ipaddr_to_string(address), strerror(errno));
+ CLATD_LOG(LOG_ERROR, "failed to set ipaddr %s: %s",
+ ipaddr_to_string(address), strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
#else
printerr("failed to set ipaddr %s: %s\n", ipaddr_to_string(address), strerror(errno));
#endif
}
if (ifc_set_prefixLength(ifname, prefixLength)) {
#if defined TIZEN_EXT
- CLATD_LOG(LOG_ERROR, "failed to set prefixLength %d: %s", prefixLength, strerror(errno));
+ CLATD_LOG(LOG_ERROR, "failed to set prefixLength %d: %s",
+ prefixLength, strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
#else
printerr("failed to set prefixLength %d: %s\n", prefixLength, strerror(errno));
#endif
}
if (ifc_create_default_route(ifname, gateway)) {
#if defined TIZEN_EXT
- CLATD_LOG(LOG_ERROR, "failed to set default route %s: %s", ipaddr_to_string(gateway), strerror(errno));
+ CLATD_LOG(LOG_ERROR, "failed to set default route %s: %s",
+ ipaddr_to_string(gateway), strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
#else
printerr("failed to set default route %s: %s\n", ipaddr_to_string(gateway), strerror(errno));
#endif
}
#if defined(TIZEN_EXT)
+#define MAX_SIZE_ERROR_BUFFER 256
+
static void _graceful_terminate(gpointer data);
static gboolean on_sigterm(gpointer user_data);
unsigned net_id = NETID_UNSET;
uint32_t mark = MARK_UNSET;
unsigned len = 0;
+ char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
cl = user_data;
CLATD_LOG(LOG_INFO, "Starting clat version %s on %s netid=%s mark=%s",
CLATD_VERSION, uplink_interface,net_id_str ? net_id_str : "(none)",
- mark_str ? mark_str : "(none)",
+ mark_str ? mark_str : "(none)",
plat_prefix ? plat_prefix : "(none)",
v4_addr ? v4_addr : "(none)",
v6_addr ? v6_addr : "(none)");
// we can create tun devices as non-root because we're in the VPN group.
cl->tunnel.fd4 = tun_open();
if (cl->tunnel.fd4 < 0) {
- CLATD_LOG(LOG_FATAL, "tun_open4 failed: %s", strerror(errno));
+ CLATD_LOG(LOG_FATAL, "tun_open4 failed: %s",
+ strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
goto error_case;
}
GDBusMethodInvocation *invoc, gpointer user_data)
{
struct _clat *cl = 0;
+ char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
cl = user_data;
//< RNTFIX::to make clat4 interface persistently
if (if_down(cl->tunnel.device4) < 0) {
- CLATD_LOG(LOG_FATAL, "if_down failed: %s", strerror(errno));
+ CLATD_LOG(LOG_FATAL, "if_down failed: %s",
+ strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
}
if (delete_address(cl->tunnel.device4, AF_INET, &Global_Clatd_Config.ipv4_local_subnet, 32) < 0) {
- CLATD_LOG(LOG_FATAL, "delete_address failed: %s", strerror(errno));
+ CLATD_LOG(LOG_FATAL, "delete_address failed: %s",
+ strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
}
//> RNTFIX::to make clat4 interface persistently
static void _graceful_terminate(gpointer data)
{
struct _clat *cl = NULL;
+ char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
+
cl = (struct _clat *)data;
CLATD_LOG(LOG_INFO, "terminate gracfully");
errno = 0;
if (if_down(cl->tunnel.device4) < 0)
- CLATD_LOG(LOG_FATAL, "if_down failed: %s", strerror(errno));
+ CLATD_LOG(LOG_FATAL, "if_down failed: %s",
+ strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
errno = 0;
if (delete_address(cl->tunnel.device4, AF_INET, &Global_Clatd_Config.ipv4_local_subnet, 32) < 0)
- CLATD_LOG(LOG_FATAL, "delete_address failed: %s", strerror(errno));
+ CLATD_LOG(LOG_FATAL, "delete_address failed: %s",
+ strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER));
CLATD_LOG(LOG_INFO, "Shutting down clat on %s", cl->tunnel.device4);
del_anycast_address(cl->tunnel.write_fd6, &Global_Clatd_Config.ipv6_local_subnet);