***************
*** 56,62 ****
  #include <ctype.h>
  #include <pwd.h>
  #include <setjmp.h>
  #include <syslog.h>
  #include <time.h>
  #include <string.h>
  #include "support/ftw.h"
--- 56,66 ----
  #include <ctype.h>
  #include <pwd.h>
  #include <setjmp.h>
+ #ifdef NSYSLOG
+ #include "nsyslog.h"
+ #else
  #include <syslog.h>
+ #endif
  #include <time.h>
  #include <string.h>
  #include "support/ftw.h"
***************
*** 438,487 ****
      |   SITE SP UMASK check_login SP octal_number CRLF
          = {
              mode_t oldmask;
- 			struct aclmember *entry = NULL;
- 			int ok = 1;
  
              if (log_commands) syslog(LOG_INFO, "SITE UMASK %d", $6);
              if ($4) {
! 				/* check for umask permission */
!     			while (getaclentry("umask", &entry) && ARG0 && ARG1 != NULL) {
! 					if (type_match(ARG1)) 
!           				if (*ARG0 == 'n')  ok = 0;
!     			}
!                 if (ok) {
! 					if (($6 == -1) || ($6 > 0777)) {
!                    		reply(501, "Bad UMASK value");
!                 	} else {
                      	oldmask = umask((mode_t)$6);
                      	reply(200, "UMASK set to %03o (was %03o)", $6, oldmask);
!                 	}
! 				} else 
!                    	reply(553, "Permission denied. (umask)");
              }
          }
      |   SITE SP CHMOD check_login SP octal_number SP pathname CRLF
          = {
- 			struct aclmember *entry = NULL;
- 			int ok = 1;
- 
              if (log_commands) syslog(LOG_INFO, "SITE CHMOD %d %s", $6, $8);
              if ($4 && $6 && $8) {
! 				/* check for chmod permission */
!     			while (getaclentry("chmod", &entry) && ARG0 && ARG1 != NULL) {
! 					if (type_match(ARG1)) 
!           				if (*ARG0 == 'n')  ok = 0;
!     			}
!                 if (ok) {
! 					if ($6 > 0777)
! 						reply(501, 
! 						    "CHMOD: Mode value must be between 0 and 0777");
! 					else if (chmod($8, (mode_t) $6) < 0)
! 						perror_reply(550, $8);
! 					else
! 						reply(200, "CHMOD command successful.");
! 					free($8);
! 				} else
!                    	reply(553, "Permission denied. (chmod)");
              }
          }
      |   SITE SP IDLE CRLF
--- 442,476 ----
      |   SITE SP UMASK check_login SP octal_number CRLF
          = {
              mode_t oldmask;
  
              if (log_commands) syslog(LOG_INFO, "SITE UMASK %d", $6);
              if ($4) {
! 		if (acl_cmd_check("umask", 1)) {
! 		    if (($6 == -1) || ($6 > 0777)) {
! 			reply(501, "Bad UMASK value");
! 		    } else {
                      	oldmask = umask((mode_t)$6);
                      	reply(200, "UMASK set to %03o (was %03o)", $6, oldmask);
! 		    }
! 		} else 
! 		    reply(553, "Permission denied. (umask)");
              }
          }
      |   SITE SP CHMOD check_login SP octal_number SP pathname CRLF
          = {
              if (log_commands) syslog(LOG_INFO, "SITE CHMOD %d %s", $6, $8);
              if ($4 && $6 && $8) {
! 		if (acl_cmd_check("chmod", 1)) {
! 		    if ($6 > 0777)
! 			reply(501, 
! 			      "CHMOD: Mode value must be between 0 and 0777");
! 		    else if (chmod($8, (mode_t) $6) < 0)
! 			perror_reply(550, $8);
! 		    else
! 			reply(200, "CHMOD command successful.");
! 		    free($8);
! 		} else
! 		    reply(553, "Permission denied. (chmod)");
              }
          }
      |   SITE SP IDLE CRLF
