// Frontend: Logging functions for programs using the safcm library // Copyright (C) 2021 Simon Ruderich // // 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 3 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, see . package frontend import ( "ruderich.org/simon/safcm" "ruderich.org/simon/safcm/rpc" ) type Event struct { Host Host // Only one of Error, Log and ConnEvent is set in a single event Error error Log Log ConnEvent rpc.ConnEvent Escaped bool // true if untrusted input is already escaped } type Log struct { Level safcm.LogLevel Text string } func (l *Loop) Log(host Host, level safcm.LogLevel, escaped bool, msg string) { l.events <- Event{ Host: host, Log: Log{ Level: level, Text: msg, }, Escaped: escaped, } }