Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Thursday, October 15, 2026

Diff for libplaton/platon/net/Connection.cpp between version 1.6 and 1.7

version 1.6, 2003/11/20 11:55:16 version 1.7, 2006/08/14 10:03:21
Line 40  netConnection::~netConnection(void)
Line 40  netConnection::~netConnection(void)
 #endif  #endif
 }  }
   
 inline int netConnection::isConnected(void)  int netConnection::isConnected(void)
 {  {
         return(handle<0?0:1);          return(handle<0?0:1);
 }  }
   
 inline void netConnection::setPort(const int newport)  void netConnection::setPort(const int newport)
 {  {
         port=newport;          port=newport;
 }  }
Line 140  void netConnection::disconnect(void){
Line 140  void netConnection::disconnect(void){
         }          }
 }  }
   
 inline int netConnection::writeLine(void){  int netConnection::writeLine(void){
         return(write(handle,"\n",1));          return(write(handle,"\n",1));
 }  }
   
 inline int netConnection::writeLine(const char*s){  int netConnection::writeLine(const char *s){
         register int ret;          register int ret;
         ret=write(handle,s,strlen(s));  
         ret+=writeLine();          if ((ret = writeStr(s)) != strlen(s))
                   return ret;
   
           ret += writeLine();
   
         return(ret<0?-1:ret);          return(ret<0?-1:ret);
 }  }
   
 inline int netConnection::writeStr(const char*s){  int netConnection::writeStr(const char*s){
         return(write(handle,s,strlen(s)));          return(write(handle,s,strlen(s)));
 }  }
   
 inline int netConnection::writeData(const void*p,int len){  int netConnection::writeData(const void*p,int len){
         return(write(handle,p,len));          return(write(handle,p,len));
 }  }
   
 int netConnection::readData(char*buffer,const int size){  int netConnection::readData(char*buffer, const int size)
 #ifdef __MSDOS__  {
         buffer[0]='\0';          register int ret, to_read, i;
         buffer[size]='\0';  
 #else  
         struct timeval tv;          struct timeval tv;
         fd_set rd,act;          fd_set read_set;
   
           if (! isConnected())
                   return 0;
   
           for (to_read = size; to_read > 0; ) {
   
         if(isConnected()){                  FD_ZERO(&read_set);
                 FD_ZERO(&rd);                  FD_SET(handle, &read_set);
                 FD_ZERO(&act);                  tv.tv_sec  = 0;
                 FD_SET(handle,&rd);                  tv.tv_usec = 0;
                 FD_SET(handle,&act);  
                 tv.tv_sec=0;                  ret = select(handle + 1, &read_set, NULL, NULL, &tv);
                 tv.tv_usec=0;  
                   if (ret < 0) {
                 select(handle+1,&rd,NULL,&act,&tv);                          disconnect();
                           break;
                 if(FD_ISSET(handle,&rd)){                  }
                         int i;  
                         i=read(handle,buffer,size-1);                  if (ret == 0)
                         if(i<=0){                          break;
                                 disconnect();  
                                 buffer[0]='\0';                  i = read(handle, buffer + size - to_read, to_read);
                         }  
                         else buffer[i]='\0';                  if (i <= 0) {
                           disconnect();
                           break;
                 }                  }
                 /*  
                    if(FD_ISSET(handle,&act)){                  to_read -= i;
                    disconnect();  
                    buffer[0]='\0';  
                    }  
                  */  
         }          }
         else buffer[0]='\0';  
 #endif  
   
         return(strlen(buffer));          return size - to_read;
 }  }
   
 int netConnection::readLine(char*buffer,const int size){  int netConnection::readLine(char*buffer,const int size){

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top