venta@otello.sublink.org (Paolo Ventafridda) (02/11/91)
Archive-name: RNALIB-22_b1/part02 ---- Cut Here and unpack ---- #!/bin/sh # this is z-rnalib.02 (part 2 of RNALIB-22_b1) # do not concatenate these parts, unpack them in order with /bin/sh # file helpfiles continued # if touch 2>&1 | fgrep '[-amc]' > /dev/null then TOUCH=touch else TOUCH=true fi if test ! -r shar3_seq_.tmp; then echo "Please unpack part 1 first!" exit 1 fi (read Scheck if test "$Scheck" != 2; then echo "Please unpack part $Scheck next!" exit 1 else exit 0 fi ) < shar3_seq_.tmp || exit 1 echo "x - Continuing file helpfiles" sed 's/^X//' << 'zXqzXqzXq' >> helpfiles && XXThis list doesn't include LISTSERV commands; mailing lists might not be XXconfigured here. For a list of LISTs commands ask for "@@ help listserv". XX XXNOTE: a LOT of command aliases are supported and correctly understood by XX==== rnalib. Normally, uppercase/lowercase and some of their combinations XX work fine all the way. You can get the whole alias list with: XX @@ help aliases XX XX XX----------------------------|-------------------------------------------- XX command | action XX----------------------------|-------------------------------------------- XX XX help sends back a quick help XX XX help {topic} sends back help on 'topic'. XX XX release sends RNALIB's release number, and some XX notes about its current configuration. XX RNALIB is a public domain software for XX all unix/xenix machines. XX XX index {library} sends a verbose description of XX library contents. If no library is XX specified, the system library is assumed XX and a list of available libraries is XX sent. At the end, a 'list' command is XX automatically executed. So you get a full XX description of what's inside a lib. XX XX list {library} sends a list of library's contents. XX If no library is specified, system XX library is assumed. This is useful XX whenever you need file names and their XX lenght, while you already know their XX meaning. XX XX find [filename] searches inside ALL available libraries XX for files whose names match 'filename'. XX A result of the research is returned. XX XX credits will return how many bytes you are XX authorized to request before being denied. XX This is to prevent abnormal network traffic. XX Remember that someone is always PAYING for XX your requests. This command will report XX your credit left. XX XX XX split [Kbytes] Will force a file-splitting into several XX smaller parts, each one [Kbytes] long. XX Original file can be rebuilt using 'sh', since XX splitting is done with 'shar'. XX XX -------- XX send XX -------- XX Since this command is very important, we'll spend some more words XX on him. A complete help is available on "send", so if there's XX something you don't understand, use "@@ help send" . XX Here's the full "send" syntax: XX XX send [file] {from [library]} {with [encode_type]} {via [layer]} XX ---- ------ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ XX XX [file] is the file name selected. For instance: XX rnalib.tar.Z XX XX [library] is the name of the library where [file] is located. XX A list of libraries is usually obtainable with XX @@ index . If no library is specified, the 'DEFAULT' XX one is assumed (also known as 'system' library). XX XX [encode_type] is used whenever requested file is binary and you XX are asking for an email shipping. The default type XX is uuencode. If you ask for a binary file through XX email (@@ send binfile from library) without XX choosing any special encoding type, you'll get your XX file treated with uuencode automatically. XX Beside encoding, you can ask for special compressions XX types, and combine compress + encode if you like. XX Available types are: XX XX uuencode (default) XX btoa XX compress XX compress-uuencode (default for compress) XX compress-btoa XX lharc XX lharc-uuencode (default for lharc) XX lharc-btoa XX zoo XX zoo-uuencode (default for zoo) XX zoo-btoa XX XX XX [layer] is the way any rnalib answer will travel back to you. XX Usually through email (that's the default). XX You might also prefer 'uucp', if the network you're on XX allows you to use uucp over the full path to this site. XX Since uucp allows binary file transfers, you can get XX your file compressed without being encoded, saving at XX least 35%-50% of time transfer. Same for uusend. XX Available layers are: XX XX email (default) XX uucp XX uusend XX XX XSHAR_EOF X$TOUCH -am 0204184491 commands && Xchmod 0600 commands || Xecho "restore of commands failed" Xset `wc -c commands`;Wc_c=$1 Xif test "$Wc_c" != "5047"; then X echo original size 5047, current size $Wc_c Xfi X# ============= external ============== Xecho "x - extracting external (Text)" Xsed 's/^X//' << 'SHAR_EOF' > external && XX XX====================================================== XXRNALIB EXTERNAL DESTINATIONS (privileged origins only) XX====================================================== XX XXNormally RNAlib sends its output to the origin of the query-message. XXHowever, if you are a 'privileged origin' you may also specify a XX'send' command for a different destination, i.e. another user, XXalso on another system. XX XXTo do this, simply add to the normal 'send' command a 'to' followed XXby the email address of the destination user. This address might be XXa UUCP-BANG or an ARPA format (*); the address WILL NOT BE CHECKED. XX XXExample: XX @@ send tetris from games with btoa to bob@usixth XX XXOf course you can also use: XX to usixth!bob XX to onesys!twosys!user XX to user@host.domain XX etc.etc. XX XXIf your request is not a valid one for any reasons - nonexistent XXlibrary or files, syntax errors etc. - response messages will be XXsent to YOU, NOT to the 'external destination'. So if you don't XXreceive anything back from RNAlib, then your request was accepted XXand the stuff was sent to the specified external user. XX XXBEWARE: if something goes wrong, at this point, the message will XXcome back to RNAlib and archived as 'rejected mail'. This would XXhappen when your 'external destination' does not exist (user or host XXunknown). IT'S UP TO YOU that the 'to' argument is VALID. XX XX(*) EXTERNAL DESTINATION FOR LAYER UUCP XX======================================= XX XXExternal destinations can apply also to the uucp layer. That is, a user XXcan send a file using uucp instead of email. XXThe only limitation is the 'to' address: it has to be in a BANG format. XXNo arpa addresses can be specified in these cases. XXExample: XX XX@@ send tetris from games with compress via uucp to usixth!bob XX@@ send tetris from games with compress via uucp to onesys!twosys!user XX XX XXUSING EXTERNAL DESTINATIONS XX--------------------------- XXRNA will only allow you to use 'to' inside a 'send' request. XXIf you need to send a list of files to a friend, here's how XXto do it. XX XX Index is a simple file inside each library, called "INDEX". XX Index might not be available, though. System library however XX HAS an 'INDEX' containing list of available libraries. XX So you might always try: XX XX @@ send INDEX to user@host XX XX which is equivalent to '@@ index' XX XX @@ send INDEX from games to user@host XX XX which is equivalent to '@@ index games'. XX XXEXAMPLE: XX-------- XXYour friend marcus on machine foobar (standing 2 'hops' away from you) XXwould like to get 'bigdoc.tar.Z', which is a compressed tar file inside XXthe 'documents' library. Marcus' system doesn't have 'compress' and 'tar', XXsince this guy is running DOS (he's brain limited). However, foobar has XXan executable copy of "zoo"! Wow. So, we need to send him bigdoc in zoo XXformat, while actually it's stored as a tar+compress. XXNO BIG DEAL! XX XX@@ send bigdoc.tar.Z from documents to hop!hop!foobar!marcus using zoo over uucp XX XXPretty long isn't it... but marcus will get bigdoc.zoo! XXRnalib is doing uncompress>untar>zoo for you. XX XXAs soon as marcus will try to unzoo the file, his hard disk will be low-level XXformatted and he'll be finally forced to use unix (Just Joking!!). XX XX XSHAR_EOF X$TOUCH -am 0204191191 external && Xchmod 0600 external || Xecho "restore of external failed" Xset `wc -c external`;Wc_c=$1 Xif test "$Wc_c" != "3425"; then X echo original size 3425, current size $Wc_c Xfi X# ============= help ============== Xecho "x - extracting help (Text)" Xsed 's/^X//' << 'SHAR_EOF' > help && XX XX -------------------------------------------------------- XX R N A L I B Q U I C K H E L P S U B S Y S T E M XX -------------------------------------------------------- XX XXCommands are basically compatible with other mail and list servers, like XX"netlib" and "LISTSERV". A simple request could look like @@ send file . XXReturn address for the answer is automatically generated; binary files are XXgenerally automatically converted into vanilla ASCII formats. XX XXGet some more informations with: XX XX@@ help rnalib This is the RNALIB USER'S GUIDE, a complete tutorial XX on the mail server, its commands, its facilities. XX XX@@ help commands Returns a list of all commands and their syntax. XX This list is also included inside the User's Guide. XX XX@@ help listserv Returns LISTSERV commands and their syntax: these XX commands apply only to mailing-lists (if enabled). XX Not included inside User's Guide. XX XX@@ help aliases Returns a list of all commands/listserv aliases: XX alternate keywords understood by rnalib. XX Not included inside User's Guide. XX XX@@ help external How to use "external destinations" (restricted usage) XX Not included inside User's Guide. XX XSHAR_EOF X$TOUCH -am 0204185691 help && Xchmod 0600 help || Xecho "restore of help failed" Xset `wc -c help`;Wc_c=$1 Xif test "$Wc_c" != "1156"; then X echo original size 1156, current size $Wc_c Xfi X# ============= listserv ============== Xecho "x - extracting listserv (Text)" Xsed 's/^X//' << 'SHAR_EOF' > listserv && XX XX ========================================== XX R N A L I B (LISTSERV) C O M M A N D S XX ========================================== XX XXThese commands are valid only if the 'LISTSERV' facilities of RNALIB XXare configured and enabled. LISTSERV commands are used to handle XXmailing lists, basically a collection of net-addresses. XX XXCommands can be both upper and lower case; arguments ARE case-sensitive. XXWe call 'origin' the user/host who sent the query. XXThis list doesn't include standard rnalib commands; the general list XXis available with "@@ help commands". XX{ } means parameter not necessary XX[ ] means parameter compulsory XX XXNOTE: a LOT of command aliases are supported and correctly understood by XX==== rnalib. Normally, uppercase/lowercase and some of their combinations XX work fine all the way. You can get the whole alias list with: XX @@ help aliases XX XX ---------------------------------- XX XX lindex [listname] XX review [listname] XX signon [listname] XX signoff [listname] XX findme XX XX ---------------------------------- XX XX DESCRIPTIONS XX XX--------------------------------------------------------------------- XXSyntax: lindex [listname] XX XXReturns the listname description, also known as 'NOTES'. XXUsually it describes what the mailing list is about, what XXyou can expect to get, how often and how much. XX XXOf course, this kind of information is up to the rnalib's XXadmnistrator, and sometimes could not be available. XX XXThe lindex command WITHOUT an argument is applied to the XXso called 'DEFAULT' (or 'system') mailing list. XXNOTES about this list usually describe which mailing lists XXare available within the LISTSERV environment of RNALIB. XX XXExamples: XX XX @@ lindex XX XX normally returns a general description of all available XX mailing lists on the system. XX XX @@ lindex listname XX XX returns a verbose description of the mailing-list 'listname'. XX XX XX--------------------------------------------------------------------- XX XXSyntax: review [listname] XX XXReturns the content of the "listname" mailing list; that is, the XXdatabase of user's addresses either in arpa or uucp format. XX XXA mailing list can be "Read Protected" (R-CLOSED); in this case XXuser's are not allowed to view it, and a warning is sent about this XXmatter. XX XXThe review command WITHOUT an argument is applied to the XXso called 'DEFAULT' (or 'system') mailing list. XX XX XXExample: XX @@ review rnalib XX XX XX--------------------------------------------------------------------- XX XXSyntax: signon [listname] XX XXAdds incoming mail's address into the "listname" mailing list. XXThe address is stored in ARPA format (user@host.domain), or in XXUUCP format if ARPA is not found. XXIf the user's address already exists inside the mailing list, XXa warning is sent back to the user and his name is not added. XXThus, an address cannot appear twice in the same mailing list. XXOnce the user's address is added, a confirmation message is sent XXback to the user. XX XXA mailing list can be configured to be "Write Protected" (W-CLOSED). XXIn this case, users are not allowed to subscribe; normally, such XXprotections are announced inside the 'NOTES' file of the mailing XXlist, which can be retrieved with @@ lindex listname . XX XXA list of available mailing lists can be obtained with @@ lindex . XX XXThe signon command WITHOUT an argument is applied to the XXso called 'DEFAULT' (or 'system') mailing list. XX XX XXExample: XX @@ signon rnalib XX XX XX--------------------------------------------------------------------- XX XXSyntax: signoff [listname] XX XXRemoves incoming mail's address from the "listname" mailing list. XXBoth ARPA and UUCP addresses (if available) are searched. XXIf the user's address does'nt exist inside the mailing list, XXa warning is sent back to the user. XXOnce the user's address has been removed, a confirmation message is sent XXback to the user. XX XXA mailing list can be configured to be "Write Protected" (W-CLOSED). XXIn this case, users are not allowed to unsubscribe; normally, such XXprotections are announced inside the 'NOTES' file of the mailing XXlist, which can be retrieved with @@ lindex listname . XX XXA user can get the mailing lists' names where he's subscribed XXwith command @@ findme . XX XXThe signoff command WITHOUT an argument is applied to the XXso called 'DEFAULT' (or 'system') mailing list. XX XXExample: XX @@ signoff rnalib XX XX XX--------------------------------------------------------------------- XX XXSyntax: findme XX XXScans all available mailing lists, and returns those where the user's XXaddress appears. XX XX XX--------------------------------------------------------------------- XX XSHAR_EOF X$TOUCH -am 0204175791 listserv && Xchmod 0600 listserv || Xecho "restore of listserv failed" Xset `wc -c listserv`;Wc_c=$1 Xif test "$Wc_c" != "4623"; then X echo original size 4623, current size $Wc_c Xfi X# ============= me ============== Xecho "x - extracting me (Text)" Xsed 's/^X//' << 'SHAR_EOF' > me && XX XXI'm always glad to help you, dear. XXJust gimme some hints on WHAT! XXTry a simpler @@ help XX XXbyebye XSHAR_EOF X$TOUCH -am 0203214391 me && Xchmod 0600 me || Xecho "restore of me failed" Xset `wc -c me`;Wc_c=$1 Xif test "$Wc_c" != "98"; then X echo original size 98, current size $Wc_c Xfi X# ============= rnalib ============== Xecho "x - extracting rnalib (Text)" Xsed 's/^X//' << 'SHAR_EOF' > rnalib && XX XX XX------------------------------------------------------------------------------ XX XX lll ii bbb XX ll bb XX rr rrr nnnnn aaaa ll iii bb XX rrr rr nn nn aa ll ii bbbbb XX rr rr nn nn aaaaa ll ii bb bb XX rr nn nn aa aa ll ii bb bb XX rrrr nn nn aaa aa llll iiii bb bbb (c) XX THE ITALIAN MAIL SERVER XX XX RNALIB 2.2 XX XX U S E R ' S G U I D E XX XX Copyright (c) 1989,1990,1991 by Paolo Ventafridda XX (venta@i2ack.sublink.org) XX Marco Lorenzini (marlor@gear.sublink.org) XX Milano, Bologna - ITALY XX XX XX------------------------------------------------------------------------------ XX XX XXINTRODUCTION XX------------ XXRNA handles files inside internal directories named 'LIBRARIES'. XXThe DEFAULT LIBRARY is referred as 'system library' and contains XXthis HELP, system notes and anything that might interest you about XXRNA itself, included the INDEX of available libraries. XX XXAs a remote user you can 'list' contents of libraries: files, XXsizes, creation date. Furthermore you can get - if available - the XXverbose description of a library; this is called 'index', and it's XXup to the sysop. An index might not exist for some libraries. XXThe 'system library' has a special index available: it lists all of XXavailable public libraries. XX XXYou can query RNA by sending normal e-mail to a user named 'rnalib'. XXThis user does not really exist: it's a dummy login for a "daemon". XXYour mail is read by a PROGRAM, not by a human, so you must pay XXattention to fit some simple rules while 'talking' to him. XX XXCOMMAND SYNTAX XX-------------- XXRNA recognizes command lines inside your email by grepping out of it XXa couple of "@@". So any line containing "@@" potentially might XXcontain commands. XXOther lines are IGNORED; they are not processed, and not even read XXby a human (again), so your greetings and thanks are useless ;-) XXA command SHOULD start with @@ and last a single line. XXYou can put multiple @@ lines in the same message. XX XXYou can leave spaces ahead, that's no problem, but you can't by any XXmean put words. RNA could not understand. There's an exception XXhowever: the magic world 'Subject:' is correctly recognized and XXskipped, so that you can forward requests using the 'subject' field XXof your mail without bothering further on. After '@@' there HAS to XXbe at least one space. A command line cannot contain XX'magic characters' like : *\/'`"| . XX XXADDRESS FOR THE ANSWER XX---------------------- XXRNA is capable of recognizing automatically your email address. You XXdon't need to tell RNA were to ship its answers. RNA will use your XXemail headers to figure out which path replies should go on. XXMail will come straight forward to you, using either 'UUCP-BANG' XXor 'ARPA' addressing style. RNA will NOT consider headers declarations XXsuch as "Reply-To:" or "Sender:". XX XXRnalib understands two kind of addresses: XX XX(1) UUCP addresses ("bang addresses") like XX host!host!user XX(2) ARPA addresses ("domain addresses") like XX user@host.domain XX XXThe (1) is usually got from the very first From line in your message's XXheader, and is assumed to be the real one. XXThe (2) is searched inside the header's body and is parsed following XXsome RFC-822 rules. If it doesn't exist, no problem, the (1) is always XXavailable. XX XXFollowing under the (2) are some combinations of UUCP and ARPA addresses. XXSome mailers (like sendmail) like to change original From: lines adding XXtheir own thoughts. XX XXRNALIB can be configured to use UUCP addresses for requests concerning XXlibraries (files), and ARPA for those concerning mailing lists (if XXenabled). The way RNALIB uses addresses is up to the system administrator XXand usually depends much on which mailer is installed. XX XX"The nice thing about standards is that there are so many to choose from." XX XXRNALIB knows this truth.... XX XX XXCREDITS (BYTES) XX--------------- XXEvery rnalib request sends - usually - back an answer, via e-mail XXor whatever transport layer. Rnalib calculates the size of this reply XXand subtracts this size to the amount left as credits. XX XXRnalib can be configured to give a certain amount of bytes as XXdefault credits for new users, or to leave this credit without XXlimits. An rnalib operator can also choose to 'lock' credits XXfor new users: in this case new users have to subscribe by mailing XXthe rnalib manager asking for an rnalib account. XX XXRnalib can be configured to 'size' certain paths just like users, XXfor instance a long-distance link, or big hosts. In this case, XXcredits are applied as a 'forfait' for the whole network/users XXon that chosen path. XX XXOnce credits have expired, the rnalib operator can be asked for XXa credit reset. XX XXThe mechanism of credits within rnalib is called 'pathsizing' XXand can also be disabled (no control over requests). XX XX XXRNALIB BLACKLISTS XX----------------- XXBlacklisting means that you are off-limits from this rna-site. XXIt could be as well that one of the hosts you're going through XXhas been blacklisted. XXBlacklisting is applied for different reasons. One is 'credits': XXthis 'variable' can be fixed for hosts, for users and for gateways. XXIf rna keeps saying you're blacklisted, try asking around if XXsomeone else has been using rna as hell. The whole network you're on XXmight have been isolated. XXAnother reason is SECURITY: rna here traces all requests and analyzes XXtheir contents. Whenever there's a 'strange' attempt to hurt itself, XXa mail to postmaster is generated automatically. XXPlease do not send requests containing funny characters like XX' $ * and so on. Note that wildcards are not allowed too. XX XX XXASCII AND BINARY FILES XX---------------------- XXYou can ask for any files you 'list' inside libraries; they will be XXship inside ordinary email. Unfortunately, email cannot be used to XXtransfer binary files, so we had to use something in order to XXtranslate binaries into pure-ascii text. XX XXRNA currently uses two kind of such converters: "uuencode" and XX"btoa". Both of them do the same job; the only difference is that XX"btoa" is more recent than "uuencode", and saves some 15% size while XX'expanding' the binary code into ascii . However, you might expect XXa binary file sized -say- 100 to be encoded to a size of 150; this XXkind of translators do their best, but keep their limits. XX XXNow you got the situation: if you need a binary file, BE SURE to XXhave a copy of either "uuencode" or "btoa" available, so that you XXwill convert them back to their original format as soon as you XXreceive rna mail. XX XXOf course, since "btoa" is much better than uuencode, if you have it XXthen USE it! We'll see how to specify a 'btoa encoding' later on. XX XXFILE COMPRESSION XX---------------- XX XXIf you are dealing with ascii files, then it's worth while trying XXto use the famous 'compress' utility. This will reduce up to 50% XXor more file's sizes. Once a file has been compressed, you need XXto convert it back to ascii with uuencode or btoa. These utilities XXwill expand a compressed file from 15-25% . Overall, you get a XXsize reduction of some 35-25%, which is not bad. XX XXLAYERS XX------ XX XXNormally, RNA will use e-mail for delivering requested stuff. XXE-mail needs to be ascii, that's why we use convertors. XXIf you use 'uucp' or 'uusend', there's no need to re-convert XXa compressed file! In this case, go for a simple 'compress' XXshipping through binary layers such as uucp. XXCaution: using uucp/uusend presumes that the network you're on XXallows - host by host - these remote commands. XXNot always this is true; ask your postmaster! XX XXSPLIT XX----- XXIt is sometimes necessary to split a long file into several smaller XXparts. Sometimes this is not optional! Certain gateways allow only XXa limited number of kilobytes per mail to be sent, and email longer XXthan -say- 100K is rejected/discarded/removed/who knows (?!?). XX XXFor this reason RNALIB can be configured to let users split their own XXfiles, choosing the maximum size of each subpart. XXThat's very easy to do: simply put this command inside the same mail XXcontaining the 'send' request: @@ split nn where nn is the decimal XXnumber of Kbytes (30 = 30Kbytes). XXThat splitting value lasts for all 'send' requests inside the same email. XXYou can change the split size adding as many other @@ split as you want. XX XXThere's usually a MINIMUM and a MAXIMUM 'split size' configured internally XXto rnalib, and a 'DEFAULT' split size as well. A user cannot ask for a XXsplit size lower than MINIMUM or higher than MAXIMUM; any request XXwhich is producing an output longer than MAXIMUM Kbytes is automatically XXsplit into smaller parts of DEFAULT size. XX XX XX============================== XXR N A L I B C O M M A N D S XX============================== XX XXHere comes a list of commonly used RNALIB commands. XX{ } means parameter not necessary XX[ ] means parameter compulsory XXCommands can be both upper and lower case; arguments ARE case-sensitive. XXWe call 'origin' the user/host who sent the query. XXThis list doesn't include LISTSERV commands; mailing lists might not be XXconfigured here. For a list of LISTs commands ask for "@@ help listserv". XX XXNOTE: a LOT of command aliases are supported and correctly understood by XX==== rnalib. Normally, uppercase/lowercase and some of their combinations XX work fine all the way. You can get the whole alias list with: XX @@ help aliases XX XX XX----------------------------|-------------------------------------------- XX command | action XX----------------------------|-------------------------------------------- XX XX help sends back a quick help XX XX help {topic} sends back help on 'topic'. XX XX release sends RNALIB's release number, and some XX notes about its current configuration. XX RNALIB is a public domain software for XX all unix/xenix machines. XX XX index {library} sends a verbose description of XX library contents. If no library is XX specified, the system library is assumed XX and a list of available libraries is XX sent. At the end, a 'list' command is XX automatically executed. So you get a full XX description of what's inside a lib. XX XX list {library} sends a list of library's contents. XX If no library is specified, system XX library is assumed. This is useful XX whenever you need file names and their XX lenght, while you already know their XX meaning. XX XX find [filename] searches inside ALL available libraries XX for files whose names match 'filename'. XX A result of the research is returned. XX XX credits will return how many bytes you are XX authorized to request before being denied. XX This is to prevent abnormal network traffic. XX Remember that someone is always PAYING for XX your requests. This command will report XX your credit left. XX XX XX split [Kbytes] Will force a file-splitting into several XX smaller parts, each one [Kbytes] long. XX Original file can be rebuilt using 'sh', since XX splitting is done with 'shar'. XX XX -------- XX send XX -------- XX Since this command is very important, we'll spend some more words XX on him. A complete help is available on "send", so if there's XX something you don't understand, use "@@ help send" . XX Here's the full "send" syntax: XX XX send [file] {from [library]} {with [encode_type]} {via [layer]} XX ---- ------ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ XX XX [file] is the file name selected. For instance: XX rnalib.tar.Z XX XX [library] is the name of the library where [file] is located. XX A list of libraries is usually obtainable with XX @@ index . If no library is specified, the 'DEFAULT' XX one is assumed (also known as 'system' library). XX XX [encode_type] is used whenever requested file is binary and you XX are asking for an email shipping. The default type XX is uuencode. If you ask for a binary file through XX email (@@ send binfile from library) without XX choosing any special encoding type, you'll get your XX file treated with uuencode automatically. XX Beside encoding, you can ask for special compressions XX types, and combine compress + encode if you like. XX Available types are: XX XX uuencode (default) XX btoa XX compress XX compress-uuencode (default for compress) XX compress-btoa XX lharc XX lharc-uuencode (default for lharc) XX lharc-btoa XX zoo XX zoo-uuencode (default for zoo) XX zoo-btoa XX XX XX [layer] is the way any rnalib answer will travel back to you. XX Usually through email (that's the default). XX You might also prefer 'uucp', if the network you're on XX allows you to use uucp over the full path to this site. XX Since uucp allows binary file transfers, you can get XX your file compressed without being encoded, saving at XX least 35%-50% of time transfer. Same for uusend. XX Available layers are: XX XX email (default) XX uucp XX uusend XX XX XX XXImportant Notes on 'send' XX------------------------ XX XX1- When you ask for a file to be sent, RNA checks if it's ASCII or XX BINARY automatically. XX XX2- You can ask for compression of files; obviously the result has XX to be converted to ascii, either with uuencode or btoa. XX If you don't specify btoa, uuencode will be used as default. XX XX3- If file is already compressed (its name is terminated by a .Z) XX rnalib will ignore your compress-request. XX XX4- If you ask for a file 'with uuencode' or 'with btoa', and this XX file is a simple ascii-text, RNA will NOT follow your XX indication and ship the file as-it-is. In fact, there's no XX need to increase sizes and higher usenet's traffic! XX XX5- If you ask for a file 'via uucp' or 'via uusend', ascii convertors XX (btoa and uuencode) will NOT be used. See #4 for the reason. XX You are welcome to use 'compress', instead! XX XX XX6- If it's a binary file, RNA will AUTOMATICALLY encode it using: XX XX I) "uuencode" as a default XX II) "btoa" if specified and if locally available XX XX You may notice at this point that a declaration like XX "with uuencode" XX is useless, since if the file needs to be encoded it will actually XX be treated just with this method; and if file is already ascii, XX this declaration will simply be discarded. The specification was XX allowed for future versions of RNA. XX XX7- AUTOMATIC FILE FORMAT CONVERSIONS. XX When you list files inside a library, normally you can understand XX what kind of format they have by looking at their suffixes. XX Standard suffixes are: XX .Z compress XX .zoo zoo XX .tar tar format XX .lharc LHARC format XX .tar.Z tar + compress XX XX If you want to receive a file using an 'encode_type' different from XX the original one, rnalib will do all possible conversions for you XX automatically. XX For instance, tetris.tar.Z is a package archived with 'tar' and then XX compressed. If you want to get it in 'zoo' format you just have to XX add "with zoo" to your command line. Rnalib will: XX -uncompress tetris.tar.Z getting: tetris.tar XX -untar tetris.tar getting the original package XX -zoo the original package into: tetris.zoo XX This is 100% AUTOMATIC. No need to worry about it. XX XX XX XX XXRNALIB COMMAND EXAMPLES XX----------------------- XX XX(1) You want to know which libraries are available. XX XX @@ index XX XX(2) You want to know what's inside 'games' (a @@ list also performed) XX XX @@ index games XX XX(3) You just want to list a library named 'games'. XX XX @@ list games XX XX(4) You want to get a file named 'tetris' inside library 'games'. XX XX @@ send tetris from games XX XX This file will reach you via e-mail (default layer) once transformed XX into ascii with uuencode (default encoder). XX XX(5) You want tetris via e-mail using btoa. XX XX @@ send tetris from games using btoa XX or XX @@ send tetris from games with btoa XX XX Tokens like 'from', 'with', 'send' etc. have many aliases: XX you might get them with @@ help aliases . XX XX(6) You want to reduce tetris's size: XX XX @@ send tetris from games using compress XX XX This file will reach you via e-mail (default layer) after being XX compressed and uuencoded (default encoder). XX XX(7) As (6), but using btoa instead of uuencode: XX XX @@ send tetris from games using compress-btoa XX XX(8) You are willing to try uucp transfer instead of email: XX XX @@ send tetris from games over uucp XX XX Since uucp is a binary layer, encoders will not be used. XX XX(9) Hey, what about compressing the file before sending through uucp? XX XX @@ send tetris from games using compress via uucp XX XX(10) You want to search for files whose names contain 'rfc'. XX XX @@ find rfc XX XX You will get back a list of files with their related library. XX For instance you might get a message telling you that a file XX called 'rfc822' is available inside library 'documents'. XX At this point you can get it with: XX XX @@ send rfc822 from documents XX XX or any other valid syntax. XX XX(11) Now let's consider a file named "package.tar.Z" in a library XX named "archive". We might get it through email with a simple XX @@ send package.tar.Z from archive XX and this file would get encoded (since it's binary) with the XX default encoder: uuencode. XX If you need to get it in a 'lharc' format (usually under dos) XX you can ask: XX @@ send package.tar.Z from archive with lharc XX This time it will get to you as package.lharc ; encoded with XX uuencode. Need btoa encoding? XX @@ send package.tar.Z from archive with lharc-btoa XX XX See the previous: "AUTOMATIC FILE FORMAT CONVERSIONS" in this doc. XX XX(12) You would like to get a big package named "bigdoc" inside the default XX library; you would like the file to be split into several smaller XX parts, each one max 30K bytes long. XX @@ split 30 XX @@ send bigdoc XX or XX @@ send bigdoc from DEFAULT XX XX(13) Same as (12), but need also little doc, and since it's only 40K you XX prefer to get it all in one. XX @@ split 30 XX @@ send bigdoc XX @@ split 50 XX @@ send littledoc XX XX Please note that this is all together inside the same email. XX XX(14) After all these requests, how many bytes are we still allowed to XX request from rnalib? XX @@ credits XX XX(15) What system is rnalib running on? XX @@ release XX XX(16) Now a long command... XX XXSubject: @@ please send file.zoo from library using lharc over uucp XX XX XX XXDIAGNOSTICS XX----------- XXRNA will send you as much error diagnostics as possible, suggesting XXyou alternative commands and query methods. If something goes wrong XXyou will receive a complete diagnostic of the problem and a possible XXsolution (WOW!). XX XX XXEXTERNAL DESTINATIONS (privileged origins only) XX--------------------- XXNormally RNAlib sends its output to the origin of the query-message. XXHowever, if you are a 'privileged origin' you may also specify for a XX'send' command a different destination, i.e. another user, also on XXanother system. XXAsk your postmaster, or read help's topic 'external' with command: XX @@ help external XXif you are interested. XX XX XX -- END OF RNALIB 2.2 USER'S GUIDE -- XX XX------------------------------------------------------------------------------ XSHAR_EOF X$TOUCH -am 0206172191 rnalib && Xchmod 0644 rnalib || Xecho "restore of rnalib failed" Xset `wc -c rnalib`;Wc_c=$1 Xif test "$Wc_c" != "19930"; then X echo original size 19930, current size $Wc_c Xfi Xexit 0 zXqzXqzXq echo "File helpfiles is complete" && $TOUCH -am 0210163991 helpfiles && chmod 0666 helpfiles || echo "restore of helpfiles failed" set `wc -c helpfiles`;Wc_c=$1 if test "$Wc_c" != "39153"; then echo original size 39153, current size $Wc_c fi # ============= binfiles ============== echo "x - extracting binfiles (Text)" sed 's/^X//' << 'zXqzXqzXq' > binfiles && X#!/bin/sh X# This is a shell archive (shar 3.24) X# made 02/10/1991 16:53 UTC by venta@otello X# Source directory /usr/local/src/RNA/2_2 X# X# existing files WILL be overwritten X# X# This shar contains: X# length mode name X# ------ ---------- ------------------------------------------ X# 1064 -rw-r--r-- strings.c X# 860 -rwxr-xr-x check X# Xif touch 2>&1 | fgrep '[-amc]' > /dev/null X then TOUCH=touch X else TOUCH=true Xfi X# ============= strings.c ============== Xecho "x - extracting strings.c (Text)" Xsed 's/^X//' << 'SHAR_EOF' > strings.c && XX/* A very poor "strings" clone; just what you need for RNA 2.0 ;-) XX * I could do it in bourne shell as well, but -com'on- that would XX * really mean wasting time! XX * I still wonder why my 3b2-600 with UNIX V 3.2. has no "strings". XX * Who cares after all... XX * Use this 'strings' for 'MAKE_RNA' and inside RNA. The only XX * common thing between original 'strings' and this one is the name. XX * This is used twice in the whole package: once inside RNA, with XX * a single argument (filename), to grep out empty lines. XX * Once also inside MAKE_RNA, with a necessary option '-1' to force it XX * keeping lines with a single valid character (for instance a bracket). XX * No need to do more. XX */ XX XX#include <stdio.h> XX XXmain(argc,argv) XXint argc; XXchar *argv[]; XX{ XXFILE *fp, *fopen(); XXint car; XX XX XXif ((strcmp(argv[1],"-1")) == 0) XX fp=fopen(argv[2],"r"); XXelse XX fp=fopen(argv[1],"r"); XX XXwhile (( car=getc(fp)) != EOF) XX if (car >32) { XX putc(car,stdout); XX while (( car=getc(fp)) != 10) putc(car,stdout); XX putc(10,stdout); XX } XXfclose(fp); XX} XSHAR_EOF X$TOUCH -am 0206174091 strings.c && Xchmod 0644 strings.c || Xecho "restore of strings.c failed" Xset `wc -c strings.c`;Wc_c=$1 Xif test "$Wc_c" != "1064"; then X echo original size 1064, current size $Wc_c Xfi X# ============= check ============== Xecho "x - extracting check (Text)" Xsed 's/^X//' << 'SHAR_EOF' > check && XX: XX# RNALIB Support Utilities XX# check 1.0 XX# XX# This utility performs a bunch of checks upon the whole RNALIB's XX# environment. It will not allow RNALIB to continue processing any XX# mail unless specified. XX# To let RNA continue its work, a $TMPDIR/status file should be XX# created containing "RRUN". XX# XX XXtest $RNADIR || { XX# Hey. Something is wrong with environment: i can't find the most XX# important variable!! XX test $DEBUG && echo "PANIC: ENVIRONMENT MISSING" XX# Let's do a core dump (!) inside tmp XX set >/tmp/core.rna XX exit XX} XX XX# pathsize -whenever existing- HAS to be readable! XXtest -n "$PATHSIZE" && { XX test -r $PATHSIZE || { XX test $DEBUG && echo "ERROR: cannot open $PATHSIZE" XX exit XX } XX} XX XX# sorry, support utilities still under development XX XX# If we get here, all is OK, and RNA can continue. XXtest $DEBUG && echo "DIAGNOSTIC COMPLETED" XXecho RRUN >$TMPDIR/status XSHAR_EOF X$TOUCH -am 0210165291 check && Xchmod 0755 check || Xecho "restore of check failed" Xset `wc -c check`;Wc_c=$1 Xif test "$Wc_c" != "860"; then X echo original size 860, current size $Wc_c Xfi Xexit 0 zXqzXqzXq $TOUCH -am 0210165391 binfiles && chmod 0666 binfiles || echo "restore of binfiles failed" set `wc -c binfiles`;Wc_c=$1 if test "$Wc_c" != "3066"; then echo original size 3066, current size $Wc_c fi # ============= notice ============== echo "x - extracting notice (Text)" sed 's/^X//' << 'zXqzXqzXq' > notice && X X*************************************************************************** X* * X* WELCOME TO RNALIB 2.2 MAIL SERVER * X* kindly offered by your italian friends Paolo & Marco * X* * X* This is your 'notice' file inside $RNADIR * X* * X*************************************************************************** X zXqzXqzXq $TOUCH -am 0206182191 notice && chmod 0666 notice || echo "restore of notice failed" set `wc -c notice`;Wc_c=$1 if test "$Wc_c" != "611"; then echo original size 611, current size $Wc_c fi # ============= release ============== echo "x - extracting release (Text)" sed 's/^X//' << 'zXqzXqzXq' > release && X# RNALIB 2.2 MAIL SERVER - custom site configuration module X# ========================================================== X# These informations can be retrieved with "@@ release" X# Comments will be stripped out. Blank lines are kept. X# XHost name: XComputer: XOperating System: Release: XOrganization: XCity: State: XSystem administrator (full name): XSystem administrator (email address): XShell: XRnalib server was installed: XLast update/modification : X X# Additional informations can be put here X# Ex: mail limits, automatic file splitting size, default credits etc. zXqzXqzXq $TOUCH -am 0210183491 release && chmod 0666 release || echo "restore of release failed" set `wc -c release`;Wc_c=$1 if test "$Wc_c" != "629"; then echo original size 629, current size $Wc_c fi # ============= RNA ============== echo "x - extracting RNA (Text)" sed 's/^X//' << 'zXqzXqzXq' > RNA && X# @(#)RNA 2.2 [Revision A] Feb 1991 XRNAVERS="RNALIB 2.2 [beta-1]" X# X# = WELCOME TO RNALIB CONFIGURATION = X# ------------------------------------------------------------------------ X# Your attention please: we strongly suggest that you read carefully X# every comment in the following lines. This configuration comes together X# with necessary documents, step by step. Skip comments at your own X# risk: you may not understand the Operator's Guide later on! X# We all hate reading long docs. This is not long, it's just the minimum X# you need to know about the program. Consider these comments as X# part of the operator's manual. They are *not by any means 'optionals'. X# If you are going through the whole source, i suggest a 132 col.monitor. X# ------------------------------------------------------------------------ X# X# DIRECTORIES AND FILE NAMES (a suggestion) X# Most of the configuration is based on RNADIR (the following variable). X# You are of course free to change all the names and path, BUT i suggest X# you to keep the default ones, which are RNADIR-dependent. Basically, X# choose a 'home' directory for rnalib and try using default subdirs. X# Manuals always refer to those default names. X# X# Administrator's directory: this is a dedicated directory for rna. System X# files such as mail log, accounting etc. will be put here. Other sub- X# directories normally start under here. X# This directory will not be public, and should be closed to others X# but rnalib owner. This directory will not contain garbage. X# You can put the home directory of LOGNAME (see forward). X# RNADIR=/usr/rnalib XRNADIR=/usr/local/src/rnalib X# X# Utility's directory. RNALIB's executable files will be searched here. X# We're talking about shell or binary programs, like 'strings', 'check' X# and any future external program. It's a bin dir for rnalib, not more. X# We suggest $RNADIR/bin . You don't need to put XRNA here (later on this). XBINDIR=$RNADIR/bin X# X# PATH: rna looks for 'sed', 'head' and other usual unix utilities inside X# this path definition. Note: under SunOS put /usr/5bin ahead! X# We keep $BINDIR as first path, so it's easier to replace commands, X# functions etc. We also let the . (current directory) as last chance. X# Put here your usual paths, like.. X# PATH=$BINDIR:/bin:/usr/bin:/usr/local/bin:/etc:/usr/local/etc:. XPATH=$BINDIR:/bin:/usr/bin:/usr/local/bin:/etc:/usr/local/etc:. X# X# HELP FILES directory. Here you put files a user can ask for with X# @@ help <topic> . This is different from the main HELP file which X# is just a general reference guide. I suggest you choose a subdirectory X# of RNADIR, so it's easier to handle. You might select this directory X# as a public library also, in order to let people ask for these files X# (which have to be pure-ascii) with 'get' and all of its compression X# utilities. f.i. get layers from help with compress via uucp. X# If you don't plan to use it, LEAVE IT BLANK; i.e: nothing after =. XHELPDIR=$RNADIR/help X# X# Temporary directory: garbage stuff is going to be put here. X# You might choose a subdirectory of RNADIR; do not choose /tmp, you might X# get problems later on. Use a dedicated directory owned by rna. X# This folder is not going to take much space anyway. X# TMPDIR=$RNADIR/tmp XTMPDIR=$RNADIR/tmp X# X# Temporary directory: IF you allow file compression, outgoing stuff will X# be put here and then compressed before ship. You might choose the same X# place of TMPDIR. USE a dedicated directory, do not use /tmp. X# CONVDIR=$RNADIR/convert XCONVDIR=$RNADIR/convert X# X# Temporary directory: IF you allow file splitting, outgoing stuff will X# be put here and then splitted before ship. You might choose the same X# place of TMPDIR. USE a dedicated directory, do not use /tmp. XSPLITDIR=$RNADIR/split X# X# The login used as rna entry: tipically 'rnalib'. Create this entry inside X# /etc/passwd. Home directory is not really important: the only needed thing is X# that this user has to execute RNA and will receive query and rejected mail. X# You'll get more info on how to create this user inside OPER.GUIDE . X# By now, just pick up a name. Users will mail this name to access your X# libraries. But they could use aliases as well. Don't worry now. X# XLOGNAME=rnalib X# X# The name of your machine, as of 'uname -n' or similar.. Hey, dont put X# another one, use the correct local machine name. Don't cheat. X# If you are under some domain include it. Ex: i2ack.SUBLINK.ORG X# UNAME=host.domain XUNAME=otello.sublink.ORG X# X# The local postmaster, i.e. the person which will eventually solve X# remote user's problems. X# If you don't know what a Postmaster is, you are probably in the X# wrong place. Put 'root@$UNAME' and go on, this is only a reference. X# Remember to include username AND host (+ domain, if any), for instance X# venta@i2ack.SUBLINK.ORG . Postmaster need not to be on the same machine X# were RNALIB is placed! Just think of local networks... X# POSTMASTER=boss@host.domain XPOSTMASTER=venta@otello.sublink.ORG X# X# The local listmaster, i.e. the person in charge of mantaining mailing X# lists and solve user's problems. X# If you are not going to use listserver's commands, i.e. you don;t care about X# mailing lists handling by rnalib, you can omit it. X# LISTMASTER=friend@otherhost.domain XLISTMASTER=venta@otello.sublink.org X# X# When (IF) 'compress 'is used to ship files, their names are extended with X# a '.Z'. If your UNIX is a System V, maximum file name lenght is 14; if you X# are on BSD, it's 256; if you are on a Olivetti LSX it's 128 etc. X# Subtract 2 from your maximum file name lenght and fill the following X# variable: for instance, if you have max 14 characters names, put (14-2)=12. XMAXLENGTH=12 X# X# The mail file for LOGNAME, complete path. Usually: X# /usr/spool/mail/$LOGNAME on Xenix systems and SCO unix X# /usr/mail/$LOGNAME on Unix System V and BSD . XMAILBOX=/usr/mail/$LOGNAME X# X# Name of the file containing all of rna logs, status etc. X# also called "accounting".. (automatically created) X# Be tidy! Keep it inside RNADIR. XLOGFILE=$RNADIR/account X# X# Name of the file which is going to keep record of ALL incoming mails X# (NOT the rejected mails...that would be stupid!). You may use this zXqzXqzXq echo "End of RNALIB-22_b1 part 2" echo "File RNA is continued in part 3" echo "3" > shar3_seq_.tmp exit 0 -- Paolo Ventafridda -*- INTERNET: venta@otello.sublink.org TELEMATIX MILANO - Via C.Gomes 10, 20124 Milano - +39-2-6706012