mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-01 01:17:02 +00:00
devel/libserialport: Don't open serial ports when enumerating
PR: 230843 Submitted by: kevans
This commit is contained in:
parent
0cf2587695
commit
df56f98b62
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=492865
@ -3,6 +3,7 @@
|
||||
|
||||
PORTNAME= libserialport
|
||||
PORTVERSION= 0.1.1
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= http://sigrok.org/download/source/libserialport/
|
||||
|
||||
|
37
devel/libserialport/files/patch-freebsd.c
Normal file
37
devel/libserialport/files/patch-freebsd.c
Normal file
@ -0,0 +1,37 @@
|
||||
--- 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);
|
Loading…
Reference in New Issue
Block a user