NEWS update
[paraslash.git] / net.c
diff --git a/net.c b/net.c
index b05f74da69b62d3fd3a25a7ac58633f1628c1249..e7c7724b4143e33ac7fbd7d79ba8ee1c5fd38bdf 100644 (file)
--- a/net.c
+++ b/net.c
@@ -312,9 +312,9 @@ int para_connect(int fd, struct sockaddr_in *their_addr)
 /**
  * paraslash's wrapper around the accept system call
  *
- * @param fd the listening socket
- * @param addr structure which is filled in with the address of the peer socket
- * @param size should contain the size of the structure pointed to by \a addr
+ * \param fd the listening socket
+ * \param addr structure which is filled in with the address of the peer socket
+ * \param size should contain the size of the structure pointed to by \a addr
  *
  * \sa accept(2).
  */
@@ -322,8 +322,10 @@ int para_accept(int fd, void *addr, socklen_t size)
 {
        int new_fd;
 
-       new_fd = accept(fd, (struct sockaddr *) addr, &size);
-       return new_fd == -1? -E_ACCEPT : new_fd;
+       do 
+               new_fd = accept(fd, (struct sockaddr *) addr, &size);
+       while (new_fd < 0 && errno == EINTR);
+       return new_fd < 0? -E_ACCEPT : new_fd;
 }
 
 static int setserversockopts(int socket_fd)
@@ -389,9 +391,6 @@ int create_pf_socket(const char *name, struct sockaddr_un *unix_addr, int mode)
 }
 
 #ifndef HAVE_UCRED
-       struct ucred {
-       uid_t uid, pid, gid;
-};
 ssize_t send_cred_buffer(int sock, char *buf)
 {
        return send_buffer(sock, buf);