abmefaq.net                    usenethelp@codeccorner                    codeccorner.com

Agent Problems with yEnc, and Par2 Files
version 0.97

In the Beginning....
UUE - Agent missing parts

The Agent yEnc Problem
The Agent yEnc "fix"
Using yEnc32

In the Beginning....
 Some news readers (Agent and Free Agent come to mind)  will not join yEnc files with missing sections in a way that will allow Quick Par to "validate" anything beyond the first missing section. This occurs because Agent (and others) does not appear to be able to "decode" yEnc sections beyond the one missing, and join them up.

UUE and Agent missing parts
Standard "missing segments" with UUE encoding - (to create this, all segments were first uploaded). In the example you are looking at all of the parts to "TheMovie.mpg.001". There are ten parts - ( 01/10) to (10/10).

Note that the segments beyond the first (1/6) for yEnc show up in Agent as complete binary files (green icon). Despite this they end up being saved to the hard drive as zero byte files. The UUE segments after the first (1/10) show as text files (white icon). When Agent is set to automatically save downloaded files (Group / Default Properties / Receive Files ) both the UUE and yEnc posts first segment [(1/10) and (1/6)] of the split is saved to the hard drive, the other segments do not. The image below shows a directory listing with file one being about 12,000KB short, or only containing the first segment.

Now lets create a "missing segments file with UUE. If this were "live" parts 05/10 and 06/10 would be missing from the server, and you would first:
     a| use the Message / Split Sections  to see the incomplete segments,
     b| download each available part,
     c| then using the Message / Join Sections.
     When the Join Sections dialogue comes up, make sure the file segments are in order, then save them - in this case as TheMovie.mpg.001

A quick run of Quick Par shows that the segments have joined, properly and that Quick par can use them.

The Agent yEnc Problem
Next look at the yEnc file download. In both cases the blue highlighted files were downloaded and joined just as one would do in a UUE encode:

Test A: File segments 1,2,4,5,and 6 of 6 joined and saved.

Test B: File segments 1 and 2 of 6 joined and saved.

Both produced identical  saved files, shown in this quick par shot

Only the first two segments "saved", the rest Agent did not append. This problem appears to apply no matter the segment size or par2 fix. It would appear that Agent has some problem decoding yEnc files. This is a problem with the Agent newsreader, and not yEnc. When the first segment is missing, Agent seems to unable to find any part of the file to save. But if you do have the first segment, then there is some hope.

The Agent yEnc "fix"
For those of you who have become accustomed to downloading segments and then back filling them ( like the UUE missing segment fix above EXCEPT you save them as segments within Agent and do not assemble them until all the missing segments arrive). This fix adds only a single tool to the process - a reasonable trade off when you're using a metered Usenet feed (by the gig), and the poster's use of Par2 recovery files. With Par2's ability to "fill" segments (and assuming the poster had the good sense to use a "Block size" that matches his Segment size). This will not work with Par 1, which needs a recovery block the size of the largest file, and will rewrite the entire file during recovery. Nothing gained. Par 1's need for the complete file replacement, a large amount of repost bandwidth can be eliminated - not to mention the pain of tossing an incomplete download away.

The first steps follow the steps taken in UUE:
     a| use the Message / Split Sections  to see the incomplete segments,
     b| download each available part,

     c| then using the Message / Join Sections.....
and here comes the change.
    d| save the file as above, but use the ".ntx" extension. This will allow the yEnc32 to more quickly see the file.
NOTE all the settings in the Save Messages dialogue box below:
          1. Append checked
          2. Unix checked
          3. Save Raw checked
          4. No fields checked.

These setting should produce a directory listing on your hard drive similar to this:

TheMovie.mpg.001.ntx now shows 11,598KB, are the value of all the segments available for our test.

Using yEnc32
Download yEnc32 from here, and allow it to install. During installation I did not allow yEnc to associate with any file type - maybe it's just me, but it seem the less I associate in windows, the better off my system runs - but no harm should happen if you do allow the program to do it's thing.

Once installed,
        1. start yEnc32
       2. Click File / Decode Files
       3. Move to the directory where you stored the ".ntx" file(s)
       4.  Click on the just saved file - if you didn't name your file so that it ends in ".ntx", then change the 'Files of  type' to 'All files" and find it that way.

       5. In the next pop up window Select the Folder where you want to Save the decoded files to:

       6. Then click OK
NOTE: We strongly suggest that you do NOT use the "Remove encoded files after decoding" option above. Remove the file yourself after you know the decode has worked. You may save yourself a pain between the eyes.

The resulting screen will show the following similar warnings IF you are working with incomplete or missing segment file(s):

But don't worry about the message if you're following the "yEnc / Agent missing segment" line, this simply is showing that yEnc32 recognizes that you are missing some of the data. If you were decoding a standard complete file then it would state "is complete" and the icon would be in blue.

Add this newly created file to the directory that contains the remaining files and your Par2 recovery set, and process them all with Quick Par. With the assumption that all downloaded segments plus Par2 files equal the total bytes of the full file set, Quick Par will display the happy "Ready to Recover" message in the green bar at bottom:

If you still are short, attempt to collect / download either more intact segments or recovery blocks.
Remember - even a incomplete post of a Par2 file can yield useable recovery blocks.

While this  may seem like a great deal of work, the reality is that often the time you spend patching and doing the recovery work is much shorter than the time it takes to get a repost or an additional Par2.

copyright 2004 by the abmefaq consortium Ltd