[GH-ISSUE #322] Network Condition: Logic #2 #322

Open
opened 2026-03-03 19:49:52 +03:00 by kerem · 1 comment
Owner

Originally created by @NghiaTranUIT on GitHub (Oct 30, 2023).
Original GitHub issue: https://github.com/ProxymanApp/proxyman-windows-linux/issues/322

Originally assigned to: @kics223w1 on GitHub.

Description

It's time to implement the Logic the handle the list of rules.

Requirement NetworkThrottlingEntry

  • NetworkThrottlingEntry is a class which represents the Network Rule.
  • Ping @NghiaTranUIT to port NetworkThrottlingEntry.swift. It has the struct NetworkProfile which defines the network profiles for all presets, e.g. name, downloadBandwidth, uploadBandwidth, delay, ...
  • Make sure when we render the list of Preset Profile, we render the data from NetworkProfile. DO NOT hard code the data in the UI.
Screenshot 2023-10-30 at 10 35 54
Originally created by @NghiaTranUIT on GitHub (Oct 30, 2023). Original GitHub issue: https://github.com/ProxymanApp/proxyman-windows-linux/issues/322 Originally assigned to: @kics223w1 on GitHub. ## Description It's time to implement the Logic the handle the list of rules. ## Requirement `NetworkThrottlingEntry` - [x] `NetworkThrottlingEntry` is a class which represents the Network Rule. - [x] Ping @NghiaTranUIT to port `NetworkThrottlingEntry.swift`. It has the struct `NetworkProfile` which defines the network profiles for all presets, e.g. name, downloadBandwidth, uploadBandwidth, delay, ... - [x] Make sure when we render the list of Preset Profile, we render the data from `NetworkProfile`. DO NOT hard code the data in the UI. <img width="221" alt="Screenshot 2023-10-30 at 10 35 54" src="https://github.com/ProxymanApp/proxyman-windows-linux/assets/5878421/1d7cad90-a549-4c0a-a26d-88b63141b53c">
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 30, 2023):

Requirement for NetworkThrottlingService

  • Ping @NghiaTranUIT to port NetworkThrottlingService.swift
  • The logic is similar to what we've done with Map Local, Breakpoint, or Block List.
  • NetworkThrottlingService only 1 rule is activated at a time.
  • Pay attention on this func shouldAddTrafficShapingHandlerForDomain(...) to determine if the request matches any rules.
  • A list of rules is saved to the User Data Folder. File name = NetworkThrottlingService

Important Note

  • Network Condition can be applied to all requests/responses with or without the SSL Proxying Enable.

For example:

  • Map Local only works with a connection that is intercepted (In SSL Proxying List).
  • However, Network Condition can work for ALL. For example: If I create a Network Condition with wide-system mode (*). All connections that are proxied to Proxyman will be affected. We don't need to enable SSL Proxying. It just works.
<!-- gh-comment-id:1784429040 --> @NghiaTranUIT commented on GitHub (Oct 30, 2023): ### Requirement for NetworkThrottlingService - [x] Ping @NghiaTranUIT to port `NetworkThrottlingService.swift` - [x] The logic is similar to what we've done with Map Local, Breakpoint, or Block List. - [x] `NetworkThrottlingService` only 1 rule is activated at a time. - [x] Pay attention on this func `shouldAddTrafficShapingHandlerForDomain(...)` to determine if the request matches any rules. - [x] A list of rules is saved to the User Data Folder. File name = `NetworkThrottlingService` ### Important Note - [x] Network Condition can be applied to all requests/responses `with` or `without` the SSL Proxying Enable. For example: - Map Local only works with a connection that is intercepted (In SSL Proxying List). - However, Network Condition can work for ALL. For example: If I create a Network Condition with wide-system mode (`*`). All connections that are proxied to Proxyman will be affected. We don't need to enable SSL Proxying. It just works.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/proxyman-windows-linux#322
No description provided.