Provided by:
manpages-pl_20051117-1_all 
NAZWA
innd, inndstart - InterNetNews daemon
SKŁADNIA
innd [ -a ] [ -c dni ] [ -C ] [ -d ] [ -f ] [ -H licznik ] [ -i licznik
] [ -Iadres_IP ] [ -l rozmiar ] [ -m tryb ] [ -n flaga ] [ -o licznik ]
[ -pfd_des ] [ -Pport ] [ -r ] [ -s ] [ -t opnienie ] [ -T licznik ]
[ -u ] [ -X sekundy ] [ -Z ]
inndstart [ flagi ]
OPIS
Innd, który jest demonem news (InterNetNews), obsługuje wszystkie
nadchodzące feedy. Najpierw wczytuje do pamięci pliki active(5),
newsfeeds(5) i incoming.conf(5). Potem otwiera port NNTP do odbierania
artykułów ze zdalnych stacji (zobacz opcję ``-p''). Jeśli w
include/config.h zdefiniowano HAVE_UNIX_DOMAIN_SOCKETS, to do odbioru
artykułów od lokalnych procesów, takich jak nnrpd(8) i rnews(1)
otwierane jest gniazdo strumieniowe dziedziny Uniksowej, a dla
ctlinnd(8) odwierane jest analogiczne gniazdo datagramowe. Gdy makro
to nie jest zdefiniowane, używane są łącza nazwane. Ctlinnd(8)
wykorzystywany jest do przekazywania serwerowi poleceń wykonania
określonych akcji. Otwiera również bazę history(5) i dwa pliki
raportowe, zastępujące jego standardowe wyjście i wyjście błędu.
Po otwarciu wszystkich plików i gniazd, innd oczekuje na połączenia i
dane na swoich portach, używając do tego select(2) i nieblokującego
I/O. Jeśli nie ma dostępnych danych, to wypróżni on swoje
wewnątrzrdzeniowe struktury danych. Domyślna liczba sekund opóźnienia
przed wypróżnieniem jest ustawiana jako <DEFAULT_TIMEOUT w config.data>
(zwykle 300) sekund.
Jeśli innd otrzyma błąd ENOSPC (zobacz intro(2)) podczas zapisu pliku
active, pliku article lub bazy historii, to wyśle do siebie komendę
``throttle''. Stanie się tak również, jeśli otrzyma zbyt wiele błędów
wejścia-wyjścia podczas zapisu do jakiegoś pliku.
Niektóre parametry ustawiane w inn.conf(5) mogą być również podane w
linii poleceń innd. W tym wypadku, opcje z inn.conf(5) będą nadpisane
przez opcje linii poleceń.
OPCJE
-a Domyślnie, jeśli host nie jest wymieniony w pliku incoming.conf
to połączenie jest przekazywane do nnrpd. Po użyciu tej flagi
dowolny host może się podłączyć i przesyłać artykuły.
-c innd odrzuca stare artykuły. Zasadniczo zachowanie to może być
sterowane przez bazę historii, lecz czasem stacja wyrzuca w sieć
paczkę bardzo starych artykułów. Flaga ``odrzuca wszelkie
artykuły, wysłane dawniej niż 21 dni temu. Wartość zerowa
powstrzymuje ten test. Domyślną wartością jest 14 dni, lecz
można to zmienić opcją ``artcutoff'' w inn.conf(5)
-C Jeśli użyta jest flaga ``-C'', to innd przyjmie i przesyła
dalej, ale nie przetwarza wiadomości anulowania i powstrzymania.
Jest to przeznaczone dla stacji, w których nadużywane są
anulowania i które wybierają mechanizm z lepszą autoryzacją.
-d -f Innd normalnie przechodzi w tło, ustawia standardowe wyjścia na
pliki raportowe i odłącza się od terminala. Po użyciu flagi
``-d'' serwer tego nie robi, a po użyciu flagi ``-f'', serwer
pozostaje na pierwszym planie.
-H -T -X
Flagi ``-H'', ``-T'' i ``-X'' sterują liczbą połączeń
dozwolonych na minutę. Ma to w założeniach działać jako ochrona
serwera przed czytnikami, które wykonują w ciągu minuty zbyt
wiele połączeń z serwerem. Zazwyczaj nie używa się tego, chyba
że rzeczywiście pojawia się jakiś problem. Tablica używana do
tych sprawdzeń jest ograniczona do 128 wpisów i jest używana
jako pierścień (ring). Rozmiar został wybrany do ułatwienia
obliczania indeksu i do upewnienia się, że nie zabraknie ci
miejsca. Praktycznie wydaje się wątpliwe, żebyś wykorzystał
nawet połowę tablicy naraz.
Flaga ``-H'' określa maksymalną liczbę połączeń pochodzących z
danego hosta z serwerem podczas ``-X'' sekund. Domyślnie 2.
Flaga ``-T'' ogranicza całkowitą liczbę nadchodzących połączeń
innda w okresie ``-X'' sekund. Maksymalną wartością jest 128.
Domyślną 60.
Flaga ``-X'' ustawia liczbę sekund, używaną przez ``-H'' i
``-T''. Wartość zerowa wyłącza sprawdzanie. Domyślnie jest 0.
-i Flaga ``-i'' ogranicza liczbę nadchodzących połączeń NNTP.
Wartość zerowa wyłącza to sprawdzenie. Domyślną wartością, jeśli
w inn.conf(5) nie podano opcji ``maxconnections'' jest 50.
Wymieniona opcja jest zastępowana wartością tej opcji.
-I Opcja ta umożliwia wiązanie innda do podanego adresu interfejsu
IP. Adres IP musi być w postaci kropkowej czwórki liczb
(nnn.nnn.nnn.nnn). Zobacz też opcję ``bindaddress'' w
inn.conf(5).
-l Flaga ``-l'' ogranicza rozmiar artykułu. Po użyciu tej flagi,
wszystkie artykuły większe niż rozmiar bajtów będą odrzucane.
Domyślną wartością jest 1000000L bajtów. Sprawdzanie można
wyłączyć, używając wartości zerowej. Patrz także opcje
``maxartsize'' i ``localmaxartsize'' w inn.conf(5).
-m Flaga ``-m'' służy do uruchamiania serwera w zatrzymanym lub
stłumionym stanie (zobacz ctlinnd(8)). Argument rozpoczyna się
pojedynczą literą: g, p lub t, wskazujące odpowiednio na ``go''
(startuj), ``pause'' (zatrzymaj) lub ``throttle'' (stłum).
-n Flaga ``-n'' określa czy pauzowanie lub stłumienie serwera
powinno również wyłączyć przyszłe procesy czytnikowe. Wartość
``y'' powoduje, że czytniki zachowują się jak serwer, a wartość
``n'' umożliwia czytanie, nawet gdy serwer nie pracuje.
Domyślnie zezwala się na czytanie, a zmienić można to opcją
``readerswhenstopped'' w inn.conf(5).
-o Flaga ``-o'' służy ograniczaniu liczby plików, które są
utrzymywane otwarte dla wychodzących feedów plikowych. Domyślną
wartością jest liczba dostępnych deskryptorów minus część
zarezerwowana do użytku wewnętrznego.
-p Po użyciu flagi ``-p'' przyjmuje się, że port NNTP jest
otwierany na podanym deskryptorze. (Jeśli użyta jest ta flaga,
to innd zakłada, że pracuje z właściwymi uprawnieniami i nie
będzie wołał chown(2) na żadnych z tworzonych plików lub
katalogów.)
-P Jeśli użyta jest flaga ``-P'', to podany port jest używany do
nasłuchiwania połączeń. innd musi mieć wystarczające
uprawnienia startowe by otworzyć podany port.
-r Jeśli użyta jest flaga ``-r'', serwer przenumeruje plik active
zupełnie tak, jak po wysłaniu komendy ``renumber''.
-s Jeśli użyta jest flaga ``-s'', to innd nic nie będzie robić,
lecz tylko sprawdzi składnię pliku newsfeeds. Jeśli będą tam
błędy, to zgłosi kod błędu; rzeczywiste błędy będą natomiast
zgłoszone w syslog(3).
-t Zmienia czas opóźnienia przed wypróżnieniem do timeout sekund.
-u Raporty są normalnie buforowane; flaga ta wyłącza to zachowanie.
Inndstart jest małym programem typu front-end, który otwiera port NNTP,
ustawia uid i gid na opiekuna news, a następnie uruchamia demona innd z
flagą ``-p'' i minimalnym bezpiecznym środowiskiem. Jest to mały
front-end dla stacji, która nie chce uruchamiać innd z uprawnieniami
roota.
KOMUNIKATY STERUJĄCE
Artykuły przychodzące, mające nagłówek Control są nazywane komunikatami
sterujcymi. Poza komunikatem anulowania, są one zaimplementowane
przez zewnętrzne programy w katalogu <pathcontrol w inn.conf> o ile
<usecontrolchan w inn.conf> jest ustawione na ``false''. (Komunikaty
anulowania (cancel) odświeżają bazę historii, więc muszą być
obsługiwane wewnętrznie; koszt synchronizowania, blokowania i
odblokowywania byłby zbyt wysoki przy odbiorze wielu takich
komunikatów.)
Gdy nadchodzi komunikat sterujący, pierwsze słowo tekstu jest
konwertowane na małe litery i jest używane jako nazwa uruchamianego
programu. Jeśli program nie istnieje, wywoływany jest domyślny program,
określony przez <pathcontrol w inn.conf>/default.
Wszystkie programy sterujące są wywoływane z czterema parametrami.
Pierwszym jest adres nadawcy komunikatu; jest to pobierane z nagłówka
Sender. Jeśli nagłówek ten jest pusty, to dane są pobierane z nagłówka
From. Następnym parametrem jest adres zwrotny replik; pobierany z
nagłówka Reply-To. Jeśli nagłówek ten jest pusty, użyty zostanie adres
nadawcy. Trzecim parametrem będzie nazwa pliku, w którym znajduje się
artykuł względem katalogu składowego news. Czwartym parametrem jest
host, który wysłał artykuł. Jest to odczytywane z linii Path.
Jeśli <usecontrolchan w inn.conf> jest ustawione na ``true'', to żaden
komunikat sterujący nie będzie przetwarzany przez program zewnętrzny,
forkowany przez innda. Zamiast tego, będzie przetwarzany przez skrypt
controlchan, który jest wywoływany jako program kanałowy innda. Musisz
do używania tego skryptu skonfigurować newsfeeds(5). Przetwarzanie z
użyciem controlchan może zredukować nadmierne obciążenie, jeśli zbyt
wiele komunikatów sterujących pojawia się naraz.
Dystrybucja komunikatu sterującego jest odmienna od dystrybucji
standardowych artykułów.
Komunikaty sterujące normalnie wpadają do grupy dyskusyjnej control.
Mogą one być zapisywane w podgrupach, lecz w oparciu o polecenie
komunikatu sterującego. Na przykład komunikat newgroup może być
zapisany w grupie control.newgroup lub w ogólnym control, jeśli
specjalizowana podgrupa nie istnieje.
Stacje mogą jawnie udostępniać grupę ``control'' w ich listach
zapisowych, lecz zwykle lepiej jest ją wyłączyć. Jeśli komunikat
sterujący jest wysyłany na grupę, której nazwa kończy się czterema
znakami ``.ctl'', to przyrostek jest obcinany, a to co pozostanie jest
używane jako nazwa grupy. Na przykład komunikat anulujący, wysłany na
``news.admin.ctl'' zostanie przesłany do wszystkich stacji zapisanych
na grupy ``control'' lub ``news.admin''. Wiadomości newgroup lub
rmgroup wymagają dodatkowego specjalnego traktowania. Jeżeli wiadomość
jest zaakceptowana i została wysłana do tworzonej lub usuwanej grupy,
to ta wiadomość zostanie przesłana do wszystkich serwerów, których
wzorce subskrypcji grup pozwoliłyby na odebranie wiadomości wysyłanych
do tej grupy.
Jeśli <mergetogroups w inn.conf> jest ustawione na ``true'', to gdy
artykuł jest wysyłany na grupę, która rozpoczyna się trzema literami
``to.'', to zostanie potraktowany specjalnie, jeśli grupa ta nie
istnieje w pliku active: artukuł jest składowany do grupy ``to'' i jest
wysyłany do pierwszej stacji, nazwanej po przedrostku. Na przykład,
wysyłanie do ``to.uunet'' zostanie złożone do ``to'' i przesłane do
stacji ``uunet''. file:
RÓŻNICE PROTOKOŁU
Innd implementuje komendy NNTP zdefiniowane w RFC 977 z następującymi
odstępstwami:
1. Za ``list'' może występować dodatkowo argument ``active'',
``active.times'', ``newsgroups'' lub ``subscription''. Jest to
popularne rozszerzenie, lecz nie w pełni obsługiwane; zobacz
nnrpd(8).
2. Zaimplementowane są komendy ``authinfo user'' oraz ``authinfo
pass''. Zobacz draft-barber-nntp-imp-07.txt dla dalszych
szczegółów.
3. Udostępniona jest nowa komenda, ``mode reader''. Komenda ta
powoduje, że serwer przekazuje połączenie do nnrpd. Komenda
``mode query'' przeznaczona jest dla przyszłych zastosowań i
obecnie jest traktowana tak samo.
4. Udostępnione są komendy wspierające transfer strumieniowy:
``check messageid'' i ``takethis messageid''.
5. Udostępniona jest komenda transferu wsadowego ``xbatch liczba-
bajtw''. Komenda ta odczyta liczb-bajtw bajtów i zapisze je
dla dalszego przetwarzania przez rnews(1) (który należy
uruchomić oddzielnie). Obejrzyj programy innxbatch i
sendxbatches.sh.
6. Pozostałymi zaimplementowanymi komendami są ``head'' , ``help''
, ``ihave'' , ``quit'' oraz ``stat''.
MODYFIKACJE NAGŁÓWKÓW
Innd modyfikuje tak mało nagłówków, jak tylko się da, lecz mógłby być
lepszy.
Oto lista nagłówków, które jeśli istnieją, są usuwane:
Date-Received
Posted
Posting-Version
Received
Relay-Version
Puste nagłówki oraz nagłówki składające się z białych spacji również są
opuszczane.
Do nagłówka Path doklejana jest nazwa lokalnej stacji (określanej przez
wartość ``pathhost'' w inn.conf(5)) i wyrzyknik (jeśli nazwa pierwszej
stacji nagłówka różni się od lokalnej).
Nagłówek Xref jest usuwany i tworzony jest nowy.
W przypadku nieobecności, nagłówek Lines jest dodawany.
Innd nie przepisuje nieprawidłowych nagłówków. Na przykład nie będzie
zmieniać nieprawidłowego nagłówka Lines, ale odrzuci artykuł.
RAPORTOWANIE
Innd raportuje wszystkie nadchodzące artykuły do pliku raportowego.
Jest to plik tekstowy o zmiennej ilości rozdzielanych spacjami pól o
jednym z następujących formatów:
mon dd hh:mm:ss.mmm + feed <Message-ID> stacja...
mon dd hh:mm:ss.mmm j feed <Message-ID> stacja...
mon dd hh:mm:ss.mmm c feed <Message-ID> stacja...
mon dd hh:mm:ss.mmm - feed <Message-ID> powód...
mon dd hh:mm:ss.mmm ? feed <Message-ID> powód...
Po polu Message-ID może być również pole nazwy hosta i rozmiaru,
zależnie od opcji ``nntplinklog'' i ``logsize'' z inn.conf(5).
Pierwsze trzy pola są polami daty i czasu w rozdzielczości
milisekundowej. Piąte pole jest stacją, która wysłała artykuł
(odczytywane z nagłówka Path). Szóste pole jest identyfikatorem
artykułu; jeśli informacja jest niedostępna, pojawi się w jej miejscu
pytajnik.
Czwarte pole określa czy artykuł został przyjęty czy nie. Jeśli jest
tam znak plus, to został przyjęty. Jeśli ``j'', to został przyjęty,
lecz wszystkie grupy mają w swoich rekordach active ``j'', więc artykuł
został złożony do grupy ``junk''. Jeśli w polu pojawiła się litera
``c'', to przed pojawieniem się oryginalnego artykułu odebrany został
komunikat anulujący. We wszystkich tych przypadkach artykuł został
przyjęty i pole ``stacja...'' zawiera rozdzieloną spacjami listę
stacji, do których artykuł jest przesyłany.
Jeśli czwarte pole zawiera znak minusa, o artykuł został odrzucony.
Powodami odrzucenia mogą być:
"%s" header too long (za długi nagłówek)
"%s" wants to cancel <%s> by "%s" ("%s" chce anulować <%c> poprzez "%s")
Article exceeds local limit of %s bytes (Artykuł przekracza lokalny
limit %s bajtów)
Article posted in the future -- "%s" (Artykuł wysłany w przyszłości -- "%s")
Bad "%s" header (Zły nagłówek "%s")
Can't write history (Nie mogę zapisać historii)
Duplicate (Duplikat)
Duplicate "%s" header (Zduplikowany nagłówek "%s")
EOF in headers (EOF w nagłówkach)
Linecount %s != %s +- %s (Liczba linii %s != %s +- %s)
Missing %s header (Brak nagłówka %s)
No body (Brak ciała)
No colon-space in "%s" header (Brak dwukropka-spacji w nagłówku "%s")
No space (Brak spacji (albo miejsca???))
Space before colon in "%s" header (Spacja przed dwukropkiem w nagłówku "%s")
Too old -- "%s" (Za stare -- "%s")
Unapproved for "%s" (Niezatwierdzone dla "%s")
Unwanted newsgroup "%s" (Niechciana grupa dyskusyjna "%s")
Unwanted distribution "%s" (Niechciana dystrybucja "%s")
Whitespace in "Newsgroups" header -- "%s" (Biała spacja w nagłówku
"Newsgroups" -- "%s")
Gdzie ``%s'' jest podmieniane przez konretniejsze informacje.
Jeżeli w czwartym polu wystąpi znak ``?'', oznzcza to, że atykuł
zawiera dziwne łańcuchy znaków, tj. CR bez LF lub LF bez CR. Te znaki
są używane razem ``CRLF'', co oznacza koniec linii. Obecnie taka
informacja w logu oznacza dziwność tego artykułu, ale innd nigdy nie
odrzuca artykułu z tego powodu.
Zauważ, że jeśli artykuł jest przyjęty i <wanttrash w inn.conf> jest
ustawione na ``yes'' i żadna z grup nie jest odpowiednia, to zostanie
zraportowany w dwóch liniach: w linii ``j'' i ``-''.
Innd zgłasza też obszerne raporty poprzez sysloga. Pierwsze słowo
komunikatu raportowego będzie: nazwą stacji, jeśli wpis jest dla niej
specyficzny (np. komunikat ``connected''); słowem ``SERVER'', jeśli
komunikat jest związany z serwerem, np. gdy pojawi się błąd odczytu.
Jeśli drugim słowem są cztery litery ``cant'', to zgłaszany jest błąd.
W tym przypadku następne dwa słowa ogólnie nazywają wywołanie systemowe
lub funkcję biblioteczną, która się nie powiodła oraz obiekt, wokół
którego wykonywane były działania. Reszta linii może zawierać inne
informacje.
W innych przypadkach, drugie słowa określa rodzaj zmiany, a reszta
linii uściśla tę informację. Słowo ``internal'' ogólnie oznacza
wewnętrzny błąd logiczny.
SYGNAŁY
Innd przechwytuje sygnały SIGTERM i SIGDANGER i wyłącza się po nich.
Jeśli użyta jest flaga ``-d'', przechwytywany będzie również SIGINT i
będzie działał analogicznie.
Innd przechwytuje sygnał SIGUSR1 i odtwarza kanał sterujący,
wykorzystywany normalnie przez ctlinnd(8).
HISTORIA
Napisane przez Richa $alza <rsalz@uunet.uu.net> dla InterNetNews. Jest
to rewizja 1.24.2.4, z dnia 2000/08/20.
ZOBACZ TAKŻE
active(5), ctlinnd(8), dbz(3), history(5), incoming.conf(5),
inn.conf(5), newsfeeds(5), nnrpd(8), rnews(1), syslog(8).
INND(8)