+ if(c->allow_request == ID) {
+ buffer_add(&c->inbuf, inbuf, inlen);
+
+ char *request = buffer_readline(&c->inbuf);
+
+ if(request) {
+ if(!receive_request(mesh, c, request) || c->allow_request == ID)
+ return false;
+
+ int left = c->inbuf.len - c->inbuf.offset;
+ if(left > 0) {
+ fprintf(stderr, "GOT A LITTLE MORE\n");
+ return sptps_receive_data(&c->sptps, buffer_read(&c->inbuf, left), left);
+ } else
+ return true;
+ }
+
+ if(c->inbuf.len >= sizeof(inbuf)) {
+ logger(mesh, MESHLINK_ERROR, "Input buffer full for %s", c->name);
+ return false;
+ } else
+ return true;
+ }
+
+ return sptps_receive_data(&c->sptps, inbuf, inlen);