Make the hurting stop. Make sshxmlrpc auto-detect things, fails over
properly, and dump useful information when it is unable to deal with the peer. * xmlrpc/sshxmlrpc.py: Major update. It now tries to autoconfigure itself by scanning the path for "ssh" and "plink.exe" (although I haven't actually tried it on windows). Environment variables can now be used to turn on debugging and set the command to use for doing the ssh. Before running ssh, it will check for an agent or a passphrase-less key and prints a warning if it finds neither. The last five lines read from the server, as well as the standard error output, are stored so they can be dumped later; helpful for figuring out what is actually being run on the other side. The protocol layer between ssh and xml-rpc will now respond to a "probe" header so that clients can figure out who they are talking too. The server side will now properly detect a closed connection and not write anything, which means no more annoying "Write to stdout failed" messages. You can now pass additional options to ssh and set the identity. The module can be run standalone, with the default action being to probe the peer: $ ./sshxmlrpc.py ssh://boss/xmlrpc Probe results for: ssh://boss/xmlrpc response time=1.49 s Response Headers date: Wed Oct 27 16:10:58 2004 content-length: 0 probe: /usr/testbed/devel/stack/lib/sshxmlrpc.py probe-response: EmulabServer * xmlrpc/sshxmlrpc_server.py.in: Set the value returned by a "probe" to the name of the invoked module. This way, the other side can figure out who they are talking to (e.g. EmulabServer vs. experiment vs. fs vs. osid). * event/sched/event-sched.c, event/sched/rpc.cc, event/sched/rpc.h, xmlrpc/script_wrapper.py.in: Multiple paths (e.g. xmlrpc, $prefix/sbin/sshxmlrpc_server.py) are now probed before giving up. Force the use of the user's default identity and protocol one. For event-sched, a single connection is now made at startup and dropped before going into the event loop. * event/sched/GNUmakefile.in: Add a dependency for the install target and add -I$(OBJDIR) to the CXXFLAGS. * install/ports/ulsshxmlrpcpp/Makefile, install/ports/ulsshxmlrpcpp/distinfo, install/ports/ulsshxmlrpcpp/pkg-descr: Bump version number to 1.1 and tweak the description. * config.h.in, configure, configure.in: Add a "#define TBROOT" that has the install prefix.
Showing with 755 additions and 141 deletions