public void Setup() { for (int i = 0; i < 10; i++) { try { listener = new HttpListener(); ListenerURL = $"http://127.0.0.1:{new Random ().Next (10000, 50000)}/announce/"; listener.Prefixes.Add(ListenerURL); listener.Start(); break; } catch { } } listener.BeginGetContext(GotContext, listener); requestedUrl.Clear(); partialData = false; rig = TestRig.CreateMultiFile(); connection = new HttpPeerConnection(rig.Manager, rig.Engine.Factories, new Uri(ListenerURL)); rig.Manager.UnhashedPieces.SetAll(false); id = new PeerId(new Peer("this is my id", connection.Uri), connection, new MutableBitField(rig.Manager.PieceCount()).SetAll(true)); id.IsChoking = false; id.AmInterested = true; id.MaxPendingRequests = numberOfPieces; id.MessageQueue.SetReady(); rig.Manager.PieceManager.AddPieceRequests(id); requests = (RequestBundle)id.MessageQueue.TryDequeue(); }
public async Task SingleFileTorrent() { rig.Dispose(); rig = TestRig.CreateSingleFile(); rig.Torrent.HttpSeeds.Add($"{ListenerURL}File1.exe"); string url = rig.Torrent.HttpSeeds[0]; connection = new HttpConnection(new Uri(url)); connection.Manager = rig.Manager; rig.Manager.UnhashedPieces.SetAll(false); id = new PeerId(new Peer("this is my id", connection.Uri), id.Connection, rig.Manager.Bitfield?.Clone().SetAll(false)); id.IsChoking = false; id.AmInterested = true; id.BitField.SetAll(true); id.MaxPendingRequests = numberOfPieces; id.MessageQueue.SetReady(); rig.Manager.PieceManager.AddPieceRequests(id); requests = (RequestBundle)id.MessageQueue.TryDequeue(); await ReceiveFirst(); Assert.AreEqual(url, requestedUrl[0]); }
public void abort(int id) { if (map.ContainsKey(id)) { RequestBundle rb = map[id]; rb.www.Abort(); rb.www.Dispose(); map.Remove(id); } }
public void ChunkedRequest() { rig.Manager.PieceManager.Picker.CancelRequests(id); rig.Manager.PieceManager.AddPieceRequests(id); requests = (RequestBundle)id.Dequeue(); byte[] sendBuffer = requests.Encode(); var sendTask = Send(sendBuffer, 0, sendBuffer.Length, 1); Assert.ThrowsAsync <ArgumentException> (() => sendTask); }
public void ChunkedRequest() { rig.Manager.PieceManager.CancelRequests(id); rig.Manager.PieceManager.AddPieceRequests(id); requests = (RequestBundle)id.MessageQueue.TryDequeue(); using var releaser = SocketMemoryPool.Default.Rent(requests.ByteLength, out var buffer); requests.Encode(buffer.Span); var sendTask = Send(buffer, 1); Assert.ThrowsAsync <ArgumentException> (() => sendTask); }
public void ProcessRequest(HttpContext context) { if (context == null) { throw new ArgumentNullException("context"); } // Make sure we don't get any extra content in this handler (like Application.BeginRequest stuff); context.Response.Clear(); BundleContext bundleContext = new BundleContext(new HttpContextWrapper(context), BundleTable.Bundles, BundleVirtualPath); RequestBundle.ProcessRequest(bundleContext); }
public void ChunkedRequest() { rig.Manager.PieceManager.CancelRequests(id); rig.Manager.PieceManager.AddPieceRequests(id); requests = (RequestBundle)id.MessageQueue.TryDequeue(); var sendBuffer = new ByteBuffer(requests.ByteLength); requests.Encode(sendBuffer.Data, 0); var sendTask = Send(sendBuffer, 0, sendBuffer.Data.Length, 1); Assert.ThrowsAsync <ArgumentException> (() => sendTask); }
private int runWWWW(HTTPRequest hr, Action <Result> onOk) { setupHeaders(hr); OnFinishedHandler oh = new OnFinishedHandler(onOk); hr.Callback = oh.onFinished; hr.ConnectTimeout = new TimeSpan((long)(10000000 * timeOut)); int id = getId(); RequestBundle rb = new RequestBundle(hr); map.Add(id, rb); hr.Send(); return(id); }
private async Task <Response> SetColourIntent(RequestBundle request) { if (request.Intent.Slots.ContainsKey("Colour")) { var colour = request.Intent.Slots["Colour"].Value; var responseText = await this.SqsRequest($"setColour/{colour}"); return(GetFinalResponse(responseText)); } else { return(GetFinalResponse("I didn't hear the colour that you specified")); } }
public void Setup() { requestedUrl.Clear(); partialData = false; rig = TestRig.CreateMultiFile(); connection = new HttpConnection(new Uri(ListenerURL)); connection.Manager = rig.Manager; rig.Manager.UnhashedPieces.SetAll(false); id = new PeerId(new Peer("this is my id", connection.Uri), connection, new MutableBitField(rig.Manager.PieceCount()).SetAll(true)); id.IsChoking = false; id.AmInterested = true; id.MaxPendingRequests = numberOfPieces; id.MessageQueue.SetReady(); rig.Manager.PieceManager.AddPieceRequests(id); requests = (RequestBundle)id.MessageQueue.TryDequeue(); }
public void Setup() { requestedUrl.Clear(); partialData = false; rig = TestRig.CreateMultiFile(); rig.Manager.ChangePicker(new StandardPicker()); connection = new HttpConnection(new Uri(ListenerURL)); connection.Manager = rig.Manager; rig.Manager.UnhashedPieces.SetAll(false); id = new PeerId(new Peer("this is my id", connection.Uri), connection, rig.Manager.Bitfield?.Clone().SetAll(false)); id.IsChoking = false; id.AmInterested = true; id.BitField.SetAll(true); id.MaxPendingRequests = numberOfPieces; rig.Manager.PieceManager.AddPieceRequests(id); requests = (RequestBundle)id.Dequeue(); }
private async Task <Response> StartRollIntent(RequestBundle request) { var responseText = await this.SqsRequest("startRoll"); return(GetFinalResponse(responseText)); }