mirror of
https://github.com/laanwj/k210-sdk-stuff.git
synced 2024-11-22 01:16:20 +04:00
linux: Simplify esptun by getting rid of some helper functions
`cread` and `cwrite` are trivial and only called in one place, so just integrate them.
This commit is contained in:
parent
7cbb10693e
commit
c261d4dcc7
@ -150,36 +150,6 @@ int tun_alloc(char *dev, int flags)
|
|||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Read routine that checks for errors and exits if an error is
|
|
||||||
* returned (including unexpected EOF).
|
|
||||||
*/
|
|
||||||
static int cread(int fd, uint8_t *buf, int n)
|
|
||||||
{
|
|
||||||
int nread;
|
|
||||||
|
|
||||||
if ((nread = read(fd, buf, n)) <= 0) {
|
|
||||||
perror("Reading data");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
return nread;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Write routine that checks for errors and exits if an error is
|
|
||||||
* returned (including unexpected EOF).
|
|
||||||
*/
|
|
||||||
static int cwrite(int fd, const uint8_t *buf, int n)
|
|
||||||
{
|
|
||||||
int nwrite;
|
|
||||||
|
|
||||||
if ((nwrite = write(fd, buf, n)) <= 0) {
|
|
||||||
perror("Writing data");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
return nwrite;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ensures we write exactly n bytes. Exit in case of error or EOF.
|
* Ensures we write exactly n bytes. Exit in case of error or EOF.
|
||||||
*/
|
*/
|
||||||
@ -188,7 +158,10 @@ static void write_all(int fd, const uint8_t *buf, int n)
|
|||||||
int nwrite, left = n;
|
int nwrite, left = n;
|
||||||
|
|
||||||
while (left > 0) {
|
while (left > 0) {
|
||||||
nwrite = cwrite(fd, buf, left);
|
if ((nwrite = write(fd, buf, left)) <= 0) {
|
||||||
|
perror("Writing data");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
left -= nwrite;
|
left -= nwrite;
|
||||||
buf += nwrite;
|
buf += nwrite;
|
||||||
}
|
}
|
||||||
@ -555,8 +528,12 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
// Handle input from TUN
|
// Handle input from TUN
|
||||||
if (fds[1].revents & POLLIN) {
|
if (fds[1].revents & POLLIN) {
|
||||||
|
ssize_t nread;
|
||||||
/* data from tun/tap: just read it and write it to the network */
|
/* data from tun/tap: just read it and write it to the network */
|
||||||
size_t nread = cread(tun_fd, tap_buffer, TAP_BUFSIZE);
|
if ((nread = read(tun_fd, tap_buffer, TAP_BUFSIZE)) <= 0) {
|
||||||
|
perror("Reading data from tap");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
log_debug("TUN2NET %lu: Read %d bytes from the tap interface\n", tap2net, nread);
|
log_debug("TUN2NET %lu: Read %d bytes from the tap interface\n", tap2net, nread);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user