Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:53646 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 46370 invoked from network); 29 Jun 2011 07:11:37 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 29 Jun 2011 07:11:37 -0000 Authentication-Results: pb1.pair.com smtp.mail=ml@anderiasch.de; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=ml@anderiasch.de; sender-id=unknown Received-SPF: error (pb1.pair.com: domain anderiasch.de from 81.169.138.148 cause and error) X-PHP-List-Original-Sender: ml@anderiasch.de X-Host-Fingerprint: 81.169.138.148 ares.art-core.org Received: from [81.169.138.148] ([81.169.138.148:55654] helo=mail.anderiasch.de) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B8/E0-34729-120DA0E4 for ; Wed, 29 Jun 2011 03:11:30 -0400 Message-ID: <4E0AD018.1060008@anderiasch.de> Date: Wed, 29 Jun 2011 09:11:20 +0200 User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: internals@lists.php.net Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: [PATCH] Small patch for CLI server regarding IPv6 and commandline parsing From: ml@anderiasch.de (Florian Anderiasch) Hi all, as of yesterday the CLI server didn't seemed to listen to addr:port in format like [::1]:3000, so here's a patch. Feedback very welcome. Greetings, Florian See http://pastie.org/2138304 or this: --- php_cli_server.c.orig 2011-06-28 19:43:23.123167815 +0200 +++ php_cli_server.c 2011-06-29 09:08:28.971479778 +0200 @@ -1799,28 +1799,13 @@ } { - char *p = strrchr(host, ':'); - char *end = strchr(host, ']'); - if (p && (end == NULL || p > end)) { + char *p = strchr(host, ':'); + if (p) { *p++ = '\0'; port = strtol(p, &p, 10); - if (port < 0 || port > 65535) { - printf(stderr, "Invalid built-in web-server addr:port argument\n"); - return FAILURE; - } } } - if (*host == '[' && host[strlen(host)-1] == ']') { - char v6address[40]; - int success = sscanf(host, "\[%39[^]]\]", v6address); - if (success != 1) { - php_cli_server_logf("Failed to listen on %s:%d (reason: %s)" TSRMLS_CC, host, port, errstr ? errstr: "?"); - return FAILURE; - } - host = pestrdup(v6address, 1); - } - server_sock = php_network_listen_socket(host, &port, SOCK_STREAM, &server->address_family, &server->socklen, &errstr TSRMLS_CC); if (server_sock == SOCK_ERR) { php_cli_server_logf("Failed to listen on %s:%d (reason: %s)" TSRMLS_CC, host, port, errstr ? errstr: "?");