#include <u.h>
#include <libc.h>

/*
*  query the connection server
*/
char*
csquery(char *attr, char *val, char *rattr)
{
       char token[64 + 4], buf[256], *p, *sp;
       int fd, n;

       if(val == nil || val[0] == 0)
               return nil;
       fd = open("/net/cs", ORDWR);
       if(fd < 0)
               return nil;
       fprint(fd, "!%s=%s", attr, val);
       seek(fd, 0, 0);
       snprint(token, sizeof token, "%s=", rattr);
       for(;;){
               n = read(fd, buf, sizeof buf - 1);
               if(n <= 0)
                       break;
               buf[n] = 0;
               p = strstr(buf, token);
               if(p != nil && (p == buf || p[-1] == 0)){
                       close(fd);
                       sp = strchr(p, ' ');
                       if(sp)
                               *sp = 0;
                       p = strchr(p, '=');
                       if(p == nil)
                               return nil;
                       return strdup(p + 1);
               }
       }
       close(fd);
       return nil;
}