<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://panoptic.com/mediawiki/aolserver/index.php?action=history&amp;feed=atom&amp;title=Ns_register_proc</id>
	<title>Ns register proc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://panoptic.com/mediawiki/aolserver/index.php?action=history&amp;feed=atom&amp;title=Ns_register_proc"/>
	<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;action=history"/>
	<updated>2026-04-25T21:25:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=5696&amp;oldid=prev</id>
		<title>Dossy: Reverted edits by HelenArchibald (Talk) to last revision by Umbrella13</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=5696&amp;oldid=prev"/>
		<updated>2010-03-15T14:19:30Z</updated>

		<summary type="html">&lt;p&gt;Reverted edits by &lt;a href=&quot;/wiki/aolserver/Special:Contributions/HelenArchibald&quot; title=&quot;Special:Contributions/HelenArchibald&quot;&gt;HelenArchibald&lt;/a&gt; (&lt;a href=&quot;/mediawiki/aolserver/index.php?title=User_talk:HelenArchibald&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:HelenArchibald (page does not exist)&quot;&gt;Talk&lt;/a&gt;) to last revision by &lt;a href=&quot;/mediawiki/aolserver/index.php?title=User:Umbrella13&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Umbrella13 (page does not exist)&quot;&gt;Umbrella13&lt;/a&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 14:19, 15 March 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l27&quot; &gt;Line 27:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 27:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     ns_register_proc GET /foo/bar/hmm Cproc&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     ns_register_proc GET /foo/bar/hmm Cproc&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Aproc will be called when the requested URL is exactly /foo/bar.  Bproc will be called when the requested URL is below /foo/bar, provided there is not already another procedure registered to be called for that exact URL or for an URL with a closer match.  Cproc (not Bproc) will be called when the requested URL is equal to or below /foo/bar/hmm.  Syntax for the registered procedure The conn (connection) argument is optional for procedures registered by '''ns_register_proc''' if the procedure has 0 or 1 arguments (not including conn).  The following examples show the variations that can be used in this case:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Aproc will be called when the requested URL is exactly /foo/bar.  Bproc will be called when the requested URL is below /foo/bar, provided there is not already another procedure registered to be called for that exact URL or for an URL with a closer match.  Cproc (not Bproc) will be called when the requested URL is equal to or below /foo/bar/hmm.  Syntax for the registered procedure The conn (connection) argument is optional for procedures registered by '''ns_register_proc''' if the procedure has 0 or 1 arguments (not including conn).  The following &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://www.umbrellaonline.com real estate] &lt;/ins&gt;examples show the variations that can be used in this case:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     ns_register_proc GET /noargs noargs&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     ns_register_proc GET /noargs noargs&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=5305&amp;oldid=prev</id>
		<title>Gustafn at 19:54, 7 February 2009</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=5305&amp;oldid=prev"/>
		<updated>2009-02-07T19:54:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:54, 7 February 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l66&quot; &gt;Line 66:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 66:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: [[ns_unregister_proc]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: [[ns_unregister_proc]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Core Tcl API]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Category:Documentation]] &lt;/ins&gt;[[Category:Core Tcl API]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Gustafn</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=4439&amp;oldid=prev</id>
		<title>Dossy at 00:46, 2 December 2005</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=4439&amp;oldid=prev"/>
		<updated>2005-12-02T00:46:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 00:46, 2 December 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{manpage|ns_proc}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{manpage|ns_proc}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''NAME'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''NAME'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=4322&amp;oldid=prev</id>
		<title>Dossy: remove duplicate copy text, cleanup formatting, add category link</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=4322&amp;oldid=prev"/>
		<updated>2005-10-13T04:04:50Z</updated>

		<summary type="html">&lt;p&gt;remove duplicate copy text, cleanup formatting, add category link&lt;/p&gt;
&lt;a href=&quot;https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;amp;diff=4322&amp;amp;oldid=4321&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=4321&amp;oldid=prev</id>
		<title>67.53.128.200 at 22:29, 12 October 2005</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=4321&amp;oldid=prev"/>
		<updated>2005-10-12T22:29:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 22:29, 12 October 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Man page: http://aolserver.com/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;docs&lt;/del&gt;/tcl/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ns_register_proc&lt;/del&gt;.html&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Man page: http://aolserver.com/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;man/4.0&lt;/ins&gt;/tcl/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ns_proc&lt;/ins&gt;.html&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>67.53.128.200</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=2892&amp;oldid=prev</id>
		<title>WikiSysop: imported from WiKit id 186</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=2892&amp;oldid=prev"/>
		<updated>2005-07-14T20:10:17Z</updated>

		<summary type="html">&lt;p&gt;imported from WiKit id 186&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Man page: http://aolserver.com/docs/tcl/ns_register_proc.html&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
:       ns_register_proc - Register a procedure for a method/URL combination&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
:       '''ns_register_proc''' ''?-noinherit?'' method URL myproc ''?args?''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
:              '''ns_register_proc'''  registers  the procname to handle&lt;br /&gt;
:              the  specified  method/URL  combination.  When  the&lt;br /&gt;
:              server  gets  a matching request, it calls procname&lt;br /&gt;
:              with the connection id and any arguments  specified&lt;br /&gt;
:              here.&lt;br /&gt;
&lt;br /&gt;
:              If  ''-noinherit'' is specified, the requested URL must&lt;br /&gt;
:              match the specified URL exactly.  For  example,  if&lt;br /&gt;
:              the   URL   specified   with   '''ns_register_proc'''  is&lt;br /&gt;
:              /foo/bar, procname will not be  called  unless  the&lt;br /&gt;
:              requested URL is exactly /foo/bar.&lt;br /&gt;
&lt;br /&gt;
:              If  ''-noinherit''  is not specified, the requested URL&lt;br /&gt;
:              can match the specified URL or any  URL  below  it.&lt;br /&gt;
:              For  example,  if  the URL specified with '''ns_register_proc''' &lt;br /&gt;
:              is /foo/bar, procname will be  called  for&lt;br /&gt;
:              /foo/bar,  /foo/bar/hmm,  and  any  other URL below&lt;br /&gt;
:              /foo/bar, provided there  is  not  already  another&lt;br /&gt;
:              procedure  registered  for that exact URL or for an&lt;br /&gt;
:              URL with a closer match.&lt;br /&gt;
&lt;br /&gt;
:              Note that you must use a glob-style matching  character  &lt;br /&gt;
:              if  you want inheritance for file names. For&lt;br /&gt;
:              example,   if   you   want   /foo/bar   to    match&lt;br /&gt;
:              /foo/bar.html,   you   must  use:  &lt;br /&gt;
&lt;br /&gt;
                      ns_register_proc /foo/bar*&lt;br /&gt;
&lt;br /&gt;
:              You can  register  two  procedures  for  any  given&lt;br /&gt;
:              method/URL  combination by calling '''ns_register_proc'''&lt;br /&gt;
:              once with the ''-noinherit'' flag set and once  without&lt;br /&gt;
:              it.  Only  one of the procedures will be called for&lt;br /&gt;
:              any given request, depending on whether the URL was&lt;br /&gt;
:              an exact match or not. For example:&lt;br /&gt;
&lt;br /&gt;
                     ns_register_proc -noinherit GET /foo/bar Aproc&lt;br /&gt;
                     ns_register_proc GET /foo/bar Bproc&lt;br /&gt;
                     ns_register_proc GET /foo/bar/hmm Cproc&lt;br /&gt;
&lt;br /&gt;
:              Aproc  will  be  called  when  the requested URL is&lt;br /&gt;
:              exactly /foo/bar. Bproc will  be  called  when  the&lt;br /&gt;
:              requested  URL is below /foo/bar, provided there is&lt;br /&gt;
:              not already  another  procedure  registered  to  be&lt;br /&gt;
:              called  for  that  exact  URL  or for an URL with a&lt;br /&gt;
:              closer match. Cproc (not Bproc) will be called when&lt;br /&gt;
:              the   requested   URL   is   equal   to   or  below&lt;br /&gt;
:              /foo/bar/hmm.  Syntax for the registered  procedure&lt;br /&gt;
:              The conn (connection) argument is optional for procedures &lt;br /&gt;
:              registered by ns_register_proc if the  procedure  has  &lt;br /&gt;
:              0 or 1 arguments (not including conn).&lt;br /&gt;
:              The following examples show the variations that can&lt;br /&gt;
:              be used in this case:&lt;br /&gt;
&lt;br /&gt;
                     ns_register_proc GET /noargs noargs&lt;br /&gt;
                     ns_register_proc GET /context context fnord&lt;br /&gt;
                     ns_register_proc GET /conncontext conncontext greeblev&lt;br /&gt;
 &lt;br /&gt;
                     proc noargs { } {&lt;br /&gt;
                         ns_returnnotice 200 &amp;quot;noargs&amp;quot;&lt;br /&gt;
                     } ;# noargs&lt;br /&gt;
 &lt;br /&gt;
                     proc context { context } {&lt;br /&gt;
                         ns_returnnotice 200 &amp;quot;context is $context&amp;quot;&lt;br /&gt;
                     } ;# context&lt;br /&gt;
 &lt;br /&gt;
                     proc conncontext { conn context } {&lt;br /&gt;
                         ns_returnnotice 200 &amp;quot;conncontext is $context&amp;quot;&lt;br /&gt;
                     } ;# conncontext&lt;br /&gt;
&lt;br /&gt;
:              The conn (connection) argument is required for procedures &lt;br /&gt;
:              registered by '''ns_register_proc''' if the  procedure  &lt;br /&gt;
:              has  2  or  more  arguments  (not including&lt;br /&gt;
:              conn). The conn argument will be  filled  automatically  &lt;br /&gt;
:              with  the  connection information. The first&lt;br /&gt;
:              argument following conn will always take the  value&lt;br /&gt;
:              supplied  by  '''ns_register_proc''', if there is one, or&lt;br /&gt;
:              an empty value. All other arguments must  supply  a&lt;br /&gt;
:              default  value.  The  following  examples  show the&lt;br /&gt;
:              variations that can be used in this case:&lt;br /&gt;
&lt;br /&gt;
                     ns_register_proc GET /twoargs twoargs fnord&lt;br /&gt;
                     ns_register_proc GET /threeargs threeargs fnord fjord&lt;br /&gt;
 &lt;br /&gt;
                     ns_register_proc -noinherit GET /foo/bar Aproc&lt;br /&gt;
                     ns_register_proc GET /foo/bar Bproc&lt;br /&gt;
                     ns_register_proc GET /foo/bar/hmm Cproc&lt;br /&gt;
&lt;br /&gt;
:              Aproc  will  be  called  when  the requested URL is&lt;br /&gt;
:              exactly /foo/bar. Bproc will  be  called  when  the&lt;br /&gt;
:              requested  URL is below /foo/bar, provided there is&lt;br /&gt;
:              not already  another  procedure  registered  to  be&lt;br /&gt;
:              called  for  that  exact  URL  or for an URL with a&lt;br /&gt;
:              closer match. Cproc (not Bproc) will be called when&lt;br /&gt;
:              the   requested   URL   is   equal   to   or  below&lt;br /&gt;
:              /foo/bar/hmm.  Syntax for the registered  procedure&lt;br /&gt;
:              The conn (connection) argument is optional for procedures &lt;br /&gt;
:              registered by '''ns_register_proc''' if the  procedure  &lt;br /&gt;
:              has  0 or 1 arguments (not including conn).&lt;br /&gt;
:              The following examples show the variations that can&lt;br /&gt;
:              be used in this case:&lt;br /&gt;
&lt;br /&gt;
                     ns_register_proc GET /noargs noargs&lt;br /&gt;
                     ns_register_proc GET /context context fnord&lt;br /&gt;
                     ns_register_proc GET /conncontext conncontext greeble&lt;br /&gt;
  &lt;br /&gt;
                     proc noargs { } {&lt;br /&gt;
                         ns_returnnotice 200 &amp;quot;noargs&amp;quot;&lt;br /&gt;
                     } ;# noargs&lt;br /&gt;
 &lt;br /&gt;
                     proc context { context } {&lt;br /&gt;
                         ns_returnnotice 200 &amp;quot;context is $context&amp;quot;&lt;br /&gt;
                     } ;# context&lt;br /&gt;
 &lt;br /&gt;
                     proc conncontext { conn context } {&lt;br /&gt;
                         ns_returnnotice 200 &amp;quot;conncontext is $context&amp;quot;&lt;br /&gt;
                     } ;# conncontext&lt;br /&gt;
&lt;br /&gt;
:              The conn (connection) argument is required for procedures &lt;br /&gt;
:              registered by ns_register_proc if the  procedure  has  2  &lt;br /&gt;
:              or  more  arguments  (not including&lt;br /&gt;
:              conn). The conn argument will be  filled  automatically  &lt;br /&gt;
:              with  the  connection information. The first&lt;br /&gt;
:              argument following conn will always take the  value&lt;br /&gt;
:              supplied  by  ns_register_proc, if there is one, or&lt;br /&gt;
:              an empty value. All other arguments must  supply  a&lt;br /&gt;
:              default  value.  The  following  examples  show the&lt;br /&gt;
:              variations that can be used in this case:&lt;br /&gt;
&lt;br /&gt;
                     ns_register_proc GET /twoargs twoargs fnord&lt;br /&gt;
                     ns_register_proc GET /threeargs threeargs fnord fjord&lt;br /&gt;
 &lt;br /&gt;
                     proc twoargs { conn context { greeble bork } } {&lt;br /&gt;
                         # Do stuff...&lt;br /&gt;
                     }&lt;br /&gt;
 &lt;br /&gt;
                     proc threeargs { conn context {greeble bork } { hoover quark } {&lt;br /&gt;
                         # Do stuff...&lt;br /&gt;
                     }&lt;br /&gt;
&lt;br /&gt;
:              When a GET of /twoargs is requested, the conn argument  &lt;br /&gt;
:              will  be  filled  automatically,  the context&lt;br /&gt;
:              argument will be assigned &amp;quot;fnord&amp;quot; and  the  greeble&lt;br /&gt;
:              argument will be assigned the default value &amp;quot;bork&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:              When a GET of /threeargs  is  requested,  the  conn&lt;br /&gt;
:              argument  will be filled automatically, the context&lt;br /&gt;
:              argument will be assigned &amp;quot;fnord&amp;quot; and  the  greeble&lt;br /&gt;
:              argument  will  be assigned &amp;quot;fjord&amp;quot;, and the hoover&lt;br /&gt;
:              argument  will  be  assigned  the   default   value&lt;br /&gt;
:              &amp;quot;quark&amp;quot;.&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
</feed>