[srvx-commits] CVS: services/src chanserv.c,1.360,1.361
                
                Brought to you by:
                
                    entrope
                    
                
            
            
        
        
        
    | 
      
      
      From: Entrope <en...@us...> - 2003-07-08 04:21:23
      
     | 
| Update of /cvsroot/srvx/services/src
In directory sc8-pr-cvs1:/tmp/cvs-serv31361/src
Modified Files:
	chanserv.c 
Log Message:
implement RFE [690254] - nodelete override level
Index: chanserv.c
===================================================================
RCS file: /cvsroot/srvx/services/src/chanserv.c,v
retrieving revision 1.360
retrieving revision 1.361
diff -C2 -r1.360 -r1.361
*** chanserv.c	8 Jul 2003 03:53:17 -0000	1.360
--- chanserv.c	8 Jul 2003 04:21:20 -0000	1.361
***************
*** 54,57 ****
--- 54,58 ----
  #define KEY_NETWORK_HELPER_EPITHET  "network_helper_epithet"
  #define KEY_SUPPORT_HELPER_EPITHET  "support_helper_epithet"
+ #define KEY_NODELETE_LEVEL      "nodelete_level"
  
  /* ChanServ database */
***************
*** 435,438 ****
--- 436,440 ----
      unsigned int 	adjust_delay;
      long	 	channel_expire_delay;
+     unsigned int        nodelete_level;
  
      unsigned int	adjust_threshold;
***************
*** 559,563 ****
  
      if(override && HANDLE_FLAGGED(handle, HELPING)
!        && ((handle->opserv_level > 0) || !IsProtected(channel)))
      {
  	for(uData = helperList;
--- 561,565 ----
  
      if(override && HANDLE_FLAGGED(handle, HELPING)
!        && ((handle->opserv_level >= chanserv_conf.nodelete_level) || !IsProtected(channel)))
      {
  	for(uData = helperList;
***************
*** 2503,2507 ****
      struct userData *actor;
      enum userLevel access, new_access = ulNone;
!     int privileged = IsHelping(user) && ((user->handle_info->opserv_level > 0) || !IsProtected(channel->channel_info));
  
      REQUIRE_PARAMS(3);
--- 2505,2509 ----
      struct userData *actor;
      enum userLevel access, new_access = ulNone;
!     int privileged = IsHelping(user) && ((user->handle_info->opserv_level >= chanserv_conf.nodelete_level) || !IsProtected(channel->channel_info));
  
      REQUIRE_PARAMS(3);
***************
*** 3623,3627 ****
  
      helping = HANDLE_FLAGGED(target_handle, HELPING)
!         && ((target_handle->opserv_level > 0) || !IsProtected(channel->channel_info));
      if((uData = GetTrueChannelAccess(channel->channel_info, target_handle)))
      {
--- 3625,3629 ----
  
      helping = HANDLE_FLAGGED(target_handle, HELPING)
!         && ((target_handle->opserv_level >= chanserv_conf.nodelete_level) || !IsProtected(channel->channel_info));
      if((uData = GetTrueChannelAccess(channel->channel_info, target_handle)))
      {
***************
*** 5446,5450 ****
  static CHANNEL_OPTION_FUNC(opt_nodelete)
  {
!     if((argc > 1) && !IsOper(user))
      {
  	chanserv_notice(user, MSG_SETTING_PRIVILEGED, argv[0]);
--- 5448,5452 ----
  static CHANNEL_OPTION_FUNC(opt_nodelete)
  {
!     if((argc > 1) && (!IsOper(user) || !user->handle_info || (user->handle_info->opserv_level < chanserv_conf.nodelete_level)))
      {
  	chanserv_notice(user, MSG_SETTING_PRIVILEGED, argv[0]);
***************
*** 6641,6644 ****
--- 6643,6648 ----
      str = database_get_data(conf_node, KEY_CHAN_EXPIRE_DELAY, RECDB_QSTRING);
      chanserv_conf.channel_expire_delay = str ? ParseInterval(str) : 86400*30;
+     str = database_get_data(conf_node, KEY_NODELETE_LEVEL, RECDB_QSTRING);
+     chanserv_conf.nodelete_level = str ? atoi(str) : 1;
      str = database_get_data(conf_node, KEY_MAX_CHAN_USERS, RECDB_QSTRING);
      chanserv_conf.max_chan_users = str ? atoi(str) : 512;
 |