00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef CUPSDCONF_H
00021
#define CUPSDCONF_H
00022
00023
#include <qstring.h>
00024
#include <qstringlist.h>
00025
#include <qptrlist.h>
00026
#include <qtextstream.h>
00027
#include <qpair.h>
00028
00029
#include "cupsdcomment.h"
00030
00031
enum LogLevelType { LOGLEVEL_DEBUG2 = 0, LOGLEVEL_DEBUG, LOGLEVEL_INFO, LOGLEVEL_WARN, LOGLEVEL_ERROR, LOGLEVEL_NONE };
00032
enum OrderType { ORDER_ALLOW_DENY = 0, ORDER_DENY_ALLOW };
00033
enum AuthTypeType { AUTHTYPE_NONE = 0, AUTHTYPE_BASIC, AUTHTYPE_DIGEST };
00034
enum AuthClassType { AUTHCLASS_ANONYMOUS = 0, AUTHCLASS_USER, AUTHCLASS_SYSTEM, AUTHCLASS_GROUP };
00035
enum EncryptionType { ENCRYPT_ALWAYS = 0, ENCRYPT_NEVER, ENCRYPT_REQUIRED, ENCRYPT_IFREQUESTED };
00036
enum BrowseProtocolType { BROWSE_ALL = 0, BROWSE_CUPS, BROWSE_SLP };
00037
enum PrintcapFormatType { PRINTCAP_BSD = 0, PRINTCAP_SOLARIS };
00038
enum HostnameLookupType { HOSTNAME_OFF = 0, HOSTNAME_ON, HOSTNAME_DOUBLE };
00039
enum ClassificationType { CLASS_NONE = 0, CLASS_CLASSIFIED, CLASS_CONFIDENTIAL, CLASS_SECRET, CLASS_TOPSECRET, CLASS_UNCLASSIFIED, CLASS_OTHER };
00040
enum SatisfyType { SATISFY_ALL = 0, SATISFY_ANY };
00041
enum UnitType { UNIT_KB = 0, UNIT_MB, UNIT_GB, UNIT_TILE };
00042
00043
struct CupsLocation;
00044
struct CupsResource;
00045
enum ResourceType { RESOURCE_GLOBAL, RESOURCE_PRINTER, RESOURCE_CLASS, RESOURCE_ADMIN };
00046
00047
struct CupsdConf
00048 {
00049
00050 CupsdConf();
00051 ~CupsdConf();
00052
00053
bool loadFromFile(
const QString& filename);
00054
bool saveToFile(
const QString& filename);
00055
bool parseOption(
const QString& line);
00056
bool parseLocation(CupsLocation *location,
QTextStream& file);
00057
00058
bool loadAvailableResources();
00059
00060
static CupsdConf* get();
00061
static void release();
00062
00063
00064
static CupsdConf *unique_;
00065
00066
00067
QString servername_;
00068
QString serveradmin_;
00069
int classification_;
00070
QString otherclassname_;
00071
bool classoverride_;
00072
QString charset_;
00073
QString language_;
00074
QString printcap_;
00075
int printcapformat_;
00076
00077
00078
QString remoteroot_;
00079
QString systemgroup_;
00080
QString encryptcert_;
00081
QString encryptkey_;
00082
QPtrList<CupsLocation> locations_;
00083
QPtrList<CupsResource> resources_;
00084
00085
00086
int hostnamelookup_;
00087
bool keepalive_;
00088
int keepalivetimeout_;
00089
int maxclients_;
00090
QString maxrequestsize_;
00091
int clienttimeout_;
00092
QStringList listenaddresses_;
00093
00094
00095
QString accesslog_;
00096
QString errorlog_;
00097
QString pagelog_;
00098
QString maxlogsize_;
00099
int loglevel_;
00100
00101
00102
bool keepjobhistory_;
00103
bool keepjobfiles_;
00104
bool autopurgejobs_;
00105
int maxjobs_;
00106
int maxjobsperprinter_;
00107
int maxjobsperuser_;
00108
00109
00110
QString user_;
00111
QString group_;
00112
QString ripcache_;
00113
int filterlimit_;
00114
00115
00116
QString datadir_;
00117
QString documentdir_;
00118
QStringList fontpath_;
00119
QString requestdir_;
00120
QString serverbin_;
00121
QString serverfiles_;
00122
QString tmpfiles_;
00123
00124
00125
bool browsing_;
00126
QStringList browseprotocols_;
00127
int browseport_;
00128
int browseinterval_;
00129
int browsetimeout_;
00130
QStringList browseaddresses_;
00131
int browseorder_;
00132
bool useimplicitclasses_;
00133
bool hideimplicitmembers_;
00134
bool useshortnames_;
00135
bool useanyclasses_;
00136
00137
00138 CupsdComment comments_;
00139
00140
00141
QValueList< QPair<QString,QString> > unknown_;
00142 };
00143
00144
struct CupsLocation
00145 {
00146 CupsLocation();
00147 CupsLocation(
const CupsLocation& loc);
00148
00149
bool parseOption(
const QString& line);
00150
bool parseResource(
const QString& line);
00151
00152 CupsResource *resource_;
00153
QString resourcename_;
00154
int authtype_;
00155
int authclass_;
00156
QString authname_;
00157
int encryption_;
00158
int satisfy_;
00159
int order_;
00160
QStringList addresses_;
00161 };
00162
00163
struct CupsResource
00164 {
00165 CupsResource();
00166 CupsResource(
const QString& path);
00167
00168
void setPath(
const QString& path);
00169
00170
int type_;
00171
QString path_;
00172
QString text_;
00173
00174
static QString textToPath(
const QString& text);
00175
static QString pathToText(
const QString& path);
00176
static int typeFromPath(
const QString& path);
00177
static int typeFromText(
const QString& text);
00178
static QString typeToIconName(
int type);
00179 };
00180
00181
#endif