macrabbit

Intro

Citrix is a tool allowing employees to run Windows programs remotely on a server located at the employer's side. Citrix provides clients for a lot of host platforms (Windows, Unix, Mac, iPad) and the employer provides the integration of these Cizrix client on their Web portal. Unfortunatley, this Citrix integration often uses Microsoft proprietary tools (ActiveX) and is tested and working only on Windows hosts sometimes even only in IE instead of Firefox, thus spoling the whole idea and benefit of using Citrix :-( After login on the employers portal, you should be able to start Citrix from within a Web browser. First of all, you have to know most employers run the Citrix Presentation Server - nowadays called "XenApp". To connect to XenApp, you have to install the correct client on your local machine. For security reasons, the portal integration sets up a tunnel thru the Internet to the employer's XenApp. Getting everything to work under Mac OS X was a little tricky...

Mac OS X

1) Download the client package for Mac OS X.

2) For the tunnel setup, sometimes the integration uses the local addresses 127.0.0.4 and 127.0.0.5. Compared to Windows, under Mac OS X you have to declare those IP addresses before being able to use them. Start a Terminal and enter the following commands
> sudo ifconfig lo0 127.0.0.4 alias
> sudo ifconfig lo0 127.0.0.5 alias
You may now close the Terminal.

3) Login to the employer's portal. Click on "citrix.fifa.intra", wait for the start of the port forwarder. As the port forwarder does not forward you automatically to the Citrix login screen, you have to go there manually!

4) Instead of always repeating step 2) after a Mac boot or restart, we can automate that by making the directory "/Library/StartupItems/Citrix" and putting two files in there:

------- /Library/StartupItems/Citrix/Loopback -------
#!/bin/bash

##
# If the port forwarder uses IP addresses 127.0.0.4 and 127.0.0.5 then
# this script adds the corresponding aliases to the loopback interface
##

. /etc/rc.common

StartService () {
  ConsoleMessage "Adding local IP addresses..."
  ifconfig lo0 127.0.0.4/32 alias
  ifconfig lo0 127.0.0.5/32 alias
}

StopService () {
  ConsoleMessage "Removing local IP addresses..."
  ifconfig lo0 127.0.0.4 -alias
  ifconfig lo0 127.0.0.5 -alias
}

RestartService () {
  StartService
}

RunService "$1"

------- /Library/StartupItems/Citrix/StartupParameters.plist -------
{
Description = "local IP addresses for the Citrix port forwarder";
Provides = ("Loopback addresses");
Requires = ();
Uses = ();
OrderPreference = "None";
}