-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
83 lines (80 loc) · 3.53 KB
/
Copy pathMain.java
File metadata and controls
83 lines (80 loc) · 3.53 KB
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
import LoadBalancer.Reporter;
import Server.Utils.*;
import Server.Utils.Configs.Configs;
import Server.Utils.Configs.SSLConfigs;
import java.util.HashSet;
public class Main extends Thread{
@Override
public void run(){
boolean sslSocketOpened = false;
HashSet<Integer> toBeOpenedPorts = new HashSet<>();
HashSet<Integer> OpenedPorts = new HashSet<>();
Logger.ilog("Server is starting ...");
System.out.println("Server is starting ...");
try {
Logger.ilog("Loading requirements ...");
Loader.load(true);
basicUtils.killPrcs();
if (Configs.autoUpdate)
new ConfigsUpdater();
new Reporter();
if (LoadBalancer.Configs.on){
if (LoadBalancer.Configs.ssl.SSL){
new HttpsServerMainThread(LoadBalancer.Configs.port, LoadBalancer.Configs.host,true);
OpenedPorts.add(443);
OpenedPorts.add(80);
sslSocketOpened = true;
}
else {
new HttpServerMainThread(LoadBalancer.Configs.port,true);
OpenedPorts.add(LoadBalancer.Configs.port);
}
}
for (String host : Configs.getPorts().keySet()) {
if (host.equals("default") && Configs.getPorts().keySet().size() > 1)
continue;
int port = Configs.getPorts().get(host);
if (OpenedPorts.contains(port)){
Logger.ilog("Error! Port " + port + " has been already opened.");
System.out.println("Error! Port " + port + " has been already opened.");
continue;
}
if (SSLConfigs.isSSLOn(host)) {
if (!sslSocketOpened) {
sslSocketOpened = true;
new HttpsServerMainThread(port, host,false);
} else
Logger.ilog("Error! Cant serve more than one https enabled web site on one webserver.");
}else
toBeOpenedPorts.add(port);
}
for (int port : toBeOpenedPorts){
if (port == 80){
if (sslSocketOpened){
Logger.ilog("Error! SSL for one of the sites is enabled. Port 80 has been opened for redirection., can't run an http website on port 80.");
System.out.println("!** Error! SSL for one of the sites is enabled. Port 80 has been opened for redirection., can't run an http website on port 80.");
}
else
new HttpServerMainThread(port,false);
}
else if (port == 443){
Logger.ilog("Error! Port 443 cannot be opened for HTTP website.");
System.out.println("!** Error! Port 443 cannot be opened for HTTP website.");
}
else{
if (OpenedPorts.contains(port)){
Logger.ilog("Error! Port " + port + " has been already opened.");
System.out.println("Error! Port " + port + " has been already opened.");
continue;
}
new HttpServerMainThread(port,false);
}
}
} catch (Exception ex) {
Logger.logException(ex);
}
}
public static void main (String[] args) {
new Main().start();
}
}