1e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo/* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
234ee09551764b045fdc02df754157473125edf60Kevin Tang *
334ee09551764b045fdc02df754157473125edf60Kevin Tang * Redistribution and use in source and binary forms, with or without
434ee09551764b045fdc02df754157473125edf60Kevin Tang * modification, are permitted provided that the following conditions are
534ee09551764b045fdc02df754157473125edf60Kevin Tang * met:
634ee09551764b045fdc02df754157473125edf60Kevin Tang *     * Redistributions of source code must retain the above copyright
734ee09551764b045fdc02df754157473125edf60Kevin Tang *       notice, this list of conditions and the following disclaimer.
834ee09551764b045fdc02df754157473125edf60Kevin Tang *     * Redistributions in binary form must reproduce the above
934ee09551764b045fdc02df754157473125edf60Kevin Tang *       copyright notice, this list of conditions and the following
1034ee09551764b045fdc02df754157473125edf60Kevin Tang *       disclaimer in the documentation and/or other materials provided
1134ee09551764b045fdc02df754157473125edf60Kevin Tang *       with the distribution.
12e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo *     * Neither the name of The Linux Foundation, nor the names of its
1334ee09551764b045fdc02df754157473125edf60Kevin Tang *       contributors may be used to endorse or promote products derived
1434ee09551764b045fdc02df754157473125edf60Kevin Tang *       from this software without specific prior written permission.
1534ee09551764b045fdc02df754157473125edf60Kevin Tang *
1634ee09551764b045fdc02df754157473125edf60Kevin Tang * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
1734ee09551764b045fdc02df754157473125edf60Kevin Tang * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
1834ee09551764b045fdc02df754157473125edf60Kevin Tang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
1934ee09551764b045fdc02df754157473125edf60Kevin Tang * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
2034ee09551764b045fdc02df754157473125edf60Kevin Tang * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2134ee09551764b045fdc02df754157473125edf60Kevin Tang * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2234ee09551764b045fdc02df754157473125edf60Kevin Tang * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
2334ee09551764b045fdc02df754157473125edf60Kevin Tang * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
2434ee09551764b045fdc02df754157473125edf60Kevin Tang * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
2534ee09551764b045fdc02df754157473125edf60Kevin Tang * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
2634ee09551764b045fdc02df754157473125edf60Kevin Tang * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2734ee09551764b045fdc02df754157473125edf60Kevin Tang *
2834ee09551764b045fdc02df754157473125edf60Kevin Tang */
2934ee09551764b045fdc02df754157473125edf60Kevin Tang#include <stdio.h>
3034ee09551764b045fdc02df754157473125edf60Kevin Tang#include <stdlib.h>
3134ee09551764b045fdc02df754157473125edf60Kevin Tang#include <string.h>
3234ee09551764b045fdc02df754157473125edf60Kevin Tang#include <unistd.h>
3334ee09551764b045fdc02df754157473125edf60Kevin Tang
3434ee09551764b045fdc02df754157473125edf60Kevin Tang#include "log_util.h"
35e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo#include "platform_lib_includes.h"
3634ee09551764b045fdc02df754157473125edf60Kevin Tang#include "loc_eng_msg.h"
3734ee09551764b045fdc02df754157473125edf60Kevin Tang#include "loc_eng_dmn_conn.h"
3834ee09551764b045fdc02df754157473125edf60Kevin Tang#include "loc_eng_dmn_conn_handler.h"
3934ee09551764b045fdc02df754157473125edf60Kevin Tang
4034ee09551764b045fdc02df754157473125edf60Kevin Tangvoid* loc_api_handle = NULL;
4134ee09551764b045fdc02df754157473125edf60Kevin Tang
4234ee09551764b045fdc02df754157473125edf60Kevin Tangint loc_eng_dmn_conn_loc_api_server_if_request_handler(struct ctrl_msgbuf *pmsg, int len)
4334ee09551764b045fdc02df754157473125edf60Kevin Tang{
4434ee09551764b045fdc02df754157473125edf60Kevin Tang    LOC_LOGD("%s:%d]\n", __func__, __LINE__);
4534ee09551764b045fdc02df754157473125edf60Kevin Tang#ifndef DEBUG_DMN_LOC_API
4634ee09551764b045fdc02df754157473125edf60Kevin Tang    if (NULL == loc_api_handle) {
4734ee09551764b045fdc02df754157473125edf60Kevin Tang        LOC_LOGE("%s:%d] NO agps data handle\n", __func__, __LINE__);
4834ee09551764b045fdc02df754157473125edf60Kevin Tang        return 1;
4934ee09551764b045fdc02df754157473125edf60Kevin Tang    }
5034ee09551764b045fdc02df754157473125edf60Kevin Tang
51e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo    if (NULL != loc_api_handle) {
52e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        AGpsExtType type;
53e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        switch (pmsg->cmsg.cmsg_if_request.type) {
54e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          case IF_REQUEST_TYPE_SUPL:
55e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          {
56e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LOC_LOGD("IF_REQUEST_TYPE_SUPL");
57e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            type = AGPS_TYPE_SUPL;
58e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            break;
59e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          }
60e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          case IF_REQUEST_TYPE_WIFI:
61e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          {
62e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LOC_LOGD("IF_REQUEST_TYPE_WIFI");
63e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            type = AGPS_TYPE_WIFI;
64e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            break;
65e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          }
66e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          case IF_REQUEST_TYPE_ANY:
67e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          {
68e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LOC_LOGD("IF_REQUEST_TYPE_ANY");
69e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            type = AGPS_TYPE_ANY;
70e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            break;
71e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          }
72e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          default:
73e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          {
74e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LOC_LOGD("invalid IF_REQUEST_TYPE!");
75e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            return -1;
76e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          }
77e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        }
78e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        switch (pmsg->cmsg.cmsg_if_request.sender_id) {
79e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          case IF_REQUEST_SENDER_ID_QUIPC:
80e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          {
81e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LOC_LOGD("IF_REQUEST_SENDER_ID_QUIPC");
82e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LocEngReqRelWifi* msg =
83e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                new LocEngReqRelWifi(loc_api_handle,
84e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     type,
85e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     LOC_ENG_IF_REQUEST_SENDER_ID_QUIPC,
86e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     (char*)pmsg->cmsg.cmsg_if_request.ssid,
87e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     (char*)pmsg->cmsg.cmsg_if_request.password,
88e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     true);
89e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            msg->send();
90e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            break;
91e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          }
92e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          case IF_REQUEST_SENDER_ID_MSAPM:
93e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          {
94e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LOC_LOGD("IF_REQUEST_SENDER_ID_MSAPM");
95e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LocEngReqRelWifi* msg =
96e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                new LocEngReqRelWifi(loc_api_handle,
97e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     type,
98e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     LOC_ENG_IF_REQUEST_SENDER_ID_MSAPM,
99e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     (char*)pmsg->cmsg.cmsg_if_request.ssid,
100e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     (char*)pmsg->cmsg.cmsg_if_request.password,
101e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     true);
102e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            msg->send();
103e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            break;
104e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          }
105e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          case IF_REQUEST_SENDER_ID_MSAPU:
106e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          {
107e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LOC_LOGD("IF_REQUEST_SENDER_ID_MSAPU");
108e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LocEngReqRelWifi* msg =
109e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                new LocEngReqRelWifi(loc_api_handle,
110e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     type,
111e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     LOC_ENG_IF_REQUEST_SENDER_ID_MSAPU,
112e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     (char*)pmsg->cmsg.cmsg_if_request.ssid,
113e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     (char*)pmsg->cmsg.cmsg_if_request.password,
114e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                     true);
115e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            msg->send();
116e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            break;
117e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          }
118e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          case IF_REQUEST_SENDER_ID_GPSONE_DAEMON:
119e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          {
120e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LOC_LOGD("IF_REQUEST_SENDER_ID_GPSONE_DAEMON");
121e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LocEngReqRelBIT* msg =
122e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                new LocEngReqRelBIT(loc_api_handle,
123e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                    type,
12434ee09551764b045fdc02df754157473125edf60Kevin Tang                                    pmsg->cmsg.cmsg_if_request.ipv4_addr,
125e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                    (char*)pmsg->cmsg.cmsg_if_request.ipv6_addr,
126e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                    true);
127e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            msg->send();
128e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            break;
129e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          }
130e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          default:
131e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          {
132e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            LOC_LOGD("invalid IF_REQUEST_SENDER_ID!");
133e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            return -1;
134e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo          }
135e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        }
136e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo    }
13734ee09551764b045fdc02df754157473125edf60Kevin Tang
13834ee09551764b045fdc02df754157473125edf60Kevin Tang#else
139e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo   loc_eng_dmn_conn_loc_api_server_data_conn(LOC_ENG_IF_REQUEST_SENDER_ID_GPSONE_DAEMON, GPSONE_LOC_API_IF_REQUEST_SUCCESS);
14034ee09551764b045fdc02df754157473125edf60Kevin Tang#endif
14134ee09551764b045fdc02df754157473125edf60Kevin Tang    return 0;
14234ee09551764b045fdc02df754157473125edf60Kevin Tang}
14334ee09551764b045fdc02df754157473125edf60Kevin Tang
14434ee09551764b045fdc02df754157473125edf60Kevin Tangint loc_eng_dmn_conn_loc_api_server_if_release_handler(struct ctrl_msgbuf *pmsg, int len)
14534ee09551764b045fdc02df754157473125edf60Kevin Tang{
14634ee09551764b045fdc02df754157473125edf60Kevin Tang    LOC_LOGD("%s:%d]\n", __func__, __LINE__);
14734ee09551764b045fdc02df754157473125edf60Kevin Tang#ifndef DEBUG_DMN_LOC_API
148e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo    AGpsExtType type;
149e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo    switch (pmsg->cmsg.cmsg_if_request.type) {
150e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      case IF_REQUEST_TYPE_SUPL:
151e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      {
152e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LOC_LOGD("IF_REQUEST_TYPE_SUPL");
153e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        type = AGPS_TYPE_SUPL;
154e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        break;
155e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      }
156e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      case IF_REQUEST_TYPE_WIFI:
157e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      {
158e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LOC_LOGD("IF_REQUEST_TYPE_WIFI");
159e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        type = AGPS_TYPE_WIFI;
160e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        break;
161e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      }
162e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      case IF_REQUEST_TYPE_ANY:
163e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      {
164e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LOC_LOGD("IF_REQUEST_TYPE_ANY");
165e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        type = AGPS_TYPE_ANY;
166e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        break;
167e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      }
168e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      default:
169e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      {
170e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LOC_LOGD("invalid IF_REQUEST_TYPE!");
171e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        return -1;
172e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      }
173e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo    }
174e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo    switch (pmsg->cmsg.cmsg_if_request.sender_id) {
175e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      case IF_REQUEST_SENDER_ID_QUIPC:
176e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      {
177e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LOC_LOGD("IF_REQUEST_SENDER_ID_QUIPC");
178e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LocEngReqRelWifi* msg =
179e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            new LocEngReqRelWifi(loc_api_handle,
180e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 type,
181e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 LOC_ENG_IF_REQUEST_SENDER_ID_QUIPC,
182e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 (char*)pmsg->cmsg.cmsg_if_request.ssid,
183e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 (char*)pmsg->cmsg.cmsg_if_request.password,
184e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 false);
185e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        msg->send();
186e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        break;
187e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      }
188e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      case IF_REQUEST_SENDER_ID_MSAPM:
189e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      {
190e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LOC_LOGD("IF_REQUEST_SENDER_ID_MSAPM");
191e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LocEngReqRelWifi* msg =
192e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            new LocEngReqRelWifi(loc_api_handle,
193e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 type,
194e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 LOC_ENG_IF_REQUEST_SENDER_ID_MSAPM,
195e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 (char*)pmsg->cmsg.cmsg_if_request.ssid,
196e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 (char*)pmsg->cmsg.cmsg_if_request.password,
197e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 false);
198e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        msg->send();
199e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        break;
200e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      }
201e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      case IF_REQUEST_SENDER_ID_MSAPU:
202e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      {
203e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LOC_LOGD("IF_REQUEST_SENDER_ID_MSAPU");
204e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LocEngReqRelWifi* msg =
205e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            new LocEngReqRelWifi(loc_api_handle,
206e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 type,
207e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 LOC_ENG_IF_REQUEST_SENDER_ID_MSAPU,
208e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 (char*)pmsg->cmsg.cmsg_if_request.ssid,
209e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 (char*)pmsg->cmsg.cmsg_if_request.password,
210e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                 false);
211e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        msg->send();
212e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        break;
213e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      }
214e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      case IF_REQUEST_SENDER_ID_GPSONE_DAEMON:
215e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      {
216e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LOC_LOGD("IF_REQUEST_SENDER_ID_GPSONE_DAEMON");
217e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LocEngReqRelBIT* msg =
218e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo            new LocEngReqRelBIT(loc_api_handle,
219e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                type,
220e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                pmsg->cmsg.cmsg_if_request.ipv4_addr,
221e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                (char*)pmsg->cmsg.cmsg_if_request.ipv6_addr,
222e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo                                false);
223e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        msg->send();
224e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        break;
225e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      }
226e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      default:
227e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      {
228e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        LOC_LOGD("invalid IF_REQUEST_SENDER_ID!");
229e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo        return -1;
230e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo      }
231e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo    }
23234ee09551764b045fdc02df754157473125edf60Kevin Tang#else
233e14a6c846df2ce4bb1847e4250991f7c52fd793dDante Russo   loc_eng_dmn_conn_loc_api_server_data_conn(LOC_ENG_IF_REQUEST_SENDER_ID_GPSONE_DAEMON, GPSONE_LOC_API_IF_RELEASE_SUCCESS);
23434ee09551764b045fdc02df754157473125edf60Kevin Tang#endif
23534ee09551764b045fdc02df754157473125edf60Kevin Tang    return 0;
23634ee09551764b045fdc02df754157473125edf60Kevin Tang}
23734ee09551764b045fdc02df754157473125edf60Kevin Tang
238