aboutsummaryrefslogtreecommitdiffstats
path: root/src/kvilib/net
diff options
context:
space:
mode:
authorGravatar staticfox2016-08-17 19:47:49 -0400
committerGravatar staticfox2016-08-17 19:59:22 -0400
commitb79e1f031849a82dfaa69c10e01697b9a8f866bf (patch)
tree4ba1243f9c7a1bcac214a6b46a267550bbb2a455 /src/kvilib/net
parentOptionsWidget_dcc: add full stop at sentence end. (diff)
downloadKVIrc-b79e1f031849a82dfaa69c10e01697b9a8f866bf.tar.gz
KVIrc-b79e1f031849a82dfaa69c10e01697b9a8f866bf.tar.bz2
KVIrc-b79e1f031849a82dfaa69c10e01697b9a8f866bf.zip
Goodbye XP, my old friend
Diffstat (limited to 'src/kvilib/net')
-rw-r--r--src/kvilib/net/KviNetUtils.cpp285
1 files changed, 0 insertions, 285 deletions
diff --git a/src/kvilib/net/KviNetUtils.cpp b/src/kvilib/net/KviNetUtils.cpp
index f48ccdcb9..9353601a3 100644
--- a/src/kvilib/net/KviNetUtils.cpp
+++ b/src/kvilib/net/KviNetUtils.cpp
@@ -228,291 +228,6 @@ bool kvi_isValidStringIp(const char * szIp)
#ifdef COMPILE_IPV6_SUPPORT
-#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
-
-static unsigned int scan_ip6(const char * s, char ip[16])
-{
- unsigned int i;
- unsigned int len = 0;
- unsigned long u;
-
- char suffix[16];
- unsigned int prefixlen = 0;
- unsigned int suffixlen = 0;
-
- for(i = 0; i < 16; i++)
- ip[i] = 0;
-
- for(;;)
- {
- if(*s == ':')
- {
- len++;
- if(s[1] == ':')
- { /* Found "::", skip to part 2 */
- s += 2;
- len++;
- break;
- }
- s++;
- }
-
- {
- char * tmp;
- u = strtoul(s, &tmp, 16);
- i = tmp - s;
- }
-
- if(!i)
- return 0;
- if(prefixlen == 12 && s[i] == '.')
- {
- /* the last 4 bytes may be written as IPv4 address */
- if(kvi_stringIpToBinaryIp(s, (struct in_addr *)(ip + 12)))
- return i + len;
- else
- return 0;
- }
-
- ip[prefixlen++] = (u >> 8);
- ip[prefixlen++] = (u & 255);
-
- s += i;
- len += i;
-
- if(prefixlen == 16)
- return len;
- }
-
- /* part 2, after "::" */
-
- for(;;)
- {
- if(*s == ':')
- {
- if(suffixlen == 0)
- break;
- s++;
- len++;
- }
- else if(suffixlen != 0)
- break;
-
- {
- char * tmp;
- u = strtol(s, &tmp, 16);
- i = tmp - s;
- }
-
- if(!i)
- {
- if(*s)
- len--;
- break;
- }
-
- if(suffixlen + prefixlen <= 12 && s[i] == '.')
- {
-
- if(kvi_stringIpToBinaryIp(s, (struct in_addr *)(suffix + suffixlen)))
- {
- suffixlen += 4;
- len += (unsigned int)strlen(s);
- break;
- }
- else
- prefixlen = 12 - suffixlen; /* make end-of-loop test true */
- }
-
- suffix[suffixlen++] = (u >> 8);
- suffix[suffixlen++] = (u & 255);
- s += i;
- len += i;
- if(prefixlen + suffixlen == 16)
- break;
- }
-
- for(i = 0; i < suffixlen; i++)
- ip[16 - suffixlen + i] = suffix[i];
-
- return len;
-}
-
-extern int inet_pton(int AF, const char * CP, void * BUF)
-{
- int len;
- if(AF == AF_INET)
- {
- if(!kvi_stringIpToBinaryIp(CP, (struct in_addr *)BUF))
- return 0;
- }
- else if(AF == AF_INET6)
- {
- if(CP[len = scan_ip6(CP, (char *)BUF)])
- return 0;
- }
- else
- {
- errno = WSAEPFNOSUPPORT;
- return -1;
- }
- return 1;
-}
-
-static const unsigned char V4mappedprefix[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff };
-
-static char tohex(char hexdigit)
-{
- return hexdigit > 9 ? hexdigit + 'a' - 10 : hexdigit + '0';
-}
-
-static int fmt_xlong(char * s, unsigned int i)
-{
- char * bak = s;
- *s = tohex((i >> 12) & 0xf);
- if(s != bak || *s != '0')
- ++s;
- *s = tohex((i >> 8) & 0xf);
- if(s != bak || *s != '0')
- ++s;
- *s = tohex((i >> 4) & 0xf);
- if(s != bak || *s != '0')
- ++s;
- *s = tohex(i & 0xf);
- return s - bak + 1;
-}
-
-static unsigned int i2a(char * dest, unsigned int x)
-{
- unsigned int tmp = x;
- unsigned int len = 0;
-
- if(x >= 100)
- {
- *dest++ = tmp / 100 + '0';
- tmp = tmp % 100;
- ++len;
- }
- if(x >= 10)
- {
- *dest++ = tmp / 10 + '0';
- tmp = tmp % 10;
- ++len;
- }
- *dest++ = tmp + '0';
- return len + 1;
-}
-
-char * inet_ntoa_r(struct in_addr in, char * buf)
-{
- unsigned int len;
- unsigned char * ip = (unsigned char *)&in;
-
- len = i2a(buf, ip[0]);
- buf[len] = '.';
- ++len;
- len += i2a(buf + len, ip[1]);
- buf[len] = '.';
- ++len;
- len += i2a(buf + len, ip[2]);
- buf[len] = '.';
- ++len;
- len += i2a(buf + len, ip[3]);
- buf[len] = 0;
- return buf;
-}
-
-unsigned int fmt_ip6(char * s, const char ip[16])
-{
- unsigned int len;
- unsigned int i;
- unsigned int temp;
- unsigned int compressing; // 0 not compressing, 1 compressing now, 2 already compressed once
-
- len = 0;
- compressing = 0;
-
- for(int j = 0; j < 16; j += 2)
- {
- if(j == 12 && !memcmp(ip, V4mappedprefix, 12))
- {
- inet_ntoa_r(*(struct in_addr *)(ip + 12), s);
- temp = (unsigned int)strlen(s);
- return len + temp;
- }
-
- temp = ((unsigned long)(unsigned char)ip[j] << 8) + (unsigned long)(unsigned char)ip[j + 1];
-
- if(temp == 0 && compressing != 2)
- {
- if(compressing == 0)
- {
- compressing = 1;
- if(j == 0)
- {
- *s++ = ':';
- ++len;
- }
- }
- }
- else
- {
- if(compressing == 1)
- {
- compressing = 2; // don't do it again
- *s++ = ':';
- ++len;
- }
-
- i = fmt_xlong(s, temp);
- len += i;
- s += i;
-
- if(j < 14)
- {
- *s++ = ':';
- ++len;
- }
- }
- }
-
- if(compressing == 1)
- {
- *s++ = ':';
- ++len;
- }
-
- *s = 0;
- return len;
-}
-
-const char * inet_ntop(int AF, const void * CP, char * BUF, size_t LEN)
-{
- char buf[100];
- size_t len;
-
- if(AF == AF_INET)
- {
- inet_ntoa_r(*(struct in_addr *)CP, buf);
- len = strlen(buf);
- }
- else if(AF == AF_INET6)
-
- {
- len = fmt_ip6(buf, (char *)CP);
- }
- else
- return 0;
-
- if(len < LEN)
- {
- strcpy(BUF, buf);
- return BUF;
- }
- return 0;
-}
-#endif
-
bool kvi_binaryIpToStringIp_V6(struct in6_addr in, QString & szBuffer)
{
char buf[46];