From 92aac6a92edd0b22382edb12f3ac6f0050829a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Mon, 6 Jan 2014 18:31:12 +0100 Subject: [PATCH] Remove copy of ioall.c - use the one from linux-utils --- qubes-rpc/Makefile | 8 +-- qubes-rpc/ioall.c | 116 ------------------------------------- qubes-rpc/ioall.h | 5 -- qubes-rpc/qopen-in-vm.c | 2 +- qubes-rpc/tar2qfile.c | 2 +- qubes-rpc/vm-file-editor.c | 6 +- 6 files changed, 9 insertions(+), 130 deletions(-) delete mode 100644 qubes-rpc/ioall.c delete mode 100644 qubes-rpc/ioall.h diff --git a/qubes-rpc/Makefile b/qubes-rpc/Makefile index 0a3d5e8..cb49648 100644 --- a/qubes-rpc/Makefile +++ b/qubes-rpc/Makefile @@ -1,10 +1,10 @@ CC=gcc CFLAGS=-g -Wall -I. -fPIC -pie all: vm-file-editor qopen-in-vm qfile-agent qfile-unpacker tar2qfile -vm-file-editor: vm-file-editor.o ioall.o - $(CC) -pie -g -o $@ $^ -qopen-in-vm: qopen-in-vm.o ioall.o gui-fatal.o - $(CC) -pie -g -o $@ $^ +vm-file-editor: vm-file-editor.o + $(CC) -pie -g -o $@ $^ -lqubes-rpc-filecopy +qopen-in-vm: qopen-in-vm.o gui-fatal.o + $(CC) -pie -g -o $@ $^ -lqubes-rpc-filecopy qfile-agent: qfile-agent.o gui-fatal.o qfile-utils.o $(CC) -pie -g -o $@ $^ -lqubes-rpc-filecopy qfile-unpacker: qfile-unpacker.o gui-fatal.o diff --git a/qubes-rpc/ioall.c b/qubes-rpc/ioall.c deleted file mode 100644 index ef04e0b..0000000 --- a/qubes-rpc/ioall.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - * The Qubes OS Project, http://www.qubes-os.org - * - * Copyright (C) 2010 Rafal Wojtczuk - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ - -#include -#include -#include -#include -#include - -void perror_wrapper(const char * msg) -{ - int prev=errno; - perror(msg); - errno=prev; -} - -void set_nonblock(int fd) -{ - int fl = fcntl(fd, F_GETFL, 0); - if (fl & O_NONBLOCK) - return; - fcntl(fd, F_SETFL, fl | O_NONBLOCK); -} - -void set_block(int fd) -{ - int fl = fcntl(fd, F_GETFL, 0); - if (!(fl & O_NONBLOCK)) - return; - fcntl(fd, F_SETFL, fl & ~O_NONBLOCK); -} - -int write_all(int fd, const void *buf, int size) -{ - int written = 0; - int ret; - while (written < size) { - ret = write(fd, (char *) buf + written, size - written); - if (ret == -1 && errno == EINTR) - continue; - if (ret <= 0) { - return 0; - } - written += ret; - } -// fprintf(stderr, "sent %d bytes\n", size); - return 1; -} - -int read_all(int fd, void *buf, int size) -{ - int got_read = 0; - int ret; - while (got_read < size) { - ret = read(fd, (char *) buf + got_read, size - got_read); - if (ret == -1 && errno == EINTR) - continue; - if (ret == 0) { - errno = 0; - fprintf(stderr, "EOF\n"); - return 0; - } - if (ret < 0) { - if (errno != EAGAIN) - perror_wrapper("read"); - return 0; - } - if (got_read == 0) { - // force blocking operation on further reads - set_block(fd); - } - got_read += ret; - } -// fprintf(stderr, "read %d bytes\n", size); - return 1; -} - -int copy_fd_all(int fdout, int fdin) -{ - int ret; - char buf[4096]; - for (;;) { - ret = read(fdin, buf, sizeof(buf)); - if (ret == -1 && errno == EINTR) - continue; - if (!ret) - break; - if (ret < 0) { - perror_wrapper("read"); - return 0; - } - if (!write_all(fdout, buf, ret)) { - perror_wrapper("write"); - return 0; - } - } - return 1; -} diff --git a/qubes-rpc/ioall.h b/qubes-rpc/ioall.h deleted file mode 100644 index c822bbe..0000000 --- a/qubes-rpc/ioall.h +++ /dev/null @@ -1,5 +0,0 @@ -int write_all(int fd, const void *buf, int size); -int read_all(int fd, void *buf, int size); -int copy_fd_all(int fdout, int fdin); -void set_nonblock(int fd); -void set_block(int fd); diff --git a/qubes-rpc/qopen-in-vm.c b/qubes-rpc/qopen-in-vm.c index a223e1f..7960e45 100644 --- a/qubes-rpc/qopen-in-vm.c +++ b/qubes-rpc/qopen-in-vm.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include "dvm2.h" diff --git a/qubes-rpc/tar2qfile.c b/qubes-rpc/tar2qfile.c index eeccc0b..8f99546 100644 --- a/qubes-rpc/tar2qfile.c +++ b/qubes-rpc/tar2qfile.c @@ -38,13 +38,13 @@ #define _GNU_SOURCE /* For O_NOFOLLOW. */ #include -#include #include #include #include #include #include #include +#include #include #include diff --git a/qubes-rpc/vm-file-editor.c b/qubes-rpc/vm-file-editor.c index 9b68f7f..6f082d5 100644 --- a/qubes-rpc/vm-file-editor.c +++ b/qubes-rpc/vm-file-editor.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include "dvm2.h" #define USER_HOME "/home/user" @@ -103,7 +103,7 @@ char *get_filename(void) return retname; } -void copy_file(const char *filename) +void copy_file_by_name(const char *filename) { int fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0600); if (fd < 0) { @@ -138,7 +138,7 @@ main() FILE *env_file; FILE *waiter_pidfile; - copy_file(filename); + copy_file_by_name(filename); if (stat(filename, &stat_pre)) { perror("stat pre"); exit(1);