[
https://issues.apache.org/jira/browse/DIRMINA-467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Trustin Lee resolved DIRMINA-467.
---------------------------------
Resolution: Fixed
Fix Version/s: 2.0.0-M1
> IoFilter has to filter a setTrafficMask call.
> ---------------------------------------------
>
> Key: DIRMINA-467
> URL: https://issues.apache.org/jira/browse/DIRMINA-467
> Project: MINA
> Issue Type: New Feature
> Components: Core
> Affects Versions: 2.0.0-M1
> Reporter: Trustin Lee
> Assignee: Trustin Lee
> Fix For: 2.0.0-M1
>
>
> So far, setTrafficMask operation (such as suspend/resume Read/Write) was
> treated differently from other session operations such as close and write.
> It simply bypassed IoFilterChain, so no IoFilter implementation was able to
> override the operation. An IoFilter can suspend and resume traffic by
> calling IoSession.setTrafficMask(), but it can be simply overridden by a user
> request, which subverts the filter implementation.
> For example, ReadThrottleFilter will not work as expected if a user changes
> the traffic mask randomly.
> Another reason for supporting setTrafficMask filtering is that it makes more
> than one traffic-controlling filters harmonize with each other instead of
> breaking each other. For example, TrafficShapingFilter and
> ReadThrottleFilter could be added to one filter chain, and both filters will
> want to suspend incoming traffic if any condition doesn't meet and resume if
> all conditions meet. Without setTrafficMask filtering, two filters will have
> to be tightly coupled to adjust the traffic mask carefully. With proper
> setTrafficMasek filtering support, such a tight coupling is unnecessary
> because any filter can override the traffic mask in a filter chain. An
> IoFilter which is placed in front of other filters will have precedence in
> traffic control.
> Adding this feature means that we have to add some facility like we did for
> write operations (IoFilter.filterWrite, WriteFuture and WriteRequest), which
> breaks backward compatibility of an IoFilter. I think it's OK because we
> have broken the backward compatibility of IoFilter long time ago. ;)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.