1/* policy.h 2 Configuration file for policy decisions. To be edited on site. 3 4 Copyright (C) 1991, 1992, 1993, 1994, 1995 Ian Lance Taylor 5 6 This file is part of the Taylor UUCP package. 7 8 This program is free software; you can redistribute it and/or 9 modify it under the terms of the GNU General Public License as 10 published by the Free Software Foundation; either version 2 of the 11 License, or (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, but 14 WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program; if not, write to the Free Software 20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 21 22 The author of the program may be contacted at ian@airs.com. 23 */ 24 25/* This header file contains macro definitions which must be set by 26 each site before compilation. The first few are system 27 characteristics that can not be easily discovered by the 28 configuration script. Most are configuration decisions that must 29 be made by the local administrator. */ 30 31/* System characteristics. */ 32 33/* This code tries to use several ANSI C features, including 34 prototypes, stdarg.h, the const qualifier and the types void 35 (including void * pointers) and unsigned char. By default it will 36 use these features if the compiler defines __STDC__. If your 37 compiler supports these features but does not define __STDC__, you 38 should set ANSI_C to 1. If your compiler does not support these 39 features but defines __STDC__ (no compiler should do this, in my 40 opinion), you should set ANSI_C to 0. In most cases (or if you're 41 not sure) just leave the line below commented out. */ 42/* #define ANSI_C 1 */ 43 44/* Set USE_STDIO to 1 if data files should be read using the stdio 45 routines (fopen, fread, etc.) rather than the UNIX unbuffered I/O 46 calls (open, read, etc.). Unless you know your stdio is really 47 rotten, you should leave this as 1. */ 48#define USE_STDIO 1 49 50/* Exactly one of the following macros must be set to 1. Many modern 51 systems support more than one of these choices through some form of 52 compilation environment, in which case the setting will depend on 53 the compilation environment you use. If you have a reasonable 54 choice between options, I suspect that TERMIO or TERMIOS will be 55 more efficient than TTY, but I have not done any head to head 56 comparisons. 57 58 If you don't set any of these macros, the code below will guess. 59 It will doubtless be wrong on some systems. 60 61 HAVE_BSD_TTY -- Use the 4.2BSD tty routines 62 HAVE_SYSV_TERMIO -- Use the System V termio routines 63 HAVE_POSIX_TERMIOS -- Use the POSIX termios routines 64 */ 65#define HAVE_BSD_TTY 0 66#define HAVE_SYSV_TERMIO 0 67#define HAVE_POSIX_TERMIOS 0 68 69/* This code tries to guess which terminal driver to use if you did 70 not make a choice above. It is in this file to make it easy to 71 figure out what's happening if something goes wrong. */ 72 73#if HAVE_BSD_TTY + HAVE_SYSV_TERMIO + HAVE_POSIX_TERMIOS == 0 74#if HAVE_TERMIOS_H 75#undef HAVE_POSIX_TERMIOS 76#define HAVE_POSIX_TERMIOS 1 77#else /* ! HAVE_TERMIOS_H */ 78#if HAVE_CBREAK 79#undef HAVE_BSD_TTY 80#define HAVE_BSD_TTY 1 81#else /* ! HAVE_CBREAK */ 82#undef HAVE_SYSV_TERMIO 83#define HAVE_SYSV_TERMIO 1 84#endif /* ! HAVE_CBREAK */ 85#endif /* ! HAVE_TERMIOS_H */ 86#endif /* HAVE_BSD_TTY + HAVE_SYSV_TERMIO + HAVE_POSIX_TERMIOS == 0 */ 87 88/* On some systems a write to a serial port will block even if the 89 file descriptor has been set to not block. File transfer can be 90 more efficient if the package knows that a write to the serial port 91 will not block; however, if the write does block unexpectedly then 92 data loss is possible at high speeds. 93 94 If writes to a serial port always block even when requested not to, 95 you should set HAVE_UNBLOCKED_WRITES to 0; otherwise you should set 96 it to 1. In general on System V releases without STREAMS-based 97 ttys (e.g., before SVR4) HAVE_UNBLOCKED_WRITES should be 0 and on 98 modern systems it should be 1. 99 100 If HAVE_UNBLOCKED_WRITES is set to 1 when it should be 0 you may 101 see an unexpectedly large number of transmission errors, or, if you 102 have hardware handshaking, transfer times may be lower than 103 expected (but then, they always are). If HAVE_UNBLOCKED_WRITES is 104 set to 0 when it should be 1, file transfer will use more CPU time 105 than necessary. If you are unsure, setting HAVE_UNBLOCKED_WRITES 106 to 0 should always be safe. */ 107#define HAVE_UNBLOCKED_WRITES 1 108 109/* When the code does do a blocking write, it wants to write the 110 largest amount of data which the kernel will accept as a single 111 unit. On BSD this is typically the value of OBUFSIZ in 112 <sys/tty.h>, usually 100. On System V before SVR4 this is 113 typically the size of a clist, CLSIZE in <sys/tty.h>, which is 114 usually 64. On SVR4, which uses STREAMS-based ttys, 2048 is 115 reasonable. Define SINGLE_WRITE to the correct value for your 116 system. If SINGLE_WRITE is too large, data loss may occur. If 117 SINGLE_WRITE is too small, file transfer will use more CPU time 118 than necessary. If you have no idea, 64 should work on most modern 119 systems. */ 120#define SINGLE_WRITE 64 121 122/* Some tty drivers, such as those from SCO and AT&T's Unix PC, have a 123 bug in the implementation of ioctl() that causes CLOCAL to be 124 ineffective until the port is opened a second time. If 125 HAVE_CLOCAL_BUG is set to 1, code will be added to do this second 126 open on the port. Set this if you are getting messages that say 127 "Line disconnected" while in the dial chat script after only 128 writing the first few characters to the port. This bug causes the 129 resetting of CLOCAL to have no effect, so the "\m" (require 130 carrier) escape sequence won't function properly in dialer chat 131 scripts. */ 132#define HAVE_CLOCAL_BUG 0 133 134/* On some systems, such as SCO Xenix, resetting DTR on a port 135 apparently prevents getty from working on the port, and thus 136 prevents anybody from dialing in. If HAVE_RESET_BUG is set to 1, 137 DTR will not be reset when a serial port is closed. */ 138#define HAVE_RESET_BUG 0 139 140/* The Sony NEWS reportedly handles no parity by clearing both the odd 141 and even parity bits in the sgtty structure, unlike most BSD based 142 systems in which no parity is indicated by setting both the odd and 143 even parity bits. Setting HAVE_PARITY_BUG to 1 will handle this 144 correctly. */ 145#define HAVE_PARITY_BUG 0 146 147#if HAVE_BSD_TTY 148#ifdef sony 149#undef HAVE_PARITY_BUG 150#define HAVE_PARITY_BUG 1 151#endif 152#endif 153 154/* On Ultrix 4.0, at least, setting CBREAK causes input characters to 155 be stripped, regardless of the setting of LPASS8 and LLITOUT. This 156 can be worked around by using the termio call to reset ISTRIP. 157 This probably does not apply to any other operating system. 158 Setting HAVE_STRIP_BUG to 1 will use this workaround. */ 159#define HAVE_STRIP_BUG 0 160 161#if HAVE_BSD_TTY 162#ifdef __ultrix__ 163#ifndef ultrix 164#define ultrix 165#endif 166#endif 167#ifdef ultrix 168#undef HAVE_STRIP_BUG 169#define HAVE_STRIP_BUG 1 170#endif 171#endif 172 173/* If your system implements full duplex pipes, set 174 HAVE_FULLDUPLEX_PIPES to 1. Everything should work fine if you 175 leave it set to 0, but setting it to 1 can be slightly more 176 efficient. */ 177#define HAVE_FULLDUPLEX_PIPES 0 178 179/* TIMES_TICK is the fraction of a second which times(2) returns (for 180 example, if times returns 100ths of a second TIMES_TICK should be 181 set to 100). On a true POSIX system (one which has the sysconf 182 function and also has _SC_CLK_TCK defined in <unistd.h>) TIMES_TICK 183 may simply be left as 0. On some systems the environment variable 184 HZ is what you want for TIMES_TICK, but on some other systems HZ 185 has the wrong value; check the man page. If you leave this set to 186 0, the code will try to guess; it will doubtless be wrong on some 187 non-POSIX systems. If TIMES_TICK is wrong the code may report 188 incorrect file transfer times in the statistics file, but on many 189 systems times(2) will actually not be used and this value will not 190 matter at all. */ 191#define TIMES_TICK 0 192 193/* If your system does not support saved set user ID, set 194 HAVE_SAVED_SETUID to 0. However, this is ignored if your system 195 has the setreuid function. Most modern Unixes have one or the 196 other. If your system has the setreuid function, don't worry about 197 this define, or about the following discussion. 198 199 If you set HAVE_SAVED_SETUID to 0, you will not be able to use uucp 200 to transfer files that the uucp user can not read. Basically, you 201 will only be able to use uucp on world-readable files. If you set 202 HAVE_SAVED_SETUID to 1, but your system does not have saved set 203 user ID, uucp will fail with an error message whenever anybody 204 other than the uucp user uses it. */ 205#define HAVE_SAVED_SETUID 1 206 207/* On some systems, such as 4.4BSD-Lite, NetBSD, the DG Aviion and, 208 possibly, the RS/6000, the setreuid function is broken. It should 209 be possible to use setreuid to swap the real and effective user 210 ID's, but on some systems it will not change the real user ID (I 211 believe this is due to a misreading of the POSIX standard). On 212 such a system you must set HAVE_BROKEN_SETREUID to 1; if you do 213 not, you will get error messages from setreuid. Systems on which 214 setreuid exists but is broken pretty much always have saved setuid. */ 215#define HAVE_BROKEN_SETREUID 1 216 217/* On a few systems, such as NextStep 3.3, the POSIX macro F_SETLKW is 218 defined, but does not work. On such systems, you must set 219 HAVE_BROKEN_SETLKW to 1. If you do not, uux will hang, or log 220 peculiar error messages, every time it is run. */ 221#define HAVE_BROKEN_SETLKW 1 222 223/* On the 3B2, and possibly other systems, nap takes an argument in 224 hundredths of a second rather than milliseconds. I don't know of 225 any way to test for this. Set HAVE_HUNDREDTHS_NAP to 1 if this is 226 true on your system. This does not matter if your system does not 227 have the nap function. */ 228#define HAVE_HUNDREDTHS_NAP 0 229 230/* Set MAIL_PROGRAM to a program which can be used to send mail. It 231 will be used for mail to both local and remote users. Set 232 MAIL_PROGRAM_TO_BODY to 1 if the recipient should be specified as a 233 To: line in the body of the message; otherwise, the recipient will 234 be provided as an argument to MAIL_PROGRAM. Set 235 MAIL_PROGRAM_SUBJECT_BODY if the subject should be specified as a 236 Subject: line in the body of the message; otherwise, the subject 237 will be provided using the -s option to MAIL_PROGRAM (if your mail 238 program does not support the -s option, you must set 239 MAIL_PROGRAM_SUBJECT_BODY to 1). If your system uses sendmail, use 240 the sendmail choice below. Otherwise, select one of the other 241 choices as appropriate. */ 242#if 1 243/* #define MAIL_PROGRAM "/usr/lib/sendmail -t" */ 244#define MAIL_PROGRAM "/usr/sbin/sendmail -t" 245#define MAIL_PROGRAM_TO_BODY 1 246#define MAIL_PROGRAM_SUBJECT_BODY 1 247#endif 248#if 0 249#define MAIL_PROGRAM "/usr/ucb/mail" 250#define MAIL_PROGRAM_TO_BODY 0 251#define MAIL_PROGRAM_SUBJECT_BODY 0 252#endif 253#if 0 254#define MAIL_PROGRAM "/bin/mail" 255#define MAIL_PROGRAM_TO_BODY 0 256#define MAIL_PROGRAM_SUBJECT_BODY 1 257#endif 258 259/* Set PS_PROGRAM to the program to run to get a process status, 260 including the arguments to pass it. This is used by ``uustat -p''. 261 Set HAVE_PS_MULTIPLE to 1 if a comma separated list of process 262 numbers may be appended (e.g. ``ps -flp1,10,100''). Otherwise ps 263 will be invoked several times, with a single process number append 264 each time. The default definitions should work on most systems, 265 although some (such as the NeXT) will complain about the 'p' 266 option; for those, use the second set of definitions. The third 267 set of definitions are appropriate for System V. To use the second 268 or third set of definitions, change the ``#if 1'' to ``#if 0'' and 269 change the appropriate ``#if 0'' to ``#if 1''. */ 270#if 1 271#define PS_PROGRAM "/bin/ps -lp" 272#define HAVE_PS_MULTIPLE 0 273#endif 274#if 0 275#define PS_PROGRAM "/bin/ps -l" 276#define HAVE_PS_MULTIPLE 0 277#endif 278#if 0 279#define PS_PROGRAM "/bin/ps -flp" 280#define HAVE_PS_MULTIPLE 1 281#endif 282#ifdef __QNX__ 283/* Use this for QNX, along with HAVE_QNX_LOCKFILES. */ 284#undef PS_PROGRAM 285#undef HAVE_PS_MULTIPLE 286#define PS_PROGRAM "/bin/ps -l -n -p" 287#define HAVE_PS_MULTIPLE 0 288#endif 289 290/* If you use other programs that also lock devices, such as cu or 291 uugetty, the other programs and UUCP must agree on whether a device 292 is locked. This is typically done by creating a lock file in a 293 specific directory; the lock files are generally named 294 LCK..something or LK.something. If the LOCKDIR macro is defined, 295 these lock files will be placed in the named directory; otherwise 296 they will be placed in the default spool directory. On some HDB 297 systems the lock files are placed in /etc/locks. On some they are 298 placed in /usr/spool/locks. On the NeXT they are placed in 299 /usr/spool/uucp/LCK. */ 300/* #define LOCKDIR "/usr/spool/uucp" */ 301/* #define LOCKDIR "/etc/locks" */ 302/* #define LOCKDIR "/usr/spool/locks" */ 303/* #define LOCKDIR "/usr/spool/uucp/LCK" */ 304/* #define LOCKDIR "/var/spool/lock" */ 305/* #define LOCKDIR "/var/lock" */ 306 307/* You must also specify the format of the lock files by setting 308 exactly one of the following macros to 1. Check an existing lock 309 file to decide which of these choices is more appropriate. 310 311 The HDB style is to write the locking process ID in ASCII, passed 312 to ten characters, followed by a newline. 313 314 The V2 style is to write the locking process ID as four binary 315 bytes in the host byte order. Many BSD derived systems use this 316 type of lock file, including the NeXT. 317 318 SCO lock files are similar to HDB lock files, but always lock the 319 lowercase version of the tty (i.e., LCK..tty2a is created if you 320 are locking tty2A). They are appropriate if you are using Taylor 321 UUCP on an SCO Unix, SCO Xenix, or SCO Open Desktop system. 322 323 SVR4 lock files are also similar to HDB lock files, but they use a 324 different naming convention. The filenames are LK.xxx.yyy.zzz, 325 where xxx is the major device number of the device holding the 326 special device file, yyy is the major device number of the port 327 device itself, and zzz is the minor device number of the port 328 device. 329 330 Sequent DYNIX/ptx (but perhaps not Dynix 3.x) uses yet another 331 naming convention. The lock file for /dev/ttyXA/XAAP is named 332 LCK..ttyXAAP. 333 334 Coherent use a completely different method of terminal locking. 335 See unix/cohtty for details. For locks other than for terminals, 336 HDB type lock files are used. 337 338 QNX lock files are similar to HDB lock files except that the node 339 ID must be stored in addition to the process ID and for serial 340 devices the node ID must be included in the lock file name. QNX 341 boxes are generally used in bunches, and all of them behave like 342 one big machine to some extent. Thus, processes on different 343 machines will be sharing the files in the spool directory. To 344 detect if a process has died and a lock is thus stale, you need the 345 node ID of the process as well as the process ID. The process ID 346 is stored as a number written using ASCII digits padded to 10 347 characters, followed by a space, followed by the node ID written 348 using ASCII digits padded to 10 characters, followed by a newline. 349 The format for QNX lock files was made up just for Taylor UUCP. 350 QNX doesn't come with a version of UUCP. */ 351#define HAVE_V2_LOCKFILES 0 352#define HAVE_HDB_LOCKFILES 0 353#define HAVE_SCO_LOCKFILES 0 354#define HAVE_SVR4_LOCKFILES 0 355#define HAVE_SEQUENT_LOCKFILES 0 356#define HAVE_COHERENT_LOCKFILES 0 357#define HAVE_QNX_LOCKFILES 0 358 359/* This tries to pick a default based on preprocessor definitions. 360 Ignore it if you have explicitly set one of the above values. */ 361#if HAVE_V2_LOCKFILES + HAVE_HDB_LOCKFILES + HAVE_SCO_LOCKFILES + HAVE_SVR4_LOCKFILES + HAVE_SEQUENT_LOCKFILES + HAVE_COHERENT_LOCKFILES + HAVE_QNX_LOCKFILES == 0 362#ifdef __QNX__ 363#undef HAVE_QNX_LOCKFILES 364#define HAVE_QNX_LOCKFILES 1 365#else /* ! defined (__QNX__) */ 366#ifdef __COHERENT__ 367#undef HAVE_COHERENT_LOCKFILES 368#define HAVE_COHERENT_LOCKFILES 1 369#else /* ! defined (__COHERENT__) */ 370#ifdef _SEQUENT_ 371#undef HAVE_SEQUENT_LOCKFILES 372#define HAVE_SEQUENT_LOCKFILES 1 373#else /* ! defined (_SEQUENT) */ 374#ifdef sco 375#undef HAVE_SCO_LOCKFILES 376#define HAVE_SCO_LOCKFILES 1 377#else /* ! defined (sco) */ 378#ifdef __svr4__ 379#undef HAVE_SVR4_LOCKFILES 380#define HAVE_SVR4_LOCKFILES 1 381#else /* ! defined (__svr4__) */ 382/* Final default is HDB. There's no way to tell V2 from HDB. */ 383#undef HAVE_HDB_LOCKFILES 384#define HAVE_HDB_LOCKFILES 1 385#endif /* ! defined (__svr4__) */ 386#endif /* ! defined (sco) */ 387#endif /* ! defined (_SEQUENT) */ 388#endif /* ! defined (__COHERENT__) */ 389#endif /* ! defined (__QNX__) */ 390#endif /* no LOCKFILES define */ 391 392/* If your system supports Internet mail addresses (which look like 393 user@host.domain rather than system!user), HAVE_INTERNET_MAIL 394 should be set to 1. This is checked by uuxqt and uustat when 395 sending notifications to the person who submitted the job. 396 397 If your system does not understand addresses of the form user@host, 398 you must set HAVE_INTERNET_MAIL to 0. 399 400 If your system does not understand addresses of the form host!user, 401 which is unlikely, you must set HAVE_INTERNET_MAIL to 1. 402 403 If your system sends mail addressed to "A!B@C" to host C (i.e., it 404 parses the address as "(A!B)@C"), you must set HAVE_INTERNET_MAIL 405 to 1. 406 407 If your system sends mail addressed to "A!B@C" to host A (i.e., it 408 parses the address as "A!(B@C)"), you must set HAVE_INTERNET_MAIL 409 to 0. 410 411 Note that in general it is best to avoid addresses of the form 412 "A!B@C" because of this ambiguity of precedence. UUCP will not 413 intentionally generate addresses of this form, but it can occur in 414 certain rather complex cases. */ 415#define HAVE_INTERNET_MAIL 1 416 417/* Adminstrative decisions. */ 418 419/* Set USE_RCS_ID to 1 if you want the RCS ID strings compiled into 420 the executable. Leaving them out will decrease the executable 421 size. Leaving them in will make it easier to determine which 422 version you are running. */ 423#define USE_RCS_ID 1 424 425/* DEBUG controls how much debugging information is compiled into the 426 code. If DEBUG is defined as 0, no sanity checks will be done and 427 no debugging messages will be compiled in. If DEBUG is defined as 428 1 sanity checks will be done but there will still be no debugging 429 messages. If DEBUG is 2 than debugging messages will be compiled 430 in. When initially testing, DEBUG should be 2, and you should 431 probably leave it at 2 unless a small reduction in the executable 432 file size will be very helpful. */ 433#define DEBUG 2 434 435/* Set HAVE_ENCRYPTED_PASSWORDS to 1 if you want login passwords to be 436 encrypted before comparing them against the values in the file. 437 This only applies when uucico is run with the -l or -e switches and 438 is doing its own login prompting. Note that the passwords used are 439 from the UUCP password file, not the system /etc/passwd file. See 440 the documentation for further details. If you set this, you are 441 responsible for encrypting the passwords in the UUCP password file. 442 The function crypt will be used to do comparisons. */ 443#define HAVE_ENCRYPTED_PASSWORDS 0 444 445/* Set the default grade to use for a uucp command if the -g option is 446 not used. The grades, from highest to lowest, are 0 to 9, A to Z, 447 a to z. */ 448#define BDEFAULT_UUCP_GRADE ('N') 449 450/* Set the default grade to use for a uux command if the -g option is 451 not used. */ 452#define BDEFAULT_UUX_GRADE ('N') 453 454/* To compile in use of the new style of configuration files described 455 in the documentation, set HAVE_TAYLOR_CONFIG to 1. */ 456#define HAVE_TAYLOR_CONFIG 1 457 458/* To compile in use of V2 style configuration files (L.sys, L-devices 459 and so on), set HAVE_V2_CONFIG to 1. To compile in use of HDB 460 style configuration files (Systems, Devices and so on) set 461 HAVE_HDB_CONFIG to 1. The files will be looked up in the 462 oldconfigdir directory as defined in the Makefile. 463 464 You may set any or all of HAVE_TAYLOR_CONFIG, HAVE_V2_CONFIG and 465 HAVE_HDB_CONFIG to 1 (you must set at least one of the macros). 466 When looking something up (a system, a port, etc.) the new style 467 configuration files will be read first, followed by the V2 468 configuration files, followed by the HDB configuration files. */ 469#define HAVE_V2_CONFIG 0 470#define HAVE_HDB_CONFIG 0 471 472/* Exactly one of the following macros must be set to 1. The exact 473 format of the spool directories is explained in unix/spool.c. 474 475 SPOOLDIR_V2 -- Use a Version 2 (original UUCP) style spool directory 476 SPOOLDIR_BSD42 -- Use a BSD 4.2 style spool directory 477 SPOOLDIR_BSD43 -- Use a BSD 4.3 style spool directory 478 SPOOLDIR_HDB -- Use a HDB (BNU) style spool directory 479 SPOOLDIR_ULTRIX -- Use an Ultrix style spool directory 480 SPOOLDIR_SVR4 -- Use a System V Release 4 spool directory 481 SPOOLDIR_TAYLOR -- Use a new style spool directory 482 483 If you are not worried about compatibility with a currently running 484 UUCP, use SPOOLDIR_TAYLOR. */ 485#define SPOOLDIR_V2 0 486#define SPOOLDIR_BSD42 0 487#define SPOOLDIR_BSD43 0 488#define SPOOLDIR_HDB 0 489#define SPOOLDIR_ULTRIX 0 490#define SPOOLDIR_SVR4 0 491#define SPOOLDIR_TAYLOR 1 492 493/* The status file generated by UUCP can use either the traditional 494 HDB upper case comments or new easier to read lower case comments. 495 This affects the display of uustat -m or uustat -q. Some 496 third-party programs read these status files and expect them to be 497 in a certain format. The default is to use the traditional 498 comments when using an HDB or SVR4 spool directory, and to use 499 lower case comments otherwise. */ 500#define USE_TRADITIONAL_STATUS (SPOOLDIR_HDB || SPOOLDIR_SVR4) 501 502/* You must select which type of logging you want by setting exactly 503 one of the following to 1. These control output to the log file 504 and to the statistics file. 505 506 If you define HAVE_TAYLOR_LOGGING, each line in the log file will 507 look something like this: 508 509 uucico uunet uucp (1991-12-10 09:04:34.45 16390) Receiving uunet/D./D.uunetSwJ72 510 511 and each line in the statistics file will look something like this: 512 513 uucp uunet (1991-12-10 09:04:40.20) received 2371 bytes in 5 seconds (474 bytes/sec) 514 515 If you define HAVE_V2_LOGGING, each line in the log file will look 516 something like this: 517 518 uucico uunet uucp (12/10-09:04 16390) Receiving uunet/D./D.uunetSwJ72 519 520 and each line in the statistics file will look something like this: 521 522 uucp uunet (12/10-09:04 16390) (692373862) received data 2371 bytes 5 seconds 523 524 If you define HAVE_HDB_LOGGING, each program will by default use a 525 separate log file. For uucico talking to uunet, for example, it 526 will be /usr/spool/uucp/.Log/uucico/uunet. Each line will look 527 something like this: 528 529 uucp uunet (12/10-09:04:22,16390,1) Receiving uunet/D./D.uunetSwJ72 530 531 and each line in the statistics file will look something like this: 532 533 uunet!uucp M (12/10-09:04:22) (C,16390,1) [ttyXX] <- 2371 / 5.000 secs, 474 bytes/sec 534 535 The main reason to prefer one format over another is that you may 536 have shell scripts which expect the files to have a particular 537 format. If you have none, choose whichever format you find more 538 appealing. */ 539#define HAVE_TAYLOR_LOGGING 1 540#define HAVE_V2_LOGGING 0 541#define HAVE_HDB_LOGGING 0 542 543/* If QNX_LOG_NODE_ID is set to 1, log messages will include the QNX 544 node ID just after the process ID. This is a policy decision 545 because it changes the log file entry format, which can break other 546 programs (e.g., some of the ones in the contrib directory) which 547 expect to read the standard log file format. */ 548#ifdef __QNX__ 549#define QNX_LOG_NODE_ID 1 550#else 551#define QNX_LOG_NODE_ID 0 552#endif 553 554/* If LOG_DEVICE_PREFIX is 1, log messages will give the full 555 pathname of a device rather than just the final component. This is 556 important because on QNX //2/dev/ser2 refers to a different device 557 than //4/dev/ser2. */ 558#ifdef __QNX__ 559#define LOG_DEVICE_PREFIX 1 560#else 561#define LOG_DEVICE_PREFIX 0 562#endif 563 564/* If you would like the log, debugging and statistics files to be 565 closed after each message, set CLOSE_LOGFILES to 1. This will 566 permit the log files to be easily moved. If a log file does not 567 exist when a new message is written out, it will be created. 568 Setting CLOSE_LOGFILES to 1 will obviously require slightly more 569 processing time. */ 570#define CLOSE_LOGFILES 1 571 572/* The name of the default spool directory. If HAVE_TAYLOR_CONFIG is 573 set to 1, this may be overridden by the ``spool'' command in the 574 configuration file. */ 575/* #define SPOOLDIR "/usr/spool/uucp" */ 576#define SPOOLDIR "/var/spool/uucp" 577 578/* The name of the default public directory. If HAVE_TAYLOR_CONFIG is 579 set to 1, this may be overridden by the ``pubdir'' command in the 580 configuration file. Also, a particular system may be given a 581 specific public directory by using the ``pubdir'' command in the 582 system file. */ 583/* #define PUBDIR "/usr/spool/uucppublic" */ 584#define PUBDIR "/var/spool/uucp_pubdir" 585 586/* The default command path. This is a space separated list of 587 directories. Remote command executions requested by uux are looked 588 up using this path. If you are using HAVE_TAYLOR_CONFIG, the 589 command path may be overridden for a particular system. For most 590 systems, you should just make sure that the programs rmail and 591 rnews can be found using this path. */ 592#define CMDPATH "/bin /usr/bin /usr/local/bin" 593 594/* The default amount of free space to require for systems that do not 595 specify an amount with the ``free-space'' command. This is only 596 used when talking to another instance of Taylor UUCP; if accepting 597 a file would not leave at least this many bytes free on the disk, 598 it will be refused. */ 599#define DEFAULT_FREE_SPACE (50000) 600 601/* While a file is being received, Taylor UUCP will periodically check 602 to see if there is enough free space remaining on the disk. If 603 there is not enough space available on the disk (as determined by 604 DEFAULT_FREE_SPACE, above, or the ``free-space'' command for the 605 system) the communication will be aborted. The disk will be 606 checked each time FREE_SPACE_DELTA bytes are received. Lower 607 values of FREE_SPACE_DELTA are less likely to fill up the disk, but 608 will also waste more time checking the amount of free space. To 609 avoid checking the disk while the file is being received, set 610 FREE_SPACE_DELTA to 0. */ 611#define FREE_SPACE_DELTA (10240) 612 613/* It is possible for an execute job to request to be executed using 614 sh(1), rather than execve(2). This is such a security risk, it is 615 being disabled by default; to allow such jobs, set the following 616 macro to 1. */ 617/* XXX needed to pass pipe tests */ 618#define ALLOW_SH_EXECUTION 1 619 620/* If a command executed on behalf of a remote system takes a filename 621 as an argument, a security breach may be possible (note that on my 622 system neither of the default commands, rmail and rnews, take 623 filename arguments). If you set ALLOW_FILENAME_ARGUMENTS to 0, all 624 arguments to a command will be checked; if any argument 625 1) starts with ../ 626 2) contains the string /../ 627 3) begins with a / but does not name a file that may be sent or 628 received (according to the specified ``remote-send'' and 629 ``remote-receive'') 630 the command will be rejected. By default, any argument is 631 permitted. */ 632#define ALLOW_FILENAME_ARGUMENTS 1 633 634/* If you set FSYNC_ON_CLOSE to 1, all output files will be forced out 635 to disk using the fsync system call when they are closed. This can 636 be useful if you can not afford to lose people's mail if the system 637 crashes. However, not all systems have the fsync call, and it is 638 always less efficient to use it. Note that some versions of SCO 639 Unix, and possibly other systems, make fsync a synonym for sync, 640 which is extremely inefficient. */ 641#define FSYNC_ON_CLOSE 0 642 643#if HAVE_TAYLOR_LOGGING 644 645/* The default log file when using HAVE_TAYLOR_LOGGING. When using 646 HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' 647 command in the configuration file. */ 648/* #define LOGFILE "/usr/spool/uucp/Log" */ 649/* #define LOGFILE "/var/spool/uucp/Log" */ 650#define LOGFILE "/var/log/uucp/Log" 651 652/* The default statistics file when using HAVE_TAYLOR_LOGGING. When 653 using HAVE_TAYLOR_CONFIG, this may be overridden by the 654 ``statfile'' command in the configuration file. */ 655/* #define STATFILE "/usr/spool/uucp/Stats" */ 656/* #define STATFILE "/var/spool/uucp/Stats" */ 657#define STATFILE "/var/log/uucp/Stats" 658 659/* The default debugging file when using HAVE_TAYLOR_LOGGING. When 660 using HAVE_TAYLOR_CONFIG, this may be overridden by the 661 ``debugfile'' command in the configuration file. */ 662/* #define DEBUGFILE "/usr/spool/uucp/Debug" */ 663/* #define DEBUGFILE "/var/spool/uucp/Debug" */ 664#define DEBUGFILE "/var/log/uucp/Debug" 665 666#endif /* HAVE_TAYLOR_LOGGING */ 667 668#if HAVE_V2_LOGGING 669 670/* The default log file when using HAVE_V2_LOGGING. When using 671 HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' 672 command in the configuration file. */ 673#define LOGFILE "/usr/spool/uucp/LOGFILE" 674 675/* The default statistics file when using HAVE_V2_LOGGING. When using 676 HAVE_TAYLOR_CONFIG, this may be overridden by the ``statfile'' 677 command in the configuration file. */ 678#define STATFILE "/usr/spool/uucp/SYSLOG" 679 680/* The default debugging file when using HAVE_V2_LOGGING. When using 681 HAVE_TAYLOR_CONFIG, this may be overridden by the ``debugfile'' 682 command in the configuration file. */ 683#define DEBUGFILE "/usr/spool/uucp/DEBUG" 684 685#endif /* HAVE_V2_LOGGING */ 686 687#if HAVE_HDB_LOGGING 688 689/* The default log file when using HAVE_HDB_LOGGING. When using 690 HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' 691 command in the configuration file. The first %s in the string will 692 be replaced by the program name (e.g. uucico); the second %s will 693 be replaced by the system name (if there is no appropriate system, 694 "ANY" will be used). No other '%' character may appear in the 695 string. */ 696#define LOGFILE "/usr/spool/uucp/.Log/%s/%s" 697 698/* The default statistics file when using HAVE_HDB_LOGGING. When using 699 HAVE_TAYLOR_CONFIG, this may be overridden by the ``statfile'' 700 command in the configuration file. */ 701#define STATFILE "/usr/spool/uucp/.Admin/xferstats" 702 703/* The default debugging file when using HAVE_HDB_LOGGING. When using 704 HAVE_TAYLOR_CONFIG, this may be overridden by the ``debugfile'' 705 command in the configuration file. */ 706#define DEBUGFILE "/usr/spool/uucp/.Admin/audit.local" 707 708#endif /* HAVE_HDB_LOGGING */ 709 710/* This makes any ~ the same as pubdir, even for users that exist, 711 needed for SuSv3 */ 712/* #define ALL_USERS_ARE_PUBDIR */ 713 714/* This causes any "file not found" errors from uucp to be soft, the next 715 file is copied anyway */ 716#define CONTINUE_AFTER_FILE_NOT_FOUND 717 718/* make any files placed in pubdir world writable, not a good idea, but 719 it gets us past a test & lets me close PR-4080015 */ 720#define WORLD_WRITABLE_FILE_IN "/private/var/spool/uucp_pubdir" 721