]> sjero.net Git - linphone/blob - p2pproxy/src/org/linphone/p2pproxy/core/stun/AddressInfo.java
910da9b6275676f5e7317ce75d2088c39e9e0581
[linphone] / p2pproxy / src / org / linphone / p2pproxy / core / stun / AddressInfo.java
1 /*
2 p2pproxy Copyright (C) 2007  Jehan Monnier ()
3
4 AddressInfo.java - .
5
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License
8 as published by the Free Software Foundation; either version 2
9 of the License, or (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  */
20 package org.linphone.p2pproxy.core.stun;
21
22 import java.net.InetSocketAddress;
23
24 public class AddressInfo {
25    enum Mode {
26         open
27       , blockedUDP
28       , fullCone
29       , restrictedCone
30       , portRestrictedCone
31       , symmetric
32       , symmetricUDPFirewall
33       , unknown
34    }
35    private final InetSocketAddress mPrivateAddress;
36    private InetSocketAddress mPublicAddress;
37    private Mode mMode = Mode.unknown;
38    
39    public AddressInfo(InetSocketAddress aPrivateAddress) {
40       mPrivateAddress = aPrivateAddress;
41    }
42    public Mode getMode() {
43       return mMode;
44    }
45    public void setMode(Mode aMode) {
46       mMode = aMode;
47    }
48    public InetSocketAddress getPrivateAddress() {
49       return mPrivateAddress;
50    }
51    public InetSocketAddress getPublicAddress() {
52       return mPublicAddress;
53    }
54    public void setPublicAddress(InetSocketAddress aPublicAddress) {
55            mPublicAddress = aPublicAddress;
56    }
57    public boolean isNated() {
58       if (mPublicAddress != null) { 
59          return mPublicAddress.equals(mPrivateAddress);
60       } else {
61          return false;
62       }
63    }
64    public String toString() {
65       return "private ["+mPrivateAddress+"] public ["+mPublicAddress+"] mode ["+mMode+"]";
66    }
67 }