00001 /* cfengine for GNU 00002 00003 Copyright (C) 1995 00004 Free Software Foundation, Inc. 00005 00006 This file is part of GNU cfengine - written and maintained 00007 by Mark Burgess, Dept of Computing and Engineering, Oslo College, 00008 Dept. of Theoretical physics, University of Oslo 00009 00010 This program is free software; you can redistribute it and/or modify it 00011 under the terms of the GNU General Public License as published by the 00012 Free Software Foundation; either version 2, or (at your option) any 00013 later version. 00014 00015 This program is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 GNU General Public License for more details. 00019 00020 You should have received a copy of the GNU General Public License 00021 along with this program; if not, write to the Free Software 00022 Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ 00023 00024 00025 /*******************************************************************/ 00026 /* */ 00027 /* extern HEADER for cfengine */ 00028 /* */ 00029 /*******************************************************************/ 00030 00031 extern RSA *PRIVKEY, *PUBKEY; 00032 00033 /* cfengine */ 00034 00035 extern char CONTEXTID[32]; 00036 extern char PADCHAR; 00037 extern struct cfagent_connection *CONN; 00038 extern int AUTHENTICATED; 00039 00040 extern char CFLOCK[bufsize]; 00041 extern char CFLOG[bufsize]; 00042 extern char CFLAST[bufsize]; 00043 extern char LOCKDB[bufsize]; 00044 extern char EDITBUFF[bufsize]; 00045 00046 extern char *tzname[2]; 00047 extern char *optarg; 00048 extern int optind; 00049 extern struct option OPTIONS[]; 00050 extern int CFSIGNATURE; 00051 extern char CFDES1[8]; 00052 extern char CFDES2[8]; 00053 extern char CFDES3[8]; 00054 00055 extern char CFPUBKEYFILE[bufsize]; 00056 extern char CFPRIVKEYFILE[bufsize]; 00057 extern char AVDB[1024]; 00058 00059 00060 extern char *VPRECONFIG; 00061 extern char *VRCFILE; 00062 00063 extern char *VARCH; 00064 extern char *VARCH2; 00065 extern char VYEAR[]; 00066 extern char VDAY[]; 00067 extern char VMONTH[]; 00068 extern char VHR[]; 00069 extern char VMINUTE[]; 00070 extern char VSEC[]; 00071 extern char *ACTIONTEXT[]; 00072 extern char *ACTIONID[]; 00073 extern char *BUILTINS[]; 00074 extern char *CLASSTEXT[]; 00075 extern char *CLASSATTRIBUTES[CLSSATTR][ATTRDIM]; 00076 extern char *FILEACTIONTEXT[]; 00077 extern char *COMMATTRIBUTES[]; 00078 extern char VINPUTFILE[]; 00079 extern char *VCANONICALFILE; 00080 extern char VCURRENTFILE[]; 00081 extern char VLOGFILE[]; 00082 extern char *CHDIR; 00083 extern char *VSETUIDLOG; 00084 extern FILE *VLOGFP; 00085 extern char VEDITABORT[]; 00086 extern char LISTSEPARATOR; 00087 extern char REPOSCHAR; 00088 extern char DISCOMP; 00089 extern char USESHELL; 00090 extern char PREVIEW; 00091 extern char PURGE; 00092 extern char CHECKSUM; 00093 extern char COMPRESS; 00094 extern int CHECKSUMUPDATES; 00095 extern int DISABLESIZE; 00096 00097 extern char VLOGDIR[]; 00098 extern char VLOCKDIR[]; 00099 00100 extern struct tm TM1; 00101 extern struct tm TM2; 00102 00103 extern int ERRORCOUNT; 00104 extern int NUMBEROFEDITS; 00105 extern time_t CFSTARTTIME; 00106 extern time_t CFINITSTARTTIME; 00107 extern int CF_TIMEOUT; 00108 00109 extern struct utsname VSYSNAME; 00110 00111 extern int LINENUMBER; 00112 extern mode_t DEFAULTMODE; 00113 extern mode_t DEFAULTSYSTEMMODE; 00114 extern int HAVEUID; 00115 extern char *VUIDNAME; 00116 extern char *VGIDNAME; 00117 extern char CFSERVER[]; 00118 extern char *PROTOCOL[]; 00119 extern char VIPADDRESS[]; 00120 extern char VPREFIX[]; 00121 extern int VRECURSE; 00122 extern int VAGE; 00123 extern int RPCTIMEOUT; 00124 extern char MOUNTMODE; 00125 extern char DELETEDIR; 00126 extern char DELETEFSTAB; 00127 extern char FORCE; 00128 extern char FORCEIPV4; 00129 extern char FORCELINK; 00130 extern char FORCEDIRS; 00131 extern char STEALTH; 00132 extern char PRESERVETIMES; 00133 extern char TRUSTKEY; 00134 extern char FORK; 00135 00136 extern short COMPATIBILITY_MODE; 00137 extern short LINKSILENT; 00138 extern short UPDATEONLY; 00139 extern char LINKTYPE; 00140 extern char AGETYPE; 00141 extern char COPYTYPE; 00142 extern char DEFAULTCOPYTYPE; 00143 extern char LINKDIRS; 00144 extern char LOGP; 00145 extern char INFORMP; 00146 00147 extern char *FILTERNAME; 00148 extern char *STRATEGYNAME; 00149 extern char *CURRENTITEM; 00150 extern char *CURRENTPATH; 00151 extern char *GROUPBUFF; 00152 extern char *ACTIONBUFF; 00153 extern char *CLASSBUFF; 00154 extern char ALLCLASSBUFFER[bufsize]; 00155 extern char CHROOT[bufsize]; 00156 extern char ELSECLASSBUFFER[bufsize]; 00157 extern char FAILOVERBUFFER[bufsize]; 00158 extern char *LINKFROM; 00159 extern char *LINKTO; 00160 extern char *ERROR; 00161 extern char *MOUNTFROM; 00162 extern char *MOUNTONTO; 00163 extern char *MOUNTOPTS; 00164 extern char *DESTINATION; 00165 extern char *IMAGEACTION; 00166 00167 extern char *EXPR; 00168 extern char *CURRENTAUTHPATH; 00169 extern char *RESTART; 00170 extern char *FILTERDATA; 00171 extern char *STRATEGYDATA; 00172 00173 extern short PROSIGNAL; 00174 extern char PROACTION; 00175 extern char PROCOMP; 00176 extern char IMGCOMP; 00177 00178 extern int IMGSIZE; 00179 00180 00181 extern char *CHECKSUMDB; 00182 extern char *COMPRESSCOMMAND; 00183 00184 extern char *HASH[hashtablesize]; 00185 00186 extern char VBUFF[bufsize]; 00187 extern char OUTPUT[bufsize*2]; 00188 00189 extern char VFACULTY[maxvarsize]; 00190 extern char VDOMAIN[maxvarsize]; 00191 extern char VSYSADM[maxvarsize]; 00192 extern char VNETMASK[maxvarsize]; 00193 extern char VBROADCAST[maxvarsize]; 00194 extern char VMAILSERVER[bufsize]; 00195 extern struct Item *VTIMEZONE; 00196 extern char VDEFAULTROUTE[maxvarsize]; 00197 extern char VNFSTYPE[maxvarsize]; 00198 extern char *VREPOSITORY; 00199 extern char *LOCALREPOS; 00200 extern char VIFNAME[16]; 00201 extern char VIFNAMEOVERRIDE[16]; 00202 extern enum classes VSYSTEMHARDCLASS; 00203 extern char VFQNAME[]; 00204 extern char VUQNAME[]; 00205 extern char LOGFILE[]; 00206 00207 extern struct Item *VEXCLUDECACHE; 00208 extern struct Item *VSINGLECOPY; 00209 extern struct Item *VAUTODEFINE; 00210 extern struct Item *VEXCLUDECOPY; 00211 extern struct Item *VEXCLUDELINK; 00212 extern struct Item *VCOPYLINKS; 00213 extern struct Item *VLINKCOPIES; 00214 extern struct Item *VEXCLUDEPARSE; 00215 extern struct Item *VCPLNPARSE; 00216 extern struct Item *VINCLUDEPARSE; 00217 extern struct Item *VIGNOREPARSE; 00218 extern struct Item *VACLBUILD; 00219 extern struct Item *VFILTERBUILD; 00220 extern struct Item *VSTRATEGYBUILD; 00221 00222 extern struct Item *VMOUNTLIST; 00223 extern struct Item *VHEAP; /* Points to the base of the attribute heap */ 00224 extern struct Item *VNEGHEAP; 00225 00226 /* HvB : Bas van der Vlies */ 00227 extern struct Mountables *VMOUNTABLES; /* Points to the list of mountables */ 00228 extern struct Mountables *VMOUNTABLESTOP; 00229 00230 extern struct cfObject *VOBJTOP; 00231 extern struct cfObject *VOBJ; 00232 00233 extern flag MOUNT_RO; /* mount directory readonly */ 00234 00235 extern struct Item *VALERTS; 00236 extern struct Item *VMOUNTED; 00237 extern struct Tidy *VTIDY; /* Points to the list of tidy specs */ 00238 extern struct Disk *VREQUIRED; /* List of required file systems */ 00239 extern struct Disk *VREQUIREDTOP; 00240 extern struct ShellComm *VSCRIPT; /* List of scripts to execute */ 00241 extern struct ShellComm *VSCRIPTTOP; 00242 extern struct Interface *VIFLIST; 00243 extern struct Interface *VIFLISTTOP; 00244 extern struct Mounted *MOUNTED; /* Files systems already mounted */ 00245 extern struct Item VDEFAULTBINSERVER; 00246 extern struct Item *VBINSERVERS; 00247 extern struct Link *VLINK; 00248 extern struct File *VFILE; 00249 extern struct Item *VHOMESERVERS; 00250 extern struct Item *VSETUIDLIST; 00251 extern struct Disable *VDISABLELIST; 00252 extern struct Disable *VDISABLETOP; 00253 extern struct File *VMAKEPATH; 00254 extern struct File *VMAKEPATHTOP; 00255 extern struct Link *VCHLINK; 00256 extern struct Item *VIGNORE; 00257 extern struct Item *VHOMEPATLIST; 00258 extern struct Item *EXTENSIONLIST; 00259 extern struct Item *SUSPICIOUSLIST; 00260 extern struct Item *SCHEDULE; 00261 extern struct Item *SPOOLDIRLIST; 00262 extern struct Item *NONATTACKERLIST; 00263 extern struct Item *MULTICONNLIST; 00264 extern struct Item *TRUSTKEYLIST; 00265 extern struct Item *DHCPLIST; 00266 extern struct Item *ALLOWUSERLIST; 00267 extern struct Item *SKIPVERIFY; 00268 extern struct Item *ATTACKERLIST; 00269 extern struct Item *MOUNTOPTLIST; 00270 extern struct Item *VRESOLVE; 00271 extern struct MiscMount *VMISCMOUNT; 00272 extern struct MiscMount *VMISCMOUNTTOP; 00273 extern struct Item *VIMPORT; 00274 extern struct Item *VACTIONSEQ; 00275 extern struct Item *VACCESSLIST; 00276 extern struct Item *VADDCLASSES; 00277 extern struct Item *VALLADDCLASSES; 00278 extern struct Item *VJUSTACTIONS; 00279 extern struct Item *VAVOIDACTIONS; 00280 extern struct Edit *VEDITLIST; 00281 extern struct Edit *VEDITLISTTOP; 00282 extern struct Filter *VFILTERLIST; 00283 extern struct Filter *VFILTERLISTTOP; 00284 extern struct Strategy *VSTRATEGYLIST; 00285 extern struct Strategy *VSTRATEGYLISTTOP; 00286 00287 extern struct CFACL *VACLLIST; 00288 extern struct CFACL *VACLLISTTOP; 00289 extern struct UnMount *VUNMOUNT; 00290 extern struct UnMount *VUNMOUNTTOP; 00291 extern struct Item *VCLASSDEFINE; 00292 extern struct Image *VIMAGE; 00293 extern struct Image *VIMAGETOP; 00294 extern struct Process *VPROCLIST; 00295 extern struct Process *VPROCTOP; 00296 extern struct Item *VSERVERLIST; 00297 extern struct Item *VREDEFINES; 00298 00299 extern struct Item *VREPOSLIST; 00300 00301 extern struct Auth *VADMIT; 00302 extern struct Auth *VDENY; 00303 extern struct Auth *VADMITTOP; 00304 extern struct Auth *VDENYTOP; 00305 00306 /* Associated variables which simplify logic */ 00307 00308 extern struct Link *VLINKTOP; 00309 extern struct Link *VCHLINKTOP; 00310 extern struct Tidy *VTIDYTOP; 00311 extern struct File *VFILETOP; 00312 00313 extern char *COPYRIGHT; 00314 00315 extern short DEBUG; 00316 extern short D1; 00317 extern short D2; 00318 extern short D3; 00319 00320 extern short PARSING; 00321 extern short ISCFENGINE; 00322 00323 extern short VERBOSE; 00324 extern short EXCLAIM; 00325 extern short INFORM; 00326 extern short CHECK; 00327 00328 extern short LOGGING; 00329 extern short INFORM_save; 00330 extern short LOGGING_save; 00331 extern short CFPARANOID; 00332 extern short SHOWACTIONS; 00333 extern short LOGTIDYHOMEFILES; 00334 00335 extern short TIDYDIRS; 00336 extern short TRAVLINKS; 00337 extern short DEADLINKS; 00338 extern short PTRAVLINKS; 00339 extern short DONTDO; 00340 extern short IFCONF; 00341 extern short PARSEONLY; 00342 extern short GOTMOUNTINFO; 00343 extern short NOMOUNTS; 00344 extern short NOMODULES; 00345 extern short NOPROCS; 00346 extern short NOFILECHECK; 00347 extern short NOTIDY; 00348 extern short NOSCRIPTS; 00349 extern short PRSYSADM; 00350 extern short PRMAILSERVER; 00351 extern short MOUNTCHECK; 00352 extern short NOEDITS; 00353 extern short KILLOLDLINKS; 00354 extern short IGNORELOCK; 00355 extern short NOPRECONFIG; 00356 extern short WARNINGS; 00357 extern short NONALPHAFILES; 00358 extern short MINUSF; 00359 extern short NOLINKS; 00360 extern short ENFORCELINKS; 00361 extern short NOCOPY; 00362 extern short FORCENETCOPY; 00363 extern short SILENT; 00364 extern short EDITVERBOSE; 00365 extern char IMAGEBACKUP; 00366 extern short ROTATE; 00367 extern int TIDYSIZE; 00368 extern short USEENVIRON; 00369 extern short PROMATCHES; 00370 extern short EDABORTMODE; 00371 extern short NOPROCS; 00372 extern short UNDERSCORE_CLASSES; 00373 extern short NOHARDCLASSES; 00374 extern short NOSPLAY; 00375 extern short DONESPLAY; 00376 extern char TYPECHECK; 00377 00378 extern enum actions ACTION; 00379 extern enum vnames CONTROLVAR; 00380 00381 extern mode_t PLUSMASK; 00382 extern mode_t MINUSMASK; 00383 00384 extern u_long PLUSFLAG; 00385 extern u_long MINUSFLAG; 00386 00387 extern flag ACTION_IS_LINK; 00388 extern flag ACTION_IS_LINKCHILDREN; 00389 extern flag MOUNT_ONTO; 00390 extern flag MOUNT_FROM; 00391 extern flag HAVE_RESTART; 00392 extern flag ACTIONPENDING; 00393 extern flag HOMECOPY; 00394 extern char ENCRYPT; 00395 extern char VERIFY; 00396 extern char COMPATIBILITY; 00397 00398 extern char *VPSCOMM[]; 00399 extern char *VPSOPTS[]; 00400 extern char *VMOUNTCOMM[]; 00401 extern char *VMOUNTOPTS[]; 00402 extern char *VIFDEV[]; 00403 extern char *VETCSHELLS[]; 00404 extern char *VRESOLVCONF[]; 00405 extern char *VHOSTEQUIV[]; 00406 extern char *VFSTAB[]; 00407 extern char *VMAILDIR[]; 00408 extern char *VNETSTAT[]; 00409 extern char *VFILECOMM[]; 00410 extern char *ACTIONSEQTEXT[]; 00411 extern char *VEDITNAMES[]; 00412 extern char *VFILTERNAMES[]; 00413 extern char *VUNMOUNTCOMM[]; 00414 extern char *VRESOURCES[]; 00415 00416 extern int VTIMEOUT; 00417 extern mode_t UMASK; 00418 00419 extern char *SIGNALS[]; 00420 00421 extern char *tzname[2]; /* see man ctime */ 00422 00423 extern int SENSIBLEFILECOUNT; 00424 extern int SENSIBLEFSSIZE; 00425 extern int EDITFILESIZE; 00426 extern int EDITBINFILESIZE; 00427 extern int VIFELAPSED; 00428 extern int VEXPIREAFTER; 00429 extern int VDEFAULTIFELAPSED; 00430 extern int VDEFAULTEXPIREAFTER; 00431 extern int AUTOCREATED; 00432 00433 extern enum fileactions FILEACTION; 00434 00435 extern unsigned short PORTNUMBER; 00436 00437 extern int CURRENTLINENUMBER; 00438 extern struct Item *CURRENTLINEPTR; 00439 00440 extern int EDITGROUPLEVEL; 00441 extern int SEARCHREPLACELEVEL; 00442 extern int FOREACHLEVEL; 00443 00444 extern char COMMENTSTART[], COMMENTEND[]; 00445 00446 /* GNU REGEXP */ 00447 00448 extern struct re_pattern_buffer *SEARCHPATTBUFF; 00449 extern struct re_pattern_buffer *PATTBUFFER;