From 3000ccf565d2e72adc5258b5e0a4e83fd8c59a75 Mon Sep 17 00:00:00 2001 From: "wootak.jung" Date: Wed, 12 Dec 2012 10:37:53 +0900 Subject: [PATCH] Modified structure tnoti_ps_call_status. Change-Id: I33c449ee1faac280a3cd5cf61038fe812d7a7b19 --- include/type/ps.h | 73 +++++++++++++++++++++++++++++-------------------------- include/util.h | 3 +-- src/util.c | 51 +++++++------------------------------- 3 files changed, 48 insertions(+), 79 deletions(-) diff --git a/include/type/ps.h b/include/type/ps.h index e816f9b..0db6104 100644 --- a/include/type/ps.h +++ b/include/type/ps.h @@ -24,39 +24,39 @@ __BEGIN_DECLS enum telephony_ps_pdp_err { - PDP_FAILURE_CAUSE_NORMAL = 0x00, // 0x00 : Normal Process ( no problem ) - PDP_FAILURE_CAUSE_REL_BY_USER = 0x01, // Call Released by User - PDP_FAILURE_CAUSE_REGULAR_DEACTIVATION = 0x02, // Regular deactivation - PDP_FAILURE_CAUSE_LLC_SNDCP = 0x03, // LLC SNDCP failure - PDP_FAILURE_CAUSE_INSUFFICIENT_RESOURCE = 0x04, // Insufficient resources - PDP_FAILURE_CAUSE_UNKNOWN_APN = 0x05, // Missing or unkown apn - PDP_FAILURE_CAUSE_UNKNOWN_PDP_ADDRESS = 0x06, // Unknown pdp address or type - PDP_FAILURE_CAUSE_USER_AUTH_FAILED = 0x07, // Unknown pdp address or type - PDP_FAILURE_CAUSE_ACT_REJ_GGSN = 0x08, // Unknown pdp address or type - PDP_FAILURE_CAUSE_ACT_REJ_UNSPECIFIED = 0x09, // Unknown pdp address or type - PDP_FAILURE_CAUSE_SVC_OPTION_NOT_SUPPORTED = 0x0A, // Service option not supported - PDP_FAILURE_CAUSE_SVC_NOT_SUBSCRIBED = 0x0B, // Requested service option not subscribed - PDP_FAILURE_CAUSE_SVC_OPT_OUT_ORDER = 0x0C, // Service out of order - PDP_FAILURE_CAUSE_NSAPI_USED = 0x0D, // NSAPI already used - PDP_FAILURE_CAUSE_QOS_NOT_ACCEPTED = 0x0E, // QoS not accepted - PDP_FAILURE_CAUSE_NETWORK_FAILURE = 0x0F, // Network Failure - PDP_FAILURE_CAUSE_REACT_REQUIRED = 0x10, // Reactivation Required - PDP_FAILURE_CAUSE_FEATURE_NOT_SUPPORTED = 0x11, // Feature not supported - PDP_FAILURE_CAUSE_TFT_FILTER_ERROR = 0x12, // TFT or filter error - PDP_FAILURE_CAUSE_UNKOWN_PDP_CONTEXT = 0x13, // Unkown PDP context - PDP_FAILURE_CAUSE_INVALID_MSG = 0x14, // Invalied MSG - PDP_FAILURE_CAUSE_PROTOCOL_ERROR = 0x15, // Protocol error - PDP_FAILURE_CAUSE_MOBILE_FAILURE_ERROR = 0x16, // Mobile failure error - PDP_FAILURE_CAUSE_TIMEOUT_ERROR = 0x17, // Timeout error - PDP_FAILURE_CAUSE_UNKNOWN_ERROR = 0x18, // Unknown error - PDP_FAILURE_CAUSE_MAX, + PDP_FAILURE_CAUSE_NORMAL, + PDP_FAILURE_CAUSE_REL_BY_USER, + PDP_FAILURE_CAUSE_REGULAR_DEACTIVATION, + PDP_FAILURE_CAUSE_LLC_SNDCP, + PDP_FAILURE_CAUSE_INSUFFICIENT_RESOURCE, + PDP_FAILURE_CAUSE_UNKNOWN_APN, + PDP_FAILURE_CAUSE_UNKNOWN_PDP_ADDRESS, + PDP_FAILURE_CAUSE_USER_AUTH_FAILED, + PDP_FAILURE_CAUSE_ACT_REJ_GGSN, + PDP_FAILURE_CAUSE_ACT_REJ_UNSPECIFIED, + PDP_FAILURE_CAUSE_SVC_OPTION_NOT_SUPPORTED, + PDP_FAILURE_CAUSE_SVC_NOT_SUBSCRIBED, + PDP_FAILURE_CAUSE_SVC_OPT_OUT_ORDER, + PDP_FAILURE_CAUSE_NSAPI_USED, + PDP_FAILURE_CAUSE_QOS_NOT_ACCEPTED, + PDP_FAILURE_CAUSE_NETWORK_FAILURE, + PDP_FAILURE_CAUSE_REACT_REQUIRED, + PDP_FAILURE_CAUSE_FEATURE_NOT_SUPPORTED, + PDP_FAILURE_CAUSE_TFT_FILTER_ERROR, + PDP_FAILURE_CAUSE_UNKOWN_PDP_CONTEXT, + PDP_FAILURE_CAUSE_INVALID_MSG, + PDP_FAILURE_CAUSE_PROTOCOL_ERROR, + PDP_FAILURE_CAUSE_MOBILE_FAILURE_ERROR, + PDP_FAILURE_CAUSE_TIMEOUT_ERROR, + PDP_FAILURE_CAUSE_UNKNOWN_ERROR, + PDP_FAILURE_CAUSE_MAX }; enum telephony_ps_protocol_status { - TELEPHONY_HSDPA_OFF = 0x00, - TELEPHONY_HSDPA_ON = 0x01, - TELEPHONY_HSUPA_ON = 0x02, - TELEPHONY_HSPA_ON = 0x03, + TELEPHONY_HSDPA_OFF, + TELEPHONY_HSDPA_ON, + TELEPHONY_HSUPA_ON, + TELEPHONY_HSPA_ON }; enum telephony_ps_state { @@ -64,7 +64,12 @@ enum telephony_ps_state { TELEPHONY_PS_3G_OFF, TELEPHONY_PS_ROAMING_OFF, TELEPHONY_PS_FLIGHT_MODE, - TELEPHONY_PS_NO_SERVICE + TELEPHONY_PS_NO_SERVICE, +}; + +enum ps_data_call_status { + PS_DATA_CALL_NOT_CONNECTED, + PS_DATA_CALL_CONNECTED }; struct treq_ps_pdp_activate { @@ -87,7 +92,6 @@ struct tresp_ps_set_pdp_activate { int result; }; - struct treq_ps_pdp_deactivate { int context_id; int secondary_context_id; @@ -106,9 +110,8 @@ struct tresp_ps_set_pdp_deactivate { }; struct tnoti_ps_call_status { - int context_id; - int state; - int result; + unsigned int context_id; + enum ps_data_call_status state; }; struct tnoti_ps_pdp_ipconfiguration { diff --git a/include/util.h b/include/util.h index f036fd5..4e8c139 100644 --- a/include/util.h +++ b/include/util.h @@ -50,8 +50,7 @@ enum tcore_dcs_type { TCORE_DCS_TYPE_UNSPECIFIED = 0x0F, }; -TReturn tcore_util_netif_up(const char *name); -TReturn tcore_util_netif_down(const char *name); +TReturn tcore_util_netif(const char *name, gboolean enabled); TReturn tcore_util_netif_set(const char *name, const char *ipaddr, const char *gateway, const char *netmask); diff --git a/src/util.c b/src/util.c index 487a307..e3a51a5 100644 --- a/src/util.c +++ b/src/util.c @@ -878,7 +878,7 @@ static gboolean _tcore_util_marshal_convert_str_to_type(GValue *src, return TRUE; } -TReturn tcore_util_netif_up(const char *name) +TReturn tcore_util_netif(const char *name, gboolean enabled) { int ret; int fd; @@ -890,46 +890,11 @@ TReturn tcore_util_netif_up(const char *name) if (strlen(name) > IFNAMSIZ) return TCORE_RETURN_EINVAL; - fd = socket(AF_INET, SOCK_DGRAM, 0); - if (fd < 0) { - return TCORE_RETURN_FAILURE; - } - - memset(&ifr, 0, sizeof(struct ifreq)); - strncpy(ifr.ifr_name, name, IFNAMSIZ); - ifr.ifr_name[IFNAMSIZ - 1] = '\0'; + if (enabled == TRUE) + fd = socket(AF_INET, SOCK_DGRAM, 0); + else + fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); - ret = ioctl(fd, SIOCGIFFLAGS, &ifr); - if (ret < 0) { - close(fd); - return TCORE_RETURN_FAILURE; - } - - ifr.ifr_flags |= IFF_UP | IFF_RUNNING; - - ret = ioctl(fd, SIOCSIFFLAGS, &ifr); - if (ret < 0) { - close(fd); - return TCORE_RETURN_FAILURE; - } - - close(fd); - return TCORE_RETURN_SUCCESS; -} - -TReturn tcore_util_netif_down(const char *name) -{ - int ret; - int fd; - struct ifreq ifr; - - if (!name) - return TCORE_RETURN_EINVAL; - - if (strlen(name) > IFNAMSIZ) - return TCORE_RETURN_EINVAL; - - fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); if (fd < 0) { return TCORE_RETURN_FAILURE; } @@ -938,14 +903,16 @@ TReturn tcore_util_netif_down(const char *name) strncpy(ifr.ifr_name, name, IFNAMSIZ); ifr.ifr_name[IFNAMSIZ - 1] = '\0'; - ret = ioctl(fd, SIOCGIFFLAGS, &ifr); if (ret < 0) { close(fd); return TCORE_RETURN_FAILURE; } - ifr.ifr_flags &= ~(IFF_UP | IFF_RUNNING); + if (enabled == TRUE) + ifr.ifr_flags |= IFF_UP | IFF_RUNNING; + else + ifr.ifr_flags &= ~(IFF_UP | IFF_RUNNING); ret = ioctl(fd, SIOCSIFFLAGS, &ifr); if (ret < 0) { -- 2.7.4