Fixed compile errors.
This commit is contained in:
parent
e49f8fa9fd
commit
c7398586ea
|
@ -1,12 +1,14 @@
|
|||
{
|
||||
"listeners" : {
|
||||
"enabled" : [],
|
||||
"ipv4" : {
|
||||
"listener1" : {
|
||||
"type" : "ipv4",
|
||||
"domain" : "10.0.0.9:2222",
|
||||
"address" : "0.0.0.0",
|
||||
"port" : "6969"
|
||||
},
|
||||
"ipv6" : {
|
||||
"listener2" : {
|
||||
"type" : "ipv6",
|
||||
"domain" : "10.0.0.9:2222",
|
||||
"address" : "::",
|
||||
"port" : "6969"
|
||||
|
|
10
source/app.d
10
source/app.d
|
@ -6,6 +6,7 @@ import std.file;
|
|||
import std.json : JSONValue, parseJSON;
|
||||
import std.conv : to;
|
||||
import server.listener : ButterflyListener;
|
||||
import server.listeners;
|
||||
|
||||
void main()
|
||||
{
|
||||
|
@ -40,5 +41,14 @@ private ButterflyListener[] constructListeners(JSONValue listenersBlock)
|
|||
enabledListeners ~= listenerType.str();
|
||||
}
|
||||
|
||||
foreach(string listener; enabledListeners)
|
||||
{
|
||||
writeln("Constructing listener \"" ~ listener ~ "\" ...");
|
||||
|
||||
|
||||
|
||||
writeln("Listener \"" ~ listener ~ "\"constructed");
|
||||
}
|
||||
|
||||
return listeners;
|
||||
}
|
||||
|
|
|
@ -2,21 +2,39 @@ module server.listener;
|
|||
|
||||
import core.thread : Thread;
|
||||
import server.server : ButterflyServer;
|
||||
import std.json : JSONValue;
|
||||
|
||||
public abstract class ButterflyListener : Thread
|
||||
{
|
||||
private ButterflyServer server;
|
||||
private string listenerName;
|
||||
private JSONValue config;
|
||||
|
||||
this()
|
||||
this(string listenerName, JSONValue config)
|
||||
{
|
||||
super(&run);
|
||||
this.listenerName = listenerName;
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public abstract void run();
|
||||
public abstract void run()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void setServer(ButterflyServer server)
|
||||
{
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
public string getName()
|
||||
{
|
||||
return listenerName;
|
||||
}
|
||||
|
||||
public JSONValue getConfig()
|
||||
{
|
||||
return config;
|
||||
}
|
||||
|
||||
}
|
|
@ -3,21 +3,26 @@ module server.listeners;
|
|||
import core.thread : Thread;
|
||||
import server.listener : ButterflyListener;
|
||||
import std.socket : Socket, Address, SocketType, ProtocolType;
|
||||
import std.json : JSONValue;
|
||||
|
||||
public class IPv4Listener : ButterflyListener
|
||||
{
|
||||
|
||||
private Socket serverSocket;
|
||||
|
||||
this(Address bindAddress)
|
||||
this(string name, JSONValue config)
|
||||
{
|
||||
super(name, config);
|
||||
|
||||
Address bindAddress;
|
||||
/**
|
||||
* Instantiate a new Socket for the given Address
|
||||
* `bindAddress` of which it will bind to.
|
||||
*/
|
||||
serverSocket = new Socket(bindAddress.addressFamily, SocketType.STREAM, ProtocolType.TCP);
|
||||
serverSocket.bind(bindAddress);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public override void run()
|
||||
|
|
|
@ -4,6 +4,7 @@ import std.socket : Socket, Address, SocketType, ProtocolType;
|
|||
import client.client : ButterflyClient;
|
||||
import std.file : mkdir, exists, isDir;
|
||||
import server.listener : ButterflyListener;
|
||||
import std.stdio : writeln;
|
||||
|
||||
public final class ButterflyServer
|
||||
{
|
||||
|
@ -93,7 +94,10 @@ public final class ButterflyServer
|
|||
/* Start the listeners */
|
||||
foreach(ButterflyListener listener; listeners)
|
||||
{
|
||||
writeln("Starting listener \"" ~ listener.getName() ~"\" ...");
|
||||
writeln("Listener is using configuration: "~listener.getConfig().toPrettyString());
|
||||
listener.start();
|
||||
writeln("Listener \"" ~ listener.getName() ~ "\" started");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue