[GLUE] Rsync SAMBA_3_2_0 SVN r25598 in order to create the v3-2-test branch.
[samba.git] / source / lib / util_sock.c
index f77fcc9968bb5a9a39ed3e06baa79b5cc24de507..1508ddfce34ec0a733ec06a105e928f1afbd6408 100644 (file)
@@ -70,7 +70,12 @@ static char *get_socket_addr(int fd)
        socklen_t length = sizeof(sa);
        static char addr_buf[INET6_ADDRSTRLEN];
 
-       addr_buf[0] = '\0';
+       /* Ok, returning a hard coded IPv4 address
+        * is bogus, but it's just as bogus as a
+        * zero IPv6 address. No good choice here.
+        */
+
+       safe_strcpy(addr_buf, "0.0.0.0", sizeof(addr_buf)-1);
 
        if (fd == -1) {
                return addr_buf;
@@ -810,19 +815,6 @@ BOOL receive_smb(int fd, char *buffer, unsigned int timeout)
                return False;
        }
 
-       if (srv_encryption_on()) {
-               NTSTATUS status = srv_decrypt_buffer(buffer);
-               if (!NT_STATUS_IS_OK(status)) {
-                       DEBUG(0, ("receive_smb: SMB decryption failed "
-                               "on incoming packet! Error %s\n",
-                               nt_errstr(status) ));
-                       if (smb_read_error == 0) {
-                               smb_read_error = READ_BAD_DECRYPT;
-                       }
-                       return False;
-               }
-       }
-
        /* Check the incoming SMB signature. */
        if (!srv_check_sign_mac(buffer, True)) {
                DEBUG(0, ("receive_smb: SMB Signature verification "
@@ -847,19 +839,6 @@ ssize_t receive_smb_talloc(TALLOC_CTX *mem_ctx, int fd, char **buffer,
                return -1;
        }
 
-       if (srv_encryption_on()) {
-               NTSTATUS status = srv_decrypt_buffer(*buffer);
-               if (!NT_STATUS_IS_OK(status)) {
-                       DEBUG(0, ("receive_smb: SMB decryption failed on "
-                                 "incoming packet! Error %s\n",
-                                 nt_errstr(status) ));
-                       if (smb_read_error == 0) {
-                               smb_read_error = READ_BAD_DECRYPT;
-                       }
-                       return -1;
-               }
-       }
-
        /* Check the incoming SMB signature. */
        if (!srv_check_sign_mac(*buffer, True)) {
                DEBUG(0, ("receive_smb: SMB Signature verification failed on "
@@ -882,35 +861,22 @@ BOOL send_smb(int fd, char *buffer)
        size_t len;
        size_t nwritten=0;
        ssize_t ret;
-       char *buf_out = buffer;
 
        /* Sign the outgoing packet if required. */
-       srv_calculate_sign_mac(buf_out);
-
-       if (srv_encryption_on()) {
-               NTSTATUS status = srv_encrypt_buffer(buffer, &buf_out);
-               if (!NT_STATUS_IS_OK(status)) {
-                       DEBUG(0, ("send_smb: SMB encryption failed "
-                               "on outgoing packet! Error %s\n",
-                               nt_errstr(status) ));
-                       return False;
-               }
-       }
+       srv_calculate_sign_mac(buffer);
 
-       len = smb_len(buf_out) + 4;
+       len = smb_len(buffer) + 4;
 
        while (nwritten < len) {
-               ret = write_data(fd,buf_out+nwritten,len - nwritten);
+               ret = write_data(fd,buffer+nwritten,len - nwritten);
                if (ret <= 0) {
                        DEBUG(0,("Error writing %d bytes to client. %d. (%s)\n",
                                (int)len,(int)ret, strerror(errno) ));
-                       srv_free_enc_buffer(buf_out);
                        return False;
                }
                nwritten += ret;
        }
 
-       srv_free_enc_buffer(buf_out);
        return True;
 }