> On Nov 22, 2015, at 16:31, Adi Roiban <a...@roiban.ro> wrote:
> 
> Hi,
> 
> Right now  twisted/runner/inetdtap.py has the following errors reported by 
> pyflakes:
> 
> $ pyflakes twisted/runner/inetdtap.py
> twisted/runner/inetdtap.py:58: undefined name 'rpcVersions'
> twisted/runner/inetdtap.py:59: undefined name 'name'
> twisted/runner/inetdtap.py:62: undefined name 'p'
> twisted/runner/inetdtap.py:152: undefined name 'proto'
> 
> From what I can see from reading the code, RPCServer.startService is broken.
> 
> makeService is also broken for rpc/* services .
> 
> There are no tests for all this code.
> 
> Link for the code : 
> https://github.com/twisted/twisted/blob/trunk/twisted/runner/inetdtap.py 
> <https://github.com/twisted/twisted/blob/trunk/twisted/runner/inetdtap.py>
> 
> ----------
> 
> I am working on getting the Twisted code clean of pyflakes errors/warnings so 
> that contributors could run pyflakes check on their own branch, without 
> relying on buildbot.

Thank you.  This would be absolutely great.

> I would like to clean the inetdtap.py module of pylakes warning but since it 
> is broken and has no tests, I have no idea what this code is expected to do 
> and how end users are expecting to use it. 

The purpose of inetdtap is to provide an 'inetd'-like server, to allow Twisted 
to invoke other programs to handle incoming sockets.  This is a useful thing as 
a "networking swiss army knife" tool, like netcat.  In fact, it does work, 
after a fashion; I wrote a file like this:

8123       stream  tcp  wait glyph  /bin/cat -

and then ran this:

put a blank line into 'rpc.conf', and then ran:

twistd -n inetd -f sampleinetd.conf -r rpc.conf 

and port 8123 properly became an echo server.

Now, in order to do this, you need a /etc/services file (this is hard-coded) 
that can be parsed by ServicesConf, which is _extremely_ picky, and probably 
the one that your OS comes with is still broken anyway.  But this code can work 
if properly configured, and those parts can be fixed.

I haven't run this recently, but partially only because I basically forgot it 
existed :).  Thanks for the reminder.

> Does someone volunteer to fix it?

I'll gladly fix the parts that implement the possibly-useful functionality, 
although you don't need to touch those in order to fix the pyflakes warnings 
:).  The parts that are totally broken, RPCServicesConf, RPCServer, and the 
code that instantiates it, are useful only to NFS server implementors, and 
don't work at all no matter your configuration.  So I would delete the whole 
implementation just so someone will get a clear notification in case they were 
importing one of these names but not actually using them, deprecate the module 
attributes, and remove them in the next available removal cycle.  So basically 
just leave an empty Service subclass there just as a courtesy (since that is 
slightly more polite, and only a tiny bit harder than just deleting it).

> Otherwise, has anyone any objections against deprecating 
> twisted/runner/inetdtap.py?
> Since it is broken, can we just remove it?

I hope my suggestion makes sense and is useful.  However if you'd really like 
to do the compat-breaking dance I won't object; I seriously doubt anyone is 
touching the RPC code.  I'd prefer you don't delete the whole module though.

-glyph

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to