The Universal PPP API

In the past few years there's been an explosion of mutually incompatible PPP drivers for the Mac.

Writing code to support them all cleanly was a programmer's nightmare -- not to mention the testing. Meanwhile, users had to settle on a PPP driver and and pick utilities to match it.

Now there is a solution.

Sailmaker has created a Universal PPP API: a general wrapper that dynamically detects which PPP driver is in use and maps to its sub-API.

Icon

Download version 1.4 (976K, shareware).
Or use this mirror.

Version 1.4 adds compatibility with MacOS 9.1.

Programmers can simply code to the Universal API, whatever flavour of PPP the user has. For users, it "just works", even if they switch between PPP flavours without restarting. Caching techniques are used to minimise disk access, and in the case of OT/PPP, asynchronous C interfaces are used, rather than AppleEvents, to optimise performance.

The underlying code is modular, and other PPP drivers (such as SLIP) which have a well-definined API can easily be added. Mail us if you would like to add support for your driver.

The Universal PPP API currently supports Metrowerks C, C++ and Pascal.

Example projects are included to get you started.


Our PPP software currently supports:

  • Open Transport 1.1.1 or better, or MacTCP 2.0 or better.
  • All versions of MacPPP, FreePPP, OT/PPP and Remote Access PPP available at the time of writing. You can even switch between them without restarting!

For best performance we recommend:

  • Open Transport 1.3 or better, or MacTCP 2.0.6.
  • FreePPP 2.6 or better, or OT/PPP 1.0.1 or better, or Remote Access PPP 3.0 or better.

We can't ourselves support implementations of PPP and SLIP that don't have a public API, but if any vendors that we don't support can provide us with a clearly defined API, then we are ready and eager to integrate it into the Universal PPP API (and thus add support for their driver to all software that uses it).


Requirements

  • CodeWarrior Pro 4 or later.

  • That's all. :-)

Pricing

  • The Universal PPP API costs one registered copy of every program you create with it, plus US$0 (nil) if the project is freeware, US$20 if the project is shareware, or US$50 if the project is commercial.
  • The source code is available for US$150, for which you may modify and use it but not redistribute it.
  • The source code has some additional options, including a “fake” mode for testing your UI without dialling up, an option to use the FreePPP 2.5 commercial SDK if you have it, and an option for PPPSDKCleanup() to return immediately without waiting for OT/PPP to finish any work in progress.
  • You may not redistribute the Universal PPP Interfaces without Sailmaker's explicit written consent.
  • You must include the notice:
    Universal PPP Interfaces © 1997-9 Sailmaker Software Ltd. All rights reserved.
    in your program's about box and documentation.

API: Application Programming Interface. A clearly defined interface that lets a programmer control the software for which the interface was written.


© 2004 Sailmaker Software Limited. All rights reserved.
Last updated: Wednesday, March 10, 2004.