www.nico.schottelius.org/software/cinit/browse_source/cinit-0.2.1/comm/do_result.c
Nico Schottelius 423ba10303 import cinit from unix.schottelius.org
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-09-16 12:53:45 +02:00

33 lines
653 B
C

/*
* (c) 2005 Nico Schottelius (nico-linux at schottelius.org)
* write result of action
* part of cinit
*/
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include "cinit.h"
/* one handler for read and write! */
char do_result(int nsock, char *value)
{
ssize_t (*fpoint)(int,void* ,size_t);
char buf;
if(value == NULL) { /* client */
value = &buf;
fpoint = read;
} else {
fpoint = ( ssize_t (*)(int, void*, size_t) ) write;
}
if(fpoint(nsock,value,1) == -1) { /* result */
perror(MSG_ERR_IO);
return RT_ERR_COMM;
}
return *value;
}
/* returns cinit-0.2-style return codes */