Hi Sylvain, any chance to let us agree on the MIT license for the IPv6 bits?
Kind regards, Anselm On Mon, May 19, 2008 at 01:51:18PM +0200, Sylvain Bertrand wrote: > diff -u sic-0.9/LICENSE sic-0.9-ipv6/LICENSE > --- sic-0.9/LICENSE 2007-02-13 17:02:16.000000000 +0100 > +++ sic-0.9-ipv6/LICENSE 2008-05-19 13:32:09.000000000 +0200 > @@ -1,6 +1,6 @@ > MIT/X Consortium License > > -(C)opyright MMV-MMVI Anselm R. Garbe <[EMAIL PROTECTED]> > +(C)opyright MMV-MMVIII Anselm R. Garbe <[EMAIL PROTECTED]> > (C)opyright MMV Nico Golde <nico at ngolde dot de> > > Permission is hereby granted, free of charge, to any person obtaining a > @@ -20,3 +20,8 @@ > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > DEALINGS IN THE SOFTWARE. > + > +-------------------------------------------------------------------------------- > + > +IPv6 code is protected by the GPLv3 > +(C)opyright MMVIII Sylvain BERTRAND <sylvain.bertrand at gmail dot com> > diff -u sic-0.9/sic.c sic-0.9-ipv6/sic.c > --- sic-0.9/sic.c 2008-03-20 12:26:29.000000000 +0100 > +++ sic-0.9-ipv6/sic.c 2008-05-19 13:34:16.000000000 +0200 > @@ -1,5 +1,6 @@ > /* (C)opyright MMV-MMVI Anselm R. Garbe <garbeam at gmail dot com> > * (C)opyright MMV-MMVI Nico Golde <nico at ngolde dot de> > + * (C)opyright MMVIII Sylvain BERTRAND <sylvain.bertrand at gmail dot com> > * See LICENSE file for license details. > */ > #include <errno.h> > @@ -17,8 +18,8 @@ > #define PINGTIMEOUT 1000 > #define MAXMSG 4096 > > -static char *host = "irc.freenode.net"; > -static unsigned short port = 6667; > +static char *host = "ipv6.chat.eu.freenode.net"; > +static char *port = "6667"; > static char *password = NULL; > static char nick[32]; > > @@ -154,10 +155,9 @@ > main(int argc, char *argv[]) { > int i; > struct timeval tv; > - struct hostent *hp; > - static struct sockaddr_in addr; /* initially filled with 0's */ > char ping[256]; > fd_set rd; > + struct addrinfo hints,*results,*rp; > > strncpy(nick, getenv("USER"), sizeof nick); > for(i = 1; i < argc; i++) > @@ -165,7 +165,7 @@ > if(++i < argc) host = argv[i]; > } > else if(!strncmp(argv[i], "-p", 3)) { > - if(++i < argc) port = (unsigned short)atoi(argv[i]); > + if(++i < argc) port = argv[i]; > } > else if(!strncmp(argv[i], "-n", 3)) { > if(++i < argc) strncpy(nick, argv[i], sizeof nick); > @@ -174,22 +174,24 @@ > if(++i < argc) password = argv[i]; > } > else if(!strncmp(argv[i], "-v", 3)) > - eprint("sic-"VERSION", (C)opyright MMVI Anselm > R. Garbe\n"); > + eprint("sic-"VERSION", (C)opyright MMV-MMVIII > Anselm R. Garbe and others\n"); > else > eprint("usage: sic [-h host] [-p port] [-n > nick] [-k keyword] [-v]\n"); > > /* init */ > - if((srv = socket(AF_INET, SOCK_STREAM, 0)) < 0) > - eprint("sic: cannot connect host '%s'\n", host); > - if(NULL == (hp = gethostbyname(host))) > - eprint("sic: cannot resolve hostname '%s'\n", host); > - addr.sin_family = AF_INET; > - addr.sin_port = htons(port); > - memcpy(&addr.sin_addr, hp->h_addr, hp->h_length); > - if(connect(srv, (struct sockaddr *) &addr, sizeof(struct > sockaddr_in))) { > + memset(&hints,0,sizeof(hints)); > + hints.ai_family=AF_INET6; > + hints.ai_socktype=SOCK_STREAM; > + if(getaddrinfo(host,port,&hints,&results)!=0) > + eprint("sic: cannot resolve hostname '%s'\n",host); > + for(rp=results;rp!=NULL;rp=rp->ai_next){ > + > if((srv=socket(rp->ai_family,rp->ai_socktype,rp->ai_protocol))<0) > continue; > + if(connect(srv,rp->ai_addr,rp->ai_addrlen)!=-1) break; > close(srv); > - eprint("sic: cannot connect host '%s'\n", host); > } > + if(!rp) eprint("sic: unable to connect to '%s:%s'\n",host,port); > + freeaddrinfo(results); > + > /* login */ > if(password) > snprintf(bufout, sizeof bufout, > -- Anselm R. Garbe >< http://www.suckless.org/ >< GPG key: 0D73F361