13aff2d1de59972684bf2ab798351be5544158239San Mehat/* 23aff2d1de59972684bf2ab798351be5544158239San Mehat * Copyright (C) 2008 The Android Open Source Project 33aff2d1de59972684bf2ab798351be5544158239San Mehat * 43aff2d1de59972684bf2ab798351be5544158239San Mehat * Licensed under the Apache License, Version 2.0 (the "License"); 53aff2d1de59972684bf2ab798351be5544158239San Mehat * you may not use this file except in compliance with the License. 63aff2d1de59972684bf2ab798351be5544158239San Mehat * You may obtain a copy of the License at 73aff2d1de59972684bf2ab798351be5544158239San Mehat * 83aff2d1de59972684bf2ab798351be5544158239San Mehat * http://www.apache.org/licenses/LICENSE-2.0 93aff2d1de59972684bf2ab798351be5544158239San Mehat * 103aff2d1de59972684bf2ab798351be5544158239San Mehat * Unless required by applicable law or agreed to in writing, software 113aff2d1de59972684bf2ab798351be5544158239San Mehat * distributed under the License is distributed on an "AS IS" BASIS, 123aff2d1de59972684bf2ab798351be5544158239San Mehat * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133aff2d1de59972684bf2ab798351be5544158239San Mehat * See the License for the specific language governing permissions and 143aff2d1de59972684bf2ab798351be5544158239San Mehat * limitations under the License. 153aff2d1de59972684bf2ab798351be5544158239San Mehat */ 163aff2d1de59972684bf2ab798351be5544158239San Mehat 173aff2d1de59972684bf2ab798351be5544158239San Mehat#define LOG_TAG "SupplicantConnectedEvent" 183aff2d1de59972684bf2ab798351be5544158239San Mehat#include <cutils/log.h> 193aff2d1de59972684bf2ab798351be5544158239San Mehat 203aff2d1de59972684bf2ab798351be5544158239San Mehat#include "SupplicantConnectedEvent.h" 213aff2d1de59972684bf2ab798351be5544158239San Mehat 223aff2d1de59972684bf2ab798351be5544158239San MehatSupplicantConnectedEvent::SupplicantConnectedEvent(int level, char *event, 233aff2d1de59972684bf2ab798351be5544158239San Mehat size_t len) : 243aff2d1de59972684bf2ab798351be5544158239San Mehat SupplicantEvent(SupplicantEvent::EVENT_CONNECTED, 253aff2d1de59972684bf2ab798351be5544158239San Mehat level) { 263aff2d1de59972684bf2ab798351be5544158239San Mehat char *p; 273aff2d1de59972684bf2ab798351be5544158239San Mehat 283aff2d1de59972684bf2ab798351be5544158239San Mehat // "- Connection to 00:13:46:40:40:aa completed (auth) [id=1 id_str=], 89" 293aff2d1de59972684bf2ab798351be5544158239San Mehat 303aff2d1de59972684bf2ab798351be5544158239San Mehat if ((p = index(event + 2, ' ')) && (++p = index(p, ' '))) { 313aff2d1de59972684bf2ab798351be5544158239San Mehat mBssid = (char *) malloc(18); 323aff2d1de59972684bf2ab798351be5544158239San Mehat strncpy(mBssid, ++p, 17); 333aff2d1de59972684bf2ab798351be5544158239San Mehat mBssid[17] = '\0'; 343aff2d1de59972684bf2ab798351be5544158239San Mehat 353aff2d1de59972684bf2ab798351be5544158239San Mehat // "- Connection to 00:13:46:40:40:aa completed (auth) [id=1 id_str=], 89" 363aff2d1de59972684bf2ab798351be5544158239San Mehat // ^ 373aff2d1de59972684bf2ab798351be5544158239San Mehat // p 383aff2d1de59972684bf2ab798351be5544158239San Mehat 393aff2d1de59972684bf2ab798351be5544158239San Mehat if ((p = index(p, ' ')) && ((++p = index(p, ' ')))) { 403aff2d1de59972684bf2ab798351be5544158239San Mehat if (!strncmp(++p, "(auth)", 6)) 413aff2d1de59972684bf2ab798351be5544158239San Mehat mReassociated = false; 423aff2d1de59972684bf2ab798351be5544158239San Mehat else 433aff2d1de59972684bf2ab798351be5544158239San Mehat mReassociated = true; 443aff2d1de59972684bf2ab798351be5544158239San Mehat } else 453aff2d1de59972684bf2ab798351be5544158239San Mehat LOGE("Unable to decode re-assocation"); 463aff2d1de59972684bf2ab798351be5544158239San Mehat } else 473aff2d1de59972684bf2ab798351be5544158239San Mehat LOGE("Unable to decode event"); 483aff2d1de59972684bf2ab798351be5544158239San Mehat} 493aff2d1de59972684bf2ab798351be5544158239San Mehat 503aff2d1de59972684bf2ab798351be5544158239San MehatSupplicantConnectedEvent::SupplicantConnectedEvent(const char *bssid, 513aff2d1de59972684bf2ab798351be5544158239San Mehat bool reassocated) : 523aff2d1de59972684bf2ab798351be5544158239San Mehat SupplicantEvent(SupplicantEvent::EVENT_CONNECTED, -1) { 533aff2d1de59972684bf2ab798351be5544158239San Mehat mBssid = strdup(bssid); 543aff2d1de59972684bf2ab798351be5544158239San Mehat mReassociated = reassocated; 553aff2d1de59972684bf2ab798351be5544158239San Mehat} 563aff2d1de59972684bf2ab798351be5544158239San Mehat 573aff2d1de59972684bf2ab798351be5544158239San MehatSupplicantConnectedEvent::~SupplicantConnectedEvent() { 583aff2d1de59972684bf2ab798351be5544158239San Mehat if (mBssid) 593aff2d1de59972684bf2ab798351be5544158239San Mehat free(mBssid); 603aff2d1de59972684bf2ab798351be5544158239San Mehat} 613aff2d1de59972684bf2ab798351be5544158239San Mehat 62