trezor.msg: udp supports only one interface

This commit is contained in:
Jan Pochyla 2017-06-27 13:49:48 +02:00
parent a2a4b285d4
commit d77373eef7
1 changed files with 13 additions and 0 deletions

View File

@ -15,6 +15,7 @@
#include "../../trezorhal/usb.h"
#include "../../trezorhal/touch.h"
#define TREZOR_UDP_IFACE 0
#define TREZOR_UDP_PORT 21324
static int sock;
@ -74,6 +75,9 @@ int usb_vcp_add(const usb_vcp_info_t *info) {
}
int usb_hid_can_read(uint8_t iface_num) {
if (iface_num != TREZOR_UDP_IFACE) {
return 0;
}
struct pollfd fds[] = {
{ sock, POLLIN, 0 },
};
@ -86,6 +90,9 @@ int usb_hid_can_read(uint8_t iface_num) {
}
int usb_hid_can_write(uint8_t iface_num) {
if (iface_num != TREZOR_UDP_IFACE) {
return 0;
}
struct pollfd fds[] = {
{ sock, POLLOUT, 0 },
};
@ -98,6 +105,9 @@ int usb_hid_can_write(uint8_t iface_num) {
}
int usb_hid_read(uint8_t iface_num, uint8_t *buf, uint32_t len) {
if (iface_num != TREZOR_UDP_IFACE) {
return 0;
}
struct sockaddr_in si;
socklen_t sl = sizeof(si);
ssize_t r = recvfrom(sock, buf, len, MSG_DONTWAIT, (struct sockaddr *)&si, &sl);
@ -116,6 +126,9 @@ int usb_hid_read(uint8_t iface_num, uint8_t *buf, uint32_t len) {
}
int usb_hid_write(uint8_t iface_num, const uint8_t *buf, uint32_t len) {
if (iface_num != TREZOR_UDP_IFACE) {
return 0;
}
ssize_t r = len;
if (slen > 0) {
r = sendto(sock, buf, len, MSG_DONTWAIT, (const struct sockaddr *)&si_other, slen);