X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=net.c;h=e7c7724b4143e33ac7fbd7d79ba8ee1c5fd38bdf;hp=b05f74da69b62d3fd3a25a7ac58633f1628c1249;hb=c4012aab461993e6c8a9930d27d924a8462a9775;hpb=8a8cd0f5bb40dcfad68608193e8c57decd90b25e diff --git a/net.c b/net.c index b05f74da..e7c7724b 100644 --- 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);