+-+-+-+ Beginning of part 2 +-+-+-+ X X /* Who are we, first off... */ X X bboard_hook_name = log_tran(bboard_hook_name_log); X if (bboard_hook_name) `123 X`009str_desc(&hook_name, bboard_hook_name); X `125; X X /* Where is our NOTES$NOTEBOOK.NOTE hiding? */ X X bboard_root_dir = log_tran(bboard_root_dir_log); X if (bboard_root_dir) `123 X`009str_desc(&root_dir, bboard_root_dir); X `125; X X /* Ok. Where do things go while we're playing with them? */ X X bboard_scratch_dir = log_tran(bboard_scratch_dir_log); X if (bboard_scratch_dir) `123 X`009str_desc(&scratch_dir, bboard_scratch_dir); X `125; X X /* And where's all of the interesting information hiding? */ X X bboard_control_file = log_tran(bboard_control_file_log); X if (bboard_control_file) `123 X`009str_desc(&control_file, bboard_control_file); X `125 X`125 X X/* We've been kicked by the AST */ X Xstatic void timer_check(void) X`123 X if (new_count > 0) `123 X`009com_write_notes(); X `125 else `123 X`009timer_reset(); X `125 X`125 X X/* Actually setup the AST timer */ X Xvoid timer_reset(void) X`123 X sys$cantim(1, PSL$C_USER); X sys$setimr(0, bboard_time_interval, timer_check, 1); X`125 X X/* Get the file and begin doing something with it */ X Xstatic void process_file(void) X`123 X struct jnet_file_header fin; X X while (rou_if_file() & 1) `123 `009/* Is the next thing a file? */ X X`009process_message();`009`009/* Check if got an interactive msg */ X X#ifdef DEBUG X`009printf("process_file: About to receive a file\n"); X#endif X`009status = receive_file(&fin);`009/* Try receiving it */ X`009if (!(status & 1)) `123`009`009/* That didn't work */ X`009 report_error("Receive file failed", status); X`009`125 X`009use_file(&fin); `009`009/* And now do something with it */ X X`009sprintf(temp, "F %s %s %s %s %s", fin.host, fin.user, fin.filename, X`009`009fin.filetype, fin.conf_name); X#ifdef DEBUG X`009printf("process_file: Received: %s\n", temp+2); X#endif X`009send_log_file(temp);`009`009/* Report that we got the file */ X `125 X`125 X X/* Get a message and process the interactive command */ X Xvoid process_message(void) X`123 X char node[10]; X char user[10]; X char msg[260]; X X while (rou_if_msg() & 1) `123`009`009/* Is the next thing a message */ X#ifdef DEBUG X`009printf("process_message: About to receive a message\n"); X#endif X`009receive_message(node, user, msg); /* Get it and who sent it */ X V`009if (user[0] == '\0' `124`124 user[0] == ' ') `123 /* Is this for real? X */ X`009 continue; X`009`125 V`009if (ignore_msgs(node, user)) `123`009/* Should we pay attention to this * X/ X`009 continue; X`009`125 X`009use_msg(node, user, msg);`009/* And do somthing with the command */ X `125 X`125 $ GOSUB UNPACK_FILE $ FILE_IS = "BBOARD.CTL" $ CHECKSUM_IS = 1819102477 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X!`009Control file for BBOARD X! X! First, all of the lists that we are dealing with X! X! +------------------------------------ Scan Text X! `124`009 +-------------------------- Topic Name X! `124`009 `124`009`009`009 +----- Username for BECOME X! `124`009 `124`009`009`009 `124 +--- Digest format? V! `124`009 `124`009`009`009 `124 `124 +- New Topic Interval [(W)eekly/(M)o Xnthly] V! `124`009 `124 `009`009`009 `124 `124 `124 Digest separator (from :diges Xts) X! `124`009 `124`009`009`009 `124 `124 +---------+ V! `124`009 `124`009`009`009 `124 +---------+ `124 +- Notes Conference Na Xme X! V`009 V`009`009`009 V`009 V V V V!--------> <------------------> <----------> `124 `124 <--------------------- X-----------------> X:lists XBITNEWS Bitnet Info`009`009`009 K M X-Bitnet-Info XBITTECH Bitnet Info`009`009`009 K M X-Bitnet-Info XFUTURE-L Bitnet Info`009`009`009 K M X-Bitnet-Info XNODMGT-L Bitnet Info`009`009`009 K M X-Bitnet-Info XPOLICY-L Bitnet Info`009`009`009 K M X-Bitnet-Info XSTD-L`009 Bitnet Info`009`009`009 K M X-Bitnet-Info XTECH-L`009 Bitnet Info`009`009`009 K M X-Bitnet-Info X <------------------> <--> X:sources XSN Sender:`009`00999 XRS Resent-to:`009`00999 XTO To:`009`009`00999 XCC Cc:`009`009`00999 XFR From:`009`009255 XSB Subject:`009`00999 X! X! And now for some rules X! X!+--------------------- 1st ID (from :sources) X!`124 +------------------ Comparison (, , , ) X!`124 `124 +--------------- 2nd ID, for or (from :sources) X!`124 `124 `124 +------------ ID to scan for list text (from :sources) X!`124 `124 `124 `124 +--------- From ID to use (from :sources) X!`124 `124 `124 `124 `124`009+------ Subject ID to use (from :sources) X!V V V V V`009V X!> <> <> <> <> <> X:rules XSN pr`009 SN FR SB XSN np`009 RS FR SB XTO pr TO FR SB XCC pr CC FR SB X! X! What format do we use for digests X! X!--------------`009Code to use to define digest (used above in :lists) X! +-----------`009Length that divider must be X! `124 +-------`009Error possible around length X! V V X! <-> <> X:digests XA 30 1 XB 55 1 XC 75 3 X! X! Who can tell BBOARD what to do? X! X! +---- Users able to send privileged commands X! V X!------> X:manager XBBoard XBen XSystem X! X! What links are our input links (for shutting down)? X! X!+----- Jnet links that must be inactive before BBOARD will go down X!V X!------> X:links XJCSVAX1 X! X! Who don't we want to talk to? X! Wildcards available with '*' and '%' X! X!+------------- Node to ignore X!`124`009 +---- User to ignore X!V`009 V X!------> <------> X:ignore X*`009 *SERV X! X! X! Lastly, all of the singular pieces of information X! X:log_file.BBOARD_DIR:BBOARD.NOTELOG X:err_conf.X-Unknown X:time_int.0 00:05:00.00 X:count_int.5 X!:local_ctct. $ GOSUB UNPACK_FILE $ FILE_IS = "BBOARD.DOC" $ CHECKSUM_IS = 1897306306 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X X X X X X X X X X X X X X X X X X X X X X BBOARD X X X The Link between VAX Notes(TM) and Bitnet Mailing Lists X X Version 1.41 X X X Benjamin M. Cohen X X Saint Peter's College X Academic Computer Center X 2641 Kennedy Blvd. X Jersey City, NJ 07306 X X X April 23, 1990 X X X Copyright (c) 1989, 1990 Benjamin M. Cohen X X X Permission to reproduce the programs and X documentation for non-commercial purposes is X hereby granted. All other rights reserved. X`012 X X X X X X X X Contents X X X INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . 3 X X INSTALLATION . . . . . . . . . . . . . . . . . . . . . . . . 4 X BBoard Posting Mode . . . . . . . . . . . . . . . . . . 4 X Required User Priveleges and Account . . . . . . . . . . 4 X Starting the Detached Process . . . . . . . . . . . . . 5 X Logical Names . . . . . . . . . . . . . . . . . . . . . 5 X Control File . . . . . . . . . . . . . . . . . . . . . . 6 X Control Section - :lists 6 X Control Section - :sources 8 X Control Section - :rules 9 X Control Section - :digests 9 X Control Section - :manager 10 X Control Section - :links 10 X Control Section - :ignore 11 X Control Section - :log_file. 11 X Control Section - :err_conf. 11 X Control Section - :time_int. 12 X Control Section - :count_int. 12 X Control Section - :local_ctct. 12 X Suggested Notes Set-up . . . . . . . . . . . . . . . . . 13 X Example Set-Up Files and Tools . . . . . . . . . . . . . 13 X JANTIDY_ADDITION.COM 14 X BBOARD.CTL 14 X START_BBOARD.COM 14 X RUN_BBOARD_DAEMON.COM 14 X NOTES$COMMAND.SAMPLE 14 X NOTES-PRINT.SAMPLE 15 X BBOARD_MAKE_CONF.COM 15 X NOTES_PURGE.COM & NOTES_PURGE.FDL 16 X X INTERACTIVE COMMANDS . . . . . . . . . . . . . . . . . . . . 18 X DISPLAY Command . . . . . . . . . . . . . . . . . . . . 18 X HELP Command . . . . . . . . . . . . . . . . . . . . . . 18 X RELOAD Command . . . . . . . . . . . . . . . . . . . . . 18 X RESET Command . . . . . . . . . . . . . . . . . . . . . 18 X RESUME Command . . . . . . . . . . . . . . . . . . . . . 19 X SHUTDOWN Command . . . . . . . . . . . . . . . . . . . . 19 X STATUS Command . . . . . . . . . . . . . . . . . . . . . 19 X SUSPEND Command . . . . . . . . . . . . . . . . . . . . 19 X WRITE Command . . . . . . . . . . . . . . . . . . . . . 20 X X SUPPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 X Disclaimer . . . . . . . . . . . . . . . . . . . . . . . 21 X Trade Marks . . . . . . . . . . . . . . . . . . . . . . 21 X New Features . . . . . . . . . . . . . . . . . . . . . . 21 X Possible Future Enhancements . . . . . . . . . . . . . . 22 X Author . . . . . . . . . . . . . . . . . . . . . . . . . 22 X`012 X X X X X X X X INTRODUCTION X X BBoard is a program which acts as an interface between incoming X Jnet mail and VAX Notes. BBoard expects that the delivered mail X will be sent from a LISTSERV machine running on Bitnet or an X Internet mailing list. The program requires that there be some X form of consistent information in the header. X X BBoard normally operates without any user intervention, posting X messages to VAX Notes as they arrive. BBoard uses a control file X to scan through the headers from each incoming mail message. The X control file specifies which fields from the header are important X and how BBoard should determine to which LIST a particular X message belongs. X X Additionally, BBoard supports a limited number of interactive X commands for status and control. Status commands are X unrestricted, while control commands are limited to users X specified in the control file. X X These instructions assume that the reader is familiar with X VAX/VMS(TM), VAX Notes(TM) and the Bitnet/Internet environment. X Additionally, some familiarity with Jnet(TM) is expected. X X X X X X X X X X X X X X X X X X X X X X X X X X X X - Page 3 - X BBOARD April 23, 1990 X`012 X X X X X X X INSTALLATION X X X BBoard Posting Mode X X BBoard has two separate levels of functionality, known as X "Limited" and "Full". X X In Full mode, each individual Notes conference will have a X separate "conference pseudo-user". The conference user will be an X alias under which all messages will be posted. Each conference X user must have write privilege in its own conference. X X Additionally, the conference users should have mail forwarding X addresses pointing to the list submission address, allowing Notes X users to FORWARD/AUTH and have their responses submitted directly X to the list for distribution. X X As an example, the mailing list Info-VAX could be posted to X conference X-Info-VAX. The conference user might be INFOVAX, X which would have a mail forwarding address of "0::IN%""Info- X VAX@kl.sri.com""". X X In Limited mode, BBoard will post every incoming message as X BBOARD.`032 X X Please note that Full mode uses the program SETUNAME.EXE X (provided with BBoard) to modify the username in the Job X Information Block. This information is used by Notes to determine X the author of a note for replying purposes. X X X Required User Priveleges and Account X X BBoard runs as a Daemon (detached process) under VMS. The X detached process requires the following privileges to run in X Limited mode: X o TMPMBX X o NETMBX X o DETACH X To run in Full mode, the following additional privileges are X required: X o SYSPRV X o CMEXEC X o CMKRNL X X In either mode, a user account must be created for BBoard. This X account must have at least the privileges mentioned above. X Normally, all of the source and executable files are placed in X this account's default directory. X X - Page 4 - X BBOARD April 23, 1990 X`012 X X X X X X X X Additionally, this account should be used to perform all of the X "subscription requests" that are to be posted to BBoard. For X example, LISTSERV requests must be sent from the BBOARD username X so that all incoming mail will be sent to the BBOARD user and, by X Jnet, to the BBoard Daemon. X X -+-+-+-+-+ End of part 2 +-+-+-+-+-