]> git.pld-linux.org Git - packages/cvsnt.git/commitdiff
- -4/-6 flags support for cvsnt
authorpawelz <pawelz@pld-linux.org>
Mon, 8 Dec 2008 10:55:57 +0000 (10:55 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    cvsnt-ipvflags.patch -> 1.1

cvsnt-ipvflags.patch [new file with mode: 0644]

diff --git a/cvsnt-ipvflags.patch b/cvsnt-ipvflags.patch
new file mode 100644 (file)
index 0000000..cb83318
--- /dev/null
@@ -0,0 +1,131 @@
+diff -Naur cvsnt-2.5.04.3236.orig/cvsapi/SocketIO.h cvsnt-2.5.04.3236.ipvflags/cvsapi/SocketIO.h
+--- cvsnt-2.5.04.3236.orig/cvsapi/SocketIO.h   2005-10-02 16:45:54.000000000 +0200
++++ cvsnt-2.5.04.3236.ipvflags/cvsapi/SocketIO.h       2008-12-08 11:20:44.000000000 +0100
+@@ -37,6 +37,8 @@
+ typedef cvs::smartptr<CSocketIO> CSocketIOPtr;
++extern int ipversion;
++
+ class CSocketIO
+ {
+ public:
+diff -Naur cvsnt-2.5.04.3236.orig/cvsapi/unix/SocketIO.cpp cvsnt-2.5.04.3236.ipvflags/cvsapi/unix/SocketIO.cpp
+--- cvsnt-2.5.04.3236.orig/cvsapi/unix/SocketIO.cpp    2008-12-07 01:16:34.000000000 +0100
++++ cvsnt-2.5.04.3236.ipvflags/cvsapi/unix/SocketIO.cpp        2008-12-08 11:21:31.000000000 +0100
+@@ -84,32 +84,32 @@
+ bool CSocketIO::create(const char *address, const char *port, bool loopback /* = true */, bool tcp /* = true */)
+ {
+-      static bool v6_checked = false, v6_available = false;
++      static bool v6_available = false;
+       addrinfo hint = {0}, *addr;
+       SOCKET sock;
+-      // I'm still not convinced this actually does anything useful, but at least it should only run once otherwise
+-      // you've simply added extra overhead.
+-      if(!v6_checked)
+-      {
+-      // check for installed IPv6 stack
+-      // this may speed up getaddrinfo() dramaticaly if no IPv6 is installed
+-      sock = socket(PF_INET6, SOCK_DGRAM, 0);
+-      if( -1 != sock) {
+-              // IPv6 seams to be installed
+-              hint.ai_family=PF_UNSPEC;
+-              v6_checked = true;
+-              v6_available = true;
+-              ::close(sock);
+-      } else {
+-              // IPv6 is not installed
+-              hint.ai_family=PF_INET;
+-              v6_checked = true;
+-              v6_available = false;
++      switch(ipversion) {
++        case 4:
++          hint.ai_family=PF_INET;
++          break;
++        case 6:
++          hint.ai_family=PF_INET;
++          break;
++        default:
++          // check for installed IPv6 stack this may speed up getaddrinfo()
++          // dramaticaly if no IPv6 is installed
++          sock = socket(PF_INET6, SOCK_DGRAM, 0);
++          if( -1 != sock) {
++              // IPv6 seams to be installed
++              hint.ai_family=PF_UNSPEC;
++              v6_available = true;
++              ::close(sock);
++          } else {
++              // IPv6 is not installed
++              hint.ai_family=PF_INET;
++              v6_available = false;
++          }
+       }
+-      }
+-      else
+-              hint.ai_family=v6_available?PF_UNSPEC:PF_INET;
+       hint.ai_socktype=tcp?SOCK_STREAM:SOCK_DGRAM;
+       hint.ai_protocol=tcp?IPPROTO_TCP:IPPROTO_UDP;
+diff -Naur cvsnt-2.5.04.3236.orig/src/client.h cvsnt-2.5.04.3236.ipvflags/src/client.h
+--- cvsnt-2.5.04.3236.orig/src/client.h        2006-08-21 20:48:49.000000000 +0200
++++ cvsnt-2.5.04.3236.ipvflags/src/client.h    2008-12-08 10:51:13.000000000 +0100
+@@ -12,6 +12,9 @@
+ /* Whether the connection should be encrypted.  */
+ extern int cvsencrypt;
++/* IP protocol version to use. */
++extern int ipversion;
++
+ /* Whether the connection should be authenticated.  */
+ extern int cvsauthenticate;
+diff -Naur cvsnt-2.5.04.3236.orig/src/main.cpp cvsnt-2.5.04.3236.ipvflags/src/main.cpp
+--- cvsnt-2.5.04.3236.orig/src/main.cpp        2008-10-23 14:57:15.000000000 +0200
++++ cvsnt-2.5.04.3236.ipvflags/src/main.cpp    2008-12-08 10:48:14.000000000 +0100
+@@ -329,6 +329,8 @@
+     "    -w              Make checked-out files read-write (default).\n",
+     "    -t              Show trace of program execution (repeat for more verbosity) -- try with -n.\n",
+     "    -v              CVS version and copyright.\n",
++    "    -4              Use IPv4 addresses only.\n",
++    "    -6              Use IPv6 addresses only.\n",
+     "    -T tmpdir       Use 'tmpdir' for temporary files.\n",
+     "    -e editor       Use 'editor' for editing log information.\n",
+     "    -d CVS_root     Overrides $CVSROOT as the root of the CVS tree.\n",
+@@ -700,7 +702,7 @@
+     int help = 0;             /* Has the user asked for help?  This
+                                  lets us support the `cvs -H cmd'
+                                  convention to give help for cmd. */
+-      static const char short_options[] = "+Qqrwtnlvb:T:e:d:HfF:z:s:axyNRo::OL:C:c";
++      static const char short_options[] = "+Qqrwtnlv46b:T:e:d:HfF:z:s:axyNRo::OL:C:c";
+     static struct option long_options[] =
+     {
+               {"help", 0, NULL, 'H'},
+@@ -961,6 +963,12 @@
+               exit (0);
+               break;
++          case '4':
++              ipversion=4;
++              break;
++          case '6':
++              ipversion=6;
++              break;
+           case 'b':
+               /* This option used to specify the directory for RCS
+                  executables.  But since we don't run them any more,
+diff -Naur cvsnt-2.5.04.3236.orig/src/server.cpp cvsnt-2.5.04.3236.ipvflags/src/server.cpp
+--- cvsnt-2.5.04.3236.orig/src/server.cpp      2008-09-15 10:34:05.000000000 +0200
++++ cvsnt-2.5.04.3236.ipvflags/src/server.cpp  2008-12-08 10:51:40.000000000 +0100
+@@ -5985,6 +5985,10 @@
+    the command line.  */
+ int cvsauthenticate;
++/* This global variable is set to 4 or 6 if user requested ipv4 or ipv6 or
++ * zero otherwise */
++int ipversion = 0;
++
+ /* An buffer interface.  This is built on top of a
+    packetizing buffer.  */
This page took 0.088914 seconds and 4 git commands to generate.