From owner-FreeBSD-tech-jp@jp.freebsd.org  Fri Feb  2 14:26:31 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id OAA26732;
	Fri, 2 Feb 2001 14:26:31 +0900 (JST)
	(envelope-from owner-FreeBSD-tech-jp@jp.FreeBSD.org)
Received: from TYO202.gate.nec.co.jp (TYO202.gate.nec.co.jp [202.247.6.41])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id OAA26727
	for <FreeBSD-tech-jp@jp.freebsd.org>; Fri, 2 Feb 2001 14:26:31 +0900 (JST)
	(envelope-from oota@LSi.nec.co.jp)
Received: from mailgate4.nec.co.jp ([10.7.69.195])
	by TYO202.gate.nec.co.jp (8.9.3/3.7W00121312) with ESMTP id OAA24843
	for <FreeBSD-tech-jp@jp.freebsd.org>; Fri, 2 Feb 2001 14:26:30 +0900 (JST)
Received: from mailsv4.nec.co.jp (mailgate51.nec.co.jp [10.7.69.190]) by mailgate4.nec.co.jp (8.9.3/3.7W-MAILGATE-NEC) with ESMTP
	id OAA12978 for <FreeBSD-tech-jp@jp.freebsd.org>; Fri, 2 Feb 2001 14:26:23 +0900 (JST)
Received: from sdlpc374.ulsys.lsi.nec.co.jp ([10.30.82.50]) by mailsv4.nec.co.jp (8.9.3/3.7W-MAILSV4-NEC) with ESMTP
	id OAA08021 for <FreeBSD-tech-jp@jp.freebsd.org>; Fri, 2 Feb 2001 14:26:18 +0900 (JST)
Received: from sdlpc374.ulsys.lsi.nec.co.jp (sdlpc374.ulsys.lsi.nec.co.jp [::ffff:10.30.82.50])
  by sdlpc374.ulsys.lsi.nec.co.jp with esmtp; Fri, 02 Feb 2001 14:26:18 +0900
Date: Fri, 02 Feb 2001 14:26:18 +0900
Message-ID: <cwofwlfyf9.wl@sdlpc374.ulsys.lsi.nec.co.jp>
From: HIROSHI OOTA <oota@LSi.nec.co.jp>
To: FreeBSD-tech-jp@jp.freebsd.org
User-Agent: Wanderlust/2.2.18 (Please Forgive Me) REMI/1.14.1
 (=?ISO-8859-4?Q?Mushigawa=F2sugi?=) FLIM/1.13.2 (Kasanui) APEL/10.2
 Emacs/20.6 (i386-unknown-freebsdelf4.0) MULE/4.0 (HANANOEN)
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="=_85456-981091579-1-2"
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: FreeBSD-tech-jp 3024
Subject: [FreeBSD-tech-jp 3024] how to bind udp46 implicitly
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org
X-Originator: oota@LSi.nec.co.jp

This is a MIME-formatted message.  If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_85456-981091579-1-2
Content-Type: text/plain; charset=iso-2022-jp

$B;O$a$^$7$F!"B@ED$H?=$7$^$9!#(B

$BE:IU$N%F%9%H%W%m%0%i%`$O%G!<%?%0%i%`(Bsocket$B$r:n@.$7$F!"(Bsendto$B$G(B
udp$B$rAw$j$^$9!#(B
-b$B$r;XDj$7$?>l9g$O(Bsocket$B$r:n@.$7$?8e!"(Bbind(2)$B$r8F$S$^$9!#(B

4.2-STABLE FreeBSD 4.2-STABLE #0: Thu Dec 28 10:11:22 JST 2000
$B$G$O(Bbind(2)$B$r8F$P$J$$>l9g$O%m!<%+%k$J(Bsocket$B$,(Budp6$B$K$J$j$^$9!#(B
udp6$B$G$O(Bv4$B$J(BUDP$B$r<u$1$i$l$J$$$h$&$J$N$G!"(Bbind(2)$B$r8F$P$:$K(Budp46$B$r(B
$B;HMQ$7$?$$$N$G$9$,!"$3$l$O;EMM$G$7$g$&$+(B?

$B<B9T7k2L(B:

$ ./a.out -b ::ffff:?.?.?.?
udp46      0      0  *.3486                 *.*

$ ./a.out ::ffff:?.?.?.?
udp6       0      0  *.3487                 *.*
--

				HIROSHI OOTA
				oota@LSi.nec.co.jp

--=_85456-981091579-1-2
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="test.c"

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main(int argc, char **argv)
{
  struct sockaddr_in6 sin, sin2, me;
  int len, s;
  char buf[1024];

  if(argc < 2)
    return 1;

  if((s = socket(PF_INET6, SOCK_DGRAM, 0)) < 0){
    perror("socket");
    return 1;
  }

  if(strcmp(argv[1], "-b") == 0){
    argc--;
    argv++;
    bzero(&sin, sizeof(sin));
    sin.sin6_len = sizeof(sin);
    sin.sin6_family = AF_INET6;
    bcopy(&in6addr_any, &sin.sin6_addr, sizeof(struct in6_addr));

    if(bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0){
      perror("bind");
      return 1;
    }
  }

  bzero(&sin2, sizeof(sin2));
  sin2.sin6_family = AF_INET6;
  sin2.sin6_len = sizeof(sin2);
  
  if(inet_pton(AF_INET6, argv[1], &sin2.sin6_addr) == 0){
    fprintf(stderr, "%s: invalid address\n", argv[1]);
    return 1;
  }

  sin2.sin6_port=htons(7);
  if(sendto(s, "1", 1, 0, (struct sockaddr *)&sin2, sizeof(sin2)) < 0){
    perror("sendto");
    return 1;
  }
  len = sizeof(me);
  getsockname(s, (struct sockaddr *)&me, &len);
  snprintf(buf, 1024, "netstat -an|grep %d", ntohs(me.sin6_port));
  system(buf);

  return 0;
}

--=_85456-981091579-1-2--
