Remove copy of ioall.c - use the one from linux-utils
This commit is contained in:
parent
df7c431d0b
commit
92aac6a92e
@ -1,10 +1,10 @@
|
|||||||
CC=gcc
|
CC=gcc
|
||||||
CFLAGS=-g -Wall -I. -fPIC -pie
|
CFLAGS=-g -Wall -I. -fPIC -pie
|
||||||
all: vm-file-editor qopen-in-vm qfile-agent qfile-unpacker tar2qfile
|
all: vm-file-editor qopen-in-vm qfile-agent qfile-unpacker tar2qfile
|
||||||
vm-file-editor: vm-file-editor.o ioall.o
|
vm-file-editor: vm-file-editor.o
|
||||||
$(CC) -pie -g -o $@ $^
|
$(CC) -pie -g -o $@ $^ -lqubes-rpc-filecopy
|
||||||
qopen-in-vm: qopen-in-vm.o ioall.o gui-fatal.o
|
qopen-in-vm: qopen-in-vm.o gui-fatal.o
|
||||||
$(CC) -pie -g -o $@ $^
|
$(CC) -pie -g -o $@ $^ -lqubes-rpc-filecopy
|
||||||
qfile-agent: qfile-agent.o gui-fatal.o qfile-utils.o
|
qfile-agent: qfile-agent.o gui-fatal.o qfile-utils.o
|
||||||
$(CC) -pie -g -o $@ $^ -lqubes-rpc-filecopy
|
$(CC) -pie -g -o $@ $^ -lqubes-rpc-filecopy
|
||||||
qfile-unpacker: qfile-unpacker.o gui-fatal.o
|
qfile-unpacker: qfile-unpacker.o gui-fatal.o
|
||||||
|
@ -1,116 +0,0 @@
|
|||||||
/*
|
|
||||||
* The Qubes OS Project, http://www.qubes-os.org
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Rafal Wojtczuk <rafal@invisiblethingslab.com>
|
|
||||||
*
|
|
||||||
* 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 <unistd.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <errno.h>
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
@ -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);
|
|
@ -7,7 +7,7 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ioall.h>
|
#include <libqubes-rpc-filecopy.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <gui-fatal.h>
|
#include <gui-fatal.h>
|
||||||
#include "dvm2.h"
|
#include "dvm2.h"
|
||||||
|
@ -38,13 +38,13 @@
|
|||||||
|
|
||||||
#define _GNU_SOURCE /* For O_NOFOLLOW. */
|
#define _GNU_SOURCE /* For O_NOFOLLOW. */
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <ioall.h>
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <libqubes-rpc-filecopy.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <qfile-utils.h>
|
#include <qfile-utils.h>
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <ioall.h>
|
#include <libqubes-rpc-filecopy.h>
|
||||||
#include "dvm2.h"
|
#include "dvm2.h"
|
||||||
|
|
||||||
#define USER_HOME "/home/user"
|
#define USER_HOME "/home/user"
|
||||||
@ -103,7 +103,7 @@ char *get_filename(void)
|
|||||||
return retname;
|
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);
|
int fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0600);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
@ -138,7 +138,7 @@ main()
|
|||||||
FILE *env_file;
|
FILE *env_file;
|
||||||
FILE *waiter_pidfile;
|
FILE *waiter_pidfile;
|
||||||
|
|
||||||
copy_file(filename);
|
copy_file_by_name(filename);
|
||||||
if (stat(filename, &stat_pre)) {
|
if (stat(filename, &stat_pre)) {
|
||||||
perror("stat pre");
|
perror("stat pre");
|
||||||
exit(1);
|
exit(1);
|
||||||
|
Loading…
Reference in New Issue
Block a user