/*
Copyright 2008 Nathan Phillip Brink, Ethan Zonca, Matt Orlando
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/>.
*/
#include <stdio.h> /* sprintf, printf */
#include <stdlib.h> /* malloc, free */
#include "options.h"
#include "execio.h"
int main(int argc, char *argv[])
{
char buf[10];
struct execio *testrem;
char *execargv[] =
{
"ssh",
"protofusion.org",
"sh",
"-c",
"\"echo hello from ${HOSTNAME}\"",
(char *)NULL
};
size_t readlen;
fprintf(stderr, "testing execio (It shouldn't work) :-)\n");
fprintf(stderr, "execio_open returns %d\n", execio_open(&testrem, "ssh", execargv));
buf[9] = '\0';
while(!execio_read(testrem, buf, 9, &readlen))
{
if(readlen > 9)
{
fprintf(stderr, "execio_read doesn't set readlen correctly or read() is messed up\n");
return 1;
}
buf[readlen] = '\0';
fprintf(stderr, "read \"%s\"\n", buf);
}
return 0;
};
/* this function should probably not exist. asprintf should be used instead of sprintf */
size_t intstrlen(size_t theint)
{
size_t len = 0; /* if the number is single digit, this will be incremented */
do
{
theint /= 10;
len ++;
}
while(theint > 0);
return len;
}