* remote-utils.c (remote_open): Check the type of specified
serial port devices before opening them. * server.c (main): Kill the inferior if an error occurs during the first remote_open.
This commit is contained in:
parent
03fa9f0e99
commit
8264bb58d6
3 changed files with 32 additions and 3 deletions
|
@ -52,6 +52,8 @@
|
|||
#if HAVE_ARPA_INET_H
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
#include <sys/stat.h>
|
||||
#include <errno.h>
|
||||
|
||||
#if USE_WIN32API
|
||||
#include <winsock.h>
|
||||
|
@ -94,13 +96,25 @@ remote_open (char *name)
|
|||
#if defined(F_SETFL) && defined (FASYNC)
|
||||
int save_fcntl_flags;
|
||||
#endif
|
||||
|
||||
if (!strchr (name, ':'))
|
||||
char *port_str;
|
||||
|
||||
port_str = strchr (name, ':');
|
||||
if (port_str == NULL)
|
||||
{
|
||||
#ifdef USE_WIN32API
|
||||
error ("Only <host>:<port> is supported on this platform.");
|
||||
#else
|
||||
remote_desc = open (name, O_RDWR);
|
||||
struct stat statbuf;
|
||||
|
||||
if (stat (name, &statbuf) == 0
|
||||
&& (S_ISCHR (statbuf.st_mode) || S_ISFIFO (statbuf.st_mode)))
|
||||
remote_desc = open (name, O_RDWR);
|
||||
else
|
||||
{
|
||||
errno = EINVAL;
|
||||
remote_desc = -1;
|
||||
}
|
||||
|
||||
if (remote_desc < 0)
|
||||
perror_with_name ("Could not open remote device");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue