[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH for-4.5 3/4] tools/misc: Delete more obsolete utilities



* nsplitd has been orphaned from the build since its introduction in c/s
  dc44ed4764 (in 2004), and never been developed since.  While it does appear
  to compile, it is full of pointer width mismatch, pointer sign mismatch, and
  uninitialised variable warnings, which makes it unlikely to function
  correctly when compiled for a 64bit environment.

* xen-python-path was declared obsolete in c/s 11e1149fe (in 2009) and can't
  actually be used correctly by out-of-tree components.  5 years is long enough
  for out-of-tree callers to catch up.

There are no subdirectories any more, so drop the notion from the Makefile.

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
CC: Wei Liu <wei.liu2@xxxxxxxxxx>
CC: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
---
 tools/misc/Makefile          |    7 +-
 tools/misc/nsplitd/Makefile  |   25 --
 tools/misc/nsplitd/nsplitd.c |  686 ------------------------------------------
 tools/misc/xen-python-path   |   24 --
 4 files changed, 1 insertion(+), 741 deletions(-)
 delete mode 100644 tools/misc/nsplitd/Makefile
 delete mode 100644 tools/misc/nsplitd/nsplitd.c
 delete mode 100644 tools/misc/xen-python-path

diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index 3237461..7a2bfd2 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -16,13 +16,11 @@ TARGETS-$(CONFIG_X86) += xen-detect xen-hvmctx xen-hvmcrash 
xen-lowmemd xen-mfnd
 TARGETS-$(CONFIG_MIGRATE) += xen-hptool
 TARGETS := $(TARGETS-y)
 
-SUBDIRS := $(SUBDIRS-y)
-
 INSTALL_BIN-y := xencons xencov_split
 INSTALL_BIN-$(CONFIG_X86) += xen-detect
 INSTALL_BIN := $(INSTALL_BIN-y)
 
-INSTALL_SBIN-y := xen-bugtool xen-python-path xenperf xenpm 
xen-tmem-list-parse gtraceview \
+INSTALL_SBIN-y := xen-bugtool xenperf xenpm xen-tmem-list-parse gtraceview \
        gtracestat xenlockprof xenwatchdogd xen-ringwatch xencov
 INSTALL_SBIN-$(CONFIG_X86) += xen-hvmctx xen-hvmcrash xen-lowmemd xen-mfndump
 INSTALL_SBIN-$(CONFIG_MIGRATE) += xen-hptool
@@ -39,7 +37,6 @@ all: build
 
 .PHONY: build
 build: $(TARGETS)
-       set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d; done
 
 .PHONY: install
 install: build
@@ -49,12 +46,10 @@ install: build
        $(INSTALL_PYTHON_PROG) $(INSTALL_BIN) $(DESTDIR)$(BINDIR)
        $(INSTALL_PYTHON_PROG) $(INSTALL_SBIN) $(DESTDIR)$(SBINDIR)
        $(INSTALL_PYTHON_PROG) $(INSTALL_PRIVBIN) $(DESTDIR)$(LIBEXEC_BIN)
-       set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d install-recurse; done
 
 .PHONY: clean
 clean:
        $(RM) *.o $(TARGETS) *~ $(DEPS)
-       set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d clean; done
 
 xen-hvmctx: xen-hvmctx.o
        $(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
diff --git a/tools/misc/nsplitd/Makefile b/tools/misc/nsplitd/Makefile
deleted file mode 100644
index 91ccf4d..0000000
--- a/tools/misc/nsplitd/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-XEN_ROOT := $(CURDIR)/../../..
-include $(XEN_ROOT)/tools/Rules.mk
-
-CFILES = $(wildcard *.c)
-
-HDRS     = $(wildcard *.h)
-OBJS     = $(patsubst %.c,%.o,$(wildcard *.c))
-
-TARGET   = nsplitd
-
-.PHONY: all
-all: $(TARGET)
-
-.PHONY: install
-install: all
-
-.PHONY: clean
-clean:
-       $(RM) *.o $(TARGET) *~
-
-$(TARGET): $(OBJS)
-       $(HOSTCC) $(HOSTCFLAGS) -o $@ $^
-
-%.o: %.c $(HDRS) Makefile
-       $(HOSTCC) $(HOSTCFLAGS) -c -o $@ $<
diff --git a/tools/misc/nsplitd/nsplitd.c b/tools/misc/nsplitd/nsplitd.c
deleted file mode 100644
index 32f0b56..0000000
--- a/tools/misc/nsplitd/nsplitd.c
+++ /dev/null
@@ -1,686 +0,0 @@
-/*
- *     nsplitd.c
- *     ---------
- *
- * $Id: nsplitd.c,v 2.6 1998/09/17 14:28:37 sde1000 Exp $
- *
- * Copyright (c) 1995, University of Cambridge Computer Laboratory,
- * Copyright (c) 1995, Richard Black, All Rights Reserved.
- *
- *
- * A complete re-implementation of DME's nsplitd for use from inetd
- *
- */
-
-/* The basic stream comes in (via inetd) and we then conenct to
- * somewhere else providing a loop-through service, except we offer
- * two other ports for connection - one of which gets a second channel
- * using the top bit to distinguish, and the other is a master control
- * port (normally used for gdb) which gets complete exclusive access
- * for its duration.
- *
- * Originally designed for multiplexing a xwcons/telnet with a gdb
- * post-mortem debugging session.
- *
- * Here is a picture:
- *
- *                                         port0 (from inetd)
- *      8-bit connection                  /
- *        made by us      <----> nsplitd <-----gdbport (default port0+2)
- *     to host:port/tcp                  |\
- *                                       | port1 (default port0+1)
- *                                         \
- *                                          control (default port0+3)
- *
- * If port1 is explicitly disabled (through a command-line option) then
- * port0 becomes 8-bit clean.
- */
-
-/*
- * N.B.: We do NOT support 8 bit stdin/stdout usage on a
- * /dev/... because to do that right involves much messing with ioctl
- * and TIOC... etc.  If you want to do that sort of thing then the
- * right way to do it is to chain this onto wconsd (which does know
- * about and understand all the ioctl and TIOC grief).
- */
-
-#include <sys/types.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <errno.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <netdb.h>
-#include <string.h>
-
-#include <sys/time.h>
-#include <sys/signal.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
-#include <arpa/inet.h>
-#include <sys/ioctl.h>
-#include <syslog.h>
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef LOG_DAEMON
-#define LOG_DAEMON 0
-#endif
-
-#define DB(x)  /* ((x), fflush(stderr)) */
-
-extern char *optarg;
-
-extern int optind, opterr, optopt;
-
-static char *prog_name;
-
-static void usage(void)
-{
-    fprintf(stderr, "This program (%s) should be run via inetd (tcp)\n\n",
-           prog_name);
-    fprintf(stderr, "usage: %s [-h<highport>][-g<gdbport>]"
-           "[-c<ctlport>][-8] host:service\n",
-           prog_name);
-    exit(1);
-}
-
-static void fault(char *format, ...)
-{
-    va_list            ap;
-    char               logbuf[1024];
-
-    va_start(ap, format);
-    fprintf(stderr, "%s: ", prog_name);
-    vfprintf(stderr, format, ap);
-    fflush(stderr);
-    va_end(ap);
-    
-    /* XXX This is a bit dubious, but there is no vsyslog */
-    va_start(ap, format);
-    vsnprintf(logbuf, sizeof(logbuf), format, ap);
-    syslog(LOG_ERR, logbuf);
-    va_end(ap);
-    exit(1);
-}
-
-static int getservice(char *name, unsigned short *port)
-{
-    struct servent             *se;
-
-    if (!name) return -1;
-
-    if (isdigit(name[0]))
-       *port = atoi(name);
-    else
-    {
-       if (!(se = getservbyname(name, "tcp")))
-           return -1;
-       *port = ntohs(se->s_port);
-    }
-    return 0;
-}
-
-/* 
- *  connect_host: connect to ("name", "port")
- */
-static int connect_host (char *name, unsigned int port)
-{
-    int                        fd;
-    struct hostent     *hostent;
-    struct sockaddr_in sin;
-    int                        on;
-    
-    if ((fd = socket (AF_INET, SOCK_STREAM, 0)) < 0)
-       fault("socket");
-    
-    if (!(hostent = gethostbyname(name)))
-       fault("gethostbyname: %s: %s\n", name, strerror(errno));
-    
-    memset(&sin, 0, sizeof(sin));
-    sin.sin_family = AF_INET;
-    sin.sin_port   = htons (port);
-    memcpy(&sin.sin_addr.s_addr, hostent->h_addr, sizeof(struct in_addr));
-    
-    if (connect(fd, (struct sockaddr *) &sin, sizeof (sin)) < 0)
-       fault("connect: %s:%u: %s\n", name, port, strerror(errno));
-    
-    on = 1;
-    if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof (on)) < 0)
-       syslog(LOG_WARNING, "setsockopt (TCP_NODELAY): %m");
-
-    on = 1;
-    if (setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof (on)) < 0)
-       syslog(LOG_WARNING, "setsockopt (SO_KEEPALIVE): %m");
-
-    return fd;
-}
-
-/*
- * open a tcp socket and start listening for connections on it
- */
-static int startlistening(unsigned short port)
-{
-    int                        fd, on;
-    struct sockaddr_in sin;
-
-    if ((fd = socket (AF_INET, SOCK_STREAM, 0)) < 0)
-       fault("socket");
-    
-    on = 1;
-    if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) < 0)
-      syslog(LOG_WARNING, "setsockopt (SO_REUSEADDR): %m");
-
-    memset(&sin, 0, sizeof(sin));
-    sin.sin_family      = AF_INET;
-    sin.sin_port        = htons (port);
-    sin.sin_addr.s_addr = INADDR_ANY;
-    if (bind(fd, &sin, sizeof(sin)) < 0)
-       fault("bind: %u: %s\n", port, strerror(errno));
-    
-    if (listen(fd, 1) < 0)
-       fault("listen: %s\n", strerror(errno));
-    
-    return fd;
-}
-
-static void noblock(int fd)
-{
-    int on=1;
-    
-    if (ioctl(fd, FIONBIO, &on) < 0)
-       fault("ioctl: FIONBIO: %s\n", strerror(errno));
-}
-
-
-/* You might not believe this, but fd_sets don't have to be a 32-bit
- * integer.  In particular, in glibc2 it is an array of unsigned
- * longs.  Hence, this hacked up FD_SET_rjb() that works out if it
- * would have been a nop. */
-#define FD_SET_rjb(fd, setp) \
-do {                                           \
-    if ((fd) != 32)                            \
-       FD_SET((fd), (setp));                   \
-} while(0)
-
-#define FD_ISSET_rjb(fd, setp) (((fd) != 32)? FD_ISSET((fd), (setp)) : 0)
-
-#define MAXSIZE        256
-
-/* -----------------------------------------------------------------
- * The main bit of the algorithm. Note we use 32 to mean not connected
- * because this gives us 1<<32 == 0. We could have done this one
- * character at a time, but that would have been very inefficient and
- * not the unix way.  */
-static int debug;
-
-static void doit(int actl, int acto, int lish, int lisg, int lisc)
-{
-    int                acth, actg, actc;
-    int                gdbmode = FALSE;
-    char       gibuf[MAXSIZE], oibuf[MAXSIZE];
-    char       libuf[MAXSIZE], lobuf[MAXSIZE];
-    char       hibuf[MAXSIZE], hobuf[MAXSIZE];
-    char       ctlbuf[MAXSIZE];
-    fd_set     rdfs, wrfs, exfs;
-    int                gicc, oicc, licc, locc, hicc, hocc, ctlcc;
-    char       *giptr, *oiptr, *liptr, *loptr, *hiptr, *hoptr;
-    int                rc, fromlen;
-    struct sockaddr_in         from;
-    
-    gicc = oicc = licc = locc = hicc = hocc = ctlcc = 0;
-    acth = actg = actc = 32;                   /* XXX yummy */
-
-    noblock(actl);
-    noblock(acto);
-
-    for(;;)
-    {
-       FD_ZERO(&rdfs);
-       FD_ZERO(&wrfs);
-       FD_ZERO(&exfs);
-
-       /* always take input from the control port (if it's connected) */
-       FD_SET_rjb(actc, &rdfs);
-
-       if (gdbmode)
-       {
-           if (oicc)
-               FD_SET_rjb(actg, &wrfs);
-           else
-               FD_SET_rjb(acto, &rdfs);
-           
-           if (gicc)
-               FD_SET_rjb(acto, &wrfs);
-           else
-               FD_SET_rjb(actg, &rdfs);
-       }
-       else
-       {
-           /* There is no such thing as oibuf because its been split into
-            * lobuf and hobuf
-            */
-           if (locc || hocc)
-           {
-               if (locc)
-                   FD_SET_rjb(actl, &wrfs);
-               if (hocc)
-                   FD_SET_rjb(acth, &wrfs);
-           }
-           else
-               FD_SET_rjb(acto, &rdfs);
-           
-           if (licc)
-               FD_SET_rjb(acto, &wrfs);
-           else
-               FD_SET_rjb(actl, &rdfs);
-           
-           if (hicc)
-               FD_SET_rjb(acto, &wrfs);
-           else
-               FD_SET_rjb(acth, &rdfs);
-       }
-       
-       if (acth == 32 && lish>=0)      FD_SET_rjb(lish, &rdfs);
-       if (actg == 32)                 FD_SET_rjb(lisg, &rdfs);
-       if (actc == 32)                 FD_SET_rjb(lisc, &rdfs);
-
-       /* now make exfs the union of the read and write fd sets, plus
-        * "actl" */
-       {
-           int i;
-           exfs = rdfs;
-           for(i=0; i<32; i++)  /* XXX we only copy fd numbers up to 31 */
-               if (FD_ISSET(i, &wrfs))
-                   FD_SET_rjb(i, &exfs);
-           FD_SET_rjb(actl, &exfs);
-       }
-
-       /* XXX AND: can't print something of type fd_set as %x - it
-         * might be an array */
-       DB(fprintf(stderr, "%s: before select: %08x %08x %08x\n",
-                  prog_name, rdfs, wrfs, exfs));
-       
-       if (select(32, &rdfs, &wrfs, &exfs, NULL) < 0)
-           fault("select: %s\n", strerror(errno));
-       
-       DB(fprintf(stderr, "%s: after  select: %08x %08x %08x\n",
-                  prog_name, rdfs, wrfs, exfs));
-       
-       /* XXX it appears that a non-blocking socket may not show up
-        * correctly in exfs but instead goes readable with no data in
-        * it. Thus we check for zero and goto the appropriate close
-        * method.  */
-
-       /* Deal with exceptions */
-       if (FD_ISSET_rjb(actg, &exfs))
-       {
-       exfs_actg:
-           close(actg);
-           gdbmode = FALSE;
-           oicc = 0;
-           oiptr = oibuf;
-           actg = 32;
-           continue;           /* because assumptions changed */
-       }
-       if (FD_ISSET_rjb(acth, &exfs))
-       {
-       exfs_acth:
-           close(acth);
-           hicc = hocc = 0;
-           hiptr = hibuf;
-           hoptr = hibuf;
-           acth = 32;
-           continue;           /* because assumptions changed */
-       }
-       if (FD_ISSET_rjb(actl, &exfs) ||
-           FD_ISSET_rjb(acto, &exfs))
-       {
-       exfs_actl:
-       exfs_acto:
-           /* Thats all folks ... */
-           break;
-       }
-       if (FD_ISSET_rjb(actc, &exfs))
-       {
-       exfs_ctl:
-           close(actc);
-           actc = 32;
-           ctlcc = 0;
-           continue;
-       }
-
-       /* Deal with reading */
-       if (FD_ISSET_rjb(acto, &rdfs))
-       {
-           if ((oicc = read(acto, oiptr = oibuf, MAXSIZE)) < 0)
-               fault("read acto: %d: %s\n", oicc, strerror(errno));
-           if (!oicc) goto exfs_acto;
-           
-           if (!gdbmode)
-           {
-               int t;
-
-               assert((locc == 0) && (hocc == 0));
-               loptr = lobuf;
-               hoptr = hobuf;
-               
-               if (lish>=0) {
-                   for(t=0; t<oicc; t++)
-                       if (oibuf[t] & 0x80)
-                           hobuf[hocc++] = oibuf[t] & 0x7f;
-                       else
-                           lobuf[locc++] = oibuf[t];
-               } else {
-                   for (t=0; t<oicc; t++)
-                       lobuf[locc++] = oibuf[t];
-               }
-               /* If no high connection scratch that */
-               if (acth == 32)
-                   hocc=0;
-           }
-       }
-       if (FD_ISSET_rjb(actl, &rdfs))
-       {
-           if ((licc = read(actl, liptr = libuf, MAXSIZE)) < 0)
-               fault("read actl: %d: %s\n", licc, strerror(errno));
-           if (!licc) goto exfs_actl;
-       }
-       if (FD_ISSET_rjb(acth, &rdfs))
-       {
-           int t;
-           
-           if ((hicc = read(acth, hiptr = hibuf, MAXSIZE)) < 0)
-               fault("read acth: %d: %s\n", hicc, strerror(errno));
-           if (!hicc) goto exfs_acth;
-           for(t=0; t<hicc; t++)
-               hibuf[t] |= 0x80;
-       }
-       if (FD_ISSET_rjb(actg, &rdfs))
-       {
-           if ((gicc = read(actg, giptr = gibuf, MAXSIZE)) < 0)
-               fault("read actg: %d: %s\n", gicc, strerror(errno));
-           if (debug) write(1, giptr, gicc);           /* XXX */
-           if (!gicc) goto exfs_actg;
-       }
-       if (FD_ISSET_rjb(actc, &rdfs))
-       {
-           if ((ctlcc = read(actc, ctlbuf, MAXSIZE)) < 0)
-               fault("read actc: %d: %s\n", ctlcc, strerror(errno));
-           if (debug) write(1, ctlbuf, gicc);
-           if (!ctlcc) goto exfs_ctl;
-           if (ctlbuf[0] == 'r') /* reset command */
-           {
-               syslog(LOG_INFO, "reset command read, exiting");
-               if (debug) write(1, "reseting\n", sizeof("reseting\n"));
-               break;
-           }
-       }
-       
-       /* Deal with writing */
-       if (FD_ISSET_rjb(actg, &wrfs))
-       {
-           /* We must be in gdb mode so send oi buffer data */
-           assert(gdbmode);
-           if (debug) write(2, oiptr, oicc);           /* XXX */
-           if ((rc = write(actg, oiptr, oicc)) <= 0)
-               fault("write actg: %d: %s\n", rc, strerror(errno));
-           oiptr += rc;
-           oicc  -= rc;
-       }
-       if (FD_ISSET_rjb(actl, &wrfs))
-       {
-           if ((rc = write(actl, loptr, locc)) <= 0)
-               fault("write actl: %d: %s\n", rc, strerror(errno));
-           loptr += rc;
-           locc  -= rc;
-       }
-       if (FD_ISSET_rjb(acth, &wrfs))
-       {
-           if ((rc = write(acth, hoptr, hocc)) <= 0)
-               fault("write acth: %d: %s\n", rc, strerror(errno));
-           hoptr += rc;
-           hocc  -= rc;
-       }
-       if (FD_ISSET_rjb(acto, &wrfs))
-       {
-           /* If in gdb mode send gdb input, otherwise send low data
-              preferentially */
-           if (gdbmode)
-           {
-               assert(gicc);
-               if ((rc = write(acto, giptr, gicc)) <= 0)
-                   fault("write acto: %d: %s\n", rc, strerror(errno));
-               giptr += rc;
-               gicc  -= rc;
-           }
-           else
-           {
-               if (licc)
-               {
-                   if ((rc = write(acto, liptr, licc)) <= 0)
-                       fault("write acto: %d: %s\n", rc, strerror(errno));
-                   liptr += rc;
-                   licc  -= rc;
-               }
-               else
-               {
-                   assert(hicc);
-                   if ((rc = write(acto, hiptr, hicc)) <= 0)
-                       fault("write acto: %d: %s\n", rc, strerror(errno));
-                   hiptr += rc;
-                   hicc  -= rc;
-               }
-           }
-       }
-       
-       /* Deals with new connections */
-       if ((acth == 32) && lish>=0 && (FD_ISSET_rjb(lish, &rdfs)))
-       {
-           fromlen = sizeof(from);
-           if ((acth = accept(lish, &from, &fromlen)) < 0)
-           {
-               syslog(LOG_WARNING, "accept: %m");
-               acth = 32;
-           }
-           else
-           {
-               noblock(acth);
-               hicc = hocc = 0;
-               syslog(LOG_INFO, "highbit client peer is %s:%u\n",
-                      inet_ntoa(from.sin_addr), ntohs(from.sin_port));
-           }
-       }
-       
-       if ((actg == 32) && (FD_ISSET_rjb(lisg, &rdfs)))
-       {
-           fromlen = sizeof(from);
-           if ((actg = accept(lisg, &from, &fromlen)) < 0)
-           {
-               syslog(LOG_WARNING, "accept: %m");
-               actg = 32;
-           }
-           else
-           {
-               noblock(actg);
-               gicc = 0;
-               gdbmode = TRUE;
-               syslog(LOG_INFO, "gdb client peer is %s:%u\n",
-                      inet_ntoa(from.sin_addr), ntohs(from.sin_port));
-           }
-       }
-
-       if ((actc == 32) && (FD_ISSET_rjb(lisc, &rdfs)))
-       {
-           fromlen = sizeof(from);
-           if ((actc = accept(lisc, &from, &fromlen)) < 0)
-           {
-               syslog(LOG_WARNING, "accept (ctl): %m");
-               actc = 32;
-           }
-           else
-           {
-               noblock(actc);
-               syslog(LOG_INFO, "ctl client peer is %s:%u\n",
-                      inet_ntoa(from.sin_addr), ntohs(from.sin_port));
-           }
-       }
-           
-       /* Back to top of loop */
-    }
-    
-    /* We are bailing because one of the primary connections has gone
-     * away. We close these all explicitly here because that way the
-     * timeout on reusing the port numbers is smnaller. */
-    
-    close(acth);
-    close(actg);
-    /* XXX AND: why are we closing all these "character counts" ?? */
-    close(gicc);
-    close(oicc);
-    close(licc);
-    close(locc);
-    close(hicc);
-    close(hocc);
-}
-
-/*
- * ------------------------------------------------------------
- */
-int main(int argc, char **argv)
-{
-    /* In general, suffix "l" is low channel, "h" is high channel, "g"
-     * is gdb channel, "c" is control channel and "o" is output channel.
-     */
-    struct sockaddr_in         from;
-    int                                infd = 0, outfd;
-    unsigned short             portl, porth, portg, portc, porto;
-    int                                on = 1, c;
-    char                       *outname, *outservice;
-    int                                fromlen;
-    int                                lish, lisg, lisc;
-#if 0
-    FILE                       *newerr;
-#endif /* 0 */
-    
-    prog_name = argv[0];
-
-    if (isatty(infd))
-       usage();
-
-    /* Here, then not just a simple idiot. */
-
-    signal(SIGPIPE, SIG_IGN);
-
-    openlog(prog_name, LOG_PID, LOG_DAEMON);
-
-    fromlen = sizeof(from);
-    if (getsockname(infd, &from, &fromlen) < 0)
-       fault("getsockname: %s", strerror(errno));
-    if ((fromlen != sizeof(from)) || (from.sin_family != AF_INET))
-       fault("not an inet socket (family=%d)\n", from.sin_family);
-    
-    portl = ntohs(from.sin_port);
-    porth = portl+1;
-    portg = porth+1;
-    portc = portg+1;
-
-    fromlen = sizeof(from);
-    if (getpeername(infd, &from, &fromlen) < 0)
-       fault("getpeername: %s", strerror(errno));
-    if ((fromlen != sizeof(from)) || (from.sin_family != AF_INET))
-       fault("not an inet socket (family=%d)\n", from.sin_family);
-
-    syslog(LOG_INFO, "on port %u peer is %s:%u\n", portl,
-          inet_ntoa(from.sin_addr), ntohs(from.sin_port));
-    
-    if (setsockopt(infd, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof (on)) < 0)
-       syslog(LOG_WARNING, "setsockopt (SO_KEEPALIVE): %m");
-
-    /* from here on, we map stderr to output on the connection so we can
-     * report errors to the remote user.
-     */
-#if 0
-    if (!(newerr = fdopen(infd, "w")))
-       syslog(LOG_WARNING, "fdopen: %m");
-    else
-       *stderr = *newerr;
-#endif
-       
-    while((c = getopt(argc, argv, "d8h:g:c:")) != EOF)
-    {
-       switch(c)
-       {
-       case 'd':
-           debug++;
-           break;
-           
-       case 'h':
-           /* high bit port */
-           if (getservice(optarg, &porth) < 0)
-               fault("getservice failed (high port '%s')\n", optarg);
-           break;
-           
-       case 'g':
-           /* gdb port */
-           if (getservice(optarg, &portg) < 0)
-               fault("getservice failed (gdb port '%s')\n", optarg);
-           break;
-
-       case 'c':
-           /* control port */
-           if (getservice(optarg, &portc) < 0)
-               fault("getservice failed (control port '%s')\n", optarg);
-           break;
-
-       case '8':
-           /* 8-bit clean; no high port */
-           porth=0;
-           break;
-
-       default:
-           fault("bad argument list!\n");
-       }
-    }
-    
-    if (argc != optind + 1)
-       fault("unparsed arguments (%d!=%d)\n", argc, optind+1);
-
-    outname = argv[optind];
-    if (!(outservice = strchr(outname, ':')))
-       fault("output arg '%s' doesn't contain ':'\n", outname);
-    *outservice++ = 0;
-    if (getservice(outservice, &porto) < 0)
-       fault("getservice failed (output port '%s')\n", outservice);
-    
-    /* Time to start the sockets */
-
-    if (porth) {
-       lish  = startlistening(porth);
-    } else {
-       lish  = -1;
-    }
-    lisg  = startlistening(portg);
-    lisc  = startlistening(portc);
-    
-    outfd = connect_host(outname, porto);
-    
-    doit(infd, outfd, lish, lisg, lisc);
-
-    syslog(LOG_INFO, "terminating normally\n");
-
-    fclose(stderr);
-
-    closelog();
-    exit(0); 
-}
-
-/* End $Id: nsplitd.c,v 2.6 1998/09/17 14:28:37 sde1000 Exp $ */
diff --git a/tools/misc/xen-python-path b/tools/misc/xen-python-path
deleted file mode 100644
index 073abae..0000000
--- a/tools/misc/xen-python-path
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env python
-#  -*- mode: python; -*-
-#============================================================================
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of version 2.1 of the GNU Lesser General Public
-# License as published by the Free Software Foundation.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-#============================================================================
-# Copyright (C) 2007 XenSource Inc.
-#============================================================================
-
-# Nowadays we install xen in the standard python site-packages
-# directories.  This script is still provided for the benefit of old
-# out-of-xen-tree callers.  It is deprecated and will be removed.
-
-print '/dev/enoent/xen/python-path'
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.