near_info("Send Hs frame");
err = send(client_fd, msg->data, msg->length, MSG_DONTWAIT);
- if (err >= 0)
- err = 0;
g_free(msg->data);
g_free(msg);
struct hr_ndef *ndef;
int bytes_recv;
int ndef_size;
+ int err;
ndef = g_hash_table_lookup(hr_ndef_hash, GINT_TO_POINTER(client_fd));
if (ndef == NULL) {
if (ndef->extra_ndef_count == 0) {
/* All the bytes are read so now, parse the frame */
- handover_ndef_parse(client_fd, ndef);
+ err = handover_ndef_parse(client_fd, ndef);
+ if (err > 0) {
+ /* clean memory */
+ handover_close(client_fd, 0);
+ return TRUE;
+ }
+
return FALSE;
}
client_data->target_idx,
client_data->cb);
- if (more == FALSE) {
- if (client_data->driver->close != NULL)
- client_data->driver->close(client_data->fd, 0);
- close(client_data->fd);
- }
-
return more;
}