--- orig/tla-1.1pre8/src/tla/libarch/pfs-dav.c	2003-10-24 00:44:28.000000000 +0200
+++ tla-1.1pre8/src/tla/libarch/pfs-dav.c	2003-10-29 16:47:33.704006400 +0100
@@ -143,7 +143,11 @@ arch_pfs_dav_connect (t_uchar * uri)
   t_uchar * root_path = 0;
   t_uchar * proxy;
   t_uchar * proxy_port;
+  t_uchar * proxy_host;
+  t_uchar * proxy_user;
+  t_uchar * proxy_passwd;
   struct authinfo * auth = 0;
+  struct authinfo * proxy_auth = 0;
   int i;

   answer = (struct arch_pfs_dav_session *)lim_malloc (0, sizeof (*answer));
@@ -225,7 +229,20 @@ arch_pfs_dav_connect (t_uchar * uri)
   if (proxy && !str_cmp_prefix ("http://", proxy))
     {
       proxy += 7;
-
+
+	  proxy_host = str_chr_index (proxy, '@');
+	  if (proxy_host) {
+		proxy_auth = lim_malloc (0, sizeof (struct authinfo));
+		proxy_user = proxy;
+		proxy_passwd = str_chr_index_n(proxy, proxy_host-proxy, ':');
+		if (proxy_passwd)
+		  {
+			proxy_auth->username = str_save_n(0, proxy_user, proxy_passwd - proxy_user);
+			proxy_passwd++;
+			proxy_auth->password = str_save_n(0, proxy_passwd, proxy_host - proxy_passwd);
+		  }
+		proxy = proxy_host + 1;
+	  }
       proxy_port = str_chr_index (proxy, ':');
       if (proxy_port)
         {
@@ -236,5 +253,9 @@ arch_pfs_dav_connect (t_uchar * uri)
               proxy_port[i] = 0;
             }
           ne_session_proxy (answer->sess, proxy, atoi (proxy_port));
+		  if (proxy_auth)
+			{
+			  ne_set_proxy_auth(answer->sess, dav_client_auth, proxy_auth);
+			}
         }
     }

