Esempio n. 1
0
        public static void ReportResponse(NatNegServer server, UDPPacket packet)
        {
            ReportPacket reportPacket = new ReportPacket(packet.BytesRecieved);

            byte[] sendingBuffer = reportPacket.CreateReplyPacket();
            server.Send(packet, sendingBuffer);
        }
Esempio n. 2
0
        private async void StartReportAsync(object s, ElapsedEventArgs e)
        {
            if (!Config.HasTripLinks || Attempts.Count == 0)
            {
                Attempts.Clear();
                ReportTimer.Start();
                return;
            }

            Logger.LogTrace($"Starting IP Reporting...");

            var reportTime = DateTime.UtcNow;

            var ipReports = Attempts.Select(x => new IpReport(x.Key, x.Value.Select(x => new PortTimeReport(x.Key, x.Value, reportTime)))).ToList();

            Attempts.Clear();

            var packet = new ReportPacket(reportTime, ipReports);

            await SendReportAsync(packet, ReporterStopper.Token);

            Logger.LogTrace("Finished IP Reporting");

            LastReport = reportTime;
            ReportTimer.Start();
        }
Esempio n. 3
0
        public static void ReportResponse(NatNegServer server, byte[] recv)
        {
            ReportPacket reportPacket = new ReportPacket(recv);

            byte[] sendingBuffer = reportPacket.CreateReplyPacket();
            server.SendAsync(server.Socket.RemoteEndPoint, sendingBuffer);
        }
Esempio n. 4
0
        private async Task SendReportAsync(ReportPacket packet, CancellationToken cancellationToken)
        {
            int successfulReports = 0;

            foreach (var tripLink in Config.StickyConfig.TripLinks)
            {
                try
                {
                    var response = await packet.SendAsync(Client, tripLink, cancellationToken);

                    if (!response.IsSuccessStatusCode)
                    {
                        Logger.LogError($"Error reporting to {tripLink.Server}! {response.StatusCode} : {response.ReasonPhrase}");
                        continue;
                    }

                    Logger.LogTrace($"Successfully reported to {tripLink.Server}!");
                    successfulReports++;
                }
                catch (Exception ex)
                {
                    Logger.LogError(ex, "Error while reporting IPs!");
                    continue;
                }
            }

            if (successfulReports > 0)
            {
                Logger.LogInformation($"Reported {packet.ReportedIps.Count} IPs to {successfulReports} Hosts: {string.Join("; ", packet.ReportedIps)}");
            }
        }
Esempio n. 5
0
 protected override void CheckRequest()
 {
     _reportPacket = new ReportPacket();
     _reportPacket.Parse(_recv);
 }