/* 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 . */ #include "libremoteio.h" #include "execio.h" #include #include int remoteio_open(struct remoteio **rem, struct remoteio_opts *opts, char *servername) { char *sshargs[] = {opts->ssh_command, servername, "distrend", "-d", (char *)NULL}; int rtn; *rem = malloc(sizeof(struct remoteio)); rtn = execio_open( &(*rem)->execio, "ssh", sshargs); if(rtn) { fprintf(stderr, "error opening remoteio channel to server ``%s''" , servername); free(*rem); return 1; } return 0; } int remoteio_read(struct remoteio *rem, void *buf, size_t len, size_t *bytesread) { return execio_read(rem->execio, buf, len, bytesread); } int remoteio_write(struct remoteio *rem, void *buf, size_t len, size_t *byteswritten) { return execio_write(rem->execio, buf, len, byteswritten); } int remoteio_close(struct remoteio *rem) { int rtn; rtn = execio_close(rem->execio); free(rem); return 0 + rtn; }