Created by ic@stairways.com

Internet Config FAQ



1. About IC.


1.1. What is Internet Config?

The Internet Configuration System was designed to make your life easier by reducing the number of times which you need to enter your Internet preferences into the various preferences dialogs of all your Internet applications.

For example, currently you need to enter your email address into many common Macintosh Internet applications, for example Eudora, NewsWatcher and Anarchie. The goal of the system was to get each of these applications to get this information from one common place and to give you a tool to edit these common preferences.

It is important to realise that applications will have to be modified to take advantage of the Internet Configuration System. It will take some time for all applications to be revised and until then you will have to enter your preferences in those applications in the traditional manner. You can find a list of some of the applications that currently support Internet Config in FAQ 1.4.

Quinn 27 Jun 1995


1.2. What is the latest version of Internet Config?

The latest version of IC is version 2.0.2.

Quinn 22 Jul 1998


1.3. Where can I get the latest version of Internet Config?

The best place to get Internet Config is from the Stairways Shareware FTP site, or one of its mirrors, for example the mirror at AOL.

Also see FAQ 1.8 for the location of various international versions of IC.

All sorts of IC-related material is available from the official Internet Config web site and its companion FTP site.

A big thank you to all our distribution sites.

Quinn 3 Aug 1998


1.4. Which applications are "IC Aware"?

The following programs supported IC before 8 Nov 1995. Because the list of IC aware programs grows daily, this list will no longer be updated.

Quinn 19 Oct 1997


1.5. Can I include IC with my software/CD/Internet access disk?

Internet Config, and its source code, are in the public domain. This has the following consequences:

Cool huh?

Quinn 21 Jun 1995


1.6. Which developers have committed to support IC?

Note:
This FAQ entry made a lot of sense when IC was originally developed, but it's more or less irrelevant now.

The following developers have committed to supporting IC in some future release of their products:

See also FAQ 1.4 for a list of applications that currently support IC. Note that this list, like the one in FAQ 1.4, is now closed for submissions.

Quinn 19 Oct 1997


1.7. [When] will application X support Internet Config?

We have no control over any other application vendors. If you would like your favourite application to support IC, we suggest you lobby your application vendor directly. Please don't mail us.

A lot of application developers implement features in order of the number of people who request them. If more people ask for IC support, it will probably receive more attention.

Quinn 17 Sep 1995


1.8. You have spelt "Organization" incorrectly?

Internet Config was written by Australians and is localised for Australia. [If you don't believe us then check out the 'vers' 1 resource.] Thus it uses the Australian spelling for "organisation".

Chris Newman has graciously volunteered to localise IC for the US.

And while on the subject of localisation, Jean-Pierre Kuypers has localised IC to French.

Finally Michael Grinner has localised IC to German.

Thanks to all our localisers.

Quinn 17 Sep 1995


1.9. When are you doing a Windows version?

Never. Of course this does not preclude some enterprising Windows programmer from using the idea. Let's face it, they get most of their good ideas from the Mac (-:

Quinn 27 Jun 1995


1.10. What about Year 2000 compliance?

Under System 7.0 or higher, Internet Config makes no use of any date or time constructs. Under older systems, IC uses Mac OS standard dates for "pseudo-alias" resolution. Mac OS standard dates are year 2000 compliant. Therefore IC is year 2000 compliant.

I will not sign any documents to that effect. The entire source to Internet Config is in the Public Domain and available from the official FTP site. If Year 2000 compliance is that critical to you, you can review the source yourself.

Quinn 17 Mar 1998


1.11. This FAQ isn't very useful/sucks/needs updating. Who should I complain to?

You should mail the Internet Config support email address.

Quinn 3 Aug 1998


1.12. Who deserves credit for Internet Config?

The Internet Configuration System was written by Quinn "The Eskimo" and Peter N Lewis over a period of way too many late nights and weekends. Certain important chunks of code were contributed by Marcus Jager and Stuart Cheshire. Craig Richmond provided a lot of help sorting out the default MIME mappings. Much of the extension to type mapping information was gleaned from Robin D H Walker's Extension-to-Type mappings file. Further corrections and additions were provided by Sam Bushell and Maynard Handley. Eric Kidd maintains an unofficial Internet Config web site and also gave invaluable insight into the problems of override components. John Norstad graciously contributed the resource fork sanity checking code from his legendary Disinfectant anti-virus utility.

We would like to thank all of those on the Internet Config mailing list and all of the developers who have adopted the system.

 Quinn 3 Aug 1998


1.13. How do I report a bug in Internet Config?

If you find a bug in Internet Config, please forward details to the official support address. Please read the Internet Config FAQ before sending messages to this address. If you want to discuss Internet Config in general, we suggest you host that discussion on the comp.sys.mac.comm newsgroup.

 Quinn 3 Aug 1998


2. Using IC.


2.1. Can Internet Config be used in laboratory/shared situations?

Yes. Internet Config version 2.0 introduced the concept of multiple independent preference sets. You can use the Internet Config application to create sets for up to 99 people on the machine (see FAQ 2.2 for details), and quickly switch between them using the application, a Control Strip module, or Location Manager. [The latter two are not yet implemented.]

Quinn 26 Oct 1997


2.2. My wife/coworker/dad/axolotl and I share my Mac? How do I configure IC?

This is very easy using Internet Config 2.0's new support for independent preference sets. When you first launch the IC application, it creates a default set of preferences name "My Settings". You can use the Rename command on the Sets menu to rename this default set to your own name, say "Quinn". You can then use the Duplicate command, also on the Sets menu, to make a copy of the settings, and then use the Rename command to rename that to your axolotl's name, say "Roger". You can edit the current set using the normal user interface, and the Sets menu will also allow you to switch the current set.

Quinn 26 Oct 1997


2.3. Why did it take so long for IC to support multiple users?

Pick your favourite excuse:

  1. Because, prior to Location Manager, there was no clear model for multiple users on the same machine.
  2. Because no enterprising third party took up this development opportunity.
  3. Because Quinn got a real job and has trouble finding time to work on Public Domain software, such as IC.

Quinn 26 Oct 1997


2.4. I often change which hard disk I boot off. How can I keep only one set of IC prefs?

Internet Config resolves aliases to preference files. Put the real Internet Preferences file in one of your Preferences folders and an alias to it in the other.

Quinn 6 Dec 1994


2.5. Why can't I specify a preferences file when I specify my helper applications?

The short answer to this is "Because double clickable preferences documents are a kludge and this restriction is an artifact of their kludginess."

The long answer is that IC targets applications (when doing things like sending GURL events to process URLs) based on their creator code. This is a three step process. First we find it in the desktop database, then we launch it, then we send it a GURL event. The two steps are skipped if the application is already running.

If we'd allowed you to specify a preferences file then we would have had to send the application two events, first the open document event (to open the preferences), then the GURL event. This is OK when the application is not running but what if it is running? Do we send the open document event, which may or may not cause the application to switch to that user's settings [Eudora does but NewsWatcher doesn't], and then the GURL event, or do we just send the GURL event and hope. The answer to this problem was to avoid the issue altogether by only allowing you to target applications.

The workaround is to launch the application using its preference file before you use it via command clicking or to eliminate double-clickable preferences entirely using a tool such as Mr Prefman.

Quinn 17 Sep 1995


2.6. Why can't I enter the type and creator directly?

Lots of people complain about not being able to enter type and creator directly into the Add Map Entry dialog. Well you always could do this by holding the option key down in the dialog, but since this seemed to be too well hidden for all those (non?) Power Users out there, we've made the fields directly editable in IC 1.2.

Quinn 17 Sep 1995


2.7. Is there any way to provide a 'Pre-Configured' Internet Config?

Yes. We added that feature as part of IC 1.2. The procedure has changed a little with the introduction of IC 1.4, so this answer will explain both cases.

In IC 1.2 through 1.3, y can just add or modify the 'Pref' resources in the IC application. When IC starts up, it iterates through those resources creating a new IC preference for each one, with the preference's key set to the resource name and its value set to the data in the resource.

For example, to add a preconfigured news server, create a 'Pref' resource with any ID, set the resource name to "NNTPHost" (the full list of preference keys can be found in the IC programming documentation) and containing a Pascal string with the name of the NNTP server.

In IC 1.4 and later, the situation has changed a little. The 'Pref' resources still exist, they've just moved. The resources are now stored in the "Internet Config Extension" itself, as opposed to the "Internet Config" application. If you are happy to install the extension and application separately, you can just modify the extension's 'Pref' resources in the extension and leave it at that.

If you want to distribute only one file (ie the application), you have to modify the extension and then copy the modified extension back into the application. The following procedure describes how this is done:

  1. Run the Internet Config application and use the Save Extension menu command to create a fresh copy of the Extension.
  2. Use ResEdit to modify the 'Pref' resources to your heart's desire.
  3. When you're done, open up the Internet Config Extension's resource fork using a file editor. Note that ResEdit is a resource editor, and will not work. Personally, I recommend HexEdit.
  4. Select the entire contents of the resource fork and Copy it.
  5. Now open the Internet Config application with ResEdit and open the resource the 'ThNg' with ID=128.
  6. Select the entire contents of the resource and delete it.
  7. Move your insertion point in the character side of the resource editor and paste in the characters you copied from the Internet Config Extension.
  8. Save and Quit.

I realise this is a bit convoluted, but it's not hard if you're familiar with ResEdit. I can assure you that this change wasn't made arbitrarily, but to correct a very significant developer issue.

Quinn 4 Feb 1997


2.8. How do I specify a port number in the Firewalls window?

Simply type in the name of the firewall, followed by a colon, followed by the port number. For example, "pole-wall.north-pole.org:801". This is covered in IC's comprehensive balloon help.

Quinn 24 Aug 1996


2.9. Why do some programs require IC and others not?

The decision as to whether to require IC is made by individual application developers. There are a number of factors that influence this decision. This entry attempts to give you some insight into the reasons why some programs require IC and others don't. Throughout this discussion I'll use examples from programs that I'm familiar with, although the reasoning is pretty general.

The first factor is whether the program has an existing user interface for editing preferences. For example, Fetch already has a UI for file type mapping and thus it's easy to selectively enable this depending on whether IC is installed or not. On the other hand, Anarchie never had a UI for editing this preference, so it's easier to require IC than to have a bunch of preferences that can't be edited.

The second factor is criticality. Symantec Program Managers uses IC to support command-clicking. Obviously this functionality is non-critical and it's easy to disable just this feature if IC is not available. The same is not true of CyberFinder, which really needs IC (or some other user interface, qv the first point) to provide this preference information.

The third factor is size and reliability. If your program needs information provided by IC then you have the choice of either requiring IC or providing a backup preference editing mechanism. This backup needs to be included in all your programs and contributes to making the them bigger, both on disk and in memory. Also, as bugs tend to be directly proportional to lines of code, this implies that your programs have more bugs. For example, ICeTEe requires IC because its code size would be hugely increased by providing a UI for editing preferences. And, because ICeTEe is an extension, providing this UI would have been a much greater compatibility liability. Requiring IC is a step towards smaller and more reliable code.

The fourth factor is time to market. If Anarchie was delayed while Peter wrote a UI for editing the file type mappings, it would have taken longer to get on the market. Or, for another example, the authors CyberFinder would never have been able to produce a fully functional program if they'd stopped to implement a helper editing dialog.

The biggest factor on the negative side is the potential user confusion caused by shipping a product that requires some other product. The other biggie -- the potential business liability involved in shipping a program that is dependent on a program not created by your company -- has been solved by us putting IC (and its source code) in the public domain.

Quinn 22 Aug 1995


2.10. When I commands-click a URL with Cyberdog as the helper, it doesn't work right. What's happening?

Cyberdog 1.2.1 seems to have a problem fielding the AppleEvent required to download URLs. This problem only occurs if Cyberdog is not running when you command-click the URL. If Cyberdog is running when you command-click the URL, everything works just fine.

The obvious workaround is to launch Cyberdog before command-clicking the URL. The problem has been reported to Apple.

Quinn 4 Feb 1997


2.11. What are the security considerations of using Internet Config?

The Internet Config extension and application contain no networking code, so there are no network security concerns with using it.

IC does provide the ability for applications to share preferences. Any information you enter into Internet Config can be accessed by any other software you execute on your machine. This includes preferences like the email password. You should be aware that such passwords are available to any software on your computer.

IC stores passwords in a non-secure fashion. While each password is scrambled to prevent idle viewing with ResEdit, the scrambling algorithm is publicly documented in the IC Programming Kit. Anyone with a trivial programming background can access these passwords.

Note: This situation is no different from the passwords you enter into other applications. When you ask a program (such Users & Groups) to store a password, it must be stored in some file somewhere on your hard disk. The only difference is that IC provides a public API for getting at these passwords.

The important thing to keep in mind is that you should not install software that you do not trust on your machine.

Note: If you ignore this advice (and install software you do not trust on to your computer), password secrecy is the least of your problems. Specifically, the Mac OS does not prevent a program from erasing the entire contents of your hard disk.

If you want to know which applications are accessing which IC preferences, you can install ICAccess Logger.

Quinn 28 Feb 1998


3. Programming IC.


3.1. How do I find out about programming Internet Config?

The Internet Config Programmer's Kit is available from the official FTP site. This contains all the information you need to develop for Internet Config in Pascal or C using any of the common development environments (Metrowerks, Think and MPW). The kit also contains the source code to the Internet Config Extension.

The same sites also contain the Internet Config Application Source Kit, which contains the source code to the Internet Config application (in Metrowerks Pascal).

Lawrence D'Oliveiro has converted the IC interface files for use with Modula-2.

Mel Patrick has done some work with IC in FutureBasic.

Rick Giles is willing to answer questions related to IC and Prograph (and he's got it working, so what's your excuse?).

Chris Kelly has published a library for accessing Internet Config from Java (MRJ for PowerPC).

See FAQ 3.4 for details on programming IC in AppleScript and HyperCard.

Quinn 17 Sep 1995


3.2. Why does Internet Config install an extension?

Internet Config installs an extension which acts as a shared library. This extension provides an Application Program Interface (API) to the Internet preferences database. It is vitally important that applications access this database through the API and this text will explain why.

Firstly the API provides reliability and robustness. If IC was implemented merely through a shared preference file then each application developer would have to write their own code to access this data. Not only is this more work for the individual developers, it also increases the likelihood of an error that causes preference corruption.

To get around this we could have shipped IC as a statically linked library that each developer links into their application. The disadvantage of this is that if that library has bugs then it's statically linked into lots of old versions of applications that are never updated. [A classic example of this sort of problem is the original MacTCP DNR library, which looks for DNR data in the System Folder. Unfortunately with the advent of System 7 the DNR data moved into the Controls Panel folder. To get MacTCP working with System 7 Apple were forced to create a MacTCP DNR file in the System Folder anyway, just to support those old applications.]

So the IC API had to be in the form of a shared library. Unfortunately the Mac does not provide any suitable mechanism for providing shared library so we chose to implement it using a component. [The Component Manager originated with QuickTime and was rolled into the system with System 7.1. Virtually all Macs have the Component Manager or can get it easily.] So the API's statically linked glue calls the component if it's installed but otherwise accesses the IC Preferences file directly. This provides the best of both worlds: the code works on old machines and without the extension but it can be patched by simply dropping a new version into the Extensions folder.

Finally the IC API gives a huge amount of flexibility for future extension. Imagine you want your preferences to be stored on a per-application basis, or you want your preferences fetched from a central network database on a per-user basis, or you want your signature to change every Friday the 13th. Well you can patch the existing Internet Config extension (or write a complete drop-in replacement) that provides this functionality and, as long as it provides a backwardly compatible API, none of the IC Aware applications have to be changed. [IC 2.0 uses this technology to allow switchable preference sets for multiple users on the same machine.]

An example of the cool technology that API provides is the Internet Config RandomSignature extension provided in the Programmer's Kit prior to version 1.4. While this is only a technology demonstration it shows how the API can be patched to provide all sorts of cool things that the original designers did not anticipate.

The IC component patches no traps and does no strange things. It should not suffer from extension conflicts. It didn't even show up in the original System 7.5 Extension Manager list!

Quinn 19 Oct 1997


3.3. What is IC's memory overhead?

IC 2.0's memory usage is the total of the memory used by:

  1. the Gestalt function (102 bytes of globals + 24 bytes of code)
  2. the component code (48K + Component Manager overhead) -- The bulk of this is only used if some program has an open connection to IC.
  3. each connection to IC ((176 bytes + Component Manager overhead + Memory Manager overhead) per connection) -- Each IC aware program generally keeps a connection open to IC while it runs.
  4. the CFM shared libraries (11K on 68K, 15K on PPC) -- This is only used if a CFM (PPC or CFM-68K) client is using IC through the IC 2.0 libraries and VM is off (or, on 68K only, the system is earlier than Mac OS 7.6.1).
  5. the interrupt safe mapping table (18K) -- This is only used if an interrupt safe client has registered itself with IC.

Wasn't that fun?

Quinn 19 Oct 1997


3.4. How do I access IC from AppleScript or HyperCard?

There are currently two ways of accessing IC from AppleScript. The first program is Internet Config Access written by Lawrence D'Oliveiro, and the second is ICScriptor by Leonard Rosenthal.

To access IC from HyperCard there are also a number of choices. Your best bet would be to use HyperCard 2.2 and then use one of the AppleScript options.

Alternatively you could pester me a lot and I may get around to fixing and then releasing the IC XCMD that I used to prototype the Internet Config application. Somewhere along the line it broke and I've yet to fix it. If you need to access IC from HyperCard, and have a good reason why you can't use HyperCard 2.2, drop me a line and I'll see what I can do. [Personally, I don't think pestering him will get you anywhere -- Peter] [He might be right. I've not made any progress on this since 1995, despite a lot of pestering -- Quinn]

Note that IC 1.4 and above support the GURL AppleEvent itself, so if all you want to do is launch a URL with the right helper, you can now ask IC to do it.

Quinn 19 Oct 1995


3.5. I've written a cool little hack using IC. Where do I send it?

Thanks for working with IC. Peter and I aren't collecting stuff for the IC Programming Kit any more; the process is just too complicated to manage. The best thing you can do is post your code to MacGifts and then mail out a notice to the Internet Config mailing list about it.

Quinn 3 Aug 1998


3.6. When I call ICLaunchURL, I get error -903 returned?

This error means that your application is not high-level event aware. The quick fix is to set the "high-level event aware" bit in your application's SIZE resource.

IC launches URLs in one of two ways. If the application is not running, IC launches it using LaunchApplication and passes it the URL to open via the launchAppParameters field of the LaunchParamBlockRec. However if the application is already running, IC simply sends it the GURL AppleEvent.

However applications that send high-level events must themselves be high-level event aware. Most development environments create application which default to being not high-level event aware. You must change this if you want to launch URLs via ICLaunchURL.

Quinn 24 Aug 1996


3.7. When I call ICLaunchURL, I get error -37 returned?

This normally means that you have forgotten to call ICFindConfigFile. Many programmer's call ICStart and then immediately call ICLaunchURL without every specifying a config. IC checks for this and returns bdNamErr.

It's all documented of course, but who reads the documentation? Come to think of it, who reads the FAQ?

IC 1.4 now ships with a sample that explicitly shows the best way to launch a URL with IC.

Quinn 23 Feb 1997


3.8. Where do I send IC programming questions?

Please do not send IC programming questions to the IC support support address. There is a mailing list dedicated to IC programming questions. You can subscribe to the list by following the instructions on the Stairways Shareware web site. Both Peter and I monitor that list and will try to answer your questions to the benefit of one and all.

Traffic on the IC mailing list is also archived for your reference.

Quinn 3 Aug 1998


4. Crash and Burn with IC.


4.1 Clicking on the "File Transfer" icon causes a crash. What's wrong?

You've encountered the one known bug in IC 1.2 and lower. The workaround is to:

  1. Throw away your Internet Preferences file.
  2. Run the IC application.
  3. Reconfigure your settings.

IC 1.3 fixes this bug

Quinn/Jeremy 24 Aug 1996


4.2. Clicking on the Fonts icon causes IC to crash. What is wrong?

IC hardly touches fonts at all, leaving the system to build the font popup menus. Have you tried:

Quinn/Jeremy 19 Oct 1997


5. General Debugging Procedure

The questions above only answer problems we have heard about. If we don't answer your question specifically, then I suggest you check out the following procedure:

  1. Make sure you are running the latest version, which always available from the sites listed in FAQ 1.3.
  2. Rebuild the desktop -- Hold down the Command and Option keys during reboot.
  3. Delete your Internet Preferences and re-enter them -- Corrupted Internet preferences can cause some extremely bizarre crashes and hiccoughs. A couple of things munge the Internet Preferences directly rather than going through IC, which inevitably causes problems (for instance, the Apple Internet Connection Kit). Internet Config 1.4 and higher should detect corrupt preferences files, but this isn't guaranteed.
  4. Re-install IC -- There are three files to delete: Internet Config application (anywhere), Internet Config Extension ("System Folder:Extensions:"), and Internet Preferences (usually "System Folder:Preferences:"). Then reboot and grab a new copy of IC, unpack it and launch the application. It will install the extension automagically.
  5. Check your hard disk with Disk First Aid. Corrupt hard disk are a common cause of error -37.

Quinn 3 Aug 1998


666. Why is this FAQ entry so short?

Because every time I create a new entry I copy and paste this entry.

Quinn 6 Dec 1994


This document is Public Domain (really, we mean it!). No Rights Reserved

Comments: ic@stairways.com