function rs_wpss_update_bw_list_keys($list, $keys)
{
    /***
     * Update blacklist or whitelist keys
     * $list - 'white' or 'black'
     ***/
    $opname = array('white' => 'spamshield_whitelist_keys', 'black' => 'blacklist_keys');
    $arr = explode(WPSS_EOL, $keys);
    $tmp = rs_wpss_sort_unique($arr);
    $keys = implode(WPSS_EOL, $tmp);
    update_option($opname[$list], $keys, FALSE);
}
 private function ip_ban_htaccess()
 {
     /***
      * Write the updated list of banned IP's to .htaccess.
      * Added 1.9.4
      ***/
     $hta_bak_dir = WPSS_CONTENT_DIR_PATH . '/backup';
     $hta_wpss_bak_dir = $hta_bak_dir . '/wp-spamshield';
     $hta_file = ABSPATH . '/.htaccess';
     $hta_bak_file = $hta_wpss_bak_dir . '/original.htaccess';
     $wpss_index_file = WPSS_PLUGIN_PATH . '/index.php';
     $bak_dir_hta_file = WPSS_PLUGIN_PATH . '/lib/sec/.htaccess';
     $ip = rs_wpss_get_ip_addr();
     $wpss_ip_ban = get_option('spamshield_ip_ban');
     if (empty($wpss_ip_ban)) {
         return FALSE;
     }
     $wpss_ip_ban = rs_wpss_sort_unique($wpss_ip_ban);
     $banned_ip_count = count($wpss_ip_ban);
     $ip_ban_rgx = '^(' . str_replace(array('.', ':'), array('\\.', '\\:'), implode('|', $wpss_ip_ban)) . ')$';
     $wpss_hta_data = WPSS_EOL . WPSS_EOL . '# BEGIN WP-SpamShield' . WPSS_EOL . WPSS_EOL;
     $wpss_hta_data .= '<IfModule mod_setenvif.c>' . WPSS_EOL . "\t" . 'SetEnvIf Remote_Addr ' . $ip_ban_rgx . ' WPSS_SEC_THREAT' . WPSS_EOL . '</IfModule>';
     $wpss_hta_data .= WPSS_EOL . WPSS_EOL . '# END WP-SpamShield' . WPSS_EOL . WPSS_EOL;
     $wpss_hta_data_wp = '# BEGIN WordPress';
     if (file_exists($hta_file)) {
         if (!file_exists($hta_wpss_bak_dir)) {
             wp_mkdir_p($hta_wpss_bak_dir);
             @chmod($hta_wpss_bak_dir, 0750);
             @chmod($hta_bak_dir, 0750);
             @copy($bak_dir_hta_file, $hta_wpss_bak_dir . '/.htaccess');
             @copy($wpss_index_file, $hta_wpss_bak_dir . '/index.php');
             @copy($bak_dir_hta_file, $hta_bak_dir . '/.htaccess');
             @copy($wpss_index_file, $hta_bak_dir . '/index.php');
         }
         if (!file_exists($hta_bak_file)) {
             @copy($hta_file, $hta_bak_file);
         }
         $hta_contents = file_get_contents($hta_file);
         if (strpos($hta_contents, '# BEGIN WP-SpamShield') !== FALSE && strpos($hta_contents, '# END WP-SpamShield') !== FALSE) {
             $hta_contents_mod = preg_replace("~#\\ BEGIN\\ WP-SpamShield[\\w\\W]+#\\ END\\ WP-SpamShield~i", trim($wpss_hta_data, WPSS_EOL), $hta_contents);
             if ($hta_contents_mod !== $hta_contents) {
                 file_put_contents($hta_file, $hta_contents_mod, LOCK_EX);
             }
         } elseif (strpos($hta_contents, '# BEGIN WordPress') !== FALSE) {
             $hta_contents_mod = preg_replace("~#\\ BEGIN\\ WordPress~i", $wpss_hta_data . $wpss_hta_data_wp, $hta_contents);
             file_put_contents($hta_file, $hta_contents_mod, LOCK_EX);
         } else {
             file_put_contents($hta_file, WPSS_EOL . WPSS_EOL . $wpss_hta_data . WPSS_EOL . WPSS_EOL, FILE_APPEND | LOCK_EX);
         }
         rs_wpss_append_log_data(WPSS_EOL . 'IP address banned and added to .htaccess block list. IP: ' . $ip, FALSE);
     }
 }