/[rdesktop]/sourceforge.net/trunk/rdesktop/tcp.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/rdesktop/tcp.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 23 by matty, Sat Sep 16 12:07:55 2000 UTC revision 24 by matty, Sat Jan 6 03:12:10 2001 UTC
# Line 18  Line 18 
18     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19  */  */
20    
21  #include <unistd.h>     /* select read write close */  #include <unistd.h>             /* select read write close */
22  #include <sys/socket.h> /* socket connect setsockopt */  #include <sys/socket.h>         /* socket connect setsockopt */
23  #include <sys/time.h>   /* timeval */  #include <sys/time.h>           /* timeval */
24  #include <netdb.h>      /* gethostbyname */  #include <netdb.h>              /* gethostbyname */
25  #include <netinet/in.h> /* sockaddr_in */  #include <netinet/in.h>         /* sockaddr_in */
26  #include <netinet/tcp.h> /* TCP_NODELAY */  #include <netinet/tcp.h>        /* TCP_NODELAY */
27  #include <arpa/inet.h>  /* inet_addr */  #include <arpa/inet.h>          /* inet_addr */
28  #include <errno.h>      /* errno */  #include <errno.h>              /* errno */
29  #include "rdesktop.h"  #include "rdesktop.h"
30    
31  static int sock;  static int sock;
# Line 49  STREAM tcp_init(int maxlen) Line 49  STREAM tcp_init(int maxlen)
49  /* Send TCP transport data packet */  /* Send TCP transport data packet */
50  void tcp_send(STREAM s)  void tcp_send(STREAM s)
51  {  {
52          int length = s->end - s->data;          int length = s->end - s->data;
53          int sent, total = 0;          int sent, total = 0;
54    
55          while (total < length)          while (total < length)
# Line 90  STREAM tcp_recv(int length) Line 90  STREAM tcp_recv(int length)
90                  tv.tv_sec = 0;                  tv.tv_sec = 0;
91                  tv.tv_usec = 100;                  tv.tv_usec = 100;
92    
93                  ret = select(sock+1, &rfds, NULL, NULL, &tv);                  ret = select(sock + 1, &rfds, NULL, NULL, &tv);
94    
95                  if (ret)                  if (ret)
96                  {                  {
# Line 119  BOOL tcp_connect(char *server) Line 119  BOOL tcp_connect(char *server)
119    
120          if ((nslookup = gethostbyname(server)) != NULL)          if ((nslookup = gethostbyname(server)) != NULL)
121          {          {
122                  memcpy(&servaddr.sin_addr, nslookup->h_addr, sizeof(servaddr.sin_addr));                  memcpy(&servaddr.sin_addr, nslookup->h_addr,
123                           sizeof(servaddr.sin_addr));
124          }          }
125          else if (!(servaddr.sin_addr.s_addr = inet_addr(server)))          else if (!(servaddr.sin_addr.s_addr = inet_addr(server)))
126          {          {
# Line 136  BOOL tcp_connect(char *server) Line 137  BOOL tcp_connect(char *server)
137          servaddr.sin_family = AF_INET;          servaddr.sin_family = AF_INET;
138          servaddr.sin_port = htons(TCP_PORT_RDP);          servaddr.sin_port = htons(TCP_PORT_RDP);
139    
140          if (connect(sock, (struct sockaddr *)&servaddr, sizeof(struct sockaddr)) < 0)          if (connect
141                (sock, (struct sockaddr *) &servaddr,
142                 sizeof(struct sockaddr)) < 0)
143          {          {
144                  STATUS("connect: %s\n", strerror(errno));                  STATUS("connect: %s\n", strerror(errno));
145                  close(sock);                  close(sock);
146                  return False;                  return False;
147          }          }
148    
149          setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (void *)&true, sizeof(true));          setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (void *) &true,
150                       sizeof(true));
151    
152          in.size = 4096;          in.size = 4096;
153          in.data = xmalloc(in.size);          in.data = xmalloc(in.size);

Legend:
Removed from v.23  
changed lines
  Added in v.24

  ViewVC Help
Powered by ViewVC 1.1.26