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 <garbeam_AT_gmail.com>
+(C)opyright MMV-MMVIII Anselm R. Garbe <garbeam_AT_gmail.com>
(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,
Received on Mon May 19 2008 - 13:51:19 UTC
This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:40:52 UTC