this is intentional: the "service protocol" or interface is "hardened" again getattr-attacks. you can, of course define your own _rpyc_getattr and do what you want, or just set allow_all_attrs (or something like that) in the configuration, but then i hope you know what you're doing. the exposed_prefixed is used only for classes that do not define their own _rpyc_getattr, which is not the case for Service.
----------------------------------------------------------------- *Tomer Filiba* tomerfiliba.com <http://www.facebook.com/tomerfiliba> <http://il.linkedin.com/in/tomerfiliba> On Thu, Dec 1, 2011 at 18:12, Ringo De Smet <[email protected]> wrote: > Hello, > > I tried to make my exposed service methods private, by defining: > > config = dict(exposed_prefix = '_exposed_') > > However, since I'm subclassing Service which has the method _rpyc_getattr, > an invocation to _access_attr (for _handle_get_attr) ends up invoking the > _rpyc_getattr method and the code path will not end up in _check_attr and > not use my custom prefix. The method Service._rpyc_getattr has the prefix > hardcoded to "exposed_". > > Is this intentional? > > I worked around it by overriding the _rpyc_getattr method in my Service > subclass to check for '_exposed_', but I would very much like to use the > Connection configuration for this. > > Ringo >
