(file) Return to Socket.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Executor

Diff for /pegasus/src/Executor/Socket.h between version 1.3 and 1.4

version 1.3, 2007/06/27 19:38:04 version 1.4, 2007/07/24 19:42:02
Line 37 
Line 37 
 #include <stdlib.h> #include <stdlib.h>
 #include <sys/socket.h> #include <sys/socket.h>
 #include <string.h> #include <string.h>
 #include "Defines.h"  #include <errno.h>
   #include <unistd.h>
   #include <Executor/Defines.h>
   
   #ifdef PEGASUS_ENABLE_PRIVILEGE_SEPARATION
  
 EXECUTOR_LINKAGE EXECUTOR_LINKAGE
 int SetNonBlocking(int sock); int SetNonBlocking(int sock);
Line 159 
Line 163 
     return 0;     return 0;
 } }
  
   #endif
   
   /*
       These functions are used by the PAM cimservera implementation regardless
       of whether privilege separation is enabled.
   */
   
   static ssize_t RecvBlock(int sock, void* buffer, size_t size)
   {
       size_t r = size;
       char* p = (char*)buffer;
   
       if (size == 0)
           return -1;
   
       while (r)
       {
           ssize_t n;
   
           EXECUTOR_RESTART(read(sock, p, r), n);
   
           if (n == -1)
               return -1;
           else if (n == 0)
               return size - r;
   
           r -= n;
           p += n;
       }
   
       return size - r;
   }
   
   static ssize_t SendBlock(int sock, void* buffer, size_t size)
   {
       size_t r = size;
       char* p = (char*)buffer;
   
       while (r)
       {
           ssize_t n;
           EXECUTOR_RESTART(write(sock, p, r), n);
   
           if (n == -1)
               return -1;
           else if (n == 0)
               return size - r;
   
           r -= n;
           p += n;
       }
   
       return size - r;
   }
   
 #endif /* _Executor_Socket_h */ #endif /* _Executor_Socket_h */


Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2