<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Texte brut Car";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
span.TextebrutCar
        {mso-style-name:"Texte brut Car";
        mso-style-priority:99;
        mso-style-link:"Texte brut";
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=FR link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoPlainText><span lang=EN-US>Hi Henning,<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Instead of installing a new server, I tried to upgrade the one running the 5.0.1 level. It has the following packages installed: <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>kamailio-perl-5.0.1-1.1.x86_64<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>kamailio-5.0.1-1.1.x86_64<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>kamailio-mysql-5.0.1-1.1.x86_64<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>kamailio-snmpstats-5.0.1-1.1.x86_64<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>So I have download the 5.0.7 packages into a separate folder: kamailio-rpms_5.0.7<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>kamailio-5.0.7-1.el7.x86_64.rpm     <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>kamailio-mysql-5.0.7-1.el7.x86_64.rpm<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>kamailio-perl-5.0.7-1.el7.x86_64.rpm<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>kamailio-snmpstats-5.0.7-1.el7.x86_64.rpm<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>kamailio-ims-5.0.7-1.el7.x86_64.rpm<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>The update command “rpm -Uvh --force kamailio*” detects a dependency on the mod_perl package :<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>warning: kamailio-5.0.7-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 941fdbdd: NOKEY<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>error: Failed dependencies:<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:35.4pt'><span lang=EN-US>        mod_perl is needed by kamailio-perl-5.0.7-1.el7.x86_64<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>I try to find this mod_perl package but it does no longer exist for RedHat 7. We can find multiple articles referencing this change in RHEL.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>It seems there is an alternative way to get this module in a EPEL repository (<a href="https://huntingbears.nl/2013/12/17/no-mod_perl-in-rhel-7-and-centos-7/">https://huntingbears.nl/2013/12/17/no-mod_perl-in-rhel-7-and-centos-7/</a>).<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>It is to me a huge work to simply update my current Kamailio to 5.0.7.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Does this mod_perl change makes sense to you ? <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>Have you an idea to get rid of this dependency?<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Thank in advance for your suggestion .<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText>Cordialement.<o:p></o:p></p><p class=MsoPlainText>Patrick GINHOUX <o:p></o:p></p><p class=MsoPlainText>Unisys | +33 1 46 69 52 12 | +33 6 60 32 24 74 | patrick.ginhoux@unisys.com<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><span style='mso-fareast-language:FR'>-----Message d'origine-----<br>De : Ginhoux, Patrick <br>Envoyé : jeudi 2 août 2018 09:33<br>À : 'Henning Westerholt' <hw@kamailio.org><br>Cc : sr-users@lists.kamailio.org<br>Objet : RE: [SR-Users] kamcmd htable.reload propertiesHash problem</span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Hi Henning,<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Thanks for your review.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>As you said, that's strange behavior.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>So I'm going to upgrade to 5.0.7, the time to set up a server. I'll keep you<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>posted asap.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Cordialement.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>Patrick GINHOUX <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>Unisys | +33 1 46 69 52 12 | +33 6 60 32 24 74 | <a href="mailto:patrick.ginhoux@unisys.com"><span style='color:windowtext;text-decoration:none'>patrick.ginhoux@unisys.com</span></a><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>-----Message d'origine-----<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>De : Henning Westerholt <<a href="mailto:hw@kamailio.org"><span style='color:windowtext;text-decoration:none'>hw@kamailio.org</span></a>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>Envoyé : jeudi 2 août 2018 09:02<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>À : <a href="mailto:sr-users@lists.kamailio.org"><span style='color:windowtext;text-decoration:none'>sr-users@lists.kamailio.org</span></a><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>Cc : Ginhoux, Patrick <<a href="mailto:patrick.ginhoux@fr.unisys.com"><span style='color:windowtext;text-decoration:none'>patrick.ginhoux@fr.unisys.com</span></a>><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>Objet : Re: [SR-Users] kamcmd htable.reload propertiesHash problem<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Am Dienstag, 24. Juli 2018, 10:20:01 CEST schrieb Ginhoux, Patrick:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> I run Kamailio 5.0.1 with MariaDB database.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> There is no issue at the initialization, meaning the db is opened by<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> kamailio and the hash tables loaded from the db tables.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Hello Patrick,<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>this is strange. Normally if it can initialize correctly during startup,<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>then <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>it also should be able to use the database later on. <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>I did a quick check of the htable module in the repository. There have been<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>a <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>few fixes related to rpc commands and also a bit related to the database in <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>the last year. But I did not saw from the git logs anything like you <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>described.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Nevertheless, you should try to setup the latest 5.0 release (5.0.7) - maybe<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>on a test system and see if the error is also happening there. There should<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>be <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>no changes in database or configuration comparing to 5.0.1.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Best regards,<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Henning<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>> Example:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> # kamcmd htable.dump propertiesHash<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> [..]<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> But the htable.reload command fails:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> error: 500 - Failed to open htable db connection<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> The Kamailio log reports that it can't connect the db :<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> DEBUG: ctl [../../core/io_wait.h:380]: io_watch_add(): DBG:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> io_watch_add(0x7f68c74ab300, 10, 3, 0xdc9410), fd_no=1<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> DEBUG: ctl [io_listener.c:442]: handle_new_connect(): handle_stream read:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> new connection (1) on /var/run/kamailio//kamailio_ctl<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> DEBUG: <core> [core/sr_module.c:694]: find_mod_export_record():<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> find_export_record: found <db_bind_api> in module db_mysql<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> [/usr/lib64/kamailio/modules/db_mysql.so]<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> DEBUG: <core> [db.c:209]: db_bind_mod(): using db bind api for db_mysql<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> DEBUG: <core> [db.c:314]: db_do_init2(): connection 0x7f68cc354c10 not<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>found<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> in pool<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> DEBUG: db_mysql [km_my_con.c:98]: db_mysql_new_connection(): opening<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> connection: mysql://xxxx:xxxx@/siprouter<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> ERROR: db_mysql [km_my_con.c:124]: db_mysql_new_connection(): driver<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>error:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> Can't connect to local MySQL server through socket<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> '/var/lib/mysql/mysql.sock' (2 "No such file or directory")<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> ERROR: <core> [db.c:318]: db_do_init2(): could not add connection to the<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> pool<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> ERROR: htable [ht_db.c:92]: ht_db_open_con(): failed to connect to the<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> database<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> My local db is located at /myqdata/mysiprdb/data where is the<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>mysiprdb.sock<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> file. But the log shows that Kamailio is looking for<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> /var/lib/mysql/mysql.sock.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> Does this error make sense to you ?<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> Is it possible to fix this problem by configuration in Kamailio ?<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> My kamailio.cfg script contains :<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> # ----- htable<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> modparam("htable", "db_url", "mysql://[kamailio]/siprouter")<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> modparam("htable", "fetch_rows", 1000)<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> modparam("htable", "htable", "mbxrangeHash=>size=4;dbtable=mbxrange;")<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> modparam("htable", "htable", "abpqHash=>size=12;dbtable=abpq;")<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> modparam("htable", "htable", "zabpqHash=>size=12;dbtable=zabpq;")<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> modparam("htable", "htable", "propertiesHash=>size=4;dbtable=properties;")<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> In the /myqdata/mysiprdb/data/my.cnf, I added the following entries for<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> Kamailio:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> [kamailio]<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> socket = /myqdata/mysiprdb/data/mysiprdb.sock<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> user = siprouter<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> password = ##########<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> default-character-set = utf8<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> Thanks all for help.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> Cordialement.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> Patrick GINHOUX<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>-- <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>Henning Westerholt<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><a href="https://skalatan.de/blog/"><span style='color:windowtext;text-decoration:none'>https://skalatan.de/blog/</span></a><o:p></o:p></span></p></div></body></html>