Expedite progress – think in the future, become estranged from the now.

  • >
  • software
  • EPPPD - Excellent Point-to-Point Protocol Daemon

    • Ye olde AppleScript frontend to pppd




    EPPPD is a fairly simple GPLv3’d AppleScript frontend to the pppd program. Common nix methods are used to acquire the most-likely subnet, tty device, and DNS (aka, ls /dev/tty, parsing those values, etc.). At the moment, it is fairly limited in its capabilities, but should be more than enough for the purpose of running a pppd server to a mobile/palm client, as was its original purpose. Additionally, the code is pretty nasty, but for the sake of FS/OSS I have made it available.


    • Limited auto-detection of available tty devices!
    • Baud rate drop-down menu!
    • Target IP!
    • DNS!
    • Process checking, so you don’t start two pppds!
    • Enable IP Forwarding checkbox!
    • All settings kept within the bundle’s Info.plist - gogogo portability!


    • Options
      • Device: This is the device that will be used by pppd to establish the connection. Looks for /dev/tty.* devices and sets the first item as the default device. If /dev/tty.Bluetooth-PDA-Sync is found, it will be preferred.
      • Baud rate: List of possible baud rates.
      • Target IP: The IP address that will be assigned to the PPP client. Uses ifconfig to acquire the first subnet that is not, then assigns it as the default address.
      • DNS: Domain Name System address to send to the PPP client. Reads the first DNS nameserver found in /etc/resolv.conf.
      • IP Forwarding: Enable IP forwarding from the PPP client. Without this enabled, the connection will be limited between the server and the client - no LAN or internet connectivity.
      • kill on exit: Attempt to kill the pppd process when EPPPD quits.
    • Buttons
      • Start/Stop: Starts or Stops the pppd process.
      • View Log: Opens /var/log/ppp.log in Console.app.
      • Clear Log: Clears the log file /var/log/ppp.log.
      • Check: Checks to see if the daemon is already running - if so changes the Start/Stop button and sets the PID of the process.
      • Save: Saves the settings for Device, Baud rate, Target IP, DNS, and kill on exit to EPPPD’s internal Info.plist file.
      • Clear: Clears the settings for Device, Baud rate, Target IP, DNS, and kill on exit.

    Additional Notes

    For clarity’s sake, it ultimately executes the following:

    /usr/sbin/pppd DEVICE BAUDRATE :TARGETIP noauth local ms-dns DNS passive proxyarp silent logfile /var/log/ppp.log