$OpenBSD: patch-lchat-pl,v 1.3 2012/08/19 22:30:37 ajacoutot Exp $
--- lchat.pl.orig	Fri May 29 13:05:46 1998
+++ lchat.pl	Mon Mar 19 18:31:12 2007
@@ -117,7 +117,7 @@ sub open_port { ## public
 
 	# We may be multi-homed, start with 0, fixup once connexion is made
 	$thisaddr = "\0\0\0\0" ;
-	$thisproc = pack($sockaddr, 2, 0, $thisaddr);
+	$thisproc = pack_sockaddr_in(0, $thisaddr);
 
 	if ($server =~ /^(\d+)+\.(\d+)\.(\d+)\.(\d+)$/) {
 		$serveraddr = pack('C4', $1, $2, $3, $4);
@@ -128,7 +128,7 @@ sub open_port { ## public
 		}
 		$serveraddr = $x[4];
 	}
-	$serverproc = pack($sockaddr, 2, $port, $serveraddr);
+	$serverproc = pack_sockaddr_in($port, $serveraddr);
 	unless (socket(S, $main'pf_inet, $main'sock_stream, $main'tcp_proto)) {
 		($!) = ($!, close(S)); # close S while saving $!
 		return undef;
@@ -137,12 +137,12 @@ sub open_port { ## public
 	# The SOCKS documentation claims that this bind before the connet
 	# is unnecessary.  Not just, that, but when used with SOCKS,
 	# a connect() must not follow a bind(). -Erez Zadok.
-	unless( $using_socks ){
-		unless (bind(S, $thisproc)) {
-			($!) = ($!, close(S)); # close S while saving $!
-			return undef;
-		}
-	}
+#	unless( $using_socks ){
+#		unless (bind(S, $thisproc)) {
+#			($!) = ($!, close(S)); # close S while saving $!
+#			return undef;
+#		}
+#	}
 	unless (connect(S, $serverproc)) {
 		($!) = ($!, close(S)); # close S while saving $!
 		return undef;
@@ -152,7 +152,7 @@ sub open_port { ## public
 # multi-homed, with IP forwarding off, so fix-up.
 	local($fam,$lport);
 	($fam,$lport,$thisaddr) = unpack($sockaddr, getsockname(S));
-	$thisproc = pack($sockaddr, 2, 0, $thisaddr);
+	$thisproc = pack_sockaddr_in(0, $thisaddr);
 # end of post-connect fixup
 	select((select(S), $| = 1)[0]);
 	return 1;
@@ -167,7 +167,7 @@ sub open_newport { ## public
 
 	# We may be multi-homed, start with 0, fixup once connexion is made
 	$thisaddr = "\0\0\0\0" ;
-	$thisproc = pack($sockaddr, 2, 0, $thisaddr);
+	$thisproc = pack_sockaddr_in(0, $thisaddr);
 
 	if ($server =~ /^(\d+)+\.(\d+)\.(\d+)\.(\d+)$/) {
 		$serveraddr = pack('C4', $1, $2, $3, $4);
@@ -189,7 +189,7 @@ sub open_newport { ## public
 # multi-homed, with IP forwarding off, so fix-up.
 	local($fam,$lport);
 	($fam,$lport,$thisaddr) = unpack($sockaddr, getsockname($newsock));
-	$thisproc = pack($sockaddr, 2, 0, $thisaddr);
+	$thisproc = pack_sockaddr_in(0, $thisaddr);
 # end of post-connect fixup
 	select((select($newsock), $| = 1)[0]);
 	return 1;
