On Fri, 31 Aug 2001, David Alan Black wrote: > Hello -- > > The part I don't get, as a general matter, is why #send gets to bypass > the access rules. Of course #send itself is a public method. The > weird part is that if it sends the name of a private method, that > method acts public. Both dRb and ROMP use __send__ to pass messages from a socket to an object. This is very convenient, but what it means is that in order for access control to work properly, they would have to do their own checking for whether a given method is public or private (and that means a decrease in speed). Neither library does access checking before calling __send__, so dRb authors must be careful to not put private or protected methods into any objects that get published. As a test, I modified the stock drbs.rb that comes with dRb to have all methods private, and the program still ran as expected. This is not something that Ruby authors should have to worry about. Paul