Add the mosx Authors to CREDITS
[paraslash.git] / net.c
diff --git a/net.c b/net.c
index c70c658..66db86b 100644 (file)
--- a/net.c
+++ b/net.c
@@ -39,11 +39,11 @@ static struct crypt_data *crypt_data_array;
  * activate encryption for one file descriptor
  *
  * \param fd the file descriptor
- * \param recv the function used for decrypting received data
- * \param send the function used for encrypting before sending
+ * \param recv_f the function used for decrypting received data
+ * \param send_f the function used for encrypting before sending
  * \param private_data user data supplied by the caller
  */
-void enable_crypt(int fd, crypt_function *recv, crypt_function *send,
+void enable_crypt(int fd, crypt_function *recv_f, crypt_function *send_f,
        void *private_data)
 {
        if (fd + 1 > cda_size) {
@@ -53,8 +53,8 @@ void enable_crypt(int fd, crypt_function *recv, crypt_function *send,
                        (fd + 1 - cda_size) * sizeof(struct crypt_data));
                cda_size = fd + 1;
        }
-       crypt_data_array[fd].recv = recv;
-       crypt_data_array[fd].send = send;
+       crypt_data_array[fd].recv = recv_f;
+       crypt_data_array[fd].send = send_f;
        crypt_data_array[fd].private_data = private_data;
        PARA_INFO_LOG("rc4 encryption activated for fd %d\n", fd);
 }
@@ -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)
@@ -578,8 +580,11 @@ int recv_pattern(int fd, const char *pattern, size_t bufsize)
                goto out;
        ret = 1;
 out:
-       if (ret < 0)
-               PARA_NOTICE_LOG("did not receive pattern '%s'\n", pattern);
+       if (ret < 0) {
+               PARA_NOTICE_LOG("n = %d, did not receive pattern '%s'\n", n, pattern);
+               if (n > 0)
+                       PARA_NOTICE_LOG("recvd: %s\n", buf);
+       }
        free(buf);
        return ret;
 }