/[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 207 by matthewc, Thu Sep 26 14:26:46 2002 UTC revision 408 by forsberg, Fri Jun 6 10:44:20 2003 UTC
# Line 12  Line 12 
12     but WITHOUT ANY WARRANTY; without even the implied warranty of     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.     GNU General Public License for more details.
15      
16     You should have received a copy of the GNU General Public License     You should have received a copy of the GNU General Public License
17     along with this program; if not, write to the Free Software     along with this program; if not, write to the Free Software
18     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
# Line 28  Line 28 
28  #include <errno.h>              /* errno */  #include <errno.h>              /* errno */
29  #include "rdesktop.h"  #include "rdesktop.h"
30    
31    #ifndef INADDR_NONE
32    #define INADDR_NONE ((unsigned long) -1)
33    #endif
34    
35  static int sock;  static int sock;
36  static struct stream in;  static struct stream in;
37  static struct stream out;  static struct stream out;
# Line 35  extern int tcp_port_rdp; Line 39  extern int tcp_port_rdp;
39    
40  /* Initialise TCP transport data packet */  /* Initialise TCP transport data packet */
41  STREAM  STREAM
42  tcp_init(int maxlen)  tcp_init(uint32 maxlen)
43  {  {
44          if (maxlen > out.size)          if (maxlen > out.size)
45          {          {
46                  out.data = xrealloc(out.data, maxlen);                  out.data = (uint8 *) xrealloc(out.data, maxlen);
47                  out.size = maxlen;                  out.size = maxlen;
48          }          }
49    
# Line 70  tcp_send(STREAM s) Line 74  tcp_send(STREAM s)
74    
75  /* Receive a message on the TCP layer */  /* Receive a message on the TCP layer */
76  STREAM  STREAM
77  tcp_recv(int length)  tcp_recv(uint32 length)
78  {  {
79          int rcvd = 0;          int rcvd = 0;
80    
81          if (length > in.size)          if (length > in.size)
82          {          {
83                  in.data = xrealloc(in.data, length);                  in.data = (uint8 *) xrealloc(in.data, length);
84                  in.size = length;                  in.size = length;
85          }          }
86    
# Line 84  tcp_recv(int length) Line 88  tcp_recv(int length)
88    
89          while (length > 0)          while (length > 0)
90          {          {
91                  ui_select(sock);                  if (!ui_select(sock))
92                            /* User quit */
93                            return NULL;
94    
95                  rcvd = recv(sock, in.end, length, 0);                  rcvd = recv(sock, in.end, length, 0);
96                  if (rcvd == -1)                  if (rcvd == -1)
# Line 106  tcp_connect(char *server) Line 112  tcp_connect(char *server)
112  {  {
113          struct hostent *nslookup;          struct hostent *nslookup;
114          struct sockaddr_in servaddr;          struct sockaddr_in servaddr;
115          int true = 1;          int true_value = 1;
116    
117          if ((nslookup = gethostbyname(server)) != NULL)          if ((nslookup = gethostbyname(server)) != NULL)
118          {          {
119                  memcpy(&servaddr.sin_addr, nslookup->h_addr, sizeof(servaddr.sin_addr));                  memcpy(&servaddr.sin_addr, nslookup->h_addr, sizeof(servaddr.sin_addr));
120          }          }
121          else if (!(servaddr.sin_addr.s_addr = inet_addr(server)))          else if ((servaddr.sin_addr.s_addr = inet_addr(server)) == INADDR_NONE)
122          {          {
123                  error("%s: unable to resolve host\n", server);                  error("%s: unable to resolve host\n", server);
124                  return False;                  return False;
# Line 134  tcp_connect(char *server) Line 140  tcp_connect(char *server)
140                  return False;                  return False;
141          }          }
142    
143          setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (void *) &true, sizeof(true));          setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (void *) &true_value, sizeof(true_value));
144    
145          in.size = 4096;          in.size = 4096;
146          in.data = xmalloc(in.size);          in.data = (uint8 *) xmalloc(in.size);
147    
148          out.size = 4096;          out.size = 4096;
149          out.data = xmalloc(out.size);          out.data = (uint8 *) xmalloc(out.size);
150    
151          return True;          return True;
152  }  }

Legend:
Removed from v.207  
changed lines
  Added in v.408

  ViewVC Help
Powered by ViewVC 1.1.26