nderungen V1.1/9.11.97

ICONNECT:

-Fehler in USIS/GET_PROXY behoben, NULL-Zeiger konnte zu Absturz
 beim ermitteln der Proxy-IPs fhren.
-Timeout fr Modem-Antwort auf Initialisierungs-Sequenz erhht.

CAB.OVL:

-"Host:"-Feld in Header eingebaut. Damit funktionieren Seiten, 
 deren Pfad im Hostnamen kodiert ist (z.B. die ATOS-Homepage).
-Fehler in USIS/GET_PROXY behoben, ein Zeiger war nicht
 initialisiert, konnte zu Absturz bei Proxy-Zugriff fhren.
-Auf Wunsch eines einzelnen Herrn werden 404-Replies nicht gespeichert.
 D.h. wenn der Host "Fehler 404/File not found" liefert, wird nicht
 die mitgelieferte Fehler-HTML-seite des Hosts angezeigt, sondern
 die CAB-interne Fehlermeldung. Dadurch landen solche Seiten
 nicht mehr im Cache.


GET_IP/RSDAEMON:

-Offensichtlich ist hier bei der Umstellung einer Protokoll-Nummer
 was durcheinander gekommen. Behoben.



nderungen an den PPP-Connect Programmen von Version 1.0
zu Version 1.1:


ICONF:

-Fehler behoben:
 Der ETC-Path wurde falsch gespeichert, wenn er als Pfad und
 nicht ber eine Environment-Variable angegeben wurde

-Neu:
 Die Service-Server und Proxies knnen jetzt auch per Host-
 Namen angegeben werden. Die zugehrige IP wird dann beim
 Verbindungsaufbau von IConnect ermittelt.
 Die zugehrigen Editfelder sind scrollbar und fassen so
 bis zu 64 Zeichen.
 
-Neu:
 Die Passworteingabe erfolgt jetzt mit einem '*'-Editfeld
 (anstatt wie bisher einem weien Feld).

-Neu:
 IConf merkt jetzt, ob berhaupt etwas gendert wurde und
 verzichtet daher beim Beenden ggf. auf die Warnmeldungen.
 Deshalb gibt es jetzt auch keine OK/Abbruch-Buttons mehr,
 die wrden nmlich logischerweise beide die selbe Meldung
 ("nderungen sichern?") bringen, oder garnix, wenn nix 
 gendert wurde.
 Stattdessen gibt es jetzt die Buttons "Sichern" (sichert ohne
 Rckfrage) und "Beenden". Letzterer beendet nur, wenn seit
 dem letzten Sichern keine nderungen vorgenommen wurden,
 ansonsten erfolgt eine Rckfrage.

-Neu:
 Im Dialog "Modem" kann jetzt ein Initialisierungsstring ein-
 gegeben werden.

 Im Dialog "Zugang" knnen jetzt die Anwahlparameter Rufnummer,
 Wahlart und Wahlwiederholung eingestellt werden.
 Damit wird das Login-Script fr "PPP-Direkt-Zugnge" jetzt
 nicht mehr bentigt und auerdem merkt IConnect schneller, ob
 z.B. belegt ist (bisher mute dazu der Login-Timeout abgewartet
 werden).

 Zudem erfolgt die 7-Bit-Umstellung erst nach erfolgter Anwahl,
 damit sollte jetzt also auch der Compuserve Zugang keine
 Probleme mehr machen.
 
 Sollte diese neue Option nicht funktionieren (weil das Modem
 andere Antworten liefert) kann wie bisher das Login-Script
 fr die gesamte Anwahl verwendet werden, indem man die neuen
 Felder einfach leer lt.


ICONNECT:

-Fehler behoben:
 Absturz, wenn ein Proxy-Eintrag erfragt wurde, fr den keine
 Port-Nummer angegeben war.

-Neu:
 IConnect merkt sich die Position des Online-Fensters in der
 Datei ICONNECT.CFG.

-Neu:
 Die Passworteingabe erfolgt jetzt mit einem '*'-Editfeld
 (anstatt wie bisher einem weien Feld).
 
-Neu:
 Die Editfelder fr User-/Passworteingabe sind srollbar. Der
 Dialog ist dadurch deutlich geflliger.
 
-Neu:
 Wurden Proxies oder Server per Name statt IP in IConf ein-
 getragen, so wird die jeweilige IP jetzt beim Verbindungs-
 aufbau ermittelt (wird als Statustext unter dem Prozebalken
 angezeigt).
 
 Dazu ist das Programm RSDAEMON.PRG notwendig, da sich im
 gleichen Ordner wie ICONNECT.PRG befinden mu. Es wird beim Start
 von ICONNECT.PRG automatisch nachgestartet und nach dem Abbau
 der Verbindung auch automatisch wieder beendet.

-Neu:
 Beim Beenden der Verbindung informiert jetzt ebenfalls ein
 Status-Fenster ber die Vorgnge (Abbau der Netzwerkver-
 bindungen und Auflegen des Modems).
 Bisher erschien einfach der Desktop und evtl. ein paar 
 Sekunden spter der Bienen-Mauszeiger. Manche Leute haben nicht
 so lange gewartet und in der Annahme, das Auflegen htte nicht
 geklappt, das Modem aus/eingeschaltet.

-Neu:
 IConnect legt in seinem Verzeichnis eine Datei ONLINE.LOG an,
 in der die Verbindungszeiten festgehalten werden. Die Eintrge
 sehen immer wie folgt aus:
 Zuerst kommt das Stichwort "ONLINE" oder "OFFLINE", danach ein
 Leerzeichen, der Name des Setups, ein Tabstop-Zeichen und dann
 der Zeitpunkt im ctime-Format. Zeilenabschlu ist ein LF. 
 Das ctime-Format sieht so aus, wobei alle Felder konstante Lnge
 haben:
 
 Mon Nov 21 11:31:54 1983
 
 Mit dieser Datei kann man also mal so grob die entstandenen Kosten
 abschtzen. Auerdem sollte man natrlich von Zeit zu Zeit danach
 schauen, da sie nicht zu gro wird.

-Neu:
 Die neuen Parameter fr Modem-Initialisierung und Anwahl werden
 untersttzt. Dabei wird wie folgt vorgegangen:
 Der Modem-Init-String wird mit fhrendem (fr Restmll im Port)
 und abschlieendem Return verschickt. Es wird auf "OK" gewartet.
 Bei Tonwahl wird "atdt ", bei Pulswahl "atdp " plus Rufnummer
 und Return verschickt. 
 Kommt "CONNECT" oder "CARRIER" zurck (und nicht "NO CARRIER"),
 gilt die Anwahl als erfolgreich und das Login-Script wird 
 ausgefhrt (das dann z.B. nur noch aus "Fertig, PPP" bestehen kann).
 Bei BUSY wird die eingestellte Anwahlpause eingelegt.
 Ansonsten wird die Antwort des Modems als Fehlermeldung ausgegeben,
 wobei CR oder LF als Ende der Antwort interpretiert wird. Die
 Anwahl wird in diesem Fall abgebrochen.

 Lt man den Modem-Init-String und/oder die Rufnummer in IConf leer,
 wird der jeweilige Anwahl-Teil ausgelassen, alte Setups verhalten
 sich also genau wie bisher.

-Neu:
 Das Modem wird nicht mehr unntig aufgelegt, wenn man whrend einer
 Script-Retry-Pause den Abbruch-Button bettigt.

-Neu:
 Im Online-Fenster wird jetzt die lokale IP angezeigt.

-(Schnheits-)Fehler behoben:
 Der Fenstertitel im Online-Fenster pat jetzt, weil nur noch
 "PPP-Connect" drinsteht.

-Neu:
 Der Rahmen des Proze-Balkens im Verbindungsaufbau-Fenster ist
 etwas hbscher.
 Auerdem sitzen die Icons einen Pixel hher, sieht auch netter
 aus.

-Neu:
 Bei Nicht-8-Bit-bertragungen werden die "Sende-Text"-Strings
 des Login-Scripts zeichenweise verschickt.


CAB.OVL:

-Fehler behoben:
 In speziellen Fllen konnte es vorkommen, da der HTTP-Header
 nicht abgeschnitten wurde. Die vielfltigen Auswirkungen
 (Seiten werden falsch angezeigt, Bilder werden garnicht angezeigt,
 Redirections funktionieren nicht...) sind damit beseitigt.
 
-Fehler behoben:
 Es konnte vorkommen, da die erste Zeile des Headers verloren
 ging, dadurch klappte die Redirection in solchen Fllen nicht
 (weil der Returncode des Servers nicht ausgewertet werden konnte).
 
-Neu:
 Das OVL akzeptiert jetzt so ziemlich jeden spezifikations-widrigen
 Bullshit, den irgendwelche Server meinen als Zeilentrenner schicken
 zu mssen.
 Die goldene Zitrone verdient sich germany.net (151.189.0.20), der meint,
 die Redirection-Info mit CR/LF nach der ersten Header-Zeile, LF nach
 allen weiteren, und CR/LF/LF als Header-Ende abschicken zu drfen.

-Neu:
 Das OVL sendet jetzt das "User-Agent"-Header-field. Damit
 funktionieren die Testseiten auf
 http://www.research.digital.com/nsl/formtest/home.html
 und die "Internet Movie Database" auf
 http://uk.imdb.com/
 
-Das Formular auf der Seite http://search.t-online.de/
 funktioniert.

-Die Fehlermeldung "Die angegebene Methode wird nicht
 untersttzt" bei http://www.sperrmuell.de erscheint
 nicht mehr
 
-Neu:
 Das OVL kann jetzt auch eMails verschicken. Dazu mu in ICONF
 unter "SERVICES" unbedingt die eigene eMail-Adresse und der
 SMTP-Server eingetragen sein!
 Die Status-Meldungen whrend des Versendens sind nicht besonders
 aussagekrftig. Es wird nur zwischen "Sending request" und
 "Waiting for reply" gewechselt. Besonders wenn whrend des
 Verschickens des eigentlichen Mail-Textes nur "Sending request"
 erscheint, ist das etwas irrefhrend und knnte evtl. den einen
 oder anderen Anwender zur umgehenden Bettigung des STOP-Buttons
 animieren.
 
-Neu:
 Das OVL kann jetzt auch Artikel aus Newsgroups anzeigen, wie sie
 z.B. manchmal auf Suchmaschinen referenziert werden. Dazu mu in 
 ICONF unter "SERVICES" der NEWS-Server eingetragen sein!

-Fehler behoben:
 Relative Links in Redirections werden jetzt richtig aufgelst.
 Damit funktioniert z.B. http://www.web.de
 
-Fehler behoben:
 Doppelpunkte in der Pfadangabe einer URL wurden irrtmlich auch
 dann als Trennzeichen fr eine alternative Portnummer ausgewertet,
 wenn sie hinter dem "/" fr den Pfad standen. Behoben.
 Damit funktionieren jetzt die Links auf http://www.apple.com

-Neu:
 Whrend "Resolving host" kann man jetzt auch den STOP-Button
 benutzen.
 Dazu mu RSDAEMON.PRG parallel laufen, was von IConnect automatisch
 beim Start erledigt wird.
 Ist RSDAEMON nicht da, wird die bisherige Methode benutzt (CAB steht
 dann wie bisher whrend "Resolving host" still).


GET_IP:

-Neu:
 Das Editfeld ist scrollbar und fat max. 64 Zeichen.
 
-Neu:
 Die gefundene IP wird so ins Clipboard kopiert, wie sie auf dem 
 Bildschirm steht (bisher wurden die Punkte weggelassen und die
 Zahlen mit fhrenden Nullen auf drei Stellen aufgefllt, damit
 sie in die speziellen IP-Editfelder von IConf eingefgt werden
 konnten. Da diese aber jetzt normale Textfelder sind, liefert
 GET_IP eben auch im normalen Textformat).

-Neu:
 Der RSDAEMON wird untersttzt, d.h. man kann das Fenster auch
 whrend laufender Suche verschieben, eine neue Suche eingeben,
 das Programm beenden etc.

-Neu:
 In der IP-Anzeige wird jetzt auch der Status "Suchen..." und
 "Unbekannt" gemeldet.


SOCKETS:

-Fehler behoben:
 In der PPP-Initialisierung wurde ein CONF-NAK fr das Authentication-
 Protokoll mit einem falschen Parameter verschickt.

-Neu:
 Die ACCM der Gegenstelle wird nun erst nach abgeschlossener PPP-
 Konfiguration verwendet. Dadurch ist nun auch der Verbindungsaufbau
 zu Hosts mglich, die nicht damit rechnen, da ihre angebotene
 Tabelle bereits whrend der Konfiguration benutzt wird.

-Neu:
 Workaround fr Designschwche im PPP-Protokoll, die dazu fhren
 konnte, da durch ein verlorenes oder versptetes Antwort-Paket
 die Initialisierung in eine Endlosschleife geriet.

-Neu:
 getsockopt()  mit SO_SNDBUF liefert fr SOCK_STREAM-sockets jetzt
 die Anzahl der auf TCP-Ebene noch vorhandenen Bytes, fr die noch
 keine Empfangsbesttigung eingetroffen ist.

-Neu:
 Workaround fr bestimmten Host, der Code Reject 23 nicht versteht.


RSDAEMON.PRG:

-Neues Programm, da gehthostbyname() per AES-Message ausfhrt und
 das Ergebnis auch per Message zurckgibt. Allerdings kein ganzes
 hostent-struct sondern nur die IP als ulong.
 Da Unix keinen nicht-blockierenden Modus fr gethostbyname() vor-
 sieht, mute man sich bisher whrend des resolvens mit aufwendigeren
 Methoden (Thread oder eigener Resolver) behelfen, falls unbedingt
 ntig.

Hier der neue Abschnitt aus der Prog-Doku:

----------

Der RSDAEMON ist eine parallel laufende Applikation, die die Aufgabe des
Resolvers per AES-Message bernimmt. Sinn ist quasi ein nichtblockierendes
gethostbyname(), allerdings liefert der RSDAEMON nur eine IP, kein ganzes
hostent-struct.

Der RSDAEMON wird normalerweise automatisch von IConnect gestartet und 
beendet.

Nutzung:

Per appl_find("RSDAEMON") ist die App-ID zu ermitteln. Im Fehlerfall
sollte man auf das blockierende gethostbyname() zurckgreifen und nur,
wenn garnicht anders mglich, stattdessen mit Fehlermeldung abbrechen.

Nun kann dem RSDAEMON eine AES-Message geschickt werden:

#include <rsdaemon.h>

pbuf[0]=RSDAEMON_MSG
pbuf[1]=<eigene App-ID>
pbuf[2]=0
pbuf[3]=RSD_REQUEST_IP
pbuf[4]=<eigene frei whlbare ID, um die Antwort zuordnen zu knnen>
pbuf[5/6]=<Zeiger auf den String, der den Namen des Hosts enthlt>
           (Ggf. Speicherschutz beachten!)

Der RSDAEMON liefert eine Antwort folgender Form:

pbuf[0]=RSDAEMON_MSG
pbuf[1]=<RSDAEMON-ID>
pbuf[2]=0

pbuf[3]=RSD_IP_UNKNOWN = IP konnte nicht ermittelt werden. Das kann
                         verschiedene Ursachen haben (User hat keinen
                         DNS eingetragen, DNS kenn den Host nicht etc.)
pbuf[4]=<hier wird die ID aus dem Request zurckgeliefert>

oder:

pbuf[3]=RSD_IP_FOUND
pbuf[4]=<hier wird die ID aus dem Request zurckgeliefert>
pbuf[5/6]=<IP des Hosts als ulong>

----------

Und hier noch die RSDAEMON.H:

#ifndef __RSDAEMON__
#define __RSDAEMON__

#define RSDAEMON_MSG	0x995

#define RSD_REQUEST_IP	1
#define RSD_IP_FOUND		2
#define RSD_IP_UNKNOWN	3

#endif
----------
