home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
OSK
/
APPS
/
mnews.t.Z
/
mnews.t
/
Read_Me
< prev
next >
Wrap
Text File
|
1990-04-17
|
17KB
|
324 lines
*** Auszuege aus dem Ergebins der Mailingliste ***
From: Ulrich Dessauer <ud@nitmar.ddt.sub.org>
[..]
Aktueller Stand / Bekannte Fehler
Derzeit ist eine Sache besonders gravierend, die ganzen Control
Messages funktionieren nicht so wie sie sollten. Das lag zum einen an
der falschen Newsgroup (ich habe immer `control' als Newsgroup
genommen, das geht aber leider nicht) und zum anderen - aber da bin
ich gerade dran, worans noch liegt ;-).
Das Posten in eine moderierte Newsgroup als nicht-Moderator fuehrt
zu Problemen; das beruht auf einem Fluechtigkeitsfehler und ist
geaendert
Was gibts noch zu tun
Erstmal empfehle ich jedem, der sich etwas ausfuehrlicher mit News
beschaeftigt die RFC1036 durchzulesen. Dort findet man alles ueber
das Format eines Newsartikels.
Die `Dokumentation' ist nicht gerade viel :-(, daher werde ich mit
der Zeit die Source mit etwas mehr Kommentaren spicken und eine
allgemeine Doku schreiben. Daher auch eine Frage an Euch: gabs beim
Installieren Probleme, und wenn ja wo? (Ich habe auch nichts dagegen,
wenn sich jemand anders bereit erklaert die Doku zu schreiben ;-).)
------------------------------------------------------------------------------
From: Ulrich Dessauer <ud@nitmar.ddt.sub.org>
[..]
Notes <-> News
[..]
Die Programme newsinput und newsouput wurden urspruenglich bei
Notes fuer ein lokales Gateway geschrieben, d.h. sowohl News als auch
Notes laufen auf einem Rechner. Zum Testen ist es daher ganz
praktisch, wenn man beides erstmal auf dem Rechner laesst.
Das Senden und Empfangen von Artikeln laeuft aber ab da nicht mehr
ueber Notes, sondern ueber News. Erst lokal werden die News nach
Notes (und umgekehrt) konvertiert.
.--------------. .--------------.--.-----------.
| Newssystem | | Newssystem | | Notes |
| anderer | <--> | eigener <--> eigener |
| Rechner | | Rechner | | Rechner |
`--------------' `--------------'--'-----------'
Wenn man News an ein anderes System weiterspoolt, dann ist Notes
praktisch nur ein "Ableger":
.----------. .---------. .-----------.
| remote | | local | | remote2 |
| news | <-> | news | <-> | news |
`----------' `---------' `-----------'
^
|
v
.---------.
| local |
| notes |
`---------'
Zuerst bespreche ich die Richtung News nach Notes. Im
Lib-Directory(*) von News ist das File `sys' zu editieren. Dort
koennte eine Zeile wie folgt aussehen, damit alles nach notes
gespollt wird:
to-notes:.*:*:newsinput
Damit ist das Problem geloest, die andere Richtung ist aehnlich
einfach zu loesen. Im Lib-Directory(**) von Notes gibt es ein File
`net.how', indem steht wie Notes weitergegeben werden. Dort gibt es
einen Eintrag fuer den Pseudorechner `Usenet'. Dieser Eintrag sollte
nun so aussehen (es kann sein, dass ich einen Doppeltpunkt zu wenig
oder zu viel reinschreibe, ich habe gerade kein Beispielfile da):
Usenet:x:::inews
Die Artikel muessen dann wie gewohnt mit `newoutput' an News
weitergegeben werden.
Damit sollte es also kein Problem sein beide Systeme parallel zu
fahren. Das Weiterspoolen der Artikel geschieht auf die gleiche
Weise, wie auch News Artikel weitergegeben werden.
(*) Default: /h0/USR/LIB/NEWS
(**) Default: /h0/SPOOL/NOTES/.UTILITIES
------------------------------------------------------------------------------
From: Ulrich Dessauer <ud@nitmar.ddt.sub.org>
zwei Probleme sind inzwischen wieder aufgetaucht:
1.) ist in der os9lib.l kein strdup(), obwohl ich dachte, dass eins
drinnen waere, Hier eine Version, die man entweder in MNews ein-
bauen kann, oder -besser- gleich in die os9lib.
char *
strdup (s)
register char *s;
{
register char *r;
if (r = malloc (strlen (s) + 1))
strcpy (r, s);
return (r);
}
2.) Bei aelteren Compilern (in V 2.1) gibt es kein void, daher sollten
diese Leute ins Makefile bei den CFLAGS ein -Dvoid=int anfuegen.
------------------------------------------------------------------------------
From: Ralf Sauther <ralf@ppcnet.UUCP>
Normalerweise wird unter B-News mittels eines shell-Script's gespoolt. Hier
wird ja gleich beim Einsortieren an die entsprechenden Systeme gespoolt.
Es muss also nur explizit ueber den vcron gebatched werden, right ?!
Gut, was ist aber, wenn ich nun an ein System aeltere News nochmals spoolen
will (meinetwegen wegen Datenverlust) ? Wie laesst sich das anstellen ?
-------------------- Antwort dazu --------------------------------------------
From: Ulrich Dessauer <ud@nitmar.ddt.sub.org>
~ Normalerweise wird unter B-News mittels eines shell-Script's gespoolt. Hier
~ wird ja gleich beim Einsortieren an die entsprechenden Systeme gespoolt.
~ Es muss also nur explizit ueber den vcron gebatched werden, right ?!
Jo, aber unter BNews ist diese Funktion ueber eine Option zu
erreichen. Ich finde es jedoch besser diese gleich als Default zu nehmen
und erst beim Batchen selbst zu entscheiden, wie sie versandt werden;
daraus ergibt sich eine funktionelle Trennung der logischen Teilbereiche.
~
~ Gut, was ist aber, wenn ich nun an ein System aeltere News nochmals spoolen
~ will (meinetwegen wegen Datenverlust) ? Wie laesst sich das anstellen ?
Tjaaaa, dieses Problem ist von BNews her auch bekannt: Es geht
nicht :-(. Man konnte aber folgendes machen:
$ find -s=/h0/SPOOL/NEWS "*" >/h0/SPOOL/BATCH/<system>
$ sbatch -c <system>
Damit wuerden alle alten Artikel gespoolt werden. Die ganzen
Directories werden zwar auch in diese Liste aufgenommen; sbatch kann
diese aber nicht als File oeffnen, daher werden sie ignoriert. Dazu
koennte man sich auch noch einen filter schreiben, der das die Files
auf bestimmte Kriterien untersucht (z.B. obs eine lokale Newsgroup
ist, obs ein Directory ist, ob die Artikel schon zu alt sind, etc.)
und nur die Filenamen ausgeben, die dann relevant sind. Ein solches
Programm waere nicht sonderlich aufwendig (es wuerde auch ein SHell-
script reichen, das ist dann aber laaaaaaangsam ;-)).
------------------------------------------------------------------------------
From: Ulrich Dessauer <ud@nitmar.ddt.sub.org>
ich habe jetzt schon einige Anfragen bezueglich des Formats des
`Sys' Files erhalten. Es wird zwar in `inews.h' kurz erklaert,
scheint aber nicht besonders deutlich zu sein. Als erstes moechte ich
noch erwaehnen, dass alle Files inkompatibel zu BNews sind. Der Grund
dafuer ist einfach: ich hatte keine exakte Beschreibung des
BNews-Formats zur Hand und die Philosophie des `Sys' Files unter
BNews will mir garnicht gefallen.
Erstmal ein paar Beispiele fuer das `Sys' File:
#
# Forward *everything* to chiuur, expect local Distribution:
chiuur:.*:!local *
#
# Forward only sub.* and muc.* to viscom1:
viscom1:(sub|muc)\.*:sub muc world
#
# Store the maps in an extra directory (local.maps for tests)
maps-admin:sub\.config\.maps local\.maps:*:store -d=/h0/ETC/MAPS -t=new sh
#
# Archive the Source-Postings in sub.sources.os9
os9-src:sub\.sources\.os9:*:store -d=/h0/SPOOL/PUBLIC/OS9SRC
#
# Noch ein paar andere Beispiele, angenommen, man
# bekommt alle Artikel von hosta und
# von hostb, man will aber nicht die Sachen, die man
# von hosta bekommt an hostb weiterspoolen (und um-
# gekehrt).
hosta/hostb:.*:!local *
hostb/hosta:.*:!local *
#
# Angenommen lall@laber will nur alle Source-Postings als
# Mails bekommen:
to-lall:.*sources.*:!local *:smail lall@laber
Das `Sys' File besteht aus einer oder mehreren Zeilen. Eine Zeile
ist ein Kommentar, wenn das erste Zeichen ein `#' ist. Ansonsten ist
die Zeile ein Eintrag mit Information was an wen wie weitergeleitet
wird. Eine solche Zeile besteht aus drei Feldern, jeweils durch
einen Doppelpunkt getrennt. Ein optionales viertes Feld kann noch
folgen; dieses ist mit einem Doppelpunkt vom dritten Feld
abzugrenzen.
Das erste Feld kann zwei verschieden Formate haben, erstens (der
triviale Fall) den Systemnamen des Systems, an das neue Artikel
weitergegeben werden. Dieser Eintrag ssoollllttee auf jedem Fall mit dem
Namen uebereinstimmen, den dieses System in das _P_a_t_h_: Feld einfuegt
(jedes System fuegt bei einem empfangenen Artikel seinen Systemnamen
in das Path-Field ein). Damit kann verhindert werden, dass Artikel,
die bereits durch dieses System gegangen sind wieder an dieses
weitergegeben wird (sonst kommts zu Schleifen). Beispiel:
Ich setze diese Zeile im `Sys' File voraus:
chiuur:.*:*
Wenn jetzt ein artikel bei mir ankommt, der folgendes Path:
Field hat wird er nicht an chiuur gesendet (da chiuur schon
im Path: ist)
Path: chiuur!doitcr!altger!ud
Ein Artikel mit dem Path:
Path: doitcr!altger!chiuur!cmk
wuerde auch nicht weitergespollt werden, wohl aber einer mit
Path: altger!doitcr!internal
(auch wenn chiuur diesen auf einem anderen Pfad schon erhalten
hat, aber das kann das News System ja nicht "wissen").
Angenommen ich bin paranoid und will auf gar keinen Fall
irgendwelche Sub-News verlieren, deshalb lasse ich sie mir von doitcr
und chiuur senden. Die Beiden tauschen die News untereinandere aber
auch aus, daher waere es sinnlos, wenn ich Artikel, die von chiuur
kommen nach doitcr (und umgekehrt) weiterleite. Also "sage" ich
meinem News-System: ,,Wenn ein Artikel bereits auf chiuur war, dann
hat ihn doitcr bestimmt schon, also wird er nicht nach doitcr
geschickt (und umgekehrt)``. Der entsprechende Sys-File Eintrag saehe
so aus:
chiuur/doitcr:.*:*
doitcr/chiuur:.*:*
Sollte ich jetzt besonders paranoid sein, dann hole ich mir die
Artikel von chiuur, doitcr, altger und salyko. Es gilt im Prinzip das
Gleiche wie oben beschrieben, nur saehe das Sys-File dann so aus:
chiuur/doitcr,altger,salyko:.*:*
doitcr/chiuur,altger,salyko:.*:*
altger/chiuur,doitcr,salyko:.*:*
salyko/chiuur,doitcr,altger:.*:*
In diesem Fall nimmt News also den Systemnamen (Beispiel 1.Zeile:
chiuur) und schaut im Path: nach, ob das System bereits eingetragen
ist. Wenn nicht, dann werden nacheinander die Systeme nach dem `/'
gegen den Path: abgeprueft (im Beispiel also erst doitcr, dann altger
und salyko). Nur wenn keines dieser System im Path: ist wird der
Artikel gespoolt.
Das zweite Feld ist eine Liste von Newsgroups (und nur Newsgroups,
nicht so wie BNews, die in diesem Feld Newsgroups und Distributions
auf eine so genial Weise vermischen, dass keiner genau weiss, was was
ist) in Form von Regular expressions. Die einzelnen Expressions sind
durch Leerzeichen getrennt. Um alle Artikel in sub.* und muc.* an
chiuur weiterzuleiten saehe der Eintrag so aus:
chiuur:sub\..* muc\..*:*
oder einfacher
chiuur:(sub|muc)\..*:*
Intern werden diese Expressions so gehandhabt, als wenn ihnen ein
`^' voran und ein `$' nachgestellt waere. Damit ist sichergestellt,
dass ein Ausdruck `sub\..*' nicht `talk.subversiv' als passend
erkennt. Die Benutzung von Regular Expressions hat gegenueber den
BNews Konventionen den Vorteil, dass man keine neue `Ausdrucksweise'
lernen muss und dass eine entsprechnde Library bereits vorliegt. Der
Nachteil kann eine laengere Ausfuehrungszeit sein. Per Konvention
sollte es fuer jedes System, das an einem angeschlossen ist eine
Newsgroup `to.<system>' geben (und natuerlich eine
`to.<mein-system>'). In diesem Fall erweitert sich die Sys-Zeile
folgendermassen:
chiuur:to\.chiuur (sub|muc)\..*:*
Im dritten Feld stehen die Distribuitons, die das Zielsystem
erhalten soll. Angenommen ich habe einen Link nach Hamburg und poste
einen Artikel nach `sub.test' (den der Hamburger Rechner bekommen
wuerde) mit der Distribution `muc', dann bekommt der den Artikel doch
nicht, da ich als Distribution nur `sub' fuer ihn eingetragen haette.
Die Distributions sind nicht im Regular expressions Format, es werden
nur die von der (Microware-)Shell erlaubten Wildcards `*' und `?'
erkannt. In internationalen Gruppen ist es so "(un)Sitte", dass keine
Distribution angegeben wird; will man solche Artikel weitergeben,
dann muss `world' als eine moegliche Distribution eingetragen sein.
Daraus ergibt sich fuer das Beispiel folgender Eintrag:
chiuur:to\.chiuur (sub|muc)\..*:muc sub
Nachdem mir das aber zuviel zum Schreiben ist (zudem kommen noch
einige internationale Gruppen hinzu) moechte ich einfach, dass
"alles" an chiuur gespollt wird, ausser einigen lokaler Testgruppen
(und Distributions). Daher unterstuetzen sowohl das Newsgroups, als
auch das Distributionsfeld einen `not' Operator. Die Zeile sieht nun
wie folgt aus:
chiuur:!local.* to\.chiuur !to\..* .*:!local *
Das heisst, dass chiuur keine Gruppe bekommt, die mit `local'
beginnt, von den `to.' Gruppen wird nur `to.chiuur' weitergegeben,
ansonsten aber alles. Hat einer der Artikel aber als Distribution
`local', dann wird auch der nicht weitergegeben.
Wenn das vierte Feld fehlt, dann passiert folgendes: Die
(absoluten) Filenamen der Artikel werden in ein File
/h0/SPOOL/BATCH/<system> geschrieben (z.B. /h0/SPOOL/BATCH/chiuur).
Will man die Artikel dann physikalisch Spoolen, benutzt man das
Programm `sbatch'. Im allgemeinen wird man `sbatch -c <system>' von
cron aufrufen lassen (-c == Batchen und Compressen).
Sollte aber ein viertes Feld existieren, dann nimmt News an, dass
das ein Programm ist. Jeder Artikel wird dann sofort an dieses
Program gePIPEt, dieses muss also von stdin lesen. Das Programm kann
alles moegliche machen, entweder News einer Gruppe archivieren,
automatisches Updaten von netzrelevanten Daten (z.B. sub.config.maps)
oder auch versenden von Artikeln via Mail oder ... .
Ich hoffe, diese Informationen reichen um ein funktionierendes
System zu installieren. Noch eine letzte Anmerkung: In BNews ist es
erforderlich eine Zeile fuer das eigene System zu haben; diese wird
unter MNews nicht benoetigt.
------------------------------------------------------------------------------
From: Ralf Sauther <ralf@ppcnet.UUCP>
Wenn keine Subjektzeile vorhanden ist, wird die Nachricht nicht eingespoolt.
Ist das beabsichtigt ?
------------------------------ Antwort hierzu --------------------------------
From: Ulrich Dessauer <ud@nitmar.ddt.sub.org>
Wenn unter dem NN ein Beitrag geschrieben wird und bei der Frage
nach dem Subject: einfach Return gedrueckt wird, dann kehrt der NN zum
normalen Betrieb wieder zurueck.
Wenn man im Editor dann den Inhalt der Subject-Zeile loescht,
dann wird der Artikel mit dem Subject `[none]' gespeichert. Wenn man
die Subject-Zeile im Editor loescht passiert das Gleiche.
Wenn ein Artikel ohne Subject ueber rnews reinkommt, dann wird
der nicht einsortiert (RFC1036 sagt, dass eine Subject: Zeile vorhanden
sein *muss*).