WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] Switch to using unix-domain interface on xend instead

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Switch to using unix-domain interface on xend instead
From: BitKeeper Bot <riel@xxxxxxxxxxx>
Date: Fri, 13 May 2005 15:08:29 +0000
Delivery-date: Fri, 13 May 2005 20:07:02 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: Xen Development List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
ChangeSet 1.1403, 2005/05/13 16:08:29+01:00, mjw@xxxxxxxxxxxxxxxxxxx

        Switch to using unix-domain interface on xend instead
        of http via libcurl.
        Sundry other merges and fixes.
        Signed-off-by: Mike Wray <mike.wray@xxxxxx>



 libxutil/fd_stream.c                |  184 ++++++
 libxutil/fd_stream.h                |   36 +
 libxutil/lexis.h                    |    2 
 libxutil/sxpr.c                     |  482 +++++++++++----
 libxutil/sxpr.h                     |  252 ++++----
 libxutil/sxpr_parser.c              | 1103 ++++++++++++++++++------------------
 libxutil/sxpr_parser.h              |   68 +-
 libxutil/sys_string.c               |   55 +
 libxutil/sys_string.h               |    1 
 python/xen/xend/server/SrvDaemon.py |    6 
 python/xen/xend/server/event.py     |   46 -
 xfrd/Make.xfrd                      |    3 
 xfrd/Makefile                       |   15 
 xfrd/connection.c                   |    2 
 xfrd/lzi_stream.c                   |    5 
 xfrd/xen_domain.c                   |  395 +++++-------
 xfrd/xfrd.c                         |    8 
 17 files changed, 1603 insertions(+), 1060 deletions(-)


diff -Nru a/tools/libxutil/fd_stream.c b/tools/libxutil/fd_stream.c
--- /dev/null   Wed Dec 31 16:00:00 196900
+++ b/tools/libxutil/fd_stream.c        2005-05-13 16:07:37 -04:00
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2004 Mike Wray <mike.wray@xxxxxx>
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * 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
+ */
+
+/** @file
+ * An IOStream implementation using fds.
+ */
+#ifndef __KERNEL__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include "allocate.h"
+#include "fd_stream.h"
+
+#define MODULE_NAME "fd_stream"
+#define DEBUG 1
+//#undef DEBUG
+#include "debug.h"
+
+static int fd_read(IOStream *s, void *buf, size_t n);
+static int fd_write(IOStream *s, const void *buf, size_t n);
+static int fd_error(IOStream *s);
+static int fd_close(IOStream *s);
+static void fd_free(IOStream *s);
+static int fd_flush(IOStream *s);
+
+/** Methods used by a fd IOStream. */
+static const IOMethods fd_methods = {
+    read:  fd_read,
+    write: fd_write,
+    error: fd_error,
+    close: fd_close,
+    free:  fd_free,
+    flush: fd_flush,
+};
+
+/** Get the fd data.
+ * 
+ * @param io fd stream
+ * @return data
+ */
+static inline FDData * fd_data(IOStream *io){
+    return (FDData *)io->data;
+}
+
+/** Test if a stream is a fd stream.
+ *
+ * @param io stream
+ * @return 0 if a fd stream, -EINVAL if not
+ */
+int fd_stream_check(IOStream *io){
+    return (io && io->methods == &fd_methods ? 0 : -EINVAL);
+}
+
+/** Get the data for a fd stream.
+ *
+ * @param io stream
+ * @param data return value for the data
+ * @return 0 if a fd stream, -EINVAL if not
+ */
+int fd_stream_data(IOStream *io, FDData **data){
+    int err = fd_stream_check(io);
+    if(err){
+        *data = NULL;
+    } else {
+        *data = fd_data(io);
+    }
+    return err;
+}
+
+
+/** Write to the underlying fd.
+ *
+ * @param stream input
+ * @param buf where to put input
+ * @param n number of bytes to write
+ * @return number of bytes written
+ */
+static int fd_write(IOStream *s, const void *buf, size_t n){
+    FDData *data = fd_data(s);
+    int k;
+    k = write(data->fd, buf, n);
+    return k;
+}
+
+/** Read from the underlying stream;
+ *
+ * @param stream input
+ * @param buf where to put input
+ * @param n number of bytes to read
+ * @return number of bytes read
+ */
+static int fd_read(IOStream *s, void *buf, size_t n){
+    FDData *data = fd_data(s);
+    int k;
+    k = read(data->fd, buf, n);
+    //printf("> fd_read> buf=%p n=%d --> k=%d\n", buf, n, k);
+    return k;
+}
+
+/** Flush the fd (no-op).
+ *
+ * @param s fd stream
+ * @return 0 on success, error code otherwise
+ */
+static int fd_flush(IOStream *s){
+    return 0;
+}
+
+/** Check if a fd stream has an error (no-op).
+ *
+ * @param s fd stream
+ * @return 1 if has an error, 0 otherwise
+ */
+static int fd_error(IOStream *s){
+    return 0;
+}
+
+/** Close a fd stream.
+ *
+ * @param s fd stream to close
+ * @return result of the close
+ */
+static int fd_close(IOStream *s){
+    FDData *data = fd_data(s);
+    return close(data->fd);
+}
+
+/** Free a fd stream.
+ *
+ * @param s fd stream
+ */
+static void fd_free(IOStream *s){
+    FDData *data = fd_data(s);
+    deallocate(data);
+}
+
+/** Create an IOStream for a fd.
+ *
+ * @param fd fd to wtap
+ * @return new IOStream using fd for i/o
+ */
+IOStream *fd_stream_new(int fd){
+    int err = -ENOMEM;
+    IOStream *io = NULL;
+    FDData *data = NULL;
+
+    io = ALLOCATE(IOStream);
+    if(!io) goto exit;
+    io->methods = &fd_methods;
+    data = ALLOCATE(FDData);
+    if(!data) goto exit;
+    io->data = data;
+    data->fd = fd;
+    err = 0;
+  exit:
+    if(err){
+        if(io){
+            if(data) deallocate(data);
+            deallocate(io);
+            io = NULL;
+        }
+    }
+    return io;
+}
+
+#endif
diff -Nru a/tools/libxutil/fd_stream.h b/tools/libxutil/fd_stream.h
--- /dev/null   Wed Dec 31 16:00:00 196900
+++ b/tools/libxutil/fd_stream.h        2005-05-13 16:07:37 -04:00
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2004 Mike Wray <mike.wray@xxxxxx>
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * 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
+ */
+
+#ifndef _XMC_FD_STREAM_H_
+#define _XMC_FD_STREAM_H_
+
+#ifndef __KERNEL__
+#include "iostream.h"
+
+/** Data associated with a fd stream. */
+typedef struct FDData {
+    /** The socket file descriptor. */
+    int fd;
+} FDData;
+
+extern IOStream *fd_stream_new(int fd);
+extern int fd_stream_data(IOStream *io, FDData **data);
+extern int fd_stream_check(IOStream *io);
+
+#endif
+#endif /* !_XMC_FD_STREAM_H_ */
diff -Nru a/tools/libxutil/lexis.h b/tools/libxutil/lexis.h
--- a/tools/libxutil/lexis.h    2005-05-13 16:07:36 -04:00
+++ b/tools/libxutil/lexis.h    2005-05-13 16:07:36 -04:00
@@ -34,7 +34,7 @@
 #define space_class ((char []){ '\n', '\r', '\t', ' ', '\f' , 0 })
 
 /** Class of separator characters. */
-#define sep_class "{}()<>[]@!;"
+#define sep_class "{}()<>[]!;\"'"
 
 #define comment_class "#"
 
diff -Nru a/tools/libxutil/sxpr.c b/tools/libxutil/sxpr.c
--- a/tools/libxutil/sxpr.c     2005-05-13 16:07:36 -04:00
+++ b/tools/libxutil/sxpr.c     2005-05-13 16:07:36 -04:00
@@ -28,6 +28,19 @@
 #include <errno.h>
 #endif
 
+#ifdef __KERNEL__
+#include <linux/random.h>
+

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Switch to using unix-domain interface on xend instead, BitKeeper Bot <=