Problem mit Socketverbindung und PPP



  • Hallo zusammen
    In meinem Linuxsystem ist ein GSM-Modem angeschlossen.
    Über pppd stelle ich eine GPRS-Verbindung ins Internet her. Der pppd ist dabei mit dem parameter "demand" konfiguriert, daß er "on demand" die ppp verbindung aufbaut.
    In meinem Programm mache ich eine TCP client-socket verbindung zu einem server. Da erzeuge ich zuerst mit
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    einen socket und stelle dann mit
    if (connect(sockfd, &dest_addr, sizeof(dest_addr)) == -1) {
    die Verbindung her.
    Nun das Problem:
    Wenn ich die Verbindung zum ersten Mal aufbaue, wo noch kein PPP läuft, dann wird zwar die Internet-Verbindung über ppp aufgebaut jedoch das Connect() liefert -1 zurück. Rufe ich dann Connect() erneut auf, dann klappt die Socketverbindung.
    Irgendwie dürfte das Problem mit dem PPP on-demand zu tun haben.
    Noch etwas:Connect() liefert mir immer errno=22 (Invalid Parameter), auch dann, wenn die Verbindung korrekt aufgebaut wird.
    Den pppd starte ich mit
    exec pppd /dev/ttyS1 115200 noauth usepeerdns crtscts demand defaultroute name "gprs@a1plus.at" connect /config/etc/ppp/ppp-on-dialer"
    Hat bitte jemand eine Idee, warum zwar mit dem Start der Socketverbindung auch die Internetverbindung erfolgreich gestartet wird jedoch die Socketverbindung erst immer beim 2mal aufgebaut wird???
    Sende gerne sourcen und ppp scripts bei Bedarf
    mfg
    Sektionschef


Log in to reply