create core package
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
diff --git a/src/last.c b/src/last.c
|
||||
index 5003c7c..02103e0 100644
|
||||
--- a/src/last.c
|
||||
+++ b/src/last.c
|
||||
@@ -318,30 +318,22 @@ int dns_lookup(char *result, int size, int useip, int32_t *a)
|
||||
struct sockaddr_in6 sin6;
|
||||
struct sockaddr *sa;
|
||||
int salen, flags;
|
||||
- unsigned int topnibble;
|
||||
- unsigned int azero = 0, sitelocal = 0;
|
||||
int mapped = 0;
|
||||
|
||||
flags = useip ? NI_NUMERICHOST : 0;
|
||||
|
||||
/*
|
||||
- * IPv4 or IPv6 ? We use 2 heuristics:
|
||||
- * 1. Current IPv6 range uses 2000-3fff or fec0-feff.
|
||||
- * Outside of that is illegal and must be IPv4.
|
||||
- * 2. If last 3 bytes are 0, must be IPv4
|
||||
- * 3. If IPv6 in IPv4, handle as IPv4
|
||||
+ * IPv4 or IPv6 ?
|
||||
+ * 1. If last 3 4bytes are 0, must be IPv4
|
||||
+ * 2. If IPv6 in IPv4, handle as IPv4
|
||||
+ * 3. Anything else is IPv6
|
||||
*
|
||||
* Ugly.
|
||||
*/
|
||||
if (a[0] == 0 && a[1] == 0 && a[2] == (int32_t)htonl (0xffff))
|
||||
mapped = 1;
|
||||
- topnibble = ntohl((unsigned int)a[0]) >> 28;
|
||||
|
||||
- azero = ntohl((unsigned int)a[0]) >> 16;
|
||||
- sitelocal = (azero >= 0xfec0 && azero <= 0xfeff) ? 1 : 0;
|
||||
-
|
||||
- if (((topnibble < 2 || topnibble > 3) && (!sitelocal)) || mapped ||
|
||||
- (a[1] == 0 && a[2] == 0 && a[3] == 0)) {
|
||||
+ if (mapped || (a[1] == 0 && a[2] == 0 && a[3] == 0)) {
|
||||
/* IPv4 */
|
||||
sin.sin_family = AF_INET;
|
||||
sin.sin_port = 0;
|
||||
Reference in New Issue
Block a user