/[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 4 by matty, Wed May 10 07:36:34 2000 UTC revision 9 by matty, Tue Jul 25 12:34:29 2000 UTC
# Line 100  BOOL tcp_send(HCONN conn) Line 100  BOOL tcp_send(HCONN conn)
100  /* Receive a message on the TCP layer */  /* Receive a message on the TCP layer */
101  BOOL tcp_recv(HCONN conn, int length)  BOOL tcp_recv(HCONN conn, int length)
102  {  {
103          int rcvd;          int ret, rcvd = 0;
104            struct timeval tv;
105            fd_set rfds;
106    
107          STREAM_SIZE(conn->in, length);          STREAM_SIZE(conn->in, length);
108          conn->in.end = conn->in.offset = 0;          conn->in.end = conn->in.offset = 0;
109    
110          while (length > 0)          while (length > 0)
111          {          {
112                  rcvd = read(conn->tcp_socket, conn->in.data + conn->in.end,                  ui_process_events(conn->wnd, conn);
                             length);  
113    
114                  if (rcvd <= 0)                  FD_ZERO(&rfds);
115                    FD_SET(conn->tcp_socket, &rfds);
116                    tv.tv_sec = 0;
117                    tv.tv_usec = 100;
118    
119                    ret = select(conn->tcp_socket+1, &rfds, NULL, NULL, &tv);
120    
121                    if (ret)
122                  {                  {
123                          fprintf(stderr, "read: %s\n", strerror(errno));                          rcvd = read(conn->tcp_socket, conn->in.data
124                          return False;                                          + conn->in.end, length);
                 }  
125    
126                  conn->in.end += rcvd;                          if (rcvd <= 0)
127                  length -= rcvd;                          {
128                                    fprintf(stderr, "read: %s\n",
129                                                    strerror(errno));
130                                    return False;
131                            }
132    
133                            conn->in.end += rcvd;
134                            length -= rcvd;
135                    }
136          }          }
137    
138          return True;          return True;

Legend:
Removed from v.4  
changed lines
  Added in v.9

  ViewVC Help
Powered by ViewVC 1.1.26