a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek/***
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek This file is part of systemd.
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek Copyright 2014 Zbigniew Jędrzejewski-Szmek
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek systemd is free software; you can redistribute it and/or modify it
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek under the terms of the GNU Lesser General Public License as published by
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek the Free Software Foundation; either version 2.1 of the License, or
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek (at your option) any later version.
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek systemd is distributed in the hope that it will be useful, but
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek WITHOUT ANY WARRANTY; without even the implied warranty of
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek Lesser General Public License for more details.
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek You should have received a copy of the GNU Lesser General Public License
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek along with systemd; If not, see <http://www.gnu.org/licenses/>.
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek***/
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek#pragma once
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek#include "sd-event.h"
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek
71d35b6b5563817dfbe757ab9e3b9f018b2db491Thomas Hindoe Paaboel Andersen#include "hashmap.h"
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek#include "journal-remote-parse.h"
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek#include "journal-remote-write.h"
71d35b6b5563817dfbe757ab9e3b9f018b2db491Thomas Hindoe Paaboel Andersen#include "microhttpd-util.h"
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmektypedef struct MHDDaemonWrapper MHDDaemonWrapper;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmekstruct MHDDaemonWrapper {
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek uint64_t fd;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek struct MHD_Daemon *daemon;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek sd_event_source *event;
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek};
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmekstruct RemoteServer {
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek RemoteSource **sources;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek size_t sources_size;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek size_t active;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek sd_event *events;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek sd_event_source *sigterm_event, *sigint_event, *listen_event;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek Hashmap *writers;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek Writer *_single_writer;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek uint64_t event_count;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek bool check_trust;
9ff48d0982fcb97923955685fe9fa4e0e67cb238Zbigniew Jędrzejewski-Szmek Hashmap *daemons;
a812a8816c350261ab1ed6a2583fa4ec09b1eb4dZbigniew Jędrzejewski-Szmek};