
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:
- 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.
- 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.
- 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.
- 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