[Commits] [SCM] claws branch, master, updated. 3.13.0-51-g8eadc80
mones at claws-mail.org
mones at claws-mail.org
Thu Nov 12 17:33:40 CET 2015
The branch, master has been updated
via 8eadc80ce1e3ca3b0168f86f8c4f7bc29165d585 (commit)
via fbfed23b5c4db507fb94df9f910bb1e2f846e2b1 (commit)
from 967a512bbcf98c5206bd8992f00a0de509174c0b (commit)
Summary of changes:
src/common/Makefile.am | 1 +
src/common/tlds.h | 212 +++++++++++++++++++++++++++++++++++++++++++++++
src/common/utils.c | 30 +------
tools/claws.get.tlds.pl | 55 ++++++++++++
4 files changed, 269 insertions(+), 29 deletions(-)
create mode 100644 src/common/tlds.h
create mode 100755 tools/claws.get.tlds.pl
- Log -----------------------------------------------------------------
commit 8eadc80ce1e3ca3b0168f86f8c4f7bc29165d585
Author: Ricardo Mones <ricardo at mones.org>
Date: Thu Nov 12 17:32:29 2015 +0100
Update list of recognised TLDs to current
Using the script in previous commit :-)
diff --git a/src/common/Makefile.am b/src/common/Makefile.am
index 1619226..6551157 100644
--- a/src/common/Makefile.am
+++ b/src/common/Makefile.am
@@ -67,6 +67,7 @@ clawscommoninclude_HEADERS = $(arch_headers) \
tags.h \
template.h \
timing.h \
+ tlds.h \
utils.h \
uuencode.h \
version.h \
diff --git a/src/common/tlds.h b/src/common/tlds.h
new file mode 100644
index 0000000..c37f1b9
--- /dev/null
+++ b/src/common/tlds.h
@@ -0,0 +1,212 @@
+/*
+ * This is a generated file.
+ * See tools/claws.get.tlds.pl
+ */
+#ifndef __TLDS_H__
+#define __TLDS_H__
+
+static const gchar *toplvl_domains [] = {
+ /* Version 2015111201, Last Updated Thu Nov 12 07:07:01 2015 UTC */
+ "aaa", "aarp", "abb", "abbott", "abogado",
+ "ac", "academy", "accenture", "accountant", "accountants",
+ "aco", "active", "actor", "ad", "ads",
+ "adult", "ae", "aeg", "aero", "af",
+ "afl", "ag", "agency", "ai", "aig",
+ "airforce", "airtel", "al", "allfinanz", "alsace",
+ "am", "amica", "amsterdam", "android", "ao",
+ "apartments", "app", "apple", "aq", "aquarelle",
+ "ar", "aramco", "archi", "army", "arpa",
+ "arte", "as", "asia", "associates", "at",
+ "attorney", "au", "auction", "audio", "auto",
+ "autos", "aw", "ax", "axa", "az",
+ "azure", "ba", "band", "bank", "bar",
+ "barcelona", "barclaycard", "barclays", "bargains", "bauhaus",
+ "bayern", "bb", "bbc", "bbva", "bcn",
+ "bd", "be", "beats", "beer", "bentley",
+ "berlin", "best", "bet", "bf", "bg",
+ "bh", "bharti", "bi", "bible", "bid",
+ "bike", "bing", "bingo", "bio", "biz",
+ "bj", "black", "blackfriday", "bloomberg", "blue",
+ "bm", "bms", "bmw", "bn", "bnl",
+ "bnpparibas", "bo", "boats", "bom", "bond",
+ "boo", "boots", "boutique", "br", "bradesco",
+ "bridgestone", "broker", "brother", "brussels", "bs",
+ "bt", "budapest", "build", "builders", "business",
+ "buzz", "bv", "bw", "by", "bz",
+ "bzh", "ca", "cab", "cafe", "cal",
+ "camera", "camp", "cancerresearch", "canon", "capetown",
+ "capital", "car", "caravan", "cards", "care",
+ "career", "careers", "cars", "cartier", "casa",
+ "cash", "casino", "cat", "catering", "cba",
+ "cbn", "cc", "cd", "ceb", "center",
+ "ceo", "cern", "cf", "cfa", "cfd",
+ "cg", "ch", "chanel", "channel", "chat",
+ "cheap", "chloe", "christmas", "chrome", "church",
+ "ci", "cipriani", "cisco", "citic", "city",
+ "cityeats", "ck", "cl", "claims", "cleaning",
+ "click", "clinic", "clothing", "cloud", "club",
+ "clubmed", "cm", "cn", "co", "coach",
+ "codes", "coffee", "college", "cologne", "com",
+ "commbank", "community", "company", "computer", "condos",
+ "construction", "consulting", "contractors", "cooking", "cool",
+ "coop", "corsica", "country", "coupons", "courses",
+ "cr", "credit", "creditcard", "creditunion", "cricket",
+ "crown", "crs", "cruises", "csc", "cu",
+ "cuisinella", "cv", "cw", "cx", "cy",
+ "cymru", "cyou", "cz", "dabur", "dad",
+ "dance", "date", "dating", "datsun", "day",
+ "dclk", "de", "deals", "degree", "delivery",
+ "dell", "delta", "democrat", "dental", "dentist",
+ "desi", "design", "dev", "diamonds", "diet",
+ "digital", "direct", "directory", "discount", "dj",
+ "dk", "dm", "dnp", "do", "docs",
+ "dog", "doha", "domains", "doosan", "download",
+ "drive", "durban", "dvag", "dz", "earth",
+ "eat", "ec", "edu", "education", "ee",
+ "eg", "email", "emerck", "energy", "engineer",
+ "engineering", "enterprises", "epson", "equipment", "er",
+ "erni", "es", "esq", "estate", "et",
+ "eu", "eurovision", "eus", "events", "everbank",
+ "exchange", "expert", "exposed", "express", "fage",
+ "fail", "faith", "family", "fan", "fans",
+ "farm", "fashion", "feedback", "ferrero", "fi",
+ "film", "final", "finance", "financial", "firmdale",
+ "fish", "fishing", "fit", "fitness", "fj",
+ "fk", "flights", "florist", "flowers", "flsmidth",
+ "fly", "fm", "fo", "foo", "football",
+ "forex", "forsale", "forum", "foundation", "fr",
+ "frl", "frogans", "fund", "furniture", "futbol",
+ "fyi", "ga", "gal", "gallery", "game",
+ "garden", "gb", "gbiz", "gd", "gdn",
+ "ge", "gea", "gent", "genting", "gf",
+ "gg", "ggee", "gh", "gi", "gift",
+ "gifts", "gives", "giving", "gl", "glass",
+ "gle", "global", "globo", "gm", "gmail",
+ "gmo", "gmx", "gn", "gold", "goldpoint",
+ "golf", "goo", "goog", "google", "gop",
+ "gov", "gp", "gq", "gr", "graphics",
+ "gratis", "green", "gripe", "group", "gs",
+ "gt", "gu", "gucci", "guge", "guide",
+ "guitars", "guru", "gw", "gy", "hamburg",
+ "hangout", "haus", "healthcare", "help", "here",
+ "hermes", "hiphop", "hitachi", "hiv", "hk",
+ "hm", "hn", "hockey", "holdings", "holiday",
+ "homedepot", "homes", "honda", "horse", "host",
+ "hosting", "hoteles", "hotmail", "house", "how",
+ "hr", "hsbc", "ht", "hu", "hyundai",
+ "ibm", "icbc", "ice", "icu", "id",
+ "ie", "ifm", "iinet", "il", "im",
+ "immo", "immobilien", "in", "industries", "infiniti",
+ "info", "ing", "ink", "institute", "insure",
+ "int", "international", "investments", "io", "ipiranga",
+ "iq", "ir", "irish", "is", "ist",
+ "istanbul", "it", "itau", "iwc", "jaguar",
+ "java", "jcb", "je", "jetzt", "jewelry",
+ "jlc", "jll", "jm", "jo", "jobs",
+ "joburg", "jp", "jprs", "juegos", "kaufen",
+ "kddi", "ke", "kg", "kh", "ki",
+ "kia", "kim", "kinder", "kitchen", "kiwi",
+ "km", "kn", "koeln", "komatsu", "kp",
+ "kr", "krd", "kred", "kw", "ky",
+ "kyoto", "kz", "la", "lacaixa", "lancaster",
+ "land", "landrover", "lasalle", "lat", "latrobe",
+ "law", "lawyer", "lb", "lc", "lds",
+ "lease", "leclerc", "legal", "lexus", "lgbt",
+ "li", "liaison", "lidl", "life", "lifestyle",
+ "lighting", "limited", "limo", "linde", "link",
+ "live", "lixil", "lk", "loan", "loans",
+ "lol", "london", "lotte", "lotto", "love",
+ "lr", "ls", "lt", "ltd", "ltda",
+ "lu", "lupin", "luxe", "luxury", "lv",
+ "ly", "ma", "madrid", "maif", "maison",
+ "man", "management", "mango", "market", "marketing",
+ "markets", "marriott", "mba", "mc", "md",
+ "me", "media", "meet", "melbourne", "meme",
+ "memorial", "men", "menu", "meo", "mg",
+ "mh", "miami", "microsoft", "mil", "mini",
+ "mk", "ml", "mm", "mma", "mn",
+ "mo", "mobi", "moda", "moe", "moi",
+ "mom", "monash", "money", "montblanc", "mormon",
+ "mortgage", "moscow", "motorcycles", "mov", "movie",
+ "movistar", "mp", "mq", "mr", "ms",
+ "mt", "mtn", "mtpc", "mtr", "mu",
+ "museum", "mutuelle", "mv", "mw", "mx",
+ "my", "mz", "na", "nadex", "nagoya",
+ "name", "navy", "nc", "ne", "nec",
+ "net", "netbank", "network", "neustar", "new",
+ "news", "nexus", "nf", "ng", "ngo",
+ "nhk", "ni", "nico", "ninja", "nissan",
+ "nl", "no", "nokia", "np", "nr",
+ "nra", "nrw", "ntt", "nu", "nyc",
+ "nz", "obi", "office", "okinawa", "om",
+ "omega", "one", "ong", "onl", "online",
+ "ooo", "oracle", "orange", "org", "organic",
+ "osaka", "otsuka", "ovh", "pa", "page",
+ "panerai", "paris", "partners", "parts", "party",
+ "pe", "pet", "pf", "pg", "ph",
+ "pharmacy", "philips", "photo", "photography", "photos",
+ "physio", "piaget", "pics", "pictet", "pictures",
+ "ping", "pink", "pizza", "pk", "pl",
+ "place", "play", "playstation", "plumbing", "plus",
+ "pm", "pn", "pohl", "poker", "porn",
+ "post", "pr", "praxi", "press", "pro",
+ "prod", "productions", "prof", "properties", "property",
+ "protection", "ps", "pt", "pub", "pw",
+ "py", "qa", "qpon", "quebec", "racing",
+ "re", "realtor", "realty", "recipes", "red",
+ "redstone", "rehab", "reise", "reisen", "reit",
+ "ren", "rent", "rentals", "repair", "report",
+ "republican", "rest", "restaurant", "review", "reviews",
+ "rich", "ricoh", "rio", "rip", "ro",
+ "rocher", "rocks", "rodeo", "rs", "rsvp",
+ "ru", "ruhr", "run", "rw", "rwe",
+ "ryukyu", "sa", "saarland", "sakura", "sale",
+ "samsung", "sandvik", "sandvikcoromant", "sanofi", "sap",
+ "sapo", "sarl", "saxo", "sb", "sbs",
+ "sc", "sca", "scb", "schmidt", "scholarships",
+ "school", "schule", "schwarz", "science", "scor",
+ "scot", "sd", "se", "seat", "security",
+ "seek", "sener", "services", "seven", "sew",
+ "sex", "sexy", "sg", "sh", "shiksha",
+ "shoes", "show", "shriram", "si", "singles",
+ "site", "sj", "sk", "ski", "sky",
+ "skype", "sl", "sm", "sn", "sncf",
+ "so", "soccer", "social", "software", "sohu",
+ "solar", "solutions", "sony", "soy", "space",
+ "spiegel", "spreadbetting", "sr", "srl", "st",
+ "stada", "starhub", "statoil", "stc", "stcgroup",
+ "stockholm", "studio", "study", "style", "su",
+ "sucks", "supplies", "supply", "support", "surf",
+ "surgery", "suzuki", "sv", "swatch", "swiss",
+ "sx", "sy", "sydney", "systems", "sz",
+ "taipei", "tatamotors", "tatar", "tattoo", "tax",
+ "taxi", "tc", "td", "team", "tech",
+ "technology", "tel", "telefonica", "temasek", "tennis",
+ "tf", "tg", "th", "thd", "theater",
+ "theatre", "tickets", "tienda", "tips", "tires",
+ "tirol", "tj", "tk", "tl", "tm",
+ "tn", "to", "today", "tokyo", "tools",
+ "top", "toray", "toshiba", "tours", "town",
+ "toyota", "toys", "tr", "trade", "trading",
+ "training", "travel", "trust", "tt", "tui",
+ "tv", "tw", "tz", "ua", "ubs",
+ "ug", "uk", "university", "uno", "uol",
+ "us", "uy", "uz", "va", "vacations",
+ "vana", "vc", "ve", "vegas", "ventures",
+ "versicherung", "vet", "vg", "vi", "viajes",
+ "video", "villas", "vin", "virgin", "vision",
+ "vista", "vistaprint", "viva", "vlaanderen", "vn",
+ "vodka", "vote", "voting", "voto", "voyage",
+ "vu", "wales", "walter", "wang", "watch",
+ "webcam", "website", "wed", "wedding", "weir",
+ "wf", "whoswho", "wien", "wiki", "williamhill",
+ "win", "windows", "wine", "wme", "work",
+ "works", "world", "ws", "wtc", "wtf",
+ "xbox", "xerox", "xin", "xperia", "xxx",
+ "xyz", "yachts", "yamaxun", "yandex", "ye",
+ "yodobashi", "yoga", "yokohama", "youtube", "yt",
+ "za", "zara", "zip", "zm", "zone",
+ "zuerich", "zw"
+};
+
+#endif
diff --git a/src/common/utils.c b/src/common/utils.c
index d67017a..d85eab3 100644
--- a/src/common/utils.c
+++ b/src/common/utils.c
@@ -82,6 +82,7 @@
#include "utils.h"
#include "socket.h"
#include "../codeconv.h"
+#include "tlds.h"
#define BUFFSIZE 8192
@@ -4227,35 +4228,6 @@ gchar *make_uri_string(const gchar *bp, const gchar *ep)
static GHashTable *create_domain_tab(void)
{
- static const gchar *toplvl_domains [] = {
- "museum", "aero",
- "arpa", "coop", "info", "name", "biz", "com", "edu", "gov",
- "int", "mil", "net", "org", "ac", "ad", "ae", "af", "ag",
- "ai", "al", "am", "an", "ao", "aq", "ar", "as", "at", "au",
- "aw", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi",
- "bj", "bm", "bn", "bo", "br", "bs", "bt", "bv", "bw", "by",
- "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl",
- "cm", "cn", "co", "cr", "cu", "cv", "cx", "cy", "cz", "de",
- "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er",
- "es", "et", "eu", "fi", "fj", "fk", "fm", "fo", "fr", "ga", "gd",
- "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gp", "gq",
- "gr", "gs", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr",
- "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir",
- "is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki",
- "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc",
- "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc",
- "md", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq",
- "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na",
- "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu",
- "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm",
- "pn", "pr", "ps", "pt", "pw", "py", "qa", "re", "ro", "ru",
- "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj",
- "sk", "sl", "sm", "sn", "so", "sr", "st", "sv", "sy", "sz",
- "tc", "td", "tf", "tg", "th", "tj", "tk", "tm", "tn", "to",
- "tp", "tr", "tt", "tv", "tw", "tz", "ua", "ug", "uk", "um",
- "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu",
- "wf", "ws", "ye", "yt", "yu", "za", "zm", "zw"
- };
gint n;
GHashTable *htab = g_hash_table_new(g_stricase_hash, g_stricase_equal);
commit fbfed23b5c4db507fb94df9f910bb1e2f846e2b1
Author: Ricardo Mones <ricardo at mones.org>
Date: Thu Nov 12 17:31:20 2015 +0100
Script to print IANA's TLD list as C array
diff --git a/tools/claws.get.tlds.pl b/tools/claws.get.tlds.pl
new file mode 100755
index 0000000..31aa31c
--- /dev/null
+++ b/tools/claws.get.tlds.pl
@@ -0,0 +1,55 @@
+#!/usr/bin/perl -w
+=pod
+=head1
+
+claws.get.tlds.pl - IANA TLDs online list to stdout as gchar* array.
+
+Copyright (c) 2015 Ricardo Mones <ricardo at mones.org>
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation, either version 3 of the License, or (at your
+option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program. If not, see <http://www.gnu.org/licenses/>.
+
+=cut
+use 5.012;
+use utf8;
+use LWP::Simple;
+use constant {
+ URL => "https://data.iana.org/TLD/tlds-alpha-by-domain.txt"
+};
+
+print "/*\n * This is a generated file.\n * See tools/claws.get.tlds.pl\n */\n";
+print "#ifndef __TLDS_H__\n#define __TLDS_H__\n\n";
+print "static const gchar *toplvl_domains [] = {\n\t"; # open array
+
+my $payload = get URL;
+my @lines = split /^/, $payload;
+my ($i, $j) = (0, 0);
+
+foreach (@lines) {
+ ++$i;
+ chomp;
+ if (/^#(.*)$/) { # comments
+ my $c = $1; $c =~ s/^\s+|\s+$//g;
+ print "/* $c */\n\t";
+ next;
+ }
+ next if (/^XN--.*$/); # IDNs not supported yet, see bug #1670
+ my $tld = lc $_; # list comes in upper case
+ print "\"$tld\""; ++$j;
+ print "," unless $i >= scalar @lines;
+ print "" . ($j % 5 == 0 or $i >= scalar @lines)? "\n": " ";
+ print "\t" if ($j % 5 == 0 and $i < scalar @lines);
+}
+
+print "};\n\n"; # close array
+print "#endif\n";
-----------------------------------------------------------------------
hooks/post-receive
--
Claws Mail
More information about the Commits
mailing list