Files
@ b731174bd349
Branch filter:
Location: DistRen/src/common/libremoteio.h - annotation
b731174bd349
2.3 KiB
text/plain
remoteio socket skeleton
4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 1665faff5bfd 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 4b9e91831d84 bbfee659a30a bbfee659a30a a556e24d0635 bbfee659a30a bbfee659a30a a556e24d0635 bbfee659a30a bbfee659a30a bbfee659a30a bbfee659a30a bbfee659a30a f8b15ae5255a 75a599984bd2 bbfee659a30a bbfee659a30a bbfee659a30a bbfee659a30a bbfee659a30a bbfee659a30a bbfee659a30a 4b9e91831d84 75a599984bd2 4b9e91831d84 4b9e91831d84 8ce43b559a30 8ce43b559a30 a556e24d0635 8ce43b559a30 8ce43b559a30 8ce43b559a30 8ce43b559a30 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 a556e24d0635 1665faff5bfd 4b9e91831d84 4b9e91831d84 | /*
Copyright 2009 Nathan Phillip Brink
This file is a part of DistRen.
DistRen is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
DistRen 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with DistRen. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _DISTREN_LIBREMOTEIO_H
#define _DISTREN_LIBREMOTEIO_H
#include "remoteio.h"
#include <confuse.h>
/**
private declarations for remoteio, to be included by options.c and remoteio.c
*/
enum remoteio_method
{
REMOTEIO_METHOD_SSH = 0,
/* REMOTEIO_METHOD_TCP */ /*< someday, maybe */
/* REMOETIO_METHOD_XMLRPC */ /*< again, maybe someday */
REMOTEIO_METHOD_MAX = 1 /*< This is a number used to check the consitency of remoteio_server structs */
};
struct remoteio_server
{
struct remoteio_server *next;
char *name; /*< The friendly named passed to remoteio_open() */
char *hostname;
char *username;
enum remoteio_method method;
unsigned int types; /*< See ``Server types'' in protocol.h */
};
struct remoteio_opts
{
char *ssh_command;
struct remoteio_server *servers;
};
struct remoteio {
enum remoteio_method method;
struct remoteio_opts *opts;
struct execio *execio;
};
/* lookup table */
typedef int remoteio_open_func_t(struct remoteio *rem, struct remoteio_server *server);
typedef int remoteio_read_func_t(struct remoteio *rem, void *buf, size_t len, size_t *bytesread);
typedef int remoteio_write_func_t(struct remoteio *rem, void *buf, size_t len, size_t *bytesread);
typedef int remoteio_close_func_t(struct remoteio *rem);
struct remoteio_method_funcmap
{
remoteio_open_func_t *open_func;
remoteio_read_func_t *read_func;
remoteio_write_func_t *write_func;
remoteio_close_func_t *close_func;
char *name; /*< used for error messages */
};
int remoteio_config(cfg_t *cfg, struct remoteio_opts *opts);
#endif
|