* 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
|
@ -1,3 +1,11 @@
|
||||||
|
2006-12-30 Denis PILAT <denis.pilat@st.com>
|
||||||
|
Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2006-12-05 Markus Deuling <deuling@de.ibm.com>
|
2006-12-05 Markus Deuling <deuling@de.ibm.com>
|
||||||
|
|
||||||
* README: Update supported targets.
|
* README: Update supported targets.
|
||||||
|
|
|
@ -52,6 +52,8 @@
|
||||||
#if HAVE_ARPA_INET_H
|
#if HAVE_ARPA_INET_H
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#if USE_WIN32API
|
#if USE_WIN32API
|
||||||
#include <winsock.h>
|
#include <winsock.h>
|
||||||
|
@ -94,13 +96,25 @@ remote_open (char *name)
|
||||||
#if defined(F_SETFL) && defined (FASYNC)
|
#if defined(F_SETFL) && defined (FASYNC)
|
||||||
int save_fcntl_flags;
|
int save_fcntl_flags;
|
||||||
#endif
|
#endif
|
||||||
|
char *port_str;
|
||||||
|
|
||||||
if (!strchr (name, ':'))
|
port_str = strchr (name, ':');
|
||||||
|
if (port_str == NULL)
|
||||||
{
|
{
|
||||||
#ifdef USE_WIN32API
|
#ifdef USE_WIN32API
|
||||||
error ("Only <host>:<port> is supported on this platform.");
|
error ("Only <host>:<port> is supported on this platform.");
|
||||||
#else
|
#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)
|
if (remote_desc < 0)
|
||||||
perror_with_name ("Could not open remote device");
|
perror_with_name ("Could not open remote device");
|
||||||
|
|
||||||
|
|
|
@ -614,6 +614,13 @@ main (int argc, char *argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (setjmp (toplevel))
|
||||||
|
{
|
||||||
|
fprintf (stderr, "Killing inferior\n");
|
||||||
|
kill_inferior ();
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
remote_open (argv[1]);
|
remote_open (argv[1]);
|
||||||
|
|
Loading…
Add table
Reference in a new issue