90 lines
3.3 KiB
C#
90 lines
3.3 KiB
C#
using System;
|
|
using ln.types.odb.ng;
|
|
using ln.provider.data.phone;
|
|
using ln.provider.data;
|
|
using ln.logging;
|
|
using ln.provider.netwatch.entities;
|
|
using ln.manage;
|
|
using System.Threading;
|
|
using ln.types.threads;
|
|
using ln.types.net;
|
|
using ln.http;
|
|
using ln.http.router;
|
|
using ln.manage.http;
|
|
|
|
namespace ln.provider
|
|
{
|
|
class MainClass
|
|
{
|
|
public static HttpResponse LogRequest(HttpRequest request)
|
|
{
|
|
Logging.Log(LogLevel.INFO, "Request: {0}",request);
|
|
foreach (String pName in request.ParameterNames)
|
|
{
|
|
Logging.Log(LogLevel.INFO, "Request Parameter: {0} = {1}", pName, request.GetParameter(pName));
|
|
}
|
|
|
|
return new HttpResponse(request);
|
|
}
|
|
|
|
public static void Main(string[] args)
|
|
{
|
|
//StaticRouter staticRouter = new StaticRouter("www");
|
|
StaticRouter staticRouter = new StaticRouter("../../www");
|
|
StaticRouter manageRouter = new StaticRouter("../../../ln.manage/www");
|
|
StaticRouter vueRouter = new StaticRouter("/home/haraldwolff/src/www/ln.vue");
|
|
|
|
SimpleRouter simpleHttpRouter = new SimpleRouter();
|
|
simpleHttpRouter.AddSimpleRoute("/*", staticRouter);
|
|
simpleHttpRouter.AddSimpleRoute("/*", vueRouter, 10);
|
|
simpleHttpRouter.AddSimpleRoute("/*", manageRouter, 9);
|
|
simpleHttpRouter.AddSimpleRoute("/*", new RouterTarget((request) =>
|
|
{
|
|
return staticRouter.Route("/", request);
|
|
//HttpResponse response = new HttpResponse(request);
|
|
//response.StatusCode = 404;
|
|
//response.SetHeader("content-type", "text/plain");
|
|
//response.ContentWriter.WriteLine("404 Not Found");
|
|
//response.ContentWriter.Flush();
|
|
//return response;
|
|
}), -1);
|
|
|
|
|
|
HTTPServer hTTPServer = new HTTPServer(new Endpoint(IPv6.ANY,8888),new LoggingRouter(simpleHttpRouter));
|
|
hTTPServer.Start();
|
|
|
|
//new ProviderApplication().Start(args);
|
|
|
|
ManagedRoot managedRoot = new ManagedRoot();
|
|
ManagedConsole managedConsole = new ManagedConsole(managedRoot);
|
|
|
|
ManagedNativeContainer<Layer2Segment> layer2segments = new ManagedNativeContainer<Layer2Segment>(managedRoot);
|
|
ManagedNativeContainer<NetworkDevice> networkDevices = new ManagedNativeContainer<NetworkDevice>(managedRoot);
|
|
|
|
ContainerRouter restRouter = new ContainerRouter(managedRoot);
|
|
simpleHttpRouter.AddSimpleRoute("/api/v1/*", restRouter);
|
|
|
|
IManagedObject nd0 = networkDevices.CreateManagedObject();
|
|
nd0.Enabled = true;
|
|
IManagedObject nd1 = networkDevices.CreateManagedObject();
|
|
nd1.SetValue("IPAddresses", new IPv6[] { IPv6.Parse("10.118.254.1"), IPv6.Parse("10.118.2.1") });
|
|
nd1.Enabled = true;
|
|
IManagedObject nd2 = networkDevices.CreateManagedObject();
|
|
nd2.Enabled = true;
|
|
|
|
Thread.Sleep(5000);
|
|
nd1.Enabled = false;
|
|
Thread.Sleep(5000);
|
|
|
|
Console.WriteLine(managedConsole.Export());
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
nd0.Enabled = false;
|
|
nd1.Enabled = false;
|
|
nd2.Enabled = false;
|
|
|
|
}
|
|
}
|
|
}
|