<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to patches</title><link href="https://sourceforge.net/p/ntlmaps/patches/" rel="alternate"/><link href="https://sourceforge.net/p/ntlmaps/patches/feed.atom" rel="self"/><id>https://sourceforge.net/p/ntlmaps/patches/</id><updated>2008-10-20T17:02:36Z</updated><subtitle>Recent changes to patches</subtitle><entry><title>distutils + rpm packaging + config file lookup</title><link href="https://sourceforge.net/p/ntlmaps/patches/9/" rel="alternate"/><published>2008-10-20T17:02:36Z</published><updated>2008-10-20T17:02:36Z</updated><author><name>Matt Domsch</name><uri>https://sourceforge.net/u/mdomsch/</uri></author><id>https://sourceforge.neteb90a86b7bd0110d9ab193593fb445c2913e3427</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Several patches to make ntlmaps more like a normal python app, packagable, and installable into /usr/bin/, with the module code in the python site-lib directory.&lt;/p&gt;
&lt;p&gt;Matt Domsch (11):&lt;br /&gt;
rename main.py to ntlmaps so we can put it in /usr/bin&lt;br /&gt;
Move __init__.py into lib/&lt;br /&gt;
initial distutils setup.py&lt;br /&gt;
finish moving __init__.py&lt;br /&gt;
rename lib/ to ntlmaps/, move ntlmaps script to scripts/, rename server.cfg to ntlmaps.conf&lt;br /&gt;
fix up __init__ exports, put config file in /etc/ntlmaps/&lt;br /&gt;
fallback search order for config file&lt;br /&gt;
cleanup now-unneeded use of ntlmaps_dir and configFileDir&lt;br /&gt;
add ntlmaps.spec&lt;br /&gt;
remove #!/usr/bin/python from __init__.py&lt;br /&gt;
use dos2unix on doc files at build time&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Set SO_REUSEADDR on server socket</title><link href="https://sourceforge.net/p/ntlmaps/patches/8/" rel="alternate"/><published>2008-03-28T09:19:36Z</published><updated>2008-03-28T09:19:36Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net8e6c2a5be7ab3c64d07e2c920ee2f788b89ad626</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;NTLMAPS does not set SO_REUSEADDR when creating the server socket, so you have to wait for TIME_WAIT status to expire before restarting it.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;The attached patch allows you to restart it immediately.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>fix 400 errors when using SVN with NTLMaps</title><link href="https://sourceforge.net/p/ntlmaps/patches/7/" rel="alternate"/><published>2008-03-13T14:37:26Z</published><updated>2008-03-13T14:37:26Z</updated><author><name>anatoly techtonik</name><uri>https://sourceforge.net/u/techtonik/</uri></author><id>https://sourceforge.net62e3caccd7ea18c1d6c89c8888ca44c882f14ea0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;NTLMaps 0.9.9.0.1 is unable to handle extended HTTP methods that include content payload like PROPFIND, REPORT etc. This breaks outgoing packets and causes 400 error with SVN.&lt;/p&gt;
&lt;p&gt;The patch fixes that.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Basic proxy authentication</title><link href="https://sourceforge.net/p/ntlmaps/patches/6/" rel="alternate"/><published>2007-04-25T07:31:42Z</published><updated>2007-04-25T07:31:42Z</updated><author><name>Sai Deep</name><uri>https://sourceforge.net/u/userid-1529419/</uri></author><id>https://sourceforge.netb0227ad5ebb99ff6bb025442d192b5b18e2fac29</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;There were several bugs in the basic authentication part of the program. I've fixed most of them and am attaching the resultant file.&lt;/p&gt;
&lt;p&gt;People who wish to use this can just replace the basic_auth.py with the file attached (after making a backup first!) and restart the program.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Use password hashes rather than plain text passwords.</title><link href="https://sourceforge.net/p/ntlmaps/patches/5/" rel="alternate"/><published>2006-10-09T14:23:04Z</published><updated>2006-10-09T14:23:04Z</updated><author><name>Richard Quadling</name><uri>https://sourceforge.net/u/razorsedgeuk/</uri></author><id>https://sourceforge.net4216ad13f317552bcad45c0929a82b8474f3742e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This patch is allows you to use password hashes rather&lt;br /&gt;
than the password being stored in plain text in the&lt;br /&gt;
server.cfg (or equivalent) file.&lt;/p&gt;
&lt;p&gt;The patch is mainly in server.py where the hashes are&lt;br /&gt;
generated (normally).&lt;/p&gt;
&lt;p&gt;If they exist in the server.cfg file then these are&lt;br /&gt;
used instead. Both must exist. They are not verified in&lt;br /&gt;
any way, so make sure you enter them correctly.&lt;/p&gt;
&lt;p&gt;As an aid to this, there is also a new program called&lt;br /&gt;
hashes.py.&lt;/p&gt;
&lt;p&gt;This is run at the command line. I'm on windows, and&lt;br /&gt;
.py files are handled by the Python binary. You may&lt;br /&gt;
have to do something like /usr/bin/Python ./hashes.py&lt;br /&gt;
for *ix platforms. Or something else entirely.&lt;/p&gt;
&lt;p&gt;The program accepts a single paramater. This is the&lt;br /&gt;
plain text password you want to generate the hashes for.&lt;/p&gt;
&lt;p&gt;e.g.&lt;/p&gt;
&lt;p&gt;hashes.py MyPassword&lt;/p&gt;
&lt;p&gt;This outputs ...&lt;/p&gt;
&lt;p&gt;Set LM_HASHED_PW to dKyZykDe1CDcGnPmzqZ+xQAAAAAA&lt;/p&gt;
&lt;p&gt;Set NT_HASHED_PW to 8SxBgIPAXjp954WC5h9lLQAAAAAA&lt;/p&gt;
&lt;p&gt;Using those odd looking strings, you can set them into&lt;br /&gt;
the server.cfg file.&lt;/p&gt;
&lt;p&gt;The server.cfg file has also been patched to provide&lt;br /&gt;
you with a space to enter them.&lt;/p&gt;
&lt;p&gt;If you don't want to run the patch, then further&lt;br /&gt;
details will be available at &lt;a href="http://rquadling.php1h.com" rel="nofollow"&gt;http://rquadling.php1h.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks for reading.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Richard Quadling.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Data not flushed to client</title><link href="https://sourceforge.net/p/ntlmaps/patches/4/" rel="alternate"/><published>2006-09-06T15:15:10Z</published><updated>2006-09-06T15:15:10Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.netae510f0bdcdb3320341f67838efc6cd4992ab046</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Running with Lynx on Cygwin (Python 2.4.3) the data&lt;br /&gt;
doesn't appear to get flushed to the client. Attached&lt;br /&gt;
patch fixed it for me.&lt;/p&gt;
&lt;p&gt;Same happened with Lynx running on Linux (also Python&lt;br /&gt;
2.4.3)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>detach from console</title><link href="https://sourceforge.net/p/ntlmaps/patches/3/" rel="alternate"/><published>2005-06-28T07:11:44Z</published><updated>2005-06-28T07:11:44Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net221c4fd0a7707bb87b33ba313f711ca15e38cf4e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I have used ntlmaps a fair bit and it always annoyed me &lt;br /&gt;
having a console window occupied with it not doing &lt;br /&gt;
much after I have typed in a password. The other day I &lt;br /&gt;
have tried to make it detach itself from the console after &lt;br /&gt;
receiving the password and it worked well. You may &lt;br /&gt;
want to consider adding it as a feature. There are &lt;br /&gt;
problems however. Under cygwin python I was getting dll &lt;br /&gt;
errors until I installed rebase package and &lt;br /&gt;
issued 'rebaseall' command. After that it works fine. The &lt;br /&gt;
program doesn't work at all under python.org python &lt;br /&gt;
2.4.1 I have installed. I have had to include a check for &lt;br /&gt;
the presence of os.fork() to account for that. I didn't test &lt;br /&gt;
it under ASPN Python but I would say it works since the &lt;br /&gt;
daemon code comes from their recipes.&lt;/p&gt;
&lt;p&gt;Eugene.&lt;br /&gt;
ugn@hotmail.com&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>CONNECT not working in direct mode</title><link href="https://sourceforge.net/p/ntlmaps/patches/2/" rel="alternate"/><published>2005-06-03T22:43:19Z</published><updated>2005-06-03T22:43:19Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net10617ef6286f6b1190904b54ed5e16899b63285d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;When in direct mode (without any parent proxy),&lt;br /&gt;
https:// is not working.&lt;br /&gt;
There is no support for CONNECT request in direct &lt;br /&gt;
mode.&lt;br /&gt;
And seems never been.&lt;br /&gt;
Here is a patch to implement this feature.&lt;/p&gt;
&lt;p&gt;walt at newmail dot ru&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Implment PARENT_SKIP_FOR_INTERNAL</title><link href="https://sourceforge.net/p/ntlmaps/patches/1/" rel="alternate"/><published>2005-05-22T22:34:43Z</published><updated>2005-05-22T22:34:43Z</updated><author><name>Paul</name><uri>https://sourceforge.net/u/paul-sf/</uri></author><id>https://sourceforge.net4bf188ee4cd6ee2bdcc7d3426e270945caabdfd4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Relating to the feature request I asked for.&lt;br /&gt;
PARENT_SKIP_FOR_INTERNAL was in server.cfg for 0.9.9.3&lt;br /&gt;
but not implemented.&lt;br /&gt;
I did a quick implementation which works ok for me.&lt;br /&gt;
the following is a diff -u of the change.&lt;br /&gt;
Basically added a new can_connect() helper function and&lt;br /&gt;
call from within determine_mode().&lt;/p&gt;
&lt;p&gt;--- /home/paul/ntlmaps-0.9.9.3/lib/proxy_client.py  &lt;br /&gt;
2005-02-23 22:41:14.000000000 +1300&lt;br /&gt;
+++ lib/proxy_client.py 2005-05-23 10:29:34.170776864 +1200&lt;br /&gt;
@@ -780,18 +780,36 @@&lt;br /&gt;
self.close_rserver()&lt;/p&gt;
&lt;p&gt;#-----------------------------------------------------------------------&lt;br /&gt;
+    def can_connect(self, host):&lt;br /&gt;
+        try:&lt;br /&gt;
+            s = socket.socket(socket.AF_INET,&lt;br /&gt;
socket.SOCK_STREAM)&lt;br /&gt;
+            rs,rsp =&lt;br /&gt;
self.client_head_obj.get_http_server()&lt;br /&gt;
+            s.connect((rs,rsp))&lt;br /&gt;
+            #print 'connected'&lt;br /&gt;
+            s.close()&lt;br /&gt;
+            return True&lt;br /&gt;
+        except:&lt;br /&gt;
+            #print 'no host'&lt;br /&gt;
+            return False&lt;br /&gt;
+&lt;br /&gt;
+ &lt;br /&gt;
#-----------------------------------------------------------------------&lt;br /&gt;
def determine_mode(self):&lt;br /&gt;
if self.config['GENERAL']['PARENT_PROXY']:&lt;br /&gt;
-            if&lt;br /&gt;
self.config['GENERAL']['HOSTS_TO_BYPASS_PARENT_PROXY']:&lt;br /&gt;
+            if&lt;br /&gt;
self.config['GENERAL']['HOSTS_TO_BYPASS_PARENT_PROXY']&lt;br /&gt;
or self.config['GENERAL']['PARENT_SKIP_FOR_INTERNAL']:&lt;br /&gt;
try:&lt;br /&gt;
host =&lt;br /&gt;
self.client_head_obj.get_param_values('Host')&lt;br /&gt;
-                    if host:&lt;br /&gt;
-                        if host[0] in&lt;br /&gt;
self.config['GENERAL']['HOSTS_TO_BYPASS_PARENT_PROXY']:&lt;br /&gt;
-                            self.move_to_www_mode()&lt;br /&gt;
+                    #print 'determine: %s' %&lt;br /&gt;
(self.config['GENERAL']['PARENT_SKIP_FOR_INTERNAL'])&lt;br /&gt;
+                    if&lt;br /&gt;
self.config['GENERAL']['PARENT_SKIP_FOR_INTERNAL'] and&lt;br /&gt;
self.can_connect(host):&lt;br /&gt;
+                        #print "direct connect"&lt;br /&gt;
+                        self.move_to_www_mode()&lt;br /&gt;
+                    else:&lt;br /&gt;
+                        if host:&lt;br /&gt;
+                            if host[0] in&lt;br /&gt;
self.config['GENERAL']['HOSTS_TO_BYPASS_PARENT_PROXY']:&lt;br /&gt;
+                                self.move_to_www_mode()&lt;br /&gt;
+                            else:&lt;br /&gt;
+                                self.move_to_proxy_mode()&lt;br /&gt;
else:&lt;br /&gt;
self.move_to_proxy_mode()&lt;br /&gt;
-                    else:&lt;br /&gt;
-                        self.move_to_proxy_mode()&lt;br /&gt;
except KeyError:&lt;br /&gt;
self.move_to_proxy_mode()&lt;br /&gt;
else:&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>