InterfaceConfiguration.java revision 04808c294027f8bc318643a94c85a999257d7f52
1353ced79b49269151b056c4b06dc632801b59497San Mehat/* 2353ced79b49269151b056c4b06dc632801b59497San Mehat * Copyright (C) 2008 The Android Open Source Project 3353ced79b49269151b056c4b06dc632801b59497San Mehat * 4353ced79b49269151b056c4b06dc632801b59497San Mehat * Licensed under the Apache License, Version 2.0 (the "License"); 5353ced79b49269151b056c4b06dc632801b59497San Mehat * you may not use this file except in compliance with the License. 6353ced79b49269151b056c4b06dc632801b59497San Mehat * You may obtain a copy of the License at 7353ced79b49269151b056c4b06dc632801b59497San Mehat * 8353ced79b49269151b056c4b06dc632801b59497San Mehat * http://www.apache.org/licenses/LICENSE-2.0 9353ced79b49269151b056c4b06dc632801b59497San Mehat * 10353ced79b49269151b056c4b06dc632801b59497San Mehat * Unless required by applicable law or agreed to in writing, software 11353ced79b49269151b056c4b06dc632801b59497San Mehat * distributed under the License is distributed on an "AS IS" BASIS, 12353ced79b49269151b056c4b06dc632801b59497San Mehat * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13353ced79b49269151b056c4b06dc632801b59497San Mehat * See the License for the specific language governing permissions and 14353ced79b49269151b056c4b06dc632801b59497San Mehat * limitations under the License. 15353ced79b49269151b056c4b06dc632801b59497San Mehat */ 16353ced79b49269151b056c4b06dc632801b59497San Mehat 17353ced79b49269151b056c4b06dc632801b59497San Mehatpackage android.net; 18353ced79b49269151b056c4b06dc632801b59497San Mehat 19353ced79b49269151b056c4b06dc632801b59497San Mehatimport android.os.Parcelable; 20353ced79b49269151b056c4b06dc632801b59497San Mehatimport android.os.Parcel; 21353ced79b49269151b056c4b06dc632801b59497San Mehat 2204808c294027f8bc318643a94c85a999257d7f52Robert Greenwaltimport java.net.InetAddress; 2304808c294027f8bc318643a94c85a999257d7f52Robert Greenwaltimport java.net.UnknownHostException; 2404808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt 25353ced79b49269151b056c4b06dc632801b59497San Mehat/** 26353ced79b49269151b056c4b06dc632801b59497San Mehat * A simple object for retrieving / setting an interfaces configuration 27353ced79b49269151b056c4b06dc632801b59497San Mehat * @hide 28353ced79b49269151b056c4b06dc632801b59497San Mehat */ 29353ced79b49269151b056c4b06dc632801b59497San Mehatpublic class InterfaceConfiguration implements Parcelable { 30353ced79b49269151b056c4b06dc632801b59497San Mehat public String hwAddr; 3104808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt public InetAddress addr; 3204808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt public InetAddress mask; 33353ced79b49269151b056c4b06dc632801b59497San Mehat public String interfaceFlags; 34353ced79b49269151b056c4b06dc632801b59497San Mehat 35353ced79b49269151b056c4b06dc632801b59497San Mehat public InterfaceConfiguration() { 36353ced79b49269151b056c4b06dc632801b59497San Mehat super(); 37353ced79b49269151b056c4b06dc632801b59497San Mehat } 38353ced79b49269151b056c4b06dc632801b59497San Mehat 39353ced79b49269151b056c4b06dc632801b59497San Mehat public String toString() { 40353ced79b49269151b056c4b06dc632801b59497San Mehat StringBuffer str = new StringBuffer(); 41353ced79b49269151b056c4b06dc632801b59497San Mehat 4204808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt str.append("ipddress "); str.append(addr.toString()); 4304808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt str.append(" netmask "); str.append(mask.toString()); 44353ced79b49269151b056c4b06dc632801b59497San Mehat str.append(" flags ").append(interfaceFlags); 45353ced79b49269151b056c4b06dc632801b59497San Mehat str.append(" hwaddr ").append(hwAddr); 46353ced79b49269151b056c4b06dc632801b59497San Mehat 47353ced79b49269151b056c4b06dc632801b59497San Mehat return str.toString(); 48353ced79b49269151b056c4b06dc632801b59497San Mehat } 49353ced79b49269151b056c4b06dc632801b59497San Mehat 50353ced79b49269151b056c4b06dc632801b59497San Mehat /** Implement the Parcelable interface {@hide} */ 51353ced79b49269151b056c4b06dc632801b59497San Mehat public int describeContents() { 52353ced79b49269151b056c4b06dc632801b59497San Mehat return 0; 53353ced79b49269151b056c4b06dc632801b59497San Mehat } 54353ced79b49269151b056c4b06dc632801b59497San Mehat 55353ced79b49269151b056c4b06dc632801b59497San Mehat /** Implement the Parcelable interface {@hide} */ 56353ced79b49269151b056c4b06dc632801b59497San Mehat public void writeToParcel(Parcel dest, int flags) { 57353ced79b49269151b056c4b06dc632801b59497San Mehat dest.writeString(hwAddr); 5804808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt if (addr != null) { 5904808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt dest.writeByte((byte)1); 6004808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt dest.writeByteArray(addr.getAddress()); 6104808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt } else { 6204808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt dest.writeByte((byte)0); 6304808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt } 6404808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt if (mask != null) { 6504808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt dest.writeByte((byte)1); 6604808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt dest.writeByteArray(mask.getAddress()); 6704808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt } else { 6804808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt dest.writeByte((byte)0); 6904808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt } 70353ced79b49269151b056c4b06dc632801b59497San Mehat dest.writeString(interfaceFlags); 71353ced79b49269151b056c4b06dc632801b59497San Mehat } 72353ced79b49269151b056c4b06dc632801b59497San Mehat 73353ced79b49269151b056c4b06dc632801b59497San Mehat /** Implement the Parcelable interface {@hide} */ 74353ced79b49269151b056c4b06dc632801b59497San Mehat public static final Creator<InterfaceConfiguration> CREATOR = 75353ced79b49269151b056c4b06dc632801b59497San Mehat new Creator<InterfaceConfiguration>() { 76353ced79b49269151b056c4b06dc632801b59497San Mehat public InterfaceConfiguration createFromParcel(Parcel in) { 77353ced79b49269151b056c4b06dc632801b59497San Mehat InterfaceConfiguration info = new InterfaceConfiguration(); 78353ced79b49269151b056c4b06dc632801b59497San Mehat info.hwAddr = in.readString(); 7904808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt if (in.readByte() == 1) { 8004808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt try { 8104808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt info.addr = InetAddress.getByAddress(in.createByteArray()); 8204808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt } catch (UnknownHostException e) {} 8304808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt } 8404808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt if (in.readByte() == 1) { 8504808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt try { 8604808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt info.mask = InetAddress.getByAddress(in.createByteArray()); 8704808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt } catch (UnknownHostException e) {} 8804808c294027f8bc318643a94c85a999257d7f52Robert Greenwalt } 89353ced79b49269151b056c4b06dc632801b59497San Mehat info.interfaceFlags = in.readString(); 90353ced79b49269151b056c4b06dc632801b59497San Mehat return info; 91353ced79b49269151b056c4b06dc632801b59497San Mehat } 92353ced79b49269151b056c4b06dc632801b59497San Mehat 93353ced79b49269151b056c4b06dc632801b59497San Mehat public InterfaceConfiguration[] newArray(int size) { 94353ced79b49269151b056c4b06dc632801b59497San Mehat return new InterfaceConfiguration[size]; 95353ced79b49269151b056c4b06dc632801b59497San Mehat } 96353ced79b49269151b056c4b06dc632801b59497San Mehat }; 97353ced79b49269151b056c4b06dc632801b59497San Mehat} 98