> > >
> > > I still don't like right of refusal.  In particular mandatory filters
> > > are pointless, to `implement' a mandatory filter I just need to set the
> > > flag, and then refuse to allow it when asked.  
> 
> There are no "mandatory" filters, unless I misunderstand what you are getting 
> at.

Probably bad terminology.  I thought there were going to be filters that
all servers must implement:
        - String padding
        - Compression maybe[?]

It seems strange to require them, but be able to always refuse them.
Which is essentially my point.  

> > > Maybe such filters need to be flagged with 'can't be refused' or
> > > something weird.  But that leads back to your gz/bz2 example - both
> > > mandatory, but both is silly...
> 
> Why should a filter be flagged "can't be refused"? I can't think of any 
> filter 
> that would need that. The documentation already says not to pipeline around 
> the setfilter and reply frames.

[/me notes that yes it does, and it's annoying in a client which
pipelines _everything_]

> > > I fear the solution is for each filter we specify the semantics
> > > specifically, and allow the server to say "go read the spec" if it is
> > > invalidated.  Else we lead into to protocol craziness...
> 
> The server should only advertise filters that is supports. This could change 
> over time if load, etc is taken into account (ie: no longer advertising 
> compression because the cpu load it too high).
> 
> Reasons that a server could refuse a filter set:
>  - one or more is not supported (could separate temporary and permanent)
>  - two (or more) conflict

>  - client's implementation is known to be incorrect

Personally I'd say for the last case:
        - Let the client be incorrect, fix it in the client.  Work arounds for
other bugs suck... this is one area open source can get advantage ;-)

> None of these should cause a significant problem for the client. It can try 
> again with a different filter set, or continue using the existing set (by 
> default, none). The filters only add low level optional features. In some 
> ways, I wish there was a way for the server to require filters (for example, 
> encryption).
> 
> 
> With a little tweaking to the GPR system, the failure frame could indicate 
> what the problem(s) are.
> 
> I note the only two filters defined so far is the string padding filter and 
> the SSL/TLS filter. The string padding filter is implemented in tpserver-cpp. 
> About 80% of the work for the SSL filter has been done as well, but it's not 
> currently on my todo list to finish.

Once the other server starts to support padding, I'll move to padding.
Which means my client will work correctly on ARM ;-) 

        Regards,
        nash

_______________________________________________
tp-devel mailing list
[email protected]
http://www.thousandparsec.net/tp/mailman.php/listinfo/tp-devel

Reply via email to