static int processIo(user_data_t * user_data) { int rc; char smbuffer[10]; rc = recv(user_data->io, smbuffer, sizeof(smbuffer), 0); if (rc < 0) { if (errno != EWOULDBLOCK) { closeIo(user_data); perror(" recv() failed"); } } else if (rc == 0) { closeIo(user_data); printf("Connection closed\r\n"); } else { SCPI_Input(&scpi_context, smbuffer, rc); } }
static int processIo(user_data_t * user_data) { struct netbuf *inbuf; char* buf; u16_t buflen; if (netconn_recv(user_data->io, &inbuf) != ERR_OK) { goto fail1; } if (netconn_err(user_data->io) != ERR_OK) { goto fail2; } netbuf_data(inbuf, (void**) &buf, &buflen); if (buflen > 0) { SCPI_Input(&scpi_context, buf, buflen); } else { //goto fail2; } netbuf_delete(inbuf); return 0; fail2: netbuf_delete(inbuf); fail1: closeIo(user_data); return 0; }