Remove debug prints from cs and csquery
[akaros.git] / tests / csquery.c
1 /* 
2  * This file is part of the UCB release of Plan 9. It is subject to the license
3  * terms in the LICENSE file found in the top-level directory of this
4  * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
5  * part of the UCB release of Plan 9, including this file, may be copied,
6  * modified, propagated, or distributed except according to the terms contained
7  * in the LICENSE file.
8  */
9 #include <stdlib.h>
10
11 #include <stdio.h>
12 #include <parlib.h>
13 #include <unistd.h>
14 #include <signal.h>
15 #include <fcntl.h>
16 #include <error.h>
17 #include <iplib.h>
18 #include <ndb.h>
19 #include <fcall.h>
20
21 char *server;
22 char *status;
23 int statusonly;
24
25 void usage(void)
26 {
27         fprintf(stderr, "CSQUERY:usage: ndb/csquery [/net/cs [addr...]]\n");
28         fprintf(stderr, "CSQUERY:usage");
29         exit(1);
30 }
31
32 void query(char *addr)
33 {
34         char buf[128];
35         int fd, n;
36         int amt;
37
38         fd = open(server, O_RDWR);
39         if (fd < 0)
40                 error(1, 0, "cannot open %s: %r", server);
41         amt = write(fd, addr, strlen(addr));
42         if (amt != strlen(addr)) {
43                 printf("CSQUERY:Tried to write %d to fd %d, only wrote %d\n", strlen(addr),fd,amt);
44                 if (!statusonly)
45                         fprintf(stderr, "CSQUERY:Writing request: translating %s: %r\n", addr);
46                 status = "errors";
47                 close(fd);
48                 return;
49         }
50         if (!statusonly) {
51                 lseek(fd, 0, 0);
52                 while ((n = read(fd, buf, sizeof(buf) - 1)) > 0) {
53                         buf[n] = 0;
54                 }
55                 printf("%s\n", buf);
56         }
57         close(fd);
58 }
59
60 void main(int argc, char **argv)
61 {
62         char p[512];
63         int i;
64
65         argc--, argv++;
66         while (argc) {
67                 if (argv[0][0] != '-')
68                         break;
69                 switch (argv[0][1]) {
70                         case 's':
71                                 statusonly = 1;
72                                 break;
73                         default:
74                                 usage();
75                 }
76                 argc--, argv++;
77         }
78
79         if (argc > 0)
80                 server = argv[0];
81         else
82                 server = "/net/cs";
83
84         if (argc > 1) {
85                 for (i = 1; i < argc; i++)
86                         query(argv[i]);
87                 exit(0);
88         }
89
90         for (;;) {
91                 printf("CSQUERY:> ");
92                 i = 0;
93                 while (read(0, &p[i], 1) > 0){
94                         /* Attempt to echo our input back to stdout */
95                         write(1, &p[i], 1);
96                         if (p[i] == '\n')
97                                 break;
98                         i++;
99                 }
100                 if (i < 0)
101                         break;
102                 p[i] = 0;
103                 if (i)
104                         query(p);
105         }
106 }