C    H    A    N    G    I          F    A    Q

 

General

Supported Operating Systems Can I run Changi on Windows NT 3.51? Yes, but you need at least the patch contained in SOSTREAM.ZIP, which is available in our download area.

One user, who runs Changi on OS/2 and NT 3.51 for some months now, reported, that Changi for NT seems to be slower than the OS/2 version.

Differences between OS/2 and NT Version Are there any differences between Changi for OS/2 and Changi for Windows NT? Both versions are based on the same source code. Nevertheless there are a few differences. In the first place the NT version currently doesn't support REXX.

Another difference is caused by problems starting child processes and feeding them through their standard input. This, for example, is done by Chanx while calling Rnews. Unless a more portable version of this part of the code becomes available, the Windows NT version creates a temporary file on the harddisk before calling the child process. Usually you won't recognize this difference, except with Chanx, where option -mb is hard coded and can't be disabled.

It has also been reported, that the NT version doesn't detect a change made on nntp_access. Changi has to be restarted.

   What operating systems will be supported in the future? Changi will be available for the latest versions of OS/2 and Windows NT. It is unsure, if Changi will be ever tested on Windows 95, but most likely a version for AIX and eventually Solaris may become available.
   When will there be a version of Changi running on FAT file systems? Sorry, there never will be one. Not only that a lot of work would be needed to add filename mangling, but Changi may also create several thousand article files in a single directory which makes FAT filesystems very, very slow. You need HPFS or NTFS.
Commercial Version I can't understand why you gave away the OS/2 version. Why didn't you make it shareware? If the price is right, I'd buy it. Early versions of Changi contained 90% of public domain and other free code. So it was at least fair to give it away for free. In the meantime most of the code has been changed or at least optimized, but is this a reason to tell users: "OK, folks. I gave it to you for free and now, as you get used to it, I'll aks for money."

As a tribute to the OS/2 community and all the people who helped me with Changi, I promissed to continue maintaining a free version for OS/2. There are specific plans for a commercial OS/2 version as well, offering enhanced features. With NT, only the betas will be given away for free.

Although the final price isn't fixed yet, it will be far below the competitor's prices and nobody should be forced to give up using Changi because of its price. Special arrangements will be available for non profit organisations and private users.

   How can the author of Changi and his family exist, if he gives away anything for free? The author of Changi doesn't give away anything for free, just Changi. Although Changi is the key product of his young company, he makes some money with selling his knowledge and programming skills on a per hour basis.
   Will the source code be ever available again? Yes, but definitely not before either the NT version becomes successful or unless the author will give up the whole project.

If you talk nice to Harald Kipp and can explain why you need it, he will send you parts of the sources after you signed a non disclosure contract.

   I'd like to distribute Changi in my area (continent :-)). Is this possible? It will be possible if the commercial version becomes available. At least two people already offered their service for Canada, US and Australia, but inquiries for other parts of the world are still welcome.
Message File Not Found What is the meaning of message file not found? The development tool VisualAge C++, used to create Changi, requires to separately bind runtime messages to executables unless you got DDE4.MSG on your disk. On development machines, where VisualAge is installed, this file is available and so it was overlooked to bind the runtime messages to Changi before shipping some previous versions.

DDE4.MSG can't be distributed with Changi, because it's copyright protected.

CPPWM35I.DLL (NT) When trying to run Changi or any other program of the distribution, I got a system response saying, that CPPWM35I.DLL is missing. This problem is similar to the 'message file not found' problem and occurs with the first beta for Windows NT. Like DDE4.MSG, this DLL can't be distributed with Changi, because it's copyright protected. You must upgrade to beta 2.
Environment Variables I think a separate config file might be a better solution since you can't put everything in environment variables. Why not? There had been a lot of discussion, after the Changi config file had been last used in version 0.5.

Environment variables may create problems for people not used to them in such an extend. But they have advantages:

  1. Changi consists of several programs, what makes it flexible. Using a single config for all parts decreases it's flexibility. Some environments (or workarounds) need different settings of certain configuration items. Of course the old version was able to optionally read different configuration files, but maintaining two or even more copies of configuration files is a drag. Environment variables may be set, where you need them.
  2. Environment variables are multilevel and may be easily overwritten without the need to respecify the full set, if you want to change a single item. You may set a few global items in config.sys and define additional ones or overwrite exisiting definitions in a batch file.
  3. Testing new setups is much easier. You enter a simple SET on the command line and run the program. It's true, that you may use command line options to overwrite config file items, but setting environment variables becomes much easier, if you need to deal with several items, because they remain in effect even if the program must be startet a second time.
  4. Last not least, environment variables support modularization of programs. Imagine some DLLs being shared by C executables and REXX scripts or whatever. Should the DLL read the config file again, already read by the caller? Should the caller supply hundreds of configuration options before calling the DLL entry? With environment variables any independend module may pick itself those configuration items from the calling process' environment it needs.
In summary one could say, that configuration files may be easier to handle as long as things reamin simple. But if things get complicated, environment variables offer some advantages.
   Nice talk, but I'd still prefer a config file. If you want a config file, you can get it with environment variables too. Create a cmd file with all those variables you want to set and use it instead of calling Changi and all those other programs directly. You may add comments and make it look like any ordinary config file. Or call Changi with option -dC and rename changi.log to anything.cmd, which also works with most of the other programs, Chanx, Expire, etc.
Manual Der Autor von Changi ist, soweit ich weiss, Deutscher. Wo finde ich die deutsche Doku. Der Autor von Changi ist ein fauler Deutscher, zumindest soweit es Dokumentationen betrifft. Er hat schon reichlich Stress mit der englischen Ausgabe und diesem FAQ. Solange sich also niemand anderes erbarmt, wird es keine Dokumentation in deutscher Sprache geben.
   Btw. I liked the OS/2 .INF manual better - it's searchable. Hopefully better tools will become available for HTML documents.
Reporting Problems Anyway... just wanted to report the error. If you don't want error reports in the future, please let me know. The author of Changi does like to get any error report. However, he may not be able to respond to everyone. But all reports are collected and processed later.

Changi

INETD (OS/2) Is it possible to invoke the server by INETD? No, not yet. Due to its multithreaded nature, Changi behaves different from the usual UNIX server processes. A special front end is needed to start Changi from INETD. Such a front end is currently not available.
Service (NT) Is it possible to run Changi as a service? Changi itself has currently no provision to be installed as a service. However, it has been reported, that Changi can be installed as a service by using a program named SRVANY. This program is part of the Windows NT Server Resource Kit. It may be available elsewhere, but this is where I got it from.
Can't find noop How to interpret the messages 'nntpd: Can't find noop' that syslog gives when running Changi. Certain newsreaders request a newsgroup named noop. This problem hasn't been tracked down yet and needs further investigation. However, it doesn't seem to hurt.
LISTGROUP Bug When the command LISTGROUP any.group is issued on a NNTP-connection, Changi answers with a duplicate response, which confuses my newsreader. This known bug has been detected soon after releasing the 1.01 patch.
Error 640 I recently saw regular entries in my syslogd like this: Error 640 (DosRequestMutexSem 30240) As a multithreaded application, Changi uses several semaphores for mutual exclusion while accessing shared resources. In the past there had been several reports about failures during semaphore requests. Although these errors look similar, their cause isn't.

That's the background. 30240 refers to the specific routine, at which the semaphore access failed, 640 is the error code for timeout. Putting it together shows, that Changi fails with timeout (30 seconds) in a procedure named flush_dircache. All routines using this semaphore look quite simple and are most probably free of bugs. However, they make extensive use of dynamic memory allocation and may fail in case of heap memory corruption introduced by any other part of Changi.

As a result of this somewhat lengthy explanations, it seems to be most difficult to find the cause of this problem. Either you may discover another syslog line with any, on the first look unrelated problem - or we may discover similar configuration items among two or more people with this problem.

Message-ID I've set both, HOSTNAME and CHANGIHOSTNAME to the FQDN of my site, but Changi keeps creating Message-IDs containing localhost. Most probably it's not Changi but the newsreader, which created this ID. Netscape, for example, has been reported to do so. Note, that Changi won't overwrite message-ids supplied by your newsreader. If the id doesn't start with the letter c followed by a version number, it hasn't been created by Changi.
localhost Not Accepted I run my server on a loopback address using 127.0.0.1 with a hostname of localhost. Changi complains that this is not a FQDN, so I am using an alias of localhost.net at the moment. Is there any way it can be made to accept localhost? Generally speaking, using localhost as a hostname is a bad idea. It should only be used for the local interface in addition to a real hostname.

Among other settings, Changi needs a hostname for the pathline. As long as your site is the only one in the whole world named localhost, there's no problem. But any other site named localhost too will never see your articles and vice versa.

Anyway, the problem is seen with some providers not providing a hostname, but it's currently not fixed how to solve this. Unless Changi isn't able to deal with it, try to select a hostname, which hopefully isn't used elsewhere and set CHANGIHOSTNAME to this name.

Pathline Problem I'm not sure who, perhaps Changi, says Found news in Path You need to set CHANGIPATHHOST to something different than news. I suggest to set it to the FQDN of your local newsserver.

If this variable isn't set, Changi uses HOSTNAME, which most probably is set to the name of the machine without domain. This setting is done during TCP/IP installation.

active My NEWS.WATERMARK, ACTIVE, and ACTIVE.TIMES files do not agree with each other. Is this correct? The active file should at least contain all groups from the watermark file. It may contain more, especially:
control 0 1 n
control.cancel 0 1 n
control.newgroup 0 1 n
control.rmgroup 0 1 n
junk 0 1 n
Never ever add junk to the watermark file, unless you want to get real junk. Under normal conditions you won't want and you won't be allowed to get the control groups either.

active.times simply keeps a record of newly created groups on your system and may be used by the newsreader to detect them. Changi doesn't use this file for any other purpose than to send it to newsreaders upon request.

Rereading Configs Is there any way to reread config files without reloading the server? No, but some are reloaded automatically, if Changi detects a change in the modification date. This is true for all access control files, nntp_access, ctrl_access and user_access. But other files, like newsfeeds, are loaded during the startup phase only.
Can't See Local Posts If someone posts to a newsgroup, how long does it take before the posting is available for the other users? Is it possible to speed things up, so that a posting is available in e.g. 5 minutes after it has been posted? I tried changi and made some local groups, but my postings did not show up the same day. Changi will flush its internal buffers about 15 seconds after the posting machine completely disconnects. Otherwise you may force Changi to flush by calling
Chanco -v flushlogs
However, it also depends on the newsreader, if this update will be immediately available. NR/2, for example, got an option to rescan the server within adjustable time periods.
Compressed Batches I noticed that after using compressed batches I never got any replies back. I now see that changi uses #!gunbatch on the first line. I think it should be #!cunbatch. Is there any environment variable to change this? gunbatch is the common keyword when using gzip for compression. But not every uplink might support it.

Unfortunately there isn't any specific environment setting to change this behaviour, but we are lucky that Changi is buggy at that point.

The server uses the lowercase of the first character of CHANGICOMPRESSCALL, which defaults to gzip -c. Putting gzip on drive c: and setting CHANGICOMPRESSCALL to c:\gzip -c should do the trick.

Remote Access How can other machines read/post articles? I've tried ctrl_access... didn't work... ctrl_access is used to enable other machines to run Chanco commands.

News access is granted by setting up nntp_access. The manual provides more details.

   My idea was to have a NNTP server on our local network, just for internal information in our department. No connections to the outside world! No connections to other servers (at least not now). This is possible. Just create a newsfeeds file with a single entry only:
ME:*,!control,!control.*,!junk,!local,!local.*/!local::
   How can I define passwords for my users? I created nntp_access and user_access:
nntp_access
anynet.com    read   post    *

user_access
anyuser    password  *
Is this correct? It doesn't seem to work.
Not fully correct. It should be
nntp_access
anynet.com    Read   Post
The uppercase (R and P) letters will switch on password checking. Btw., there's no need to specify *, because this is the default.
New Newsgroups My setup of Changi never creates the *.cmd files for new newsgroups... Depends on the newsgroups you get. Changi will create / update these files upon receiving a corresponding control message.

Such a message will be sent to comp.os.os2.* groups for example, if the hierarchy of comp.os.os2 is going to change.

Statistics Is there a tool to monitor the current (and maybe past) use of CHANGI? Like how many users are connected, maximum connections, outbytes, etc.. To view the current state, you may run JavaChanco. There is currently no tool available for doing statistics. I would suggest to use perl or REXX and examine the syslog logfile.

Chanx

Nothing to Post Chanx told me there was nothing to post. If that's true, why is my spool directory full of files? I recently changed my provider. Most probably these files are still targeted to your previous provider. Their name should contain the first 7 letters of the target machine. You may make use of Chanx option -h to fake the name of the remote site:
chanx -h my.real.provider [more options] my.old.provider
   When I post a note, it is spooled, but it is never sent out. I'm running an old version of Changi. Nobody supports this old crap. Bye.

   Pleazzzzzze. SIGH! The most common problem with not getting out the local posts is, that Changi stores spoolfiles for the remote site without domain, while Chanx is looking for spoolfiles for the remote with fully qualified domain name. In this case you may try to remove the domain part from the NNTPSERVER environment.

Some very old versions btw. had a similar problem, but the other way round. But this is really old 16 bit stuff.

Can't Post More Than One Message When running Changi 1.0 for OS/2 and posting more than one article between Chanx sessions, only my last post is sent to my provider. This is a bug in Changi 1.0. You need to upgrade to version 1.01.
Error 441 It is possible to have an option so that an NNTP-Posting-Host line is not added when posting a message to the server? Compu$erves news server disallows the IHAVE command, so I must use POST instead. But that gives a 441 error saying NNTP-Posting-Host lines are not allowed. Incidentally, the message was not sent and was dumped from the spool directory, thus losing it completely. No solution right now, but it's on the list.
   When Chanx tries to transmit a local post to the provider's news server I get an error message that says: 441 Illegal distribution... Most probably you misconfigured your newsreader. Default distribution is world.
PID File Conflict I get news from several feeds and would love to have two or more versions of chanx going at once. This is stopped since Chanx detects its pid in the workdir. Coming versions of Chanx will create different pid files for different sites. In the meantime you may set the environment variable CHANXPIDFILE to a different filename.
host.last corrupted Running chanx -mp seems to corrupt the news.last file. No solution available except not to use this option.
Catching Up When using a watermark file, would it be possible to have a command line option in Chanx to catch-up? Without editing the last article number for each group by hand, I end up with a huge news download upon adding a new news server. This is a very missing feature. One way currently possible is to set up a filter for the first connect only and drop all articles.
Dupe Checking At what point does Changi de-dupe? The reason I ask this is because I have the feeling that Chanx, when running in XOVER mode, seems to query each crossposted copy. This a very missing feature and will be added to the next release. Currently only NEWNEWS supports online dupe checking.

Chanco

Remote Control Can I Control Changi From Another Host? Yes, but in this case you need to create ctrl_access. Check the manual about its required format.
Option -u What is the user good for? You may allow certain users to control your server remotely. Version 1.0 and above doesn't need the user name anymore, if you run chanco on the local host - as long as you didn't set up ctrl_access.

Expire

Expiring local.grep When using groups created with local.grep the articles do not get expired. This bug has not been fixed yet. Remember, that this is an experimental feature and should be used with care.
Nothing Expires I was pulling my hair out over this one: expire.conf had a control Z character at the end of file, which causes the expire program to do absolutely nothing. After removing the Ctrl-Z, it works fine. This is an ever-lasting problem. Nobody counted how often the author checked the routines to be able to deal with ctrl-z. Somehow this error is back again.
   With the expire.conf in place, I run expire -Cve4d *, but no expiration takes place. There's a bug when using Expire with a newsgroup pattern as a command line argument. If you want Expire to process all groups, just leave out this argument. Running expire -Cve4d is sufficient.
Expire Config I've created the expire.conf file, I'd like to know if the expiration of the articles is managed by the server or only by expire.exe. By expire.exe only.
Never Expire Group What are the limits on expire times? Is it possible to set a newsgroup to never expire? There's no never-value, but you may use -e 500w without problems. If calculations are correct, the maximum is about 2900 weeks.

UUPC

Article Filter I'm using Changi with UUPC/extended. Is it possible to filter spam when articles are being received via UUCP? The docs only describe filtering when articles are being received with chanx via NNTP. Filtering spams is mainly done to reduce expensive online time, not to save cheap diskspace. So only Chanx is able to filter articles. Rnews or Changi itself don't offer such a feature.

There is a point on the list to enable the server to pass each incoming article to a filter program before storing it in the local newsbase. But nobody is able to tell, when this option will be available.

Expire -U The manual documents the "U" option as being necessary to make Expire work with previous releases and UUPC/extended. You need expire option -U only, if you use it with the UUPC news system or pre 0.9p versions of Changi.

Since then Changi uses a new history index file layout, even a different name, history.idx instead of history.dir.

This special option has been included, because the UUPC expire is a simple one only and the old Changi expire had been very buggy, but the whole Changi set hasn't been completed at that time. So expire 0.9p has been released, dealing with the new index but containing code to handle old history index as well.

   I missed something and accidently used Expire with option -U. What now? If you already used option -U with Changi 1.0, you need to rebuild the index right now (option -rv) and you should never use option -U again.
newsfeeds How can I make Changi to create jobs with a news priority?, Now all my uucp jobs got the same class, which is 'C'. UUPC normally uses class 'n' for news, which is a lower priority. This makes it possible to send/receive only mail during the day, and mail and news at non peak hours making things a little cheaper... This is one of the options added in the 0.9w -> 1.0 upgrade. A new Flag 'U' has been added to change the grade. Sample entry of newsfeeds:
lilly::L,Un:
Note, that U implies TU.
   Hmm. I'm a little confused here. I have now added xs4all::F,TUc,S400000: to my newsfeeds file to create batches of a maximum of 400000 bytes. It seems to me that TUc conflicts with Un, or am I wrong here? T is a flag and U is one. T accepts options like U, in which case U is an option, not a flag. On the other hand there's a flag called U, which in turn accepts options like n.

Totally confused now?

In other words, you can't use TUc, because c would be interpreted as an option of T.

You may, however, use 'TU,Un'. If you specify TU, then UC is the default. If you specify Un, TU is implicitly included. So, 'TU,Un' is equal to Un.

Spool Command My provider told me, that Changi's line
R news any.fqdn
in one of the spool files is not following the rules.
This bug had been copied from UUPC. Most *NIX version of uucp are aware of this and will accept such spools without problem.

The correct version is

R any.fqdn!news
and will hopefully be used by the next version of Changi.

Miscellanous

Cancel Spams Last night when I tried to fall asleep, I got an idea for a little tool that scans the whole message base and applies a filter to each article. If an article fits to the filter criteria, a cancel message for that article is being sent (distribution: world!). Cancel messages won't be accepted by news servers unless the header line 'Sender:' equals the sender of the original article.

On the other hand the sender entry is created by the server using reverse name lookup for the connected client. If Changi would allow clients to overwrite the sender entry, it little bit of security would become totally useless.

However, a coming version of Changi may allow overwriting the sender for cancels, but in that case create an extra X-Sender line containing the name of the posting site.

Keep in mind that, if you're able to cancel everybody's posts, then everybody may be able to cancel your posts as well. And not all people on the net are as friendly as expected.

Nam June Paik The author of Changi uses a quote of Nam June Paik in his signature. I don't want to be a total ignorant and therefore I didn't ask anybody, who he is. You can ask without being told an ignorant. Harald Kipp copied this quote from an art journal found once on his kitchen table. Except this quote nothing else had been written in this journal about Nam June Paik. But, because Harald isn't an ignorant, he knows at least that June Paik is a (famous?) video artist.
   What does '... liebe Gott boese' mean. It's kind of Pidgin German and means, that God will become angry.
egnite.com Changi is available at egnite.com. It looks like a typo for ignite, but what does it mean in German? What kind of company is egnite anyway? The typo is an intentional one, a combination of electronic and ignite. It took Harald Kipp several days to find this name, because he insisted to get a short company name not being occupied by a domain name at InterNic. Unfortunately, his other favourites, ibex and emagine were already registered as domain names.

The name of his old company is Harald Kipp Internet Systeme, which had been selected to fulfill German laws requiring the full name of the owner in the name of unlimited companies. This company still exists.

In July 1997 a new company was founded. This is a limited company, which official name is egnite Software GmbH.


Thanks to Michael Abadjiev, Fredrik Acosta, Thomas Bonk, Bruce Broecker, Peter Gahbler, Chris Graham, Warren Hughes, Rick Phillip, John Poltorak, Albi Rebmann, Ruud Senden, Edmond E. Shwayri, Ian Stocks, Jose Maria Tejada, Ed Tomlinson, Andre Vaupel, Eric Veldhuyzen, Alistair J. R. Young, and many others I forget to mention here.

 

Return to our home page.


Design & Content © 1997 by Harald Kipp Internet Systeme