/* * This file is part of uIRCd. (https://git.redxen.eu/caskd/uIRCd) * Copyright (c) 2019, 2020 Alex-David Denes * * uIRCd 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. * * uIRCd 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 uIRCd. If not, see . */ #include "limits.h" #include // bool #include // size_t ssize_t #ifndef UIRCD_GUARD_BUFFER #define UIRCD_GUARD_BUFFER typedef struct { char #ifdef UIRCD_RELAXED_RFC * buffer #else /* UIRCD_RELAXED_RFC */ buffer[UIRCD_LIMITS_LINE + 1] #endif /* UIRCD_RELAXED_RFC */ ; size_t append_pos, csize; int fd; } Buffer_Info; ssize_t get_buffer_line(char* buf); ssize_t flush_buffer(char* buf, size_t buflen, int fd); ssize_t read_buffer(Buffer_Info* buf); int reset_buffer(Buffer_Info* buf, short clr_fd); #endif /* UIRCD_GUARD_BUFFER */