home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / uucp / auucp+-1.02 / fuucp_plus_src.lzh / sendmail / extern.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-11-21  |  16.1 KB  |  452 lines

  1. /* @(#)extern.h    3.45 2/19/89 21:17:00 */
  2.  
  3. /*
  4.  *    Copyright (C) 1987, 1988 Ronald S. Karr and Landon Curt Noll
  5.  * 
  6.  * See the file COPYING, distributed with smail, for restriction
  7.  * and warranty information.
  8.  */
  9.  
  10. /*
  11.  * extern.h:
  12.  *    externals used by the smail program
  13.  */
  14. extern int errno;            /* previous system error value */
  15.  
  16. /*
  17.  * External variables used in the smail program
  18.  */
  19. /* external variables defined in alloc.c */
  20. extern struct block *perm;        /* permanent allocation block */
  21. extern int x_dont_panic;                /* dont panic in X_CHECK() */
  22.  
  23. /* external variables defined in config.c */
  24. extern char *visible_name;        /* hostname used in outgoing addrs */
  25. extern char *visible_domains;        /* domain used in outgoing headers */
  26. extern char *uucp_name;            /* hostname used in !-routes */
  27. extern char *hostnames;            /* list of other local host names */
  28. extern char *more_hostnames;        /* additional list of hostnames */
  29. extern long max_message_size;        /* max size of message body */
  30. extern char *grades;            /* mapping of precedence to grade */
  31. extern int nobody_uid;            /* user id for access permission */
  32. extern int nobody_gid;            /* group id for access permission */
  33. extern char *nobody;            /* name of nobody user */
  34. extern char *log_fn;            /* name of information log file */
  35. extern char *panic_fn;            /* name of panic log file */
  36. extern char *cons_fn;            /* name of console device file */
  37. extern char *spool_dirs;        /* names of spooling directories */
  38. extern int spool_mode;            /* mode for spool files */
  39. extern int lock_mode;            /* mode for lock files */
  40. extern int log_mode;            /* mode for system log files */
  41. extern int message_log_mode;        /* mode for per-message log files */
  42. extern int spool_grade;            /* default spool grade character */
  43. extern int open_retries;        /* max open retries on startup file */
  44. extern int open_interval;        /* sleep between open retries */
  45. extern char *config_file;        /* config file name */
  46. extern char *director_file;        /* directors file name */
  47. extern char *router_file;        /* routers file name */
  48. extern char *method_dir;        /* directory for non-/ method files */
  49. extern char *transport_file;        /* transports file name */
  50. extern char *smail_lib_dir;        /* default config file directory */
  51. extern char *received_field;        /* Received: field string */
  52. extern char *message_id_field;        /* Message_Id: field string */
  53. extern char *date_field;        /* Date: field string */
  54. extern char *return_path_field;        /* Return-Path: field string */
  55. extern char *smail;            /* location of the smail program */
  56. extern double max_load_ave;        /* spool mail > this load agerage */
  57. extern char *trusted;            /* : list of trusted users */
  58. extern char *trusted_groups;        /* : list of trusted groups */
  59. extern unsigned message_bufsiz;        /* size of message buffers */
  60. extern int hit_table_len;        /* #entries in address hit table */
  61. extern int flock_mailbox;        /* TRUE to use lock_fd_wait() macro */
  62. extern int fnlock_retries;        /* retries for lock_file() creat */
  63. extern int fnlock_interval;        /* retry intervals for lock_file() */
  64. extern int fnlock_mode;            /* mode for lock_file() lockfiles */
  65. extern int lock_by_name;        /* TRUE to use spool lockfiles */
  66. extern int queue_only;            /* true to queue but not deliver */
  67. extern int max_hop_count;        /* fail if hop_count exceeds this */
  68. extern char *delivery_mode_string;    /* string naming delivery mode */
  69. extern char *smart_user;        /* default user for smartuser driver */
  70. extern char *smart_path;        /* default path for smarthost driver */
  71. extern char *smart_transport;        /* transport for smarthost driver */
  72. extern char *second_config_file;    /* secondary configuration file */
  73. extern char *copying_file;        /* pathname to COPYING file */
  74. extern int auto_mkdir;            /* TRUE to auto create directories */
  75. extern int auto_mkdir_mode;        /* the mode for auto directories */
  76. extern int require_configs;        /* TRUE to require config files */
  77. extern char *postmaster_address;    /* default addr of postmaster */
  78. extern char *smtp_banner;        /* smtp startup banner message */
  79.  
  80. /* external variables defined in default.c */
  81. extern struct director *directors;    /* configured directors */
  82. extern struct router *routers;        /* configured routers */
  83. extern struct transport *transports;    /* configured transports */
  84.  
  85. /* external variables defined in direct.c */
  86. extern int cached_directors;        /* TRUE if cache_directors() called */
  87.  
  88. /* external variables defined in drivertab.c */
  89. #ifdef DIRECT_H
  90. extern struct direct_driver direct_drivers[]; /* compiled director drivers */
  91. #endif
  92. #ifdef ROUTE_H
  93. extern struct route_driver route_drivers[]; /* compiled router drivers */
  94. #endif
  95. #ifdef TRANSPORT_H
  96. extern struct transport_driver transport_drivers[]; /* transport drivers */
  97. #endif
  98.  
  99. /* external variables defined in header.c */
  100. extern struct queue *header;        /* list of header fields */
  101.  
  102. /* external variables defined in ldinfo.c */
  103. extern int compile_num;
  104. extern char *compile_date;
  105.  
  106. /* external variables defined in log.c */
  107. extern FILE *msg_logfile;        /* open stream to per-message log */
  108.  
  109. /* external variables defined in main.c */
  110. extern int islocal;            /* TRUE if mail originated locally */
  111. extern int exitvalue;            /* call exit with this value */
  112. extern char *program;            /* argv[0] from main */
  113. extern char *sender;            /* sender of message */
  114. extern int error_sender;        /* TRUE if special sender <> given */
  115. extern char *sender_name;        /* full name of sender */
  116. extern enum op_mode operation_mode;    /* mode of operation */
  117. extern int debug;            /* debugging level, 0 is off */
  118. extern int dont_deliver;        /* if TRUE, don't actually deliver */
  119. extern int process_queue;        /* process spooled files */
  120. extern unsigned queue_interval;        /* process queues at this interval */
  121. extern int hop_count;            /* hop count so far for message */
  122. extern int do_aliasing;            /* do aliasing for local addresses */
  123. extern int extract_addresses;        /* get recipients from header */
  124. extern enum dot_usage dot_usage;    /* how do we treat . on input */
  125. extern enum deliver_mode deliver_mode;    /* foreground, background or queued */
  126. extern int me_too;            /* sender allowed in aliases */
  127. extern enum er_proc error_processing;    /* method of displaying errors */
  128. extern struct addr *recipients;        /* list of recipient addresses */
  129. extern char *primary_name;        /* primary local name from hostnames */
  130. extern FILE *errfile;            /* file to write debug messages to */
  131. extern int real_uid;            /* saved real uid before ruid setup */
  132. extern enum prog_type prog_type;    /* type of program we are running as */
  133. extern char **save_argv;        /* saved pointer to arguments */
  134. extern int some_deferred_addrs;        /* don't unlink spool file */
  135.                     /* as some addrs were deferred */
  136. extern int prog_euid;            /* effective uid of program */
  137. extern int prog_egid;            /* effective gid of program */
  138. extern int force_zero_exitvalue;    /* if TRUE always exit with status 0 */
  139. extern int call_defer_message;        /* if TRUE must call defer_message() */
  140. extern int sender_is_trusted;        /* TRUE if sender is a trusted user */
  141.  
  142. /* external variables defined in modes.c */
  143. extern int daemon_pid;            /* pid of daemon process */
  144.  
  145. /* external variables defined in notify.c */
  146. extern int send_to_postmaster;        /* set TRUE to mail to postmaster */
  147. extern int return_to_sender;        /* set TRUE to mail log to sender */
  148.  
  149. /* external variables defined in parse.c */
  150. extern char *off;            /* boolean off attribute value */
  151. extern char *on;            /* boolean on attribute value */
  152.  
  153. /* external variables defined in queue.c */
  154. extern int msg_grade;            /* grade level for this message */
  155. extern char login_user[];        /* login name from spool file */
  156.  
  157. /* external variables defined in resolve.c */
  158. extern struct hash_table *hit_table;    /* table to recognize address hits */
  159.  
  160. /* external variables defined in route.c */
  161. extern int cached_routers;        /* TRUE if cache_routers() called */
  162.  
  163. /* external variables defined in spool.c */
  164. extern char *message_id;        /* unique string ID for message */
  165. extern char *spool_dir;            /* directory used to spool message */
  166. extern char *spool_fn;            /* basename of spool file */
  167. extern char *input_spool_fn;        /* name in input/ directory */
  168. extern int spoolfile;            /* open spool file */
  169. extern char *lock_fn;            /* name of lock file for spool_fn */
  170. extern char *msg_buf;            /* i/o buffer for spool file */
  171. extern char *msg_ptr;            /* read placeholder in msg_buf */
  172. extern char *msg_max;            /* last valid char in msg_buf */
  173. extern char *end_msg_buf;        /* end of msg_buf */
  174. extern long msg_foffset;        /* file offset for msg_buf contents */
  175. extern long msg_size;            /* size of spool file */
  176.  
  177. /* external variables defined in string.c */
  178. extern char lowcase[];            /* lower case conversion table */
  179. extern char upcase[];            /* upper case conversion table */
  180.  
  181. /* external variables defined in version.c */
  182. extern char *version_number;        /* string defining version number */
  183. extern char *release_date;        /* the date for this release */
  184. extern char *patch_number;        /* most recent patch number */
  185. extern char *patch_date;        /* patch date */
  186. extern char *bat;            /* the proper bat for this release */
  187.  
  188. /* external variables defined in transports.c */
  189. extern char *path_to_sender;        /* uucp-style route to sender */
  190. extern int cached_transports;        /* TRUE if cache_transports() called */
  191.  
  192. /* external variables defined in route.c */
  193. extern int cached_routers;        /* TRUE if cache_routers() called */
  194.  
  195.  
  196. /*
  197.  * External functions used in the smail program
  198.  */
  199. /* external functions defined in addr.c */
  200. extern char *preparse_address();
  201. extern int parse_address();
  202. extern char *address_token();
  203. extern char *back_address_token();
  204. extern char *build_uucp_route();
  205. extern char *build_partial_uucp_route();
  206. extern struct addr *alloc_addr();
  207. extern void insert_addr_list();
  208. extern struct addr *addr_sort();
  209. extern struct error *note_error();
  210.  
  211. /* external functions defined in alloc.c */
  212. extern char *xmalloc();
  213. extern char *xrealloc();
  214. extern void xfree();
  215. extern char *bmalloc();
  216. extern char *brealloc();
  217. extern void bfree();
  218. extern struct block *alloc_block();
  219. extern void realloc_block();
  220. extern void free_block();
  221.  
  222. /* external functions defined in direct.c */
  223. extern void direct_local_addrs();
  224. extern void verify_local_addrs();
  225. extern void director_user_info();
  226. extern struct director *find_director();
  227. extern struct direct_driver *find_direct_driver();
  228. extern void cache_directors();
  229. extern void finish_directors();
  230. extern char *read_director_file();
  231.  
  232. /* external functions defined in expand.c */
  233. extern char *expand_string();
  234. extern char **build_cmd_line();
  235.  
  236. /* external functions defined in field.c */
  237. extern char *tokenize();
  238. extern char *detokenize();
  239. extern char *process_field();
  240. extern void dump_tokens();
  241.  
  242. /* external functions defined in hash.c */
  243. extern int add_to_hash();
  244. extern int lookup_in_hash();
  245. extern struct hash_table *new_hash_table();
  246. extern void write_hash_table();
  247. #ifdef ETHEREAL_HASHDATA
  248. extern struct hash *delete_from_hash();
  249. extern struct hash *replace_in_hash();
  250. extern struct hash *store_in_hash();
  251. extern struct hash *walk_hash();
  252. extern void free_hash_element();
  253. extern void free_hash_table();
  254. #endif    /* ETHEREAL_HASHDATA */
  255.  
  256. /* external functions defined in header.c */
  257. extern char *process_header();
  258. extern int read_header();
  259. extern int write_header();
  260. extern int parse_precedence();
  261.  
  262. /* external functions defined in log.c */
  263. extern void open_system_logs();
  264. extern void open_msg_log();
  265. extern void close_msg_log();
  266. extern void unlink_msg_log();
  267. extern void panic();
  268. extern void write_log();
  269. extern void send_log();
  270. extern char *scan_msg_log();
  271.  
  272. /* external functions defined in lookup.c */
  273. extern int open_database();
  274. extern void close_database();
  275. extern int lookup_database();
  276.  
  277. /* external functions defined in main.c */
  278. extern void main();
  279. extern void initialize_state();
  280. extern void process_args();
  281.  
  282. /* external functions defined in modes.c */
  283. extern void build_host_strings();
  284. extern void compute_nobody();
  285. extern void input_signals();
  286. extern void processing_signals();
  287. extern void deliver_signals();
  288. extern void test_addresses();
  289. extern void perform_deliver_mail();
  290. extern void deliver_mail();
  291. extern void daemon_mode();
  292. extern void noop_mode();
  293. extern void verify_addresses();
  294. extern void print_version();
  295. extern void print_copying_file();
  296. extern void print_variables();
  297. extern void print_queue();
  298. extern void smtp_mode();
  299. extern int process_spool_file();
  300. extern int fork_wait();
  301.  
  302. /* external functions defined in notify.c */
  303. extern void build_host_strings();
  304. extern void compute_nobody();
  305. extern void input_signals();
  306. extern void process_signals();
  307. extern void delivery_signals();
  308. extern void test_addresses();
  309. extern void perform_deliver_mail();
  310. extern void deliver_mail();
  311. extern void verify_addresses();
  312. extern void run_queue();
  313. extern void print_version();
  314. extern void print_queue();
  315. extern void smtp_mode();
  316. extern void batch_smtp_mode();
  317.  
  318. /* external functions defined in notify.c */
  319. extern void fail_delivery();
  320. extern void defer_delivery();
  321. extern void succeed_delivery();
  322. extern void error_delivery();
  323. extern struct addr *process_msg_log();
  324. extern void notify();
  325.  
  326. /* external functions defined in parse.c */
  327. extern char *parse_entry();
  328. extern struct attribute *parse_config();
  329. extern struct attribute *parse_table();
  330. extern char *read_entry();
  331.  
  332. /* external functions defined in pathto.c */
  333. extern void pathto();
  334. extern void optto();
  335. extern void uupath();
  336.  
  337. /* external functions defined in pwcache.c */
  338. extern struct passwd *getpwbyname();
  339. extern struct group *getgrbyname();
  340. extern struct passwd *getpwbyuid();
  341. extern struct group *getgrbygid();
  342.  
  343. /* external functions defined in qualify.c */
  344. extern char *qualify_domain();
  345.  
  346. /* external functions defined in queue.c */
  347. extern int queue_message();
  348. extern char **read_message();
  349. extern int write_body();
  350. extern void check_grade();
  351. extern void log_incoming();
  352. extern char **scan_spool_dirs();
  353. extern int swallow_smtp();
  354.  
  355. /* external functions defined in resolve.c */
  356. extern void resolve_addr_list();
  357. extern int islocalhost();
  358.  
  359. /* external functions defined in route.c */
  360. extern void route_remote_addrs();
  361. extern void verify_remote_addrs();
  362. extern char *match_end_domain();
  363. extern void route_driver_finish();
  364. extern struct router *find_router();
  365. extern struct route_driver *find_route_driver();
  366. extern void cache_routers();
  367. extern void finish_routers();
  368. extern char *read_router_file();
  369. extern struct method *read_method_file();
  370.  
  371. /* external functions defined in smailconf.c */
  372. extern char *read_config_file();
  373. extern void print_config_variable();
  374. extern char *read_standard_file();
  375. extern char *fill_attributes();
  376. extern struct attr_table *find_attribute();
  377. extern void add_config_stat();
  378. extern int is_newconf();
  379. extern char *make_lib_fn();
  380.  
  381. /* external functions defined in smtprecv.c */
  382. extern char **receive_smtp();
  383.  
  384. /* external functions defined in spool.c */
  385. extern int creat_spool();
  386. extern int write_spool();
  387. extern int open_spool();
  388. extern void close_spool();
  389. extern void unlink_spool();
  390. extern int seek_spool();
  391. extern int tell_spool();
  392. extern int send_spool();
  393. extern int read_spool();
  394. extern void log_spool_errors();
  395. extern int new_grade();
  396. extern void defer_message();
  397. extern long message_date();
  398.  
  399. /* external functions defined in string.c */
  400. extern int strcmpic();
  401. extern int strncmpic();
  402. extern int strip();
  403. extern char *strcolon();
  404. extern int is_string_in_list();
  405. extern char *strerrno();
  406. extern char *strsysexit();
  407. extern void str_printf();
  408. extern char *xprintf();
  409. extern int dprintf();
  410. extern long c_atol();
  411. extern char *base62();
  412. extern void str_cat();
  413. #ifndef HAVE_VFPRINTF
  414. extern int vfprintf();
  415. #endif
  416. extern long ivaltol();
  417.  
  418. /* external functions defined in sysdep.c */
  419. extern char *time_stamp();
  420. extern char *get_arpa_date();
  421. extern int get_local_year();
  422. extern char *unix_date();
  423. extern void compute_sender();
  424. extern void getfullname();
  425. extern FILE *fopen_as_user();
  426. extern int lock_file();
  427. extern void unlock_file();
  428. extern char *compute_hostname();
  429. extern int open_child();
  430. extern int close_child();
  431. extern void close_all();
  432. extern char *scan_dir();
  433.  
  434. /* external functions defined in transport.c */
  435. extern struct assign_transport *assign_transports();
  436. extern void call_transports();
  437. extern int write_message();
  438. extern char *remote_from_line();
  439. extern char *local_from_line();
  440. extern struct transport *find_transport();
  441. extern struct transport_driver *find_transport_driver();
  442. extern void cache_transports();
  443. extern void finish_transports();
  444. extern char *read_transport_file();
  445.  
  446. /* external functions defined in verify.c */
  447. extern void verify_addr_list();
  448.  
  449. /* external functions defined in version.c */
  450. extern char *version();
  451.  
  452.