if (rqstfd <= 0)
continue;
- ret = readt(rqstfd, &len, sizeof(int), 4);
- /* TODO: Check out read errors, broken pipe etc. in libatalk. Is
- SIGIPE ignored there? Answer: Ignored for dsi, but not for asp ... */
- ret = readt(rqstfd, &len, sizeof(int), 1, 5);
++ ret = readt(rqstfd, &len, sizeof(int), 1, 4);
++
if (!ret) {
/* already close */
goto loop_end;
if (!cur_fd)
return 0;
+
+ LOG(log_maxdebug, logtype_cnid, "comm_rcv: got data on fd %u", cur_fd);
+
+ if (setnonblock(cur_fd, 1) != 0) {
+ LOG(log_error, logtype_cnid, "comm_rcv: setnonblock: %s", strerror(errno));
+ return -1;
+ }
+
nametmp = rqst->name;
- if ((b = readt(cur_fd, rqst, sizeof(struct cnid_dbd_rqst), CNID_DBD_TIMEOUT))
- if ((b = readt(cur_fd, rqst, sizeof(struct cnid_dbd_rqst), 1, 5))
++ if ((b = readt(cur_fd, rqst, sizeof(struct cnid_dbd_rqst), 1, CNID_DBD_TIMEOUT))
!= sizeof(struct cnid_dbd_rqst)) {
if (b)
LOG(log_error, logtype_cnid, "error reading message header: %s", strerror(errno));
return 0;
}
rqst->name = nametmp;
- if (rqst->namelen && readt(cur_fd, rqst->name, rqst->namelen, CNID_DBD_TIMEOUT)
- if (rqst->namelen && readt(cur_fd, rqst->name, rqst->namelen, 1, 5) != rqst->namelen) {
++ if (rqst->namelen && readt(cur_fd, rqst->name, rqst->namelen, 1, CNID_DBD_TIMEOUT)
+ != rqst->namelen) {
LOG(log_error, logtype_cnid, "error reading message name: %s", strerror(errno));
invalidate_fd(cur_fd);
return 0;