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 1 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 100 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 0 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 0 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 0 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/sbin/sendmail -t" 244 #define MAIL_PROGRAM_TO_BODY 1 245 #define MAIL_PROGRAM_SUBJECT_BODY 1 246 #endif 247 #if 0 248 #define MAIL_PROGRAM "/usr/ucb/mail" 249 #define MAIL_PROGRAM_TO_BODY 0 250 #define MAIL_PROGRAM_SUBJECT_BODY 0 251 #endif 252 #if 0 253 #define MAIL_PROGRAM "/bin/mail" 254 #define MAIL_PROGRAM_TO_BODY 0 255 #define MAIL_PROGRAM_SUBJECT_BODY 1 256 #endif 257 258 /* Set PS_PROGRAM to the program to run to get a process status, 259 including the arguments to pass it. This is used by ``uustat -p''. 260 Set HAVE_PS_MULTIPLE to 1 if a comma separated list of process 261 numbers may be appended (e.g. ``ps -flp1,10,100''). Otherwise ps 262 will be invoked several times, with a single process number append 263 each time. The default definitions should work on most systems, 264 although some (such as the NeXT) will complain about the 'p' 265 option; for those, use the second set of definitions. The third 266 set of definitions are appropriate for System V. To use the second 267 or third set of definitions, change the ``#if 1'' to ``#if 0'' and 268 change the appropriate ``#if 0'' to ``#if 1''. */ 269 #if 1 270 #define PS_PROGRAM "/bin/ps -lp" 271 #define HAVE_PS_MULTIPLE 0 272 #endif 273 #if 0 274 #define PS_PROGRAM "/bin/ps -l" 275 #define HAVE_PS_MULTIPLE 0 276 #endif 277 #if 0 278 #define PS_PROGRAM "/bin/ps -flp" 279 #define HAVE_PS_MULTIPLE 1 280 #endif 281 #ifdef __QNX__ 282 /* Use this for QNX, along with HAVE_QNX_LOCKFILES. */ 283 #undef PS_PROGRAM 284 #undef HAVE_PS_MULTIPLE 285 #define PS_PROGRAM "/bin/ps -l -n -p" 286 #define HAVE_PS_MULTIPLE 0 287 #endif 288 289 /* If you use other programs that also lock devices, such as cu or 290 uugetty, the other programs and UUCP must agree on whether a device 291 is locked. This is typically done by creating a lock file in a 292 specific directory; the lock files are generally named 293 LCK..something or LK.something. If the LOCKDIR macro is defined, 294 these lock files will be placed in the named directory; otherwise 295 they will be placed in the default spool directory. On some HDB 296 systems the lock files are placed in /etc/locks. On some they are 297 placed in /usr/spool/locks. On the NeXT they are placed in 298 /usr/spool/uucp/LCK. */ 299 /* #define LOCKDIR "/usr/spool/uucp" */ 300 /* #define LOCKDIR "/etc/locks" */ 301 /* #define LOCKDIR "/usr/spool/locks" */ 302 /* #define LOCKDIR "/usr/spool/uucp/LCK" */ 303 /* #define LOCKDIR "/var/lock" */ 304 #define LOCKDIR "/var/spool/lock" 305 306 /* You must also specify the format of the lock files by setting 307 exactly one of the following macros to 1. Check an existing lock 308 file to decide which of these choices is more appropriate. 309 310 The HDB style is to write the locking process ID in ASCII, passed 311 to ten characters, followed by a newline. 312 313 The V2 style is to write the locking process ID as four binary 314 bytes in the host byte order. Many BSD derived systems use this 315 type of lock file, including the NeXT. 316 317 SCO lock files are similar to HDB lock files, but always lock the 318 lowercase version of the tty (i.e., LCK..tty2a is created if you 319 are locking tty2A). They are appropriate if you are using Taylor 320 UUCP on an SCO Unix, SCO Xenix, or SCO Open Desktop system. 321 322 SVR4 lock files are also similar to HDB lock files, but they use a 323 different naming convention. The filenames are LK.xxx.yyy.zzz, 324 where xxx is the major device number of the device holding the 325 special device file, yyy is the major device number of the port 326 device itself, and zzz is the minor device number of the port 327 device. 328 329 Sequent DYNIX/ptx (but perhaps not Dynix 3.x) uses yet another 330 naming convention. The lock file for /dev/ttyXA/XAAP is named 331 LCK..ttyXAAP. 332 333 Coherent use a completely different method of terminal locking. 334 See unix/cohtty for details. For locks other than for terminals, 335 HDB type lock files are used. 336 337 QNX lock files are similar to HDB lock files except that the node 338 ID must be stored in addition to the process ID and for serial 339 devices the node ID must be included in the lock file name. QNX 340 boxes are generally used in bunches, and all of them behave like 341 one big machine to some extent. Thus, processes on different 342 machines will be sharing the files in the spool directory. To 343 detect if a process has died and a lock is thus stale, you need the 344 node ID of the process as well as the process ID. The process ID 345 is stored as a number written using ASCII digits padded to 10 346 characters, followed by a space, followed by the node ID written 347 using ASCII digits padded to 10 characters, followed by a newline. 348 The format for QNX lock files was made up just for Taylor UUCP. 349 QNX doesn't come with a version of UUCP. */ 350 #define HAVE_V2_LOCKFILES 0 351 #define HAVE_HDB_LOCKFILES 1 352 #define HAVE_SCO_LOCKFILES 0 353 #define HAVE_SVR4_LOCKFILES 0 354 #define HAVE_SEQUENT_LOCKFILES 0 355 #define HAVE_COHERENT_LOCKFILES 0 356 #define HAVE_QNX_LOCKFILES 0 357 358 /* This tries to pick a default based on preprocessor definitions. 359 Ignore it if you have explicitly set one of the above values. */ 360 #if HAVE_V2_LOCKFILES + HAVE_HDB_LOCKFILES + HAVE_SCO_LOCKFILES + HAVE_SVR4_LOCKFILES + HAVE_SEQUENT_LOCKFILES + HAVE_COHERENT_LOCKFILES + HAVE_QNX_LOCKFILES == 0 361 #ifdef __QNX__ 362 #undef HAVE_QNX_LOCKFILES 363 #define HAVE_QNX_LOCKFILES 1 364 #else /* ! defined (__QNX__) */ 365 #ifdef __COHERENT__ 366 #undef HAVE_COHERENT_LOCKFILES 367 #define HAVE_COHERENT_LOCKFILES 1 368 #else /* ! defined (__COHERENT__) */ 369 #ifdef _SEQUENT_ 370 #undef HAVE_SEQUENT_LOCKFILES 371 #define HAVE_SEQUENT_LOCKFILES 1 372 #else /* ! defined (_SEQUENT) */ 373 #ifdef sco 374 #undef HAVE_SCO_LOCKFILES 375 #define HAVE_SCO_LOCKFILES 1 376 #else /* ! defined (sco) */ 377 #ifdef __svr4__ 378 #undef HAVE_SVR4_LOCKFILES 379 #define HAVE_SVR4_LOCKFILES 1 380 #else /* ! defined (__svr4__) */ 381 /* Final default is HDB. There's no way to tell V2 from HDB. */ 382 #undef HAVE_HDB_LOCKFILES 383 #define HAVE_HDB_LOCKFILES 1 384 #endif /* ! defined (__svr4__) */ 385 #endif /* ! defined (sco) */ 386 #endif /* ! defined (_SEQUENT) */ 387 #endif /* ! defined (__COHERENT__) */ 388 #endif /* ! defined (__QNX__) */ 389 #endif /* no LOCKFILES define */ 390 391 /* If your system supports Internet mail addresses (which look like 392 user@host.domain rather than system!user), HAVE_INTERNET_MAIL 393 should be set to 1. This is checked by uuxqt and uustat when 394 sending notifications to the person who submitted the job. 395 396 If your system does not understand addresses of the form user@host, 397 you must set HAVE_INTERNET_MAIL to 0. 398 399 If your system does not understand addresses of the form host!user, 400 which is unlikely, you must set HAVE_INTERNET_MAIL to 1. 401 402 If your system sends mail addressed to "A!B@C" to host C (i.e., it 403 parses the address as "(A!B)@C"), you must set HAVE_INTERNET_MAIL 404 to 1. 405 406 If your system sends mail addressed to "A!B@C" to host A (i.e., it 407 parses the address as "A!(B@C)"), you must set HAVE_INTERNET_MAIL 408 to 0. 409 410 Note that in general it is best to avoid addresses of the form 411 "A!B@C" because of this ambiguity of precedence. UUCP will not 412 intentionally generate addresses of this form, but it can occur in 413 certain rather complex cases. */ 414 #define HAVE_INTERNET_MAIL 1 415 416 /* Adminstrative decisions. */ 417 418 /* Set USE_RCS_ID to 1 if you want the RCS ID strings compiled into 419 the executable. Leaving them out will decrease the executable 420 size. Leaving them in will make it easier to determine which 421 version you are running. */ 422 #define USE_RCS_ID 1 423 424 /* DEBUG controls how much debugging information is compiled into the 425 code. If DEBUG is defined as 0, no sanity checks will be done and 426 no debugging messages will be compiled in. If DEBUG is defined as 427 1 sanity checks will be done but there will still be no debugging 428 messages. If DEBUG is 2 than debugging messages will be compiled 429 in. When initially testing, DEBUG should be 2, and you should 430 probably leave it at 2 unless a small reduction in the executable 431 file size will be very helpful. */ 432 #define DEBUG 2 433 434 /* Set HAVE_ENCRYPTED_PASSWORDS to 1 if you want login passwords to be 435 encrypted before comparing them against the values in the file. 436 This only applies when uucico is run with the -l or -e switches and 437 is doing its own login prompting. Note that the passwords used are 438 from the UUCP password file, not the system /etc/passwd file. See 439 the documentation for further details. If you set this, you are 440 responsible for encrypting the passwords in the UUCP password file. 441 The function crypt will be used to do comparisons. */ 442 #define HAVE_ENCRYPTED_PASSWORDS 0 443 444 /* Set the default grade to use for a uucp command if the -g option is 445 not used. The grades, from highest to lowest, are 0 to 9, A to Z, 446 a to z. */ 447 #define BDEFAULT_UUCP_GRADE ('N') 448 449 /* Set the default grade to use for a uux command if the -g option is 450 not used. */ 451 #define BDEFAULT_UUX_GRADE ('N') 452 453 /* To compile in use of the new style of configuration files described 454 in the documentation, set HAVE_TAYLOR_CONFIG to 1. */ 455 #define HAVE_TAYLOR_CONFIG 1 456 457 /* To compile in use of V2 style configuration files (L.sys, L-devices 458 and so on), set HAVE_V2_CONFIG to 1. To compile in use of HDB 459 style configuration files (Systems, Devices and so on) set 460 HAVE_HDB_CONFIG to 1. The files will be looked up in the 461 oldconfigdir directory as defined in the Makefile. 462 463 You may set any or all of HAVE_TAYLOR_CONFIG, HAVE_V2_CONFIG and 464 HAVE_HDB_CONFIG to 1 (you must set at least one of the macros). 465 When looking something up (a system, a port, etc.) the new style 466 configuration files will be read first, followed by the V2 467 configuration files, followed by the HDB configuration files. */ 468 #define HAVE_V2_CONFIG 0 469 #define HAVE_HDB_CONFIG 1 470 471 /* Exactly one of the following macros must be set to 1. The exact 472 format of the spool directories is explained in unix/spool.c. 473 474 SPOOLDIR_V2 -- Use a Version 2 (original UUCP) style spool directory 475 SPOOLDIR_BSD42 -- Use a BSD 4.2 style spool directory 476 SPOOLDIR_BSD43 -- Use a BSD 4.3 style spool directory 477 SPOOLDIR_HDB -- Use a HDB (BNU) style spool directory 478 SPOOLDIR_ULTRIX -- Use an Ultrix style spool directory 479 SPOOLDIR_SVR4 -- Use a System V Release 4 spool directory 480 SPOOLDIR_TAYLOR -- Use a new style spool directory 481 482 If you are not worried about compatibility with a currently running 483 UUCP, use SPOOLDIR_TAYLOR. */ 484 #define SPOOLDIR_V2 0 485 #define SPOOLDIR_BSD42 0 486 #define SPOOLDIR_BSD43 0 487 #define SPOOLDIR_HDB 0 488 #define SPOOLDIR_ULTRIX 0 489 #define SPOOLDIR_SVR4 0 490 #define SPOOLDIR_TAYLOR 1 491 492 /* The status file generated by UUCP can use either the traditional 493 HDB upper case comments or new easier to read lower case comments. 494 This affects the display of uustat -m or uustat -q. Some 495 third-party programs read these status files and expect them to be 496 in a certain format. The default is to use the traditional 497 comments when using an HDB or SVR4 spool directory, and to use 498 lower case comments otherwise. */ 499 #define USE_TRADITIONAL_STATUS (SPOOLDIR_HDB || SPOOLDIR_SVR4) 500 501 /* You must select which type of logging you want by setting exactly 502 one of the following to 1. These control output to the log file 503 and to the statistics file. 504 505 If you define HAVE_TAYLOR_LOGGING, each line in the log file will 506 look something like this: 507 508 uucico uunet uucp (1991-12-10 09:04:34.45 16390) Receiving uunet/D./D.uunetSwJ72 509 510 and each line in the statistics file will look something like this: 511 512 uucp uunet (1991-12-10 09:04:40.20) received 2371 bytes in 5 seconds (474 bytes/sec) 513 514 If you define HAVE_V2_LOGGING, each line in the log file will look 515 something like this: 516 517 uucico uunet uucp (12/10-09:04 16390) Receiving uunet/D./D.uunetSwJ72 518 519 and each line in the statistics file will look something like this: 520 521 uucp uunet (12/10-09:04 16390) (692373862) received data 2371 bytes 5 seconds 522 523 If you define HAVE_HDB_LOGGING, each program will by default use a 524 separate log file. For uucico talking to uunet, for example, it 525 will be /usr/spool/uucp/.Log/uucico/uunet. Each line will look 526 something like this: 527 528 uucp uunet (12/10-09:04:22,16390,1) Receiving uunet/D./D.uunetSwJ72 529 530 and each line in the statistics file will look something like this: 531 532 uunet!uucp M (12/10-09:04:22) (C,16390,1) [ttyXX] <- 2371 / 5.000 secs, 474 bytes/sec 533 534 The main reason to prefer one format over another is that you may 535 have shell scripts which expect the files to have a particular 536 format. If you have none, choose whichever format you find more 537 appealing. */ 538 #define HAVE_TAYLOR_LOGGING 1 539 #define HAVE_V2_LOGGING 0 540 #define HAVE_HDB_LOGGING 0 541 542 /* If QNX_LOG_NODE_ID is set to 1, log messages will include the QNX 543 node ID just after the process ID. This is a policy decision 544 because it changes the log file entry format, which can break other 545 programs (e.g., some of the ones in the contrib directory) which 546 expect to read the standard log file format. */ 547 #ifdef __QNX__ 548 #define QNX_LOG_NODE_ID 1 549 #else 550 #define QNX_LOG_NODE_ID 0 551 #endif 552 553 /* If LOG_DEVICE_PREFIX is 1, log messages will give the full 554 pathname of a device rather than just the final component. This is 555 important because on QNX //2/dev/ser2 refers to a different device 556 than //4/dev/ser2. */ 557 #ifdef __QNX__ 558 #define LOG_DEVICE_PREFIX 1 559 #else 560 #define LOG_DEVICE_PREFIX 0 561 #endif 562 563 /* If you would like the log, debugging and statistics files to be 564 closed after each message, set CLOSE_LOGFILES to 1. This will 565 permit the log files to be easily moved. If a log file does not 566 exist when a new message is written out, it will be created. 567 Setting CLOSE_LOGFILES to 1 will obviously require slightly more 568 processing time. */ 569 #define CLOSE_LOGFILES 1 570 571 /* The name of the default spool directory. If HAVE_TAYLOR_CONFIG is 572 set to 1, this may be overridden by the ``spool'' command in the 573 configuration file. */ 574 /* #define SPOOLDIR "/usr/spool/uucp" */ 575 #define SPOOLDIR "/var/spool/uucp" 576 577 /* The name of the default public directory. If HAVE_TAYLOR_CONFIG is 578 set to 1, this may be overridden by the ``pubdir'' command in the 579 configuration file. Also, a particular system may be given a 580 specific public directory by using the ``pubdir'' command in the 581 system file. */ 582 /* #define PUBDIR "/usr/spool/uucppublic" */ 583 #define PUBDIR "/var/spool/uucppublic" 584 585 /* The default command path. This is a space separated list of 586 directories. Remote command executions requested by uux are looked 587 up using this path. If you are using HAVE_TAYLOR_CONFIG, the 588 command path may be overridden for a particular system. For most 589 systems, you should just make sure that the programs rmail and 590 rnews can be found using this path. */ 591 #define CMDPATH "/bin /usr/bin /usr/local/bin" 592 593 /* The default amount of free space to require for systems that do not 594 specify an amount with the ``free-space'' command. This is only 595 used when talking to another instance of Taylor UUCP; if accepting 596 a file would not leave at least this many bytes free on the disk, 597 it will be refused. */ 598 #define DEFAULT_FREE_SPACE (50000) 599 600 /* While a file is being received, Taylor UUCP will periodically check 601 to see if there is enough free space remaining on the disk. If 602 there is not enough space available on the disk (as determined by 603 DEFAULT_FREE_SPACE, above, or the ``free-space'' command for the 604 system) the communication will be aborted. The disk will be 605 checked each time FREE_SPACE_DELTA bytes are received. Lower 606 values of FREE_SPACE_DELTA are less likely to fill up the disk, but 607 will also waste more time checking the amount of free space. To 608 avoid checking the disk while the file is being received, set 609 FREE_SPACE_DELTA to 0. */ 610 #define FREE_SPACE_DELTA (10240) 611 612 /* It is possible for an execute job to request to be executed using 613 sh(1), rather than execve(2). This is such a security risk, it is 614 being disabled by default; to allow such jobs, set the following 615 macro to 1. */ 616 #define ALLOW_SH_EXECUTION 0 617 618 /* If a command executed on behalf of a remote system takes a filename 619 as an argument, a security breach may be possible (note that on my 620 system neither of the default commands, rmail and rnews, take 621 filename arguments). If you set ALLOW_FILENAME_ARGUMENTS to 0, all 622 arguments to a command will be checked; if any argument 623 1) starts with ../ 624 2) contains the string /../ 625 3) begins with a / but does not name a file that may be sent or 626 received (according to the specified ``remote-send'' and 627 ``remote-receive'') 628 the command will be rejected. By default, any argument is 629 permitted. */ 630 #define ALLOW_FILENAME_ARGUMENTS 1 631 632 /* If you set FSYNC_ON_CLOSE to 1, all output files will be forced out 633 to disk using the fsync system call when they are closed. This can 634 be useful if you can not afford to lose people's mail if the system 635 crashes. However, not all systems have the fsync call, and it is 636 always less efficient to use it. Note that some versions of SCO 637 Unix, and possibly other systems, make fsync a synonym for sync, 638 which is extremely inefficient. */ 639 #define FSYNC_ON_CLOSE 0 640 641 #if HAVE_TAYLOR_LOGGING 642 643 /* The default log file when using HAVE_TAYLOR_LOGGING. When using 644 HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' 645 command in the configuration file. */ 646 /* #define LOGFILE "/usr/spool/uucp/Log" */ 647 #define LOGFILE "/var/spool/uucp/Log" 648 649 /* The default statistics file when using HAVE_TAYLOR_LOGGING. When 650 using HAVE_TAYLOR_CONFIG, this may be overridden by the 651 ``statfile'' command in the configuration file. */ 652 /* #define STATFILE "/usr/spool/uucp/Stats" */ 653 #define STATFILE "/var/spool/uucp/Stats" 654 655 /* The default debugging file when using HAVE_TAYLOR_LOGGING. When 656 using HAVE_TAYLOR_CONFIG, this may be overridden by the 657 ``debugfile'' command in the configuration file. */ 658 /* #define DEBUGFILE "/usr/spool/uucp/Debug" */ 659 #define DEBUGFILE "/var/spool/uucp/Debug" 660 661 #endif /* HAVE_TAYLOR_LOGGING */ 662 663 #if HAVE_V2_LOGGING 664 665 /* The default log file when using HAVE_V2_LOGGING. When using 666 HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' 667 command in the configuration file. */ 668 #define LOGFILE "/usr/spool/uucp/LOGFILE" 669 670 /* The default statistics file when using HAVE_V2_LOGGING. When using 671 HAVE_TAYLOR_CONFIG, this may be overridden by the ``statfile'' 672 command in the configuration file. */ 673 #define STATFILE "/usr/spool/uucp/SYSLOG" 674 675 /* The default debugging file when using HAVE_V2_LOGGING. When using 676 HAVE_TAYLOR_CONFIG, this may be overridden by the ``debugfile'' 677 command in the configuration file. */ 678 #define DEBUGFILE "/usr/spool/uucp/DEBUG" 679 680 #endif /* HAVE_V2_LOGGING */ 681 682 #if HAVE_HDB_LOGGING 683 684 /* The default log file when using HAVE_HDB_LOGGING. When using 685 HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' 686 command in the configuration file. The first %s in the string will 687 be replaced by the program name (e.g. uucico); the second %s will 688 be replaced by the system name (if there is no appropriate system, 689 "ANY" will be used). No other '%' character may appear in the 690 string. */ 691 #define LOGFILE "/usr/spool/uucp/.Log/%s/%s" 692 693 /* The default statistics file when using HAVE_HDB_LOGGING. When using 694 HAVE_TAYLOR_CONFIG, this may be overridden by the ``statfile'' 695 command in the configuration file. */ 696 #define STATFILE "/usr/spool/uucp/.Admin/xferstats" 697 698 /* The default debugging file when using HAVE_HDB_LOGGING. When using 699 HAVE_TAYLOR_CONFIG, this may be overridden by the ``debugfile'' 700 command in the configuration file. */ 701 #define DEBUGFILE "/usr/spool/uucp/.Admin/audit.local" 702 703 #endif /* HAVE_HDB_LOGGING */ 704