1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/**
* $RCSfile$
* $Revision: 1378 $
* $Date: 2005-05-23 15:25:24 -0300 (Mon, 23 May 2005) $
*
* Copyright (C) 2004 Jive Software. All rights reserved.
*
* This software is published under the terms of the GNU Public License (GPL),
* a copy of which is included in this distribution.
*/
package org.jivesoftware.openfire;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Represents a port on which the server will listen for connections.
* Used to aggregate information that the rest of the system needs
* regarding the port while hiding implementation details.
*
* @author Iain Shigeoka
*/
public class ServerPort {
private int port;
private List<String> names = new ArrayList<String>(1);
private String address;
private boolean secure;
private String algorithm;
private Type type;
public ServerPort(int port, String name, String address,
boolean isSecure, String algorithm, Type type)
{
this.port = port;
this.names.add(name);
this.address = address;
this.secure = isSecure;
this.algorithm = algorithm;
this.type = type;
}
/**
* Returns the port number that is being used.
*
* @return the port number this server port is listening on.
*/
public int getPort() {
return port;
}
/**
* Returns the logical domains for this server port. As multiple
* domains may point to the same server, this helps to define what
* the server considers "local".
*
* @return the server domain name(s) as Strings.
*/
public List<String> getDomainNames() {
return Collections.unmodifiableList(names);
}
/**
* Returns the dot separated IP address for the server.
*
* @return The dot separated IP address for the server
*/
public String getIPAddress() {
return address;
}
/**
* Determines if the connection is secure.
*
* @return True if the connection is secure
*/
public boolean isSecure() {
return secure;
}
/**
* Returns the basic protocol/algorithm being used to secure
* the port connections. An example would be "SSL" or "TLS".
*
* @return The protocol used or null if this is not a secure server port
*/
public String getSecurityType() {
return algorithm;
}
/**
* Returns true if other servers can connect to this port for s2s communication.
*
* @return true if other servers can connect to this port for s2s communication.
*/
public boolean isServerPort() {
return type == Type.server;
}
/**
* Returns true if clients can connect to this port.
*
* @return true if clients can connect to this port.
*/
public boolean isClientPort() {
return type == Type.client;
}
/**
* Returns true if external components can connect to this port.
*
* @return true if external components can connect to this port.
*/
public boolean isComponentPort() {
return type == Type.component;
}
/**
* Returns true if connection managers can connect to this port.
*
* @return true if connection managers can connect to this port.
*/
public boolean isConnectionManagerPort() {
return type == Type.connectionManager;
}
public Type getType() {
return type;
}
public static enum Type {
client,
server,
component,
connectionManager
}
}