From 74628157c2e2fdf6fd8e1c273bb2dcfb4a534c20 Mon Sep 17 00:00:00 2001 From: Neale Pickett Date: Tue, 1 Nov 2011 18:56:04 -0600 Subject: [PATCH] add revwords package --- packages/fizzbuzz/service/fizzbuzz/go | 3 + packages/fizzbuzz/service/fizzbuzz/run | 2 +- packages/revwords/revwords.mk | 20 ++++ packages/revwords/service/revwords/go | 3 + packages/revwords/service/revwords/ip.txt | 1 + packages/revwords/service/revwords/log/run | 3 + packages/revwords/service/revwords/run | 9 ++ packages/revwords/src/Makefile | 6 ++ packages/revwords/src/revwords.c | 105 +++++++++++++++++++++ packages/revwords/src/solution.sh | 19 ++++ packages/revwords/tokens.txt | 1 + 11 files changed, 171 insertions(+), 1 deletion(-) create mode 100755 packages/fizzbuzz/service/fizzbuzz/go create mode 100644 packages/revwords/revwords.mk create mode 100755 packages/revwords/service/revwords/go create mode 100644 packages/revwords/service/revwords/ip.txt create mode 100755 packages/revwords/service/revwords/log/run create mode 100755 packages/revwords/service/revwords/run create mode 100644 packages/revwords/src/Makefile create mode 100644 packages/revwords/src/revwords.c create mode 100755 packages/revwords/src/solution.sh create mode 100644 packages/revwords/tokens.txt diff --git a/packages/fizzbuzz/service/fizzbuzz/go b/packages/fizzbuzz/service/fizzbuzz/go new file mode 100755 index 0000000..f463309 --- /dev/null +++ b/packages/fizzbuzz/service/fizzbuzz/go @@ -0,0 +1,3 @@ +#! /bin/sh + +exec /opt/fizzbuzz/bin/fizzbuzz 3&1 IP=$(cat ip.txt) ip addr add $IP dev eth0 || true -exec tcpsvd -u nobody ${IP%/*} 1013 /opt/fizzbuzz/bin/fizzbuzz 3&1 + +IP=$(cat ip.txt) +ip addr add $IP dev eth0 || true + +exec tcpsvd -u nobody ${IP%/*} 1013 ./go + diff --git a/packages/revwords/src/Makefile b/packages/revwords/src/Makefile new file mode 100644 index 0000000..5c328e7 --- /dev/null +++ b/packages/revwords/src/Makefile @@ -0,0 +1,6 @@ +CFLAGS = -Wall -Werror + +build: revwords + +clean: + rm -f revwords diff --git a/packages/revwords/src/revwords.c b/packages/revwords/src/revwords.c new file mode 100644 index 0000000..8a6c36d --- /dev/null +++ b/packages/revwords/src/revwords.c @@ -0,0 +1,105 @@ +#include +#include +#include +#include +#include + +#define XDEBUG + +int +once() +{ + char sdrow[25][10]; + int nwords = 5 + (rand() % 2); + int i; + +#ifdef DEBUG + nwords = 2; +#endif + + for (i = 0; i < nwords; i += 1) { + char *drow = sdrow[i]; + int len = 4 + (rand() % 6); + int j; + + if (i > 0) putchar(' '); + for (j = 0; j < len; j += 1) { + char c = 'a' + (rand() % 26); + + putchar(c); + drow[len-j-1] = c; + } + + drow[j] = 0; + } + +#ifdef DEBUG + printf (" (answer: "); + for (i = 0; i < nwords; i += 1) { + if (i > 0) putchar(' '); + printf("%s", sdrow[i]); + } + putchar(')'); +#endif + + putchar('\n'); + fflush(stdout); + + for (i = 0; i < nwords; i += 1) { + char *p; + + if (i > 0) { + if (getchar() != ' ') return -1; + } + for (p = sdrow[i]; *p; p += 1) { + int c = getchar(); + + if (c != *p) return -1; + } + } + if (getchar() != '\n') return -1; + + return 0; +} + + +int +main(int argc, char *argv[]) +{ + char token[100]; + int i; + + { + FILE *tokenin = fdopen(3, "r"); + + if (! tokenin) { + fprintf(stderr, "Somebody didn't read the instructions.\n"); + return 1; + } + + if (NULL == fgets(token, sizeof(token), tokenin)) { + fprintf(stderr, "Error reading token.\n"); + return 1; + } + + fclose(tokenin); + } + + +#ifndef DEBUG + /* don't hang around forever waiting for input */ + alarm(3); +#endif + + srandom(time(NULL) * getpid()); + + for (i = 0; i < 12; i += 1) { + if (-1 == once()) { + printf("tahT saw ton tahw I saw gnitcepxe\n"); + return 1; + } + } + fputs(token, stdout); + + return 0; +} diff --git a/packages/revwords/src/solution.sh b/packages/revwords/src/solution.sh new file mode 100755 index 0000000..da8910d --- /dev/null +++ b/packages/revwords/src/solution.sh @@ -0,0 +1,19 @@ +#! /bin/sh + +## Run like this: +## +## socat EXEC:./solution.sh EXEC:./revwords 3&2 + enil=$(lrev $line) + echo $enil +done \ No newline at end of file diff --git a/packages/revwords/tokens.txt b/packages/revwords/tokens.txt new file mode 100644 index 0000000..58c779f --- /dev/null +++ b/packages/revwords/tokens.txt @@ -0,0 +1 @@ +net:xetil-tuhet-calyx