I love that Mac OS X is built on a UNIX core as I can use a command line to do stuff and write shell scripts. However, in some cases, Apple has wrapped a pretty interface on top of some UNIX stuff and made a mess as such as with the case with Mac OS X server; I wrote about this awhile back. This is also the case with PPP. System Preferences (and under Tiger, Internet Connect) hides the underlying PPP implementation. For most people, this works OK, but the biggest problem is that if you enter your username and password (for providers that require it), unplug the modem and plug it into a different USB port, that information is no longer associated with that modem. This is because PPP tracks the modem based on UNIX /dev port, i.e. /dev/usbmodem1d11. Each USB port is uniquely identified and if you plug in a hub, it changes the /dev port as well. So this can be quite problematic and each time you plug in the device into a different port, you’ll get a different entry in Network Preferences. What a mess. To make matters worse, the PPP implementation uses the keychain sometimes and then sometimes picks the wrong entry in the keychain if there are 2 entries with the same account name.
So why would I care about PPP these days when most people connect over a broadband connection and have their Macs connected via AirPort or Ethernet? One of my clients manufactures cellular modems, so I have to write code to deal with switching ports. Dealing with the PPP password is a huge headache. This would be so much simpler if the wireless carriers used Mobile IP which doesn’t require a username and password (Sprint uses it in the US). Why carriers require a username and password, I have no idea. When the modem connects to the network, they know who is connecting based on the ESN (Electronic Serial Number) of the modem, so why not authenticate off that? It’s not like normal people can change the ESN (it’s illegal and the tools are not readily available).
I’m sure that Apple will continue to ignore PPP as it works most of the time for most people. They should be tracking the USB modem based on serial number or vendor ID and product ID; something that won’t change.
(Yes, this is beat on Apple week.)