/*
* Copyright (C) 1997-2001 Id Software, Inc.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE.
*
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
/* Modifications
Copyright 2003-2004 Bytonic Software
Copyright 2010 Google Inc.
*/
package com.googlecode.gwtquake.shared.common;
import java.net.InetAddress;
import java.net.UnknownHostException;
import com.googlecode.gwtquake.shared.sys.NET;
public class NetworkAddress {
public int type;
public int port;
public byte ip[];
public NetworkAddress() {
this.type = Constants.NA_LOOPBACK;
this.port = 0; // any
try {
// localhost / 127.0.0.1
this.ip = InetAddress.getByName(null).getAddress();
} catch (UnknownHostException e) {
}
}
public InetAddress getInetAddress() throws UnknownHostException {
switch (type) {
case Constants.NA_BROADCAST:
return InetAddress.getByName("255.255.255.255");
case Constants.NA_LOOPBACK:
// localhost / 127.0.0.1
return InetAddress.getByName(null);
case Constants.NA_IP:
return InetAddress.getByAddress(ip);
default:
return null;
}
}
public void set(NetworkAddress from) {
type = from.type;
port = from.port;
ip[0] = from.ip[0];
ip[1] = from.ip[1];
ip[2] = from.ip[2];
ip[3] = from.ip[3];
}
public String toString() {
return (type == Constants.NA_LOOPBACK) ? "loopback" : NET
.AdrToString(this);
}
}