|
@@ -74,18 +74,31 @@ namespace HttpServer
|
|
|
var request = context.Request;
|
|
|
Console.WriteLine($"Request from {request.RemoteEndPoint} {request.HttpMethod} {request.RawUrl}");
|
|
|
|
|
|
- var queryString = HttpUtility.ParseQueryString(request.Url.Query);
|
|
|
- var mac = queryString["mac"]?.Replace(":", "-").ToUpper();
|
|
|
- var assetTag = queryString["asset"];
|
|
|
+ var requestPath = request.Url.LocalPath.ToLower();
|
|
|
|
|
|
- Console.WriteLine($" MAC:{mac}");
|
|
|
- Console.WriteLine($" AssetTag:{assetTag}");
|
|
|
+ if (requestPath == "/boot/ipxe")
|
|
|
+ {
|
|
|
+ Console.WriteLine(" Send init script");
|
|
|
+ var buffer = Encoding.ASCII.GetBytes(IpxeScriptManager.GetInitScript(Properties.Settings.Default.ListenPrefix));
|
|
|
+ context.Response.OutputStream.Write(buffer, 0, buffer.Length);
|
|
|
+ context.Response.Close();
|
|
|
+ }
|
|
|
+ else if (requestPath == "/boot/ipxe/script")
|
|
|
+ {
|
|
|
+ var queryString = HttpUtility.ParseQueryString(request.Url.Query);
|
|
|
+ var mac = queryString["mac"].ToUpper();
|
|
|
|
|
|
- var buffer = Encoding.ASCII.GetBytes(IpxeScriptManager.GetScript(mac));
|
|
|
- context.Response.OutputStream.Write(buffer, 0, buffer.Length);
|
|
|
- context.Response.Close();
|
|
|
+ Console.WriteLine($" MAC:{mac}, send boot script");
|
|
|
|
|
|
- Console.WriteLine(" Response closed.");
|
|
|
+ var buffer = Encoding.ASCII.GetBytes(IpxeScriptManager.GetScript(mac));
|
|
|
+ context.Response.OutputStream.Write(buffer, 0, buffer.Length);
|
|
|
+ context.Response.Close();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ context.Response.StatusCode = 404;
|
|
|
+ context.Response.Close();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|