<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.eggheads.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mortmann</id>
	<title>EggWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eggheads.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mortmann"/>
	<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php/Special:Contributions/Mortmann"/>
	<updated>2026-05-29T18:17:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=174</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=174"/>
		<updated>2024-05-04T21:01:33Z</updated>

		<summary type="html">&lt;p&gt;Mortmann: /* Tcl Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
[[Http_async| Writing a Tcl that can access http websites asynchronous and gets the title of it]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;br /&gt;
&lt;br /&gt;
[[EggModules|What is the difference between the IRC, Server, and Channel modules?]]&lt;/div&gt;</summary>
		<author><name>Mortmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Http_async&amp;diff=173</id>
		<title>Http async</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Http_async&amp;diff=173"/>
		<updated>2024-05-04T20:58:53Z</updated>

		<summary type="html">&lt;p&gt;Mortmann: Created page with &amp;quot;The ::http::geturl command blocks until the operation completes, unless the -command option specifies a callback that is invoked when the HTTP transaction completes.  &amp;lt;pre&amp;gt; package require http  proc httpCallback {token} {   regexp {(?i)&amp;lt;title&amp;gt;([^&amp;lt;&amp;gt;]+)} [http::data $token] -&amp;gt; title   http::cleanup $token   puts &amp;quot;Title was \&amp;quot;$title\&amp;quot;&amp;quot; }  set token [::http::geturl http://netbsd.org -timeout 10000 -command httpCallback] &amp;lt;pre&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The ::http::geturl command blocks until the operation completes, unless the -command option specifies a callback that is invoked when the HTTP transaction completes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package require http&lt;br /&gt;
&lt;br /&gt;
proc httpCallback {token} {&lt;br /&gt;
  regexp {(?i)&amp;lt;title&amp;gt;([^&amp;lt;&amp;gt;]+)} [http::data $token] -&amp;gt; title&lt;br /&gt;
  http::cleanup $token&lt;br /&gt;
  puts &amp;quot;Title was \&amp;quot;$title\&amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
set token [::http::geturl http://netbsd.org -timeout 10000 -command httpCallback]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mortmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=TclHTTPS&amp;diff=172</id>
		<title>TclHTTPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=TclHTTPS&amp;diff=172"/>
		<updated>2024-05-04T20:38:17Z</updated>

		<summary type="html">&lt;p&gt;Mortmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The http package is a common package required by Tcl scripts that need to connect to websites. However, the &amp;quot;default&amp;quot; commands don't make it easy to understand how to connect to an https website instead of an http website, and will often generate an error if the user tries to do so. Below is an example of how to do so.&lt;br /&gt;
&lt;br /&gt;
NOTE: You have to install both the http AND tls Tcl libraries on the host for this to work- on Debian-based systems, this is done by an administrator running &amp;lt;code&amp;gt;sudo apt-get install tcl-tls&amp;lt;/code&amp;gt;. The http package comes standard with Tcl; you shouldn't need to install it separately.&lt;br /&gt;
&lt;br /&gt;
To connect to a webpage and display its contents, you can use the following code example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package require http&lt;br /&gt;
package require tls&lt;br /&gt;
&lt;br /&gt;
http::register https 443 [list ::tls::socket -autoservername true]&lt;br /&gt;
catch {set req [http::geturl https://my.secure.site/ -timeout 10000]} error    &lt;br /&gt;
set status [http::status $req]&lt;br /&gt;
if {$status != &amp;quot;ok&amp;quot;} {&lt;br /&gt;
  putlog &amp;quot;HTTP request error: $error&amp;quot;&lt;br /&gt;
  return&lt;br /&gt;
}&lt;br /&gt;
putlog [http::data $req]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
see also https://tcl.tk/man/tcl8.6/TclCmd/http.htm#M50&lt;/div&gt;</summary>
		<author><name>Mortmann</name></author>
	</entry>
</feed>