/* * rhctl * * Copyright (C) 2009-2014 Christian Pointner * * This file is part of rhctl. * * rhctl 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 3 of the License, or * any later version. * * rhctl 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 rhctl. If not, see . */ #ifndef RHCTL_client_list_h_INCLUDED #define RHCTL_client_list_h_INCLUDED #include "datatypes.h" enum client_type_enum { DEFAULT, MASTER, STANDBY, HB_MASTER, HB_STANDBY }; typedef enum client_type_enum client_type_t; char* client_type_tostring(client_type_t); struct client_struct { int fd; client_type_t type; int request_listener; int mode_listener; int status_listener; int gpi_listener; int oc_listener; int relay_listener; int silence_listener; int health_listener; struct client_struct* next; read_buffer_t buffer; }; typedef struct client_struct client_t; int client_add(client_t** first, int fd); void client_remove(client_t** first, int fd); client_t* client_find(client_t* first, int fd); void client_clear(client_t** first); #endif