From e5888a1ffdae813d7575f5fb02275c6bb07e5199 Mon Sep 17 00:00:00 2001 From: Taru Karttunen Date: Wed, 30 Mar 2011 15:46:40 +0300 Subject: Import sources from 2011-03-30 iso image --- sys/src/cmd/ndb/csquery.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100755 sys/src/cmd/ndb/csquery.c (limited to 'sys/src/cmd/ndb/csquery.c') diff --git a/sys/src/cmd/ndb/csquery.c b/sys/src/cmd/ndb/csquery.c new file mode 100755 index 000000000..6a324028b --- /dev/null +++ b/sys/src/cmd/ndb/csquery.c @@ -0,0 +1,78 @@ +#include +#include +#include + +char *server; +char *status; +int statusonly; + +void +usage(void) +{ + fprint(2, "usage: ndb/csquery [/net/cs [addr...]]\n"); + exits("usage"); +} + +void +query(char *addr) +{ + char buf[128]; + int fd, n; + + fd = open(server, ORDWR); + if(fd < 0) + sysfatal("cannot open %s: %r", server); + if(write(fd, addr, strlen(addr)) != strlen(addr)){ + if(!statusonly) + fprint(2, "translating %s: %r\n", addr); + status = "errors"; + close(fd); + return; + } + if(!statusonly){ + seek(fd, 0, 0); + while((n = read(fd, buf, sizeof(buf)-1)) > 0){ + buf[n] = 0; + print("%s\n", buf); + } + } + close(fd); +} + +void +main(int argc, char **argv) +{ + char *p; + int i; + Biobuf in; + + ARGBEGIN{ + case 's': + statusonly = 1; + break; + default: + usage(); + }ARGEND + + if(argc > 0) + server = argv[0]; + else + server = "/net/cs"; + + if(argc > 1){ + for(i=1; i "); + p = Brdline(&in, '\n'); + if(p == 0) + break; + p[Blinelen(&in)-1] = 0; + query(p); + } + exits(nil); +} -- cgit v1.2.3