Hi!
Since Mac OS X makes a lot of trouble when it comes to connecting to non Mac L2TP/IPSec Servers and I still wanted to maintain the default VPN interface (instead of configuring the vpn with config files) I fixed Apple's L2TP/IPSec implementation for Snow Leopard. This version connects perfectly to a Windows Server 2008.
What is fixed?
-Use the standard port 1701 on the client side for outgoing connections.
-Fix retrieving psks from the Keychain.
Instructions:
Download the zip file.
L2TP goes to /System/Library/Extensions/L2TP.ppp/Contents/MacOS/ (fix the access rights if necessary)
racoon goes to /usr/sbin/
What did I change?
In http://www.opensource.apple.com/source/ppp/ppp-412.3/Drivers/L2TP/L2TP-plugin/main.c
replaced
	
	
	
		
with
	
	
	
		
replaced
	
	
	
		
with
	
	
	
		
Although this could be fixed better by Apple in their non OS source.
In http://www.opensource.apple.com/source/ipsec/ipsec-93.8/ipsec-tools/racoon/localconf.c
replaced
	
	
	
		
with
	
	
	
		
removed
	
	
	
		
Somebody must have thought the ipsec key is a 0 terminated string which leads to the error that pre-shared keys wont be read correctly from the keychain. Apple, please implement this fix as it is  .
.
Have Fun!
If you appreciate my work just leave me a post
	
		
			
		
		
	
				
			Since Mac OS X makes a lot of trouble when it comes to connecting to non Mac L2TP/IPSec Servers and I still wanted to maintain the default VPN interface (instead of configuring the vpn with config files) I fixed Apple's L2TP/IPSec implementation for Snow Leopard. This version connects perfectly to a Windows Server 2008.
What is fixed?
-Use the standard port 1701 on the client side for outgoing connections.
-Fix retrieving psks from the Keychain.
Instructions:
Download the zip file.
L2TP goes to /System/Library/Extensions/L2TP.ppp/Contents/MacOS/ (fix the access rights if necessary)
racoon goes to /usr/sbin/
What did I change?
In http://www.opensource.apple.com/source/ppp/ppp-412.3/Drivers/L2TP/L2TP-plugin/main.c
replaced
		Code:
	
	our_address.sin_port = htons(opt_udpport);
		Code:
	
	our_address.sin_port = htons(L2TP_UDP_PORT);replaced
		Code:
	
	our_address.sin_port = htons(0);
		Code:
	
	our_address.sin_port = htons(L2TP_UDP_PORT);In http://www.opensource.apple.com/source/ipsec/ipsec-93.8/ipsec-tools/racoon/localconf.c
replaced
		Code:
	
	key = vmalloc(cur_password_len + 1);
		Code:
	
	key = vmalloc(cur_password_len);removed
		Code:
	
	key->v[cur_password_len] = 0;Have Fun!
If you appreciate my work just leave me a post