opnsense-ports/devel/libserialport/files/patch-freebsd.c

38 lines
1.0 KiB
C

--- freebsd.c.orig 2018-07-17 13:22:11 UTC
+++ freebsd.c
@@ -327,9 +327,8 @@ SP_PRIV enum sp_return list_ports(struct sp_port ***li
DIR *dir;
struct dirent entry;
struct dirent *result;
- struct termios tios;
char name[PATH_MAX];
- int fd, ret;
+ int ret;
DEBUG("Enumerating tty devices");
if (!(dir = opendir("/dev")))
@@ -353,21 +352,10 @@ SP_PRIV enum sp_return list_ports(struct sp_port ***li
DEBUG_FMT("Found device %s", name);
/* Check that we can open tty/cua device in rw mode - we need that. */
- if ((fd = open(name, O_RDWR | O_NONBLOCK | O_NOCTTY | O_TTY_INIT | O_CLOEXEC)) < 0) {
- DEBUG("Open failed, skipping");
+ if (access(name, R_OK | W_OK) != 0) {
+ DEBUG("access(2) check failed, skipping");
continue;
}
-
- /* Sanity check if we got a real tty. */
- if (!isatty(fd)) {
- close(fd);
- continue;
- }
-
- ret = tcgetattr(fd, &tios);
- close(fd);
- if (ret < 0 || cfgetospeed(&tios) <= 0 || cfgetispeed(&tios) <= 0)
- continue;
DEBUG_FMT("Found port %s", name);
DBG("%s: %s\n", __func__, entry.d_name);