Expedite progress – think in the future, become estranged from the now.
EPPPD - Excellent Point-to-Point Protocol Daemon
- Ye olde AppleScript frontend to
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!
- Process checking, so you don’t start two pppds!
- Enable IP Forwarding checkbox!
- All settings kept within the bundle’s Info.plist - gogogo portability!
- 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 127.0.0.1, 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.
- 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.
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