/************************************************************************* * * HTCd - Copyright (C) 1998-2006 Henrik Rydberg * * 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 St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef HTCH #define HTCH #include #include #include /////////////////////////////////////////////////// mstring Cwd(); const mstring USERMAP=htchome()+sref("/htc/users.hdb"); /////////////////////////////////////////////////// struct HTC : public Lang { fp_stream syslog; mstring docroot,username; mstring host,domain,mailer; IPnode node; int port; HTC(const sref& root); ~HTC(); void setHost(const sref& s); void setDomain(const sref& s); void setPort(int p); void setMailer(const sref& s); }; /////////////////////////////////////////////////// struct htc_user { tokmap toks; htc_user(tokmap& p); }; /////////////////////////////////////////////////// struct htc_req : public req_env { mstring group; user_t user; HTC* htc() { return (HTC*)glob; } htc_req(HTC& g,tokmap& p); }; inline htc_req* Req(Env& env) { return (htc_req*)env.req; } inline const sref& DocRoot(Env& env) { return Req(env)->htc()->docroot; } inline mstring DocPath(Env& env,const sref& uri) { return DocRoot(env)+env.URI(uri); } /////////////////////////////////////////////////// #endif