This document is Copyright (C) 1995-2002 Mike Read. Tips - AllNews Version 1.36 Build Mar 16 2002 -------------------------------------------------------------- >>>>> IMPORTANT NOTICE <<<<< Unless I hear some loud objections soon, this will be the last release of AllNews using the 16-bit Windows API. I might be persuaded to take a stab at Win32s. This means that AllNews will no longer be available for Win3.x, Win32s, and OS2/Warp, among others. If you fall into this category or would like to give me some input on this decision, go to http://members.tripod.com/~MikeRead/vote31.htm -------------------------------------------------------------- The 1.x versions of AllNews are distributed as freeware. There is no charge for its [continued] use, and no fee may be collected for it other than reasonable costs of duplication and distribution. Any fee you do pay goes to the person you paid; the author does not get any of it. There are several features visible in the Configuration (and other) menus that are not yet enabled. I have attempted to "grey out" those features that are not supported, to prevent confusion. They will be working "soon". "Don't applaud, just throw money!" Contributions are cheerfully accepted. If you make one, I will "consider" any accompanying request. If you would like to commission a custom application (perhaps a 'bot), we will quote you for a nominal fee. See "services" on our web page. I am currently supporting AllNews under Windows 3.x, Windows 9x, and Windows NT. It is written using only the 16-bit APIs and Winsock, so it "should" work under Windows 2000, Win-OS/2 and Warp. As I cannot test all features on all platforms, I am now accepting bug reports and feature requests via the form available at http://members.tripod.com/~MikeRead/contact.htm The latest version of AllNews is available at http://members.tripod.com/~MikeRead/allnews.htm I will attempt to correct all reported bugs. I will consider all enhancement requests. Of course, a donation may increase the chances of implementation. Disclaimer: This program has bugs. They will get fixed. Eventually. There are no annoyware, time-bombs, viruses, or other malicious gotchas knowingly or intentionally introduced in this version. By using this product, the user agrees to assume all liability for any negative outcomes that may occur for any reason, and to hold the authors harmless. What do you want for free, anyway? ---------------------------------------------------------------------------- tips, bugs, etc: AllNews is a resource hog. It uses lots of memory and lots of disk space. It WILL max out your modem. My local ISP will vouch for the throughput that I am able to command with this reader. Recommended minimum configuration: 486DX2/66, 16MB RAM, 100MB free hard disk, 28.8 modem. More is better. Original development was done under MS-DOS 6.2, Win 3.1, Trumpet Winsock 2.1F, Zoom 28.8 modem. Current development platform is a 466 Mhz pentium, Windows 98, 128MB RAM, 1GB free hard disk, 56K modem. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- Installation: After downloading ALLNEWS.ZIP, move it to the directory where you want to keep it, such as C:\ALLNEWS. Unzip it (using WinZip, PKUNZIP, etc.). In the following discussion, refers to this directory. Win31: Open the program group to which you wish to add the AllNews icon. Select Program Manager | File | New. With "Program item" checked, press the "OK" button. For "Description" enter "AllNews". For "Command Line" enter \ALLNEWS.EXE For "Working Directory" enter Win95: Win98: WinNT: Select the in Windows Explorer (Start | Programs) Click, with the right mouse button, on the Allnews.exe file Select "Create Shortcut". This gives you "Shortcut to Allnews". With the left mouse button, click on the "Shortcut" and drag it to the desktop. You may click the right mouse button on "Shortcut to Allnews", select "Rename", and edit the name to "AllNews" Click the right mouse button on "Shortcut to Allnews", select "Properties", and then the "Shortcut" tab. Set the "Start in:" to OS/2 2.x: OS/2 Warp: To install AllNews within Win/OS2: Start a Win-OS2 session continue as per the Win31 installation. To install AllNews on the desktop: Holding down the Control key and the right mouse button, click on the "Windows" icon and drag it to a clear area of the desktop. A menu pops up asking to rename the object. Enter "AllNews" for name. Right mouse click on the icon. OS2 2.x: click on Open | Settings OS2 Warp: click Settings Set "Path and filename" to \ALLNEWS.EXE Leave "Parameters" blank Set "Working directory" to Set "Session" tab to either "WIN-OS2 Window" or "WIN-OS2 Full screen" Set "Window" tab to "Display existing window" Click on the Allnews icon to start the program, and continue installation. The "AllNews Configuration" tabbed dialog comes up. In the "F)iles" tab, default values for the directory (folder) locations for various types of files are displayed. You may change them to any value you wish. Note that the configuration file "CONFIGS.DAT" is kept in , the startup directory that you specified during installation. The settings in "F)iles" controls where the rest of the AllNews files are kept. You may also wish to select the "S)tatus" tab to set up the status line info, "Fil(t)ers" to set up anti-spamming controls, and any others you wish. You will need to set up your servers and newsgroups before you can proceed. ---------------------------------------------------------------------------- Running multiple instances of AllNews You may set up more than one shortcut or icon for AllNews, giving a different startup directory for each. Each instance uses its own configuration file (CONFIGS.DAT). The config file identifies the locations of all the other files used by AllNews. Each instance should use a different temp files directory (Config | Files | Temporary Files), as there will be conflicts with several of the *.DAT files stored there. The other output directories may be the same or different, as desired. -------------------------------------------------------------- Setting up news servers: You are on your own locating news servers. One came with your dial-up service. A link on our web page leads to some commercial servers, but I do not have the time or inclination to properly maintain or evaluate the list. Others may be found doing "web searches". Lists of "open" servers are circulated occasionally, but these are usually closed by the flood of connections that ensues. There is a feature in AllNews that accepts such a list and evaluates the usability of servers listed; select Servers | Reserve Servers | Test New list. If the server uses a nonstandard port (other than 119), enter the server name and port number in the format "server.name:port". Once you add a server to the list of servers, you must "test" it before you can use it. Test validates your access to the server and checks which commands it supports, so that AllNews can optimize its interaction with that server. In order to post to usenet, you must configure the servers you wish to use for posting. Servers | Edit | Post Here marks this server to be used for subsequent posting. -------------------------------------------------------------- Subscribing to newsgroups: The "List of available groups" is not currently supported. You must know the name of the groups you want to subscribe to and manually add them (typed in correctly) to the group list. You may also fetch an article with a different reader, copy the group name to the "clipboard" and paste it into AllNews. Set the reader mode to display all headers. Select (read) the desired article. Use the mouse to select (highlight) the name of the group in the "Newsgroups:" header of the article Press control-c (or the "copy to clipboard" Edit menu item). Switch to AllNews. Select Add new group. Click the mouse cursor in the Group Name box. Press shift-insert (or the "paste from clipboard" Edit menu item). The group name appears. In the list of groups, select "Defaults". Here you may select "F)ilters" to enter additional anti-spamming controls, "D)ecoding" to control [automatic] decoding features, "E)xpiry" rules for the articles in the groups, "P)osting" personality information, and "H)eaders" to be created in new posts. Alternatively, you may select the "Edit" button to override these properties for selected groups. -------------------------------------------------------------- Setting up EMail: Config | E)Mail contains the settings for EMails. The "EMail Address" is the address to be placed in the "From:" header (along with the "Full Name" or nickname). Your ISP assigns youe EMail Address. You may choose any "Full Name" you wish to identify yourself. The "SMTP Server" is the name of the SMTP server provided to you by your ISP ("mail" might work) for sending EMail. If the server uses a nonstandard port (other than 25), enter the server name and port number in the format "server.name:port". --------------------------------------------------------------------- Confirmations (aka "Training" the newsreader) By default, AllNews is set up to operate for a novice user. Each time the user requests an action that may cause some event or series of events that could make a serious impact on the behaviour of AllNews, or each time a certain informative message is displayed, it is presented as a "confirmation" popup messagebox. Many of these confirmations allow AllNews to be trained to the preferred behaviour of the user, by setting the "Don't ask me again" checkbox, then selecting the desired activity. Subsequently, when this event occurs, AllNews remembers what was previously entered and executes it automatically; the notification is suppressed. The Config | Confirmations page allows review/setting all of the configurable confirmations. Here, a setting that had been set to an automatic response can be restored to "ask", or set to the opposite action. Thus, the popup boxes can be individually restored. There is also a "Default action is YES" checkbox. When checked, the confirmation defaults to YES. Otherwise, it defaults to NO. (Win32 only) The DEL key acts like ESC; to cancel the event in progress. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- A word about file allocation As hard drive sizes passed the 512MB mark, the issue of "slack" or "hidden" disk space becomes significant. Files are allocated in increments called "clusters". The size of the cluster depends on the file allocation system and the size of the partition. FAT16, the most prevalent and the only system that can be shared between DOS, OS/2, Win31, Win95 and WinNT has a partiton size limit of 2GB per partition. At that partition size, the cluster size is 32KB. Thus a 100 byte file actually requires 32KB of disk storage. This version of AllNews uses a file to represent each post that has been read. Some other newsreaders may use a single file to represent an entire newsgroup. Each approach has its advantages and disadvantages. AllNews has been optimized for dealing with large, multi-part binaries, where the slack is less significant. The text-based newsgroups have a high ratio of slack-to-post. I am planning to combine the two versions of storage in a future enhancement to AllNews. If you are setting up a new PC, it would be reasonable to create a 512MB partition (logical drive), and direct AllNews to store its files on that partition. In my own use, I removed all files and programs from the hard drive letters D: and E:. Then I booted from the "Win95 Recovery Diskette" created during installation of Win95. I used FDISK to first delete all logical disks and partitions above C:. Then I partitioned a number of small (~512MB) logical drives: D:, E:, F:, G:, and H: (110MB). I set Configuration | Files | Temporary to "F:\FILES". I set Configuration | Files | Binaries to "G:\FILES". In Netscape, I selected Edit | Preferences | Advanced | Cache, and set the "Disk Cache Folder" to "E:\NETSCAPE\CACHE". These small files now incur only an 8KB overhead, instead of the default 32KB. On the desktop, I selected Start | Settings | Control Panel | System | Performance | Virtual Memory. I selected "Let me specify my own settings". I changed "Hard disk" to H: (which I partitioned to about 2xphysical memory). This put the windows swap file in its own reserved space, guaranteeing that there will be no fragmentation or allocation problems, and improving overall performance. FAT16 (DOS/Win31, Win95, WinNT, OS/2 Disk partitions Cluster size <512M 8K 512M-1GB 16K 1-2GB 32K FAT32 (Win95 only NTFS (WinNT only HPFS (OS/2 only references: http://www.pcguide.com/ref/hdd/file/part.htm ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- AllNews identifies articles internally by their "global message id". This is the mechanism used to determine which server(s) carry the post. Traditional readers work from the "message number", which varies from server to server. - Some servers alter the message id of a post when they receive it. This can cause the same post to appear twice in your list of articles. - Some servers convert characters in the message id from upper to lower case, or vice-versa. In this case, AllNews displays the article one time for each variant of the message id. - There is an intermittent bug on some news servers that cause retrieval by message id to go into a "failure mode". In this mode, many articles retrieved from that channel are marked as "expired", when they are in fact still present on the server. Additionally, those articles that are retrieved do not correspond to the items in the list. I have verified this to be a bug in the usenet server; not in the reader. When a channel goes into failure mode, it must be stopped, as it will not recover. AllNews monitors the status of the articles retrieved. When it detects a large number (>5) articles reported as expired, or blatantly wrong size, the session is terminated. Looking in the status log, you can identify which channel is in failure mode by the list of "no such article" messages. Often, all open sessions on the server in error go into failure mode about the same time. The "expired" status may be cleared by selecting those articles so marked, and selecting the "unexpire" button. The incorrectly retrieved articles may be re-retrieved by highlighting a single article and pressing "fetch". Under some circumstances, you may wish to "refetch" a list of articles (such as when AllNews continues to fetch posts after the disk is full (I know, I'm working on it)). This can be done by selecting the list of posts you wish to refetch, clicking the right mouse button (RMB) in the articles list, and selecting ReFetch from the popup menu. This will clear the "Fetched" indicator, delete the post body (if present), and schedule it to be fetched. - more work is scheduled in these areas, but there are only so many hours in the day. ------ Groups | Deafults (or Edit) | H)eaders | Message-Id: AllNews generates a unique Message-Id for each post or EMail you send. If the message-id is omitted from the post, the server to which it is submitted will generate one automatically. It is recommended that you allow AllNews to include this message-id in the post. It is REQUIRED by the IHAVE protocol, and will be re-inserted by AllNews if deleted or omitted. This message-id is used by the various NNTP servers around the world to know whether they have already received the post by a different path. If you post the same post to several servers without the message-id, you are guilty of multi-posting; each server will be entering a "unique" (but almost identical) post into USENET. By using the same message-id, all involved servers will recognize that they are dealing with the same post. This mechanism can be used to get greater coverage and more timely delivery of your posts, without being guilty of excessive multi-posting (EMP or SPAM). --------------------------------------------------------------------- Win95 modem DCD detection and interoperation with autodialers I've toyed with the idea of translating DCD to Win95/NT for a year now, researching how to implement it, possible alternatives using existing autodialer products, etc. The result of this effort is a solution that works for Win95 and Win31, but offers no help (yet) for WinNT or OS/2. Win95 (and Win31) allows application to do direct i/o to the modem ports, whereas WinNT and OS/2 do not. There are many fine autodialers available as shareware and freeware for download from various sites on the internet. The new features of AllNews are designed to interoperate with the majority of them. I will entertain requests to address issues with specific dialers. "Config | Comm | Comm Port" has now been re-enabled for Win95. It should be set to the port assigned to the modem (typically 2 for COMM2). The "Config | Comm | "Alert tone on DCD loss"" checkbox causes the system alert sound to be played when AllNews detects the drop of DCD. The "Config | Comm | "Popup box on DCD loss"" checkbox causes a message box to be displayed when AllNews detects the drop of DCD. When the telephone connection is lost, DCD drops. AllNews detects this event and posts it to the log, status bar (if enabled), generates the PopUp notification (if enabled), and sounds the system event (if enabled). It also performs a Stop/Disconnect operation, rescheduling activities that are in progress. At this time, the autodialer is expected to detect DCD loss and re-establish the telephone connection. The "Config | Comm | "Reconnect after DCD is re-established"" checkbox and "Delay [] seconds" tells AllNews that it should reconnect to the NNTP servers and resume the scheduled activities some number of seconds after DCD is lost, end then re-established. When AllNews detects the new session (DCD is detected), it posts the event to the log and and status bar (if enabled). It then delays a configurable period to allow the PPP session to be established. 30 seconds is a good value for unattended operation. Once the delay has expired, AllNews presses its Go/Connect button to resume the scheduled tasks. Of course, you can click on the button yourself for faster service when you see that the session has been re-established. Some autodialers want to launch the application they will control, and monitor its activity to determine whether they should re-establish a lost connection. The "Config | Comm | "Exit AllNews when all fetches complete"" checkbox tells AllNews to terminate when all scheduled activity completes. It remains active until you request some lists of posts or fetch of some articles, etc., the requests complete, and the session closes due to inactivity. When all opened sessions close due to inactivity, AllNews exits. This is usually something like 10 minutes, and is configured in Servers | Edit | Time Outs | Idle. Some NNTP servers may have their idle timeout set lower than yours, and terminate the connection themselves. The "Config | Comm | "Connect as needed when DCD detected"" checkbox tells AllNews that when a request is made that requires a connection (such as get list of posts or fetch a post), and AllNews is not currently connected, and DCD is detected, that AllNews should automatically go online and establish the connection. Otherwise, you may be asked whether to connect. ---------------------------------------------------------------------------- Status bar indicators Config | Controls has a setting to place a DCD status indicator on the status bar. This is only useful in Win31 and Win95. WinNT and Win-OS2 will show a blank pane. There is also a setting which enables a clock pane on the status bar, and one to select 12/24-hour mode. Config | Status allows monitoring of any combination of disk drives from C: though H: (limited by what devices are present on your computer), and optionally stops retrieving posts when selected drives are full. A pane in the status bar contains the names of the selected drives and the amount of space available on them. It also shows available memory and system resources. This pane is updated about every 30 seconds. Clicking in the pane causes it to update immediately. When a disk that is selected as "Stop when disk full" has less than 5MB of space available, AllNews determines that it is full, and begins an orderly shutdown. Activites that are in progress are allowed to complete, but no further activities are requested of the servers. The user has the opportunity to free up space and restart activity. The "popup when disk full" and "Alert Tone when disk full" check boxes allow the system event sound to be played and/or a popup box to be displayed to attract the user's attention, as desired. ------ As the number of articles in a group grows, performance in the list begins to degrade. If the number of articles visible is more than 1000, there is a noticeable delay in changing/retrieving the list of selected articles. When the total number of articles is more than 20,000, loading and saving the group (e.g., when new 4000 new headers are sorted in) may cause the PC to lock up for some time while the group updates. This will be addressed in 2.0. AllNews performs well with those groups/servers that get light to moderate traffic (up to 1000 posts per session). I work several heavy traffic groups successfully on a daily basis; alt.binaries.multimedia.erotica 1000-2000 alt.binaries.erotica.teen.female 2000-3000 (60% SPAM alt.binaries.warez.ibm-pc 3000-4000 alt.binaries.movies 10000-20000 The warez group is usable, but some performance difficulties are noticeable. Most servers expire this group sooner than other groups, often within 2-3 days. Setting the group properties for Expire Deleted to 5 days reduces the total number of articles in the list, improving performance. The removal of "expired" articles from the list is performed when the group is loaded the first time in each session; when the group is displayed, or a list of new posts is sorted in. Much work has gone into the multi-tasking, but there are still some events, such as sorting a large list of posts, which cause some noticeable pauses. Do not assume that your PC is hung in an infinite loop if you have fetched 6000 new headers from warez and it locks up for half an hour. Just go eat dinner. It'll be back after a bit. More work WILL be done here. The 32-bit version significantly improves the performance here. Within the list of posts, there is a status indicator for each post. The following are the indicators and their meanings: D post has been deleted (only visible in "Show Deleted" mode) M post has been marked F fetch has been requested for post x post was reported "expired" X post has been fetched; content is available L post has been fetched; length is inconsistent with directory d post has been decoded % decode has been requested for post 0 file contains 0 bytes H (HUGE) post is much larger than reported by NNTP server h same as 'H', but post has been decoded I (INCOMPLETE) post is much smaller than reported by NNTP server i same as 'I', but post has been decoded L (LENGTH error) an illegal or inconsistent 'length' field was encountered while decoding this post. l same as 'H', but post has been decoded The '0' tag (zero bytes in file) usually occurs when the disk containing the temporary files becomes full, or there is some severe communications error. Files with this tag should be "Refeteched" (select from the right mouse button popup menu). ------ HELPs - there are none - outside of this documentation. I just haven't had the time. If one of you kind souls would volunteer to create one for us, we would gladly incorporate it in the product, along with appropriate credits. See the web site for the base files. Please Email me when you finish. --------------------------------------------------------------------- "Tickling" a comm session In the "Status" window, in Views 1 and 2, you can see the throughput and timing attributes of each session. By double-clicking on one of these sessions, you can bring up the "tickle" dialog. In this screen you can introduce "fake" interrupts to the communications sessions, disable the server that is active in that session, or disable all servers. When a session gets "hung up", i.e. the "wait" count is climbing and no data is being sent or received, "tickling" or introducing an interrupt to the session may break it loose. "Read" and "Write" Signals are generally safe to introduce. When receiving data, the "Read" is most appropriate. Occasionally, a session is trying to "QUIT", but the server is not responding. Sending a "Close" Signal will terminate the session and allow it to be used for other traffic. "Closing" a session that is idle on a server that has no more activity scheduled for it may also make that session available for other activities for other servers. Usually, however, this is not necessary. You can hasten time-out processing by sending the appropriate time-out Signal. This WILL close the session. Depending on the activity in progress at the time, and the configuration of the server, the same activity will most likely be re-scheduled, and the server session restarted. In the event that you wish to stop using a particular server, you can select the "Disable server" checkbox. If a post is more than 10% received, its reception will be completed. Otherwise the session is closed. The server will remain disabled until you "Stop" (Disconnect), and then "Go" (Connect) once more, or restart AllNews. Alternatively, you may check "Disable all servers". This is helpful for an orderly shutdown. Of course, you could simply hit the "Exit" button, and cleanup would occur the next time AllNews is started. If a channel or server stops operating and you think it should not, such as after retrieval stops for disk full and does not resume, try requesting an article carried by the inoperative server. In one of the groups, select the "Show Deleted" function and fetch a short item that is carried by the server. Normal activity for that server should resume. If it is blocked on a channel, try going to the status View 1 or View 2, double click on the channel and "tickle" a connect time out. If requests for a specific server have quit being scheduled, perhaps after a communications error with that server, "edit" a newsgroup and request the headers from the server. Traffic to that server should resume. ---------------------------------------------------------------------------- Decoding: Accessed from the Groups list then "Defaults" to set default properties for all groups, or "Edit" to set the properties for the selected group(s), then "D)ecode" dialog tab. X Automatically decode attachments after fetch Root directory +-- Decoding to directory ----------------------+ | o Decode to root/filename | | o Decode to root/news.group.name/filename | | o Decode to root/news/group/name/filename | | o Decode to root/ngn/filename | +-----------------------------------------------+ +-- Long filenames -------------+ +-- On name collision ------------+ | o Truncate to DOS 8.3 | | o Increment filename to unique | | o Truncate, preserve sequence | | o Increment extension to unique | | o Truncate to last 8.3 chars | | o Overwrite older file | | o Allow long filenames | | o Skip decode; treat as error | +-------------------------------+ +---------------------------------+ +-- After successful decode ----+ +-- On decoding error ------------+ | o Leave post as received | | o Save and leave in message | | o Remove attachment from post | | o Save and remove from msg | | o Delete post | | o Do not save; leave in msg | +-------------------------------+ | o Delete post | +---------------------------------+ Decoding options Provides enhanced support for long filenames, both for file systems that do (Win95, WinNT, OS/2 HPFS) and for those that do not support long filenames (Win31, OS/2 FAT). If yours does not, the behaviour of long filenames is unpredictable, and selection of these options is not recommended. There are several "8.3" filename mangling options to support these systems. "Automatically decode attachments after fetch" When this option is checked, each item is submitted to the decoder after its download completes. Multi-part items will be decoded when all parts have been retrieved. "Root directory " The root directory name is controlled under the "F)iles" tab. This is the directory that all decoding is referenced to. "Decoding to directory" Allows the selection of a convention destination directory(s). You can decode all of them into a single directory, or into different directories whose name are derived from the newsgroup. The "root/news.group.name/filename" option is only recommended for filesystems that support long filenames. The other options mangle the newsgroup name to determine the name of the target directory (folder). If the directory does not exist, it is created automatically as files are decoded for it. If your disk navigator caches the directory tree, you may need to refresh your list to access the new files. "Long filenames" This option specifies how to handle the filename when the decoder attempts to decode a file with a long filename. "Allow long filenames" should only be used on those filesystems that support long filenames. "Truncate to DOS 8.3" specifies simple truncation. "Truncate to last 8.3 chars" is an alternate form. Many times a series of related posts differ only in a name by a sequence number at the end of the name. "Truncate, preserve sequence" specifies 8.3 truncation, where the sequence number is extracted from the long file name, and then appended to the truncated name. This preserves the sequence numbers for comparison with reposts. "On name collision" Specifies the action the decoder is to take when a decode operation will decode to a filename that already exists in the target directory. "Increment filename to unique" means that "aaaaa.JPG" would be promoted to "aaaaa1.JPG", "ABCDEFGH.JPG" to "ABCDEFG1.JPG", etc. This is what previous versions of AllNews would do. It can be confusing when combined with simple 8.3 truncation and applied to a sequenced list of posts with long names. The resulting filenames may have little relation to the original names of posts. "Increment extension to unique" applies the same logic to the extension, paying attention to long filename options selected. This may be a problem in some groups, such as the warez groups, where a series of posts may increment the extension to organize components of a large multipost series (x.ARJ, x.A01, X.A02). In this situation, the results may become confused and unusable to the program that recombines the parts. "Overwrite older file" I don't know why anyone would want to blindly overwrite the older file, but it was easy to implement. "Skip decode; treat as error" is my personal favorite. A name collision terminates decode of this file. Handling then proceeds as specified in "On decoding error". "After successful decode" This option tells the decoder what to do with the original posts once the attachments have been extracted. "Leave post as received" leaves the post(s) in the article list for the newsgroup, but the "X" indicator is changed to "d", showing that the post has been decoded. "Remove attachment from post" extracts the attachment information from the post and replaces it with a message indicating the filename where the decoded attachment was stored. Any accompanying message text is also left in this file. Note that this leaves a series of small text files, and see the section "A word about file allocation". "Delete post" deletes the post once all attachments are successfully decoded from the post. "On decoding error" This option specifies what the decoder is to do when an error is encountered while decoding the attachments. "Do not save; leave in msg" allows the greatest flexibility in recovering the attachment after other activity completes. "Delete post" also will delete any text posts, so be careful if you chose this option. General Notes I prefer "On name collision" - "Skip decode; treat as error", "After successful decode" - "Delete post"; "On decoding error" - "Do not save; leave in msg". This combination gives the best performance for unattended downloading for binary leaches, when each group decodes to a separate directory. After downloading completes, groups with similar interests are then combined into a different directory, allowing comparison of files with the same names for crossposting (this will automatically be taken care of in an upcoming version of AllNews). Then, another pass through the newsgroups, selecting "Decode" for the posts that did not decode during the download picks up the posts that had name collisions (reposts) within the group. Sometimes, I see that the same attachment is being attached twice in the same post, or that a post has multiple attachments with long filenames that resolve to the same filename because of the name mangling rules, or a series of posts that each include a common attachment. These types of posts will cause the decoder to report a failure (since that option is selected). This case is handled by selecting the post(s) in question, then pressing the "Manual Decode" button, and marking the "Increment filename to unique" or "Increment extension to unique" box. The decode then proceeds and I can change the filenames later. If the decode still fails, see the section describing Manual Decoding". ---------------------------------------------------------------------------- The "Parts" button counts and selects all parts of a multi-part post. It then gives the option of undeleting deleted missing parts, fetching unread parts, and even searching the reserve servers for missing posts. AllNews correctly decodes 98% of all correctly (and some incorrectly) posted articles automatically without manual intervention, including many MIME, UUENCODED, and BinHex formats. It decodes 75% of incorrectly posted articles with manual controls, if all data is contained in the post. The most common type of mis-post is posting a quoted binary. In this case, a user read a post, then posted it as a follow-up. In Manual decode, Read the article to determine the quote text, enter it in the quote field and press decode. Next most common is posting a Base64 item without the Mime headers. A bit of poking around should give you a fair feel for which format is which. Set Skip Lines to step down to where the desired data begins. Click the Base64 button. Click the Ignore headers button. And hit decode. Another followup problem is the subject "Re: ... (0/1)", where the entire post is contained in the single post. The parts counter does not find the (1/1) part and does not decode it. Simply highlight the post, click on Manual, then Decode. Some posters are making multiple posts with (n/n) in the subject, but each post is a complete binary and the "n/n" has no real meaning. Again, highlight the post, click on Manual, then Decode. Some posters have been messing up the "begin" line of a uu-encoded post: "something begin 644 my.jpg". Click on the "UUDecode" and "ignore headers" options. Read the post and find the line number of the botched "begin" line. Put that line number in the "Skip Lines" box, and hit decode. If the file name is missing from the subject, you may enter an override. Some (perhaps experimental) newsreaders inappropriately wrap a "BEGIN"/"END" or a "BEGIN-base64" around a Base64 enclosure, fooling AllNews into thinking that the post is UUENCODEd. The "Ignore "BEGIN"/"END"" option allows this type of post to be decoded correctly. AllNews correctly supports the "TABLE" statement of UUENCODing. Occasionally, a post will have some text that appears to be a "TABLE" statement, but is not. This event is usually indicated by an "inconsistent TABLE" message, perhaps followed by other error messages. The "Ignore "TABLE"" option causes these "TABLE" statements to be ignored. A couple of posts have been observed where the poster has used a non-standard table, but neglected to include the table in the post. If this becomes a regular problem, a mechanism for selecting TABLEs may be introduced "later". If something does not work, try something else. Unlike other readers, AllNews does not discard the contents of a post until you explicitly tell it to do so. Even if it thinks it has correctly decoded the post, you can still try to decode it again, possibly with different manual overrides, or simply read or save it to a file. That is, of course, unless you have the "On successful decode" - "Remove attachment from post" or "delete post" options in the D)ecoding menu. Some thought has been given to handling double (triple?) encoded posts, but there are no specific plans to address that issue. Check out the Decoders link on the web page for some better decoders you can use for this problem. Articles may be retrieved by a usenet archive/search engine, or another newsreader and imported into AllNews. Export that article from the other program to a flat text file, with ALL HEADERS. Give the text file a name such as F0000001.TMP and store it in the FILES directory (see Configuration | Files: Temporary Files), making sure that there is no other file of the same name. Note the number of that file, and the number of the Group you wish the post inported into. In AllNews, select the File | Cheats menu item. Enter the file and group numbers, and click on the "ARTICLE" button. The post is then transferred into the group list. --------------------------------------------------------------------- Killing vs. Deleting Posts "Deleting" a post means marking the post deleted and removing it from the display. It remains in the article file and is processed with the rest of the list until the expiry rule for deleted posts is met. "Killing" a post means removing it from the Articles file. Its space is reclaimed, and it is not processed any further. A killed post may be re-introduced if it is later found in the list of posts on another server. A kill rule that can clearly define undesirable posts (such as a spew attack) as a set of posts that will NEVER be desired can improve performance and reduce disk and memory resources required by specifying a "Kill" action. These posts can then be recovered only by editing the Group | Servers | Highest Article Read, and re-fetching the list of posts after the rule has been deactivated, modified or deleted. Posts that have been "deleted" by kill rules can be recovered either by pressing the "Show Deleted" button or by pressing "Kill" and specifying the "Action: Select", "Apply to: All Posts". --------------------------------------------------------------------- Config | Filters (Global option) Kill/Delete cross-posted to more than n newsgroups If "n" is 0, this rule is ignored. See note above about Killing vs. deleting. 2 different rules may be specified. One for KILL, where obvious spamming is ocurring (e.g., more than 10 groups). One for DELETE where it is possible for the posts to be desirable, but not probable, that the posts are desirable (e.g. 4 or 5 related groups). other items grayed -- will be implemented in later versions --------------------------------------------------------------------- Edit Group | Filter spew - Kill/Delete (Option for newsgroup) Delete will allow parts 0 and 1 to appear in article list. Entire post can be recalled via Articles | Kill | Select, or by highlighting one part and clicking the "Parts" button. If Kill, other parts are not available, as they were not saved. --------------------------------------------------------------------- --------------------------------------------------------------------- KillFile KillFile can be accessed from Main Menu Item Main Toolbar right mouse button in groups menu (for a group) Kill Article in article list right mouse button in article read Each rule in the Killfile has a group number associated with it. Group 0 rules are applied to all groups. When a list of posts is retrieved from a server, the killrules for group 0 and the group being retrieved are applied in the order they are displayed in this list. In the Killfile screen, you may alter the order of killrules, add and delete rules, and edit existing rules. The screen used for editing and inserting rules is the same as that under the Articles | Kill Posts button. There are more options available now in this screen. Some options are not available in some modes, are grayed out. Some buttons operate differently in some modes, and have different text on them. All features displayed in each screen are fully operational. +- Action -+ +- Apply To --+ +- Kill Criteria ------+ +- Retain Kill Rule ---+ | | | | | | | | | o Kill | | o All posts | | o Exact Match | | o Single application | | o Delete | | o Shown | | o Article Parts | | o 3 days | | o Fetch | | o Selected | | o Begins with string | | o 1 week | | o Mark | | o New posts | | o Contains String | | o 1 month | | o Select | | | | o All selected | | o forever | | | | | | x Case sensitive | | x of inactivity | +----------+ +-------------+ | | | | +----------------------+ +----------------------+ o All Groups x Enabled o x Subject: ______________________________ x From: ______________________________ "Action" specifies the action to apply to articles which match the criteria of the kill rule. Kill and Delete operate as described in "Killing vs. Deleting Posts". "Fetch" schedules the post for retrieval, "Mark" causes the post to be tagged with the "M" mark. "Select" causes the post(s) to be selected in the articles list. "Select" does not make sense as an action for lists of new posts, and is disabled for that option. "Fetch" all posts whose subject includes the word "server" is an interesting rule for those who are interested in open usenet servers. However, in the warez groups, posts often have subjects complaining about server problems. In those cases, undesired large binaries may be retrieved. An alternative is to "Mark" these posts. When encountered in the list, they may then be fetched or deleted, as desired. "Apply To" is only useful in the Articles | Kill Posts selection. "All Posts" means that Deleted (but not Killed) posts should be considered, as well as those that are displayed in the list. "Shown" means only those posts that are displayed (not Deleted). "Selected" means those posts in the display that are selected. "New posts" means that posts that are in subsequently retrieved lists of posts should be considered. "Kill Criteria" specifies the selection decision to be applied to the posts selected by the "Apply To" criterion. "Article Parts" specifies that those posts that are parts of the selected multi-part post are to be operated upon. "All selected" means that the posts selected in the display are to be operated upon. The remaining options interact with the "From:" and "Subject:" options. "Exact match" means that From and Subject (if checked) must exactly match those fields in the post. "Begins with string" and "Contains string" mean that the string in the From/Subject (if checked) must begin or be found in the corresponding fields of the post, respectively. "Case sensitive", if checked, means that the comparison must match upper/lower case. If not checked, either upper or lower case will match. Leading, trailing, and embedded blanks are significant. "Retain Kill Rule" specifies how long the kill rule should be retained in the killfile before being automatically removed. When Articles | Kill Posts has been selected, "Add to KillFile" causes the new kill rule to be added to the killfile for subsequent use, without being applied. If "Apply" is pressed, and "Single application" is selected, the kill rule is applied immediately, but not added to the kill file. If another retention is selected when "Apply" is pressed, the kill rule is applied immediately, AND added to the killfile. Selecting "Add to KillFile", with "Single application" is useful when the list of posts indicates that the poster made a post of interest that has not yet reached your server(s). The "Subject:" string may be edited to identify the missing post. If "Fetch" is specified, the post will be automatically retrieved (and perhaps decoded) when AllNews discovers a server carrying the post(s). "3 days", "1 week", and "1 month" indicate that the killrule should remain in the killfile until that amount of time has elapsed. If "of inactivity" is checked, the retention interval is restarted each time the killrule fires. "Forever" specifies that the killrule is to remain in the killfile until it is manually deleted. Each killrule may either be applied to "All Groups", or to the group currently active (the displayed in the killrule screen). In Articles | Kill Posts, if "All Groups" is specified, "Apply" will only apply the rule to the active newsgroup, but the killrule is applied to subsequent lists of posts for all groups. "Enabled" indicates whether the killrule is allowed to fire. It may be turned on and off, as desired, in KillFile | Edit. "Subject:" and "From:", when checked, indicate that these strings are to be compared to the corresponding fields in new lists of posts, as per the "Kill Crtiteria". If both are checked, BOTH strings must match. When a list of posts for a newsgroup is retrieved from a server, each post is evaluated against the kill rules saved in the kill file. First the rules specific to the current group are considered, in the order shown in the Kill/Watch File list. The first rule found that matches the criteria for the post is the one that is fired. After the rules for the current group are exhausted, the global (group 0) rules are checked. I am experimenting with a kill rule that is "All Groups" "Delete" posts which "contains string" in the "Subject:" "(0/1)". This deletes part 0/1 from posts. This part is normally not needed to successfully decode the part 1/1 attachment. Should it be necessary, I can click on the 1/1 post and select "Parts". I am then asked if I wish to undelete, and fetch, the deleted post. --------- Some newsgroups, particularly those whose purpose is posting entire CDs, may receive 10,000-15,000 posts daily, accumulating over 100,000 posts in a week. This large number of posts presents some performance problems in AllNews. One of the features of AllNews is that it retains a record of the posts that have been deleted, to prevent them from reappearing when encountered on another server, and to allow easier recovery of deleted posts. This large number of posts can significantly increase the amount of time required to sort and manipulate the list of posts in the group. You can effectively reduce the number of posts in a group by "Killing" posts that you know will not be of any interest to you. Select "Kill Posts". Set Action to Kill. Apply to | All posts will also remove any Deleted posts. It is important to set Retain Kill Rule to some setting such as 1 week, to prevent the post from reappearing when it is found on another server. When a post is to be sorted into the list and a kill rule of action kill is found that selects that post, sorting is skipped and the post is discarded. This makes the sort noticeably faster. This also reduces the size of the index files for the group. Kill Posts initially comes up with the information that applies to the selected post. With a large number of posts displayed, locating the selected post can be time consuming. Clicking on Kill Posts without any post selected skips the first step, at the expense omittng the information associated with a post. You must then enter then text for Subject: or From:. If you change your mind about killing some posts, you can still recover them. Click on KillFile, and delete the rule(s) that applies to the set of posts you wish to recover. Select Group | Edit | Servers. Double-click each server you wish to check and set "Highest Article Read" to 0. Select Group | Edit | Servers, select the servers you wish to check, and click on Get Headers. AllNews now retrieves the entire list of posts for the newsgroup from each of the selected servers and sorts them into the list of posts. The desired set of posts will now appear, along with any others that had rolled out of AllNews cache of deleted posts. --------------------------------------------------------------------- OutBox function EMails and Posts are stored in an "OutBox", where they can be queried and manipulated. The OutBox is available from the main toolbar and main menu. Only outbound EMail is supported by AllNews; you will still need another client program to check your incoming email. Users accustomed to creating Fnnnnnnn.PST files and posting them from the "temp files" directory can continue to do so by the Files | Post Queued menu sequence. One key difference between the *.PST files and the OutBox (*.OUT) is that the *.PST files are deleted when AllNews thinks that the message has been successfully posted. It is not always possible to determine programatically that transmission was succesful. At connect, AllNews checks for *.PST files and OutBox messages that have not been successfully sent to all servers. If it finds any, the user is then asked whether he wishes to send them. At this time, or when the user selects Files | Post Queued, all *.PST files are submitted to each server configured for posting; OutBox messages are sent to those servers that have not yet been successfully sent to. OutBox messages are retained until they are expired from the OutBox, or until they are explicitly Purged. The text of a Deleted message can be recovered by undeleting the message (provided that it has not yet expired or Purged), by pressing "Show Deleted", then selecting the message(s), and then "Undelete". The OutBox message can be Queried to find the posting status for each server to which it was submitted. --------------------------------------------------------------------- OutBox Message List The list of messages in the OutBox are those posts and EMails that you have written or are in the process of writing. The "Show/Hide Deleted" button controls whether the messages you have deleted but not purged or expired are listed. They are listed from most recent to least. The "Servers" field shows which servers have been sent to, which have not, and what the result of the submission was. "-" means that this server will not be sent to. "?" means that this server will, but has not yet been sent to. "!" means that this server gave an error response when when this message was last sent. A letter appearing in the list indicates that the server accepted the message. The first position in the list is for EMail, if any. If the message is a draft, the flags field is "I". If all servers have been sent the message, "X" is present. If any servers gave an error response, "E" is present. If the message has been deleted (and deleted messages are displayed), "D" appears. "Properties" allows you to control the behavior of the OutBox. Expire Posted indicates how long after a message has been successfully sent it is promoted to "deleted". Expire Failed indicates how long after unsuccessful attempts to mail a message it is promoted to deleted. Expire Shown indicates how long after it is originally composed and entered into the OutBox a message is to be promoted to deleted. Expire Deleted indicates how long after it has been deleted from the OutBox a message is to be purged, or removed from the list and its space recovered. 0 means no expiry. Defaults are Posted=3, Failed=0, Shown=0, Deleted=10. Expiry is evaluated at startup. The "Delete when sent" flag, when set, means that posts are to be deleted (but not purged) from the OutBox list as soon as they are successfully sent. You may Show or Hide Deleted messages, Purge, Delete or Undelete selected messages, or Save selected messages to an external file. Delete and Undelete simply change the status of the message as to whether or not it is displayed. It does not actually remove the message and recover its storage. Purge and message expiration actually remove the message entirely from the OutBox list and from storage. EMail and Post are used to begin composing a new message. Edit is used to resume composing a draft message. It may also be used to make modifications to a previously sent message. "Resend" queues the selected message(s) for transmission to their server(s). If the message was not successfully sent to all of the servers, it is submitted to those servers that have not yet accepted it. If all servers have accepted this message, it clears all "sent" indicators and queues the message for posting (mailing) to the servers that are CURRENTLY configured, as opposed to those that were configured at the original time of mailing. File | Post Queued sends the messages to those servers which have not given a successful response. This does NOT change the servers to which the message is sent. "Query" shows the internal content of the message, and the status responses of the servers to which it has been sent. If "!" displays in the servers or "E" in the flags of a message, you should Query the message and look at the response that server gave. Sometimes you may get a "nnn Duplicate messageid" message, indicating that this message is already present on this server; not really an error. Sometimes you may get "nnn throttling", indicating that the server is not accepting posts at the moment; possibly the message will be accepted later. Other responses may suggest some corrective action to take, or advertise the unavailability of the server or service. "Cancel" means that you wish to cancel a usenet post which you have already sent. It does not apply to EMail. Note that a "cancel" is actually a special type of post that causes SOME servers to remove the post from the available list of posts. Not all servers honor this request. Further, this second post has all of the same propagation issues that the original post had. It may arrive at a given server greatly delayed, or even before the original post. It may not arrive at all because of saturation of some resource in the path. --------------------------------------------------------------------- Posting / Emailing / Editing messages A posting "personality" is the combination of properties possessed by the user either overall, or within a particular newsgroup. These include the EMail address and Full Name placed in the "From:" header, default headers, signature file, and more. This arrangement permits different "personalities" or to be configured for each newsgroup subscribed to. Group | Defaults configures default properties for all groups; selecting a group then Edit allows overriding the defaults for the selected newsgroup. The "From Address" is an EMail address to be placed in the "From:" header. The "Full name" is an optional nickname or "handle" to be added to the "From:" header. "Reply-To", if specified, is an EMail address to receive any EMail responses to your posts. "Followup-To:", if specified, is the newsgroup that usenet followup posts are to be directed to. "Followup-To: poster" is a special case recognized by many newsreader clients that indicates that all followups should be directed by EMail to the poster. The "Signature file" is the name of a file containing text to be automatically appended to each post. "Organization" is an optional header that, if omitted, is often inserted by the first server that receives your post. Config | E)Mail contains the comparable settings for EMails. The "EMail Address" is the address to be placed in the "From:" header (along with the "Full Name" or nickname). The "SMTP Server" is the name of the SMTP server provided to you by your ISP ("mail" might work) for sending EMail. If the server uses a nonstandard port (other than 25), enter the server name as "server.name:port". "Organization", "Reply-To", and "Signature File" function similarly to Group | Defaults (or Edit) | Posting. An EMail may be initiated by selecting OutBox | EMail or Group | Articles | Read | EMail. The latter selection is for followup to the poster by EMail. A Post may be initiated by selecting OutBox | Post, Group | Articles | Post, or Group | Articles | Read | Follow Up. When posting from the OutBox, the user must select a destination newsgroup(s). Otherwise, the newsgroup(s) are taken by default from the selected group, or the post being followed up to, respectively. To followup to a portion of a post (rather than the entire post), first select (highlight) the desired portion of the text, then select Follow Up or EMail, as desired. At any time while editing the email/post, the user may change any of the headers, or add and remove headers. The destination may be changed from usenet to email by deleting the "Newsgroups:" header, then selecting Headers | To:, and entering the appropriate email address. Similarly, the user may delete the "To:" header and add a "Newsgroups:" header. "To:", "Cc:", and "Bcc:" are email destinations ("Bcc:" headers are not transmitted to the recipient(s)); while newsgroups are selected with the "Newsgroups:" header. Any combination of these headers may be selected. If both EMail and Newsgroups: headers are present, the message is both posted and emailed. The Headers button offers a convenient method to insert the more common headers that the user may desire. Of course, the user MAY enter (or alter) ANY header simply by positioning the cursor in the header area and typing. BEWARE: non-standard headers may cause your message to be damaged by one or more of the message servers that handles it, or may cause one or more servers to crash. If you want to play, you may enter "X-anything: anything", where anything may be anything you want. Be sure to keep your headers down to 997 characters or less. When you finish composing your message, you may select the "Mail" button (if this is an EMail) or "Post" (if this is a usenet post). If you are online and connected, the message is added to the OutBox and queued for immediate transmission. If not, you are asked whether to go online, or to queue the message for later transmission. You may save the message as a draft to the OutBox, using the Save button, and resume editing it at a later time. When you wish to resume editing it, go to the OutBox, highlight the message, and select the Edit button. When you have finished, you may press the Post or EMail button to transmit the message, or you may again select Save and resume editing later. While composing (or Reading) a message, the ROT-13 button may be pressed to apply ROT-13 encoding to the message text. If a portion of the message is selected (highlighted), only the selected portion of the message is encoded. Otherwise, the entire message body is encoded. You may add an attachment to your post or EMail by pressing the "Attachment" button. You may elect to "Mime encode" the attachment. I will not discuss Mime here, but many popular readers support it; many don't. If the attachment is a text file, you SHOULD use Plain Text encoding. Other encoding methods will work, but recipients will have to work harder to read your words. If the attachment is a binary file (.JPG, etc.) you MUST choose UU, XX, or Base64 encoding. Note that UU is the oldest and most widely supported, and most of the issues that required Base64 have been dealt with by now. The current version of AllNews does not support BinHex (Mac) encoding, multiple attachments, or the multiple-part posting options found in Config | Posting. --------------------------------------------------------------------- Changing Fonts You may select different fonts for the display of articles lists and posts. Select Group | Defaults | Properties to set the default font used in all articles lists and article bodies. The currently selected font is shown, and the Select button allows you to change the font to any other font currently installed on your computer. To set the font used for the articles list and posts within a specific group, select Group | Edit | Properties, and click on the font Select button, as above. You may change the font used to display the post (or email) being read or constructed by clicking the right mouse button (RMB) in the body of the document, then selecting Change Font from the popup menu. --------------------------------------------------------------------- Resizing document windows Sometimes it is inconvenient to resize a document in the MDI window. RMB in the articles list and the session status window will popup a menu that includes Minimize/ Maximize/ Restore selections. Minimize reduces the indicated window to an icon within the MDI window. Maximize enlarges the indicated window to fill the MDI window. Restore returns the window to a size that allows multiple windows to share the MDI window. --------------------------------------------------------------------- --------------------------------------------------------------------- Timed Connections AllNews has a Connection Timer that allows you to set Start time, Stop time, or both. To set AllNews to connect and begin its activities at a later time, select File | Set Timer or the main toolbar icon that looks like a clock. If AllNews is not currently "Connected" (the "Go" toolbar button is not depressed) the Set Connect Timer menu allows you to set the time at which AllNews is to connect. Once the timer is set, you may request headers, fetch posts, etc. The actual activity will take place when the timer expires. The status window indicates how much time until the timer fires. You may also schedule an End Time by setting the checkbox. If AllNews is currently "Connected" (the "Go" toolbar button is depressed) you may only set an End Time. Once the End Time is reached, activities in progress will be allowed to complete, but no more commands will be sent to the servers. --------------------------------------------------------------------- --------------------------------------------------------------------- Changing operating parameters while in operation The number of sessions for a given server can now be changed dynamically, by changing Server | Edit | Sessions. If the number of sessions active on that server is greater than the new number, sessions will be closed until the new number is satisfied. Posts being received will be allowed to complete. If the number of sessions active on that server is less than the new number, and there is more work for that server, and the number of active sessions does not exceed Config | Comm | Max Sessions, more sessions will be established. Similarly, I have attempted to make the other server parameters change in real-time. If you find one that does not (i.e., you must Stop and Go to make it take effect), send in a bug report and I will fix it. Please let me know all of the settings before and after the change, and which settings were changed to what, for the server where the problem occurred. In a similar vein, I have worked to make all the combinations of decoding parameters changable dynamically; turning on and off group-level decoding overrides and changing default behaviors. Again, if you find one that does not change dynamically, let me know the settings and changes for the newsgroup in question. --------------------------------------------------------------------- Server | Edit | Server limits number of sessions Some servers (often public or open servers) limit the number of sessions that each user may open, sometimes to only 1 or 2. This might manifest itself as messages in the Status | Log saying "500 too many sessions" or some such. Normally, AllNews considers "Sessions" to be the number of simultaneous receives it may have. It may choose to do other special processing, like fetching the list of posts for a group, while the specified number of sessions are already active, resulting in the "too many sessions" refusal. The above setting tells AllNews that the "Sessions" setting is an absolute limit. With this flag turned on, AllNews switches sessions back and forth as needed to honor the limit. --------------------------------------------------------------------- Server | Edit | Server limits session time Some servers (often public or open servers) limit the length of time sessions may run. This might manifest itself as messages in the Status | Log saying "502 out of time", or some such. This type of message is usually seen as a fatal error. This session is closed and not restarted; the server is marked as unavailable. In this case, however, what is required is to re-establish the session and retry the operation. The above setting causes AllNews to do just that. Similarly, some servers may respond "502 too many users" to the login attempt. AllNews then marks the server unavailable, when the truth is that it is only temporarily unavailable; it may be usable later. The implementation of these cases is incomplete, as the server I was using that exhibited these behaviors closed to the public when their testing was finished. If you encounter a server behaving in this fashion, send me its name and IP address (and userid/password, if applicable), and I will continue the implementation. --------------------------------------------------------------------- IHAVE protocol AllNews now fully supports the IHAVE protocol. I will not go into the details of what this or how or why you might want to use it. Some servers support it, some do not. Servers | Test uses the HELP command to determine whether the server knows the IHAVE command. If so, a checkbox in the Servers | Edit menu is set. If you wish to use the IHAVE (as opposed to the POST) protocol for a specific server, set the Servers | Edit | "Use IHAVE instead of POST" checkbox. Some servers will indicate that they accept IHAVE, but will refuse when you attempt to use it. Servers | Test also sets the "May not get list of posts" checkbox if it detects a problem in retrieving lists of posts. Some servers will allow posting, but refuse to allow retrieval of posts. You may also change the setting of this box. It inhibits the fetching lists of posts for this server. If the server does not support fetching article lists, disable fetching the list by verifying that Groups | Edit | S)ervers shows "N" in the column "Get Hdrs" next to that server. To change the setting, double-click on the server and change the "Get headers" checkbox. Message-ID: AllNews generates a unique Message-Id for each post or EMail you send. If the message-id is omitted from the post, the server to which it is submitted will generate one automatically. It is recommended that you allow AllNews to include this message-id in the post. It is REQUIRED by the IHAVE protocol, and will be re-inserted by AllNews if deleted or omitted. This message-id is used by the various NNTP servers around the world to know whether they have already received the post by a different path. If you post the same post to several servers without the message-id, you are guilty of multi-posting; each server will be entering a "unique" (but almost identical) post into USENET. By using the same message-id, all involved servers will recognize that they are dealing with the same post. This mechanism can be used to get greater coverage and more timely delivery of your posts, without being guilty of excessive multi-posting (EMP or SPAM). --------------------------------------------------------------------- Using Proxy Servers AllNews supports a variety of proxy protocols. This is useful to those who have set up a LAN with a single modem connection to the internet and wish to use AllNews from a different machine, or who wish to use an open proxy server to disguise his IP address or work around IP address screening. To set the default proxy server settings, select Config | Comm. If you wish all (or most) of your servers to use these proxy settings, set the "Connect using proxy by default" checkbox. You can override these settings for individual servers. Enter the proxy server's name or IP address in the "Name" checkbox, and enter the port number. Some proxy servers may require a login id and password to use their services. Anonymous connection is often allowed by using the login id "anonymous" and an email address (supposedly yours) as the password. Enter the appropriate settings as per the server and protocol requirements. The configuration for each server contains similar fields. Here you may override the defaults set above, for the requirements of this server. --------------------------------------------------------------------- NNTP-Posting-Host: Some servers accept this header, some don't. Unfortunately, it is currently en/disabled by Group | Edit (or Defaults) | Headers, and not by server. Until this is changed, you must find a combination that works for you. Unless you are spoofing (or posting anonymously), it is just as well to leave this off. --------------------------------------------------------------------- --------------------------------------------------------------------- Searching for servers that carry a specific newsgroup On the website is a link to some search engines that can search for a specific group. AllNews can help in searching for servers that carry specific group. Use telnet to directly access the news server without using a newsreader program. Good telnet programs can be download from most download utilities websites. Most Windows 9x/NT computers provide a "telnet" command line program that can be invoked from the DOS box (from your desktop select Start | Programs | MS-DOS Prompt). Connect to your favorite news server (usually on port 119). Set telnet to log the session to a file. Enter the following commands: S: 201 my.server.com NNTP server Version x.y (posting ok) C: AUTHINFO USER S: 381 PASS required C: AUTHINFO PASS S: 281 Ok C: GROUP S: 211 ttt lll hhh C: XHDR message-id lll-hhh S: 1424410 S: 1424412 <8lske3$n44$2@watserv3.uwaterloo.ca> S: 1424413 <964759213@random-pc> ... S: . C: QUIT "S:" indicates a line sent by the server. "C:" indicates a line you type in and send to the server. Servers are not generally case-sensitive. Upper case is used here to emphasize the required data you input. Lower case (with the exception of "message-id", which IS case sensitive for some servers) is used to indicate information you customize for your session. The two AUTHINFO commands are omitted for servers permitting anonymous login ("Login Required" not checked in the server configuration). userid and password are the same as in the server configuration. groupname is the name of the group you are interested in. The server's response to the GROUP command indicates the total number of posts (ttt), the lowest message number (lll) and the highest message number (hhh) in the group. The last two numbers are entered in the XHDR command after the "message-id" token. Stop the telnet logging. In AllNews, select Servers | Reserve | Test New List. Enter the name of the log file captured in the telnet session, above. The list of messageids (which are typically derived from the name of the server to which the article was first posted) is then evaluated, as any other list of open servers would be. To look for servers that support the IHAVE protocol, the "path" header may be more interesting, as it lists the servers that handled the post. Other headers and/or groups may be included in the same session, if desired. --------------------------------------------------------------------- --------------------------------------------------------------------- Disaster Recovery This is when the power went off (or your 4-year-old pressed the reset button) while you were downloading news posts. AllNews loses, at most, the work in progress at the time of the failure. It cleans up any fragments automatically when it is restarted. This is a benefit of the file allocation and backup strategies used by AllNews. Some other newsreaders (I won't name names, but if it happens to you, you will know it) that maintain a single file, may potentially lose all of the posts ever retrieved in groups that were receiving download data. After rebooting, run SCANDISK (DOS/Win31) to reclaim "unallocated" space, and to adjust the affected file sizes. In those newsreaders that use the group/ file strategy, you MUST re-synchronize the groups before downloading any data. This is usually some mechanism similar to "Compress Databases". ---------------------------------------------------------------------------- ================================ DCD ======================================= ---------------------------------------------------------------------------- Modem Carrier Detection (DCD companion program) Windows 3.x ONLY It is often desirable to set up AllNews to download a very large amount of data while unattended. This may take several hours to complete. During this period of time, it is quite likely that for some reason the modem session may be terminated. DCD is a companion program to AllNews that monitors the modem state, redials the modem and restarts AllNews when the carrier is dropped. AllNews and DCD monitor the modem port directly to provide immediate feedback of carrier drop. At this time, this is performed by doing direct i/o to the UART. Under Win95 and WinNT, this will cause a protection violation. In Configuration | Comm, set Comm Port to 0, disabling this feature and allowing AllNews to run. DCD is of little use under Win95 or WinNT at this time. When DCD detects the carrier drop, it sends a query to AllNews asking whether there is more work to be done. If so, DCD "presses" the "Stop" button on AllNews' toolbar, and redials the modem. After connect is re-established, DCD "presses" the "Go" button, and downloading resumes. At this time, it has been tested with Trumpet WinSock 2.1F With Trumpet WinSock 2.1F, the local IP address (seen in the File | Setup menu item of the Trumpet dialler) is left at the IP address negotiated at the last dial-in, instead of being reset to 0.0.0.0. This sometimes causes problems re-establishing the session with the dial-up ISP. DCD is normally run iconic. The color of the icon indicates the current DCD state. Configuration also permits selection of "monochrome" mode. A number centered on the icon indicates the number of times the redial sequence has been executed. Pressing the right mouse button over the icon requests that the modem be redialled. Set the Dialler Title to the title shown when the dialler is active. DCD uses a FindWindow function to locate the dialler to issue the logon/off. DCD uses the venerable SENDKEYS.DLL. For Trumpet winsock, set "Dialler Title" to "Trumpet Winsock" (without the quotes), "Login" to "%dl", and "Hangup" to "%db". "Trumpet Winsock" is the name of the dialler as it shows in the task list. "%d" says the send the Alt-d command, which selects the "&Dialler" menu item of the dialler. "l" and "b" select the "Login" and "Bye" sub-menu items respectively. While you can select the script from one of the other items, note that the order changes each time you edit your scripts. The login and hangup strings are constructed from the following strings: ~ Enter +n Shift-n ^n Ctl-n %n Alt-n (s) send group s (e.g. ^(abc) to send "abc" all in ctrl {}} } {f} send a special key {f n} send special key n times The special key names are those shown below in "QUOTES". { VK_CAPITAL, "CAPSLOCK" }, { VK_NUMLOCK, "NUMLOCK" }, { VK_SCROLL, "SCROLLOCK" }, { VK_ESCAPE, "ESCAPE" }, { VK_ESCAPE, "ESC" }, { VK_RETURN, "ENTER" }, { VK_HELP, "HELP" }, { VK_SNAPSHOT, "PRTSC" }, { VK_TAB, "TAB" }, { VK_CONTROL, "BREAK" }, { VK_CLEAR, "CLEAR" }, { VK_BACK, "BACKSPACE" }, { VK_BACK, "BS" }, { VK_BACK, "BKSP" }, { VK_DELETE, "DELETE" }, { VK_DELETE, "DEL" }, { VK_INSERT, "INSERT" }, { VK_LEFT, "LEFT" }, { VK_RIGHT, "RIGHT" }, { VK_UP, "UP" }, { VK_DOWN, "DOWN" }, { VK_PRIOR, "PGUP" }, { VK_NEXT, "PGDN" }, { VK_HOME, "HOME" }, { VK_END, "END" }, { VK_F1, "F1" }, { VK_F2, "F2" }, { VK_F3, "F3" }, { VK_F4, "F4" }, { VK_F5, "F5" }, { VK_F6, "F6" }, { VK_F7, "F7" }, { VK_F8, "F8" }, { VK_F9, "F9" }, { VK_F10, "F10" }, { VK_F11, "F11" }, { VK_F12, "F12" }, { VK_F13, "F13" }, { VK_F14, "F14" }, { VK_F15, "F15" }, { VK_F16, "F16" } The interaction between DCD and AllNews is carried out via "Registered Windows Messages". A Win95/WinNT replacement could be written for DCD that would run on those platforms using the TAPI instead of direct i/o, and driving other WinSock diallers. If one of you kind souls would volunteer to write one for us, we would gladly incorporate it in the product, along with appropriate credits. const UINT NEAR wm_ANQuery = RegisterWindowMessage ("AllNews Query"); const UINT NEAR wm_ANDiscon = RegisterWindowMessage ("AllNews Disconnect"); const UINT NEAR wm_ANRecon = RegisterWindowMessage ("AllNews Reconnect"); // when DCD detects carrier drop if (::SendMessage (h, wm_ANQuery, 0, 0)) { // stuff to do m_RestartAllnews = TRUE; ::PostMessage (h, wm_ANDiscon, 0, 0); // press the "Stop" button } // when DCD detects carrier re-asserted ::PostMessage (h, wm_ANRecon, 0, 0); // press the "Go" button