/* Serial interface for raw TCP connections on Un*x like systems.
- Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2001, 2005, 2006,
- 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1992-1996, 1998-1999, 2001, 2005-2012 Free Software
+ Foundation, Inc.
This file is part of GDB.
#include <sys/types.h>
#ifdef HAVE_SYS_FILIO_H
-#include <sys/filio.h> /* For FIONBIO. */
+#include <sys/filio.h> /* For FIONBIO. */
#endif
#ifdef HAVE_SYS_IOCTL_H
-#include <sys/ioctl.h> /* For FIONBIO. */
+#include <sys/ioctl.h> /* For FIONBIO. */
#endif
#include <sys/time.h>
#ifdef USE_WIN32API
#include <winsock2.h>
+#ifndef ETIMEDOUT
#define ETIMEDOUT WSAETIMEDOUT
+#endif
#define close(fd) closesocket (fd)
#define ioctl ioctlsocket
#else
static int tcp_retry_limit = 15;
-/* how many times per second to poll deprecated_ui_loop_hook */
+/* How many times per second to poll deprecated_ui_loop_hook. */
#define POLL_INTERVAL 5
return n;
}
-/* Open a tcp socket */
+/* Open a tcp socket. */
int
net_open (struct serial *scb, const char *name)
port_str = strchr (name, ':');
if (!port_str)
- error (_("net_open: No colon in host name!")); /* Shouldn't ever happen */
+ error (_("net_open: No colon in host name!")); /* Shouldn't ever
+ happen. */
tmp = min (port_str - name, (int) sizeof hostname - 1);
- strncpy (hostname, name, tmp); /* Don't want colon */
- hostname[tmp] = '\000'; /* Tie off host name */
+ strncpy (hostname, name, tmp); /* Don't want colon. */
+ hostname[tmp] = '\000'; /* Tie off host name. */
port = atoi (port_str + 1);
- /* default hostname is localhost */
+ /* Default hostname is localhost. */
if (!hostname[0])
strcpy (hostname, "localhost");
if (scb->fd == -1)
return -1;
- /* set socket nonblocking */
+ /* Set socket nonblocking. */
ioarg = 1;
ioctl (scb->fd, FIONBIO, &ioarg);
- /* Use Non-blocking connect. connect() will return 0 if connected already. */
+ /* Use Non-blocking connect. connect() will return 0 if connected
+ already. */
n = connect (scb->fd, (struct sockaddr *) &sockaddr, sizeof (sockaddr));
if (n < 0)
return -1;
}
- /* looks like we need to wait for the connect */
+ /* Looks like we need to wait for the connect. */
do
{
n = wait_for_connect (scb, &polls);
}
}
- /* Got something. Is it an error? */
+ /* Got something. Is it an error? */
{
int res, err;
socklen_t len;
}
}
- /* turn off nonblocking */
+ /* Turn off nonblocking. */
ioarg = 0;
ioctl (scb->fd, FIONBIO, &ioarg);
if (use_udp == 0)
{
- /* Disable Nagle algorithm. Needed in some cases. */
+ /* Disable Nagle algorithm. Needed in some cases. */
tmp = 1;
setsockopt (scb->fd, IPPROTO_TCP, TCP_NODELAY,
(char *)&tmp, sizeof (tmp));
int
ser_tcp_send_break (struct serial *scb)
{
- /* Send telnet IAC and BREAK characters. */
+ /* Send telnet IAC and BREAK characters. */
return (serial_write (scb, "\377\363", 2));
}
ops->send_break = ser_tcp_send_break;
ops->go_raw = ser_base_raw;
ops->get_tty_state = ser_base_get_tty_state;
+ ops->copy_tty_state = ser_base_copy_tty_state;
ops->set_tty_state = ser_base_set_tty_state;
ops->print_tty_state = ser_base_print_tty_state;
ops->noflush_set_tty_state = ser_base_noflush_set_tty_state;