Post Reply 
"Recovering" Proxomitron's Source Code...
Jan. 03, 2018, 02:50 AM
Post: #16
RE: "Recovering" Proxomitron's Source Code...
Happy new year to all! Cheers

I haven't finished, but that doesn't mean I've stopped either. I've gone through most of the SSL code (I'm analysing the version I'm currently using, which means my patches are included, for better or worse), and a lot more of the network stuff. I know where the matching engine is, arguably the most important part, but I'll leave it for last. Smile!

Another minor bug I discovered --- I haven't checked the previous versions to see if it was something introduced in 4.5j, but from what I can see, if you use Bypass mode, the tray icon tooltip should have "(Bypassed)" added to the end, but because of this bug, it doesn't.
Add Thank You Quote this message in a reply
[-] The following 6 users say Thank You to amy for this post:
usr, Styx, soccerfan, mizzmona, Callahan, Kye-U
Jan. 15, 2018, 07:49 PM
Post: #17
RE: "Recovering" Proxomitron's Source Code...
(Jan. 03, 2018 02:50 AM)amy Wrote:  Another minor bug I discovered ... the tray icon tooltip should have "(Bypassed)" added to the end, but because of this bug, it doesn't.
[Image: giphy.gif]

But good to hear you'll keep going Thumbs Up
Add Thank You Quote this message in a reply
Jan. 17, 2018, 11:49 AM
Post: #18
RE: "Recovering" Proxomitron's Source Code...
Went through a lot of miscellaneous stuff and now looking at the pattern matching / replacing, perhaps sooner than I expected, but then again, I think I'm getting close to the end. 70-80% now.
Add Thank You Quote this message in a reply
[-] The following 5 users say Thank You to amy for this post:
usr, mizzmona, Styx, Callahan, Kye-U
Jan. 24, 2018, 11:57 AM
Post: #19
RE: "Recovering" Proxomitron's Source Code...
Another undocumented "feature" (and likely not a bug, since there's explicitly code to do it) I discovered: when used in the match expression, \h disregards everything but the last 2 components of the hostname; for example, some.sub.domain.example.com and another.sub.domain.example.com will both match \h , as will foo.example.com and example.com itself.

On the other hand, \h in the replacement expression will be replaced with the full hostname.
Add Thank You Quote this message in a reply
[-] The following 7 users say Thank You to amy for this post:
Styx, mizzmona, usr, Callahan, soccerfan, ProxRocks, Kye-U
Feb. 14, 2018, 05:02 AM
Post: #20
RE: "Recovering" Proxomitron's Source Code...
There is another bug/deliberate "patch" I discovered: there is an internal function which attempts to match the extension of the URL path against a hardcoded list, and presumably decides to filter or not based on that; but the function never matches, due to always clearing the first character of the string it tries to match. As far as I can tell, this only affects behaviour in two places which won't normally be noticed: [1] removing If-Modified-Since and If-None-Match headers, and [2] deciding whether to use "killed.gif or "killed.html" on $KILL(). Very odd.

Estimated progress now at >85%. What's left is a lot of the buffering and Zlib code, and some miscellaneous UI stuff.

Even after going through the first pass, I'll need to make another pass to fix up everything I missed/was unsure of the first time, then try to compile it and finally release. I am targeting May 1, an important date you might recognise. Smile!
Add Thank You Quote this message in a reply
[-] The following 8 users say Thank You to amy for this post:
mizzmona, soccerfan, usr, ProxRocks, Kye-U, chatterer, Styx, Callahan
Feb. 21, 2018, 12:36 PM
Post: #21
RE: "Recovering" Proxomitron's Source Code...
Two more bugs found --- one around compressed pages detection, and another to do with how blocklist URL hashing is done.

In more positive news, all the functions (except one which appears to be never used) have now been identified and analysed in the first pass! Time to begin the second pass... where I clean up the code, renaming stuff I wasn't sure of before, and try to compile the result. Smile!
Add Thank You Quote this message in a reply
[-] The following 6 users say Thank You to amy for this post:
usr, mizzmona, soccerfan, chatterer, Styx, Callahan
Mar. 07, 2018, 12:36 PM
Post: #22
RE: "Recovering" Proxomitron's Source Code...
Inspecting the code where it parses the URL of the request, I saw something strange and noticed this in the documentation:
Quote:\a Includes any anchor text from a URL (anything following a "#")
...but that part of the URL (officially known as "fragment") is never sent to the server (and thus Proxomitron never sees it).
Add Thank You Quote this message in a reply
[-] The following 2 users say Thank You to amy for this post:
mizzmona, Callahan
Mar. 07, 2018, 04:36 PM (This post was last modified: Mar. 07, 2018 07:06 PM by mizzmona.)
Post: #23
RE: "Recovering" Proxomitron's Source Code...
(Mar. 07, 2018 12:36 PM)amy Wrote:  Inspecting the code where it parses the URL of the request, I saw something strange and noticed this in the documentation:
Quote:\a Includes any anchor text from a URL (anything following a "#")
...but that part of the URL (officially known as "fragment") is never sent to the server (and thus Proxomitron never sees it).

We knew it wasn't working, but didn't know the why. Now it makes sense. (Feel pretty silly not knowing about the behavior of that fragment.)

Fascinating stuff. Thanks again for pursuing this.

Oh, and say...

If you don't mind...
Whenever convenient...
"foo shoe moo"...?
(or was it "moo shoe foo"...)

It's been driving me nuts for ages. =)
Add Thank You Quote this message in a reply
[-] The following 2 users say Thank You to mizzmona for this post:
Callahan, Styx
Mar. 19, 2018, 11:39 AM
Post: #24
RE: "Recovering" Proxomitron's Source Code...
Still going through the code and cleaning it up, mostly renaming things now that I understand it more. Another interesting fact: named matching variables reuses a lot of the same code as headers --- probably because they're also name-value pairs.

(Mar. 07, 2018 04:36 PM)mizzmona Wrote:  Oh, and say...

If you don't mind...
Whenever convenient...
"foo shoe moo"...?
(or was it "moo shoe foo"...)

It's been driving me nuts for ages. =)
I came across that too... from what I can see, it's just something left over from an experiment with tooltips that Scott might've been planning to add to the Web Page Filters dialog. Not really a hidden feature or Easter Egg or anything quite as interesting:
Code:
case WM_NOTIFY:
  if(((NMHDR*)lp)->code == TTN_GETDISPINFOA)
   ((NMTTDISPINFOA*)lp)->lpszText = "foo\r\nshoe\r\nmoo";
  return lp;
Add Thank You Quote this message in a reply
[-] The following 4 users say Thank You to amy for this post:
Styx, mizzmona, Callahan, usr
Mar. 26, 2018, 11:38 AM
Post: #25
RE: "Recovering" Proxomitron's Source Code...
Something you may have noticed --- the page filters dialog lets you Edit, New, Dupe, Cut, and Paste, but why does the header filters dialog only have Edit, New, Dupe, and Delete? I don't know why, but there's no reason Cut and Paste couldn't be added to the header filters dialog too. That's one of the "new features" which should be easy to add once I finish going through the source.

It's hard to state progress now but I'm probably around halfway through the second pass.
Add Thank You Quote this message in a reply
[-] The following 5 users say Thank You to amy for this post:
usr, mizzmona, soccerfan, Callahan, Styx
Mar. 26, 2018, 11:10 PM
Post: #26
RE: "Recovering" Proxomitron's Source Code...
(Mar. 26, 2018 11:38 AM)amy Wrote:  Something you may have noticed --- the page filters dialog lets you Edit, New, Dupe, Cut, and Paste, but why does the header filters dialog only have Edit, New, Dupe, and Delete? I don't know why, but there's no reason Cut and Paste couldn't be added to the header filters dialog too. [...]

The page filters list is user sortable, and the Cut and Paste buttons are the tools used to reorder those filters; however, the header filters are automatically sorted, so Cut and Paste buttons aren't included for that list as they wouldn't be serving the same function.

Import/Export as buttons maybe. (Not that I'm asking.)
Add Thank You Quote this message in a reply
[-] The following 3 users say Thank You to mizzmona for this post:
Callahan, Styx, amy
Apr. 09, 2018, 11:29 AM
Post: #27
RE: "Recovering" Proxomitron's Source Code...
Second pass is done, a third pass was made to fix any accidentally-introduced errors (as opposed to "intentional" bugs Wink), and... it compiles! Applause

Now I just have to go through all the functions again and make sure nothing is obviously off (there's still a lot of compiler warnings), before I actually try to test out this "reincarnated" Proxomitron. There's still some things I'm unsure of, around the matching/replacement (arguably most important part.)

May 1 is still a realistic goal.
Add Thank You Quote this message in a reply
[-] The following 8 users say Thank You to amy for this post:
mizzmona, chatterer, soccerfan, usr, ProxRocks, Styx, Callahan, prxymouse
Apr. 30, 2018, 04:26 AM (This post was last modified: Apr. 30, 2018 04:27 AM by amy.)
Post: #28
RE: "Recovering" Proxomitron's Source Code...
One day before the target and it's nearly there --- it compiles and most of the warnings are gone, but still crashes with SSL and somewhere inside page and incoming header filtering. Outgoing headers and basic non-filtered requests work. Unfortunately I seem to have made a bunch of little mistakes that will take a little longer to debug... Sad

I'll keep working on it and when it's usable, use it personally for a week (fixing any further bugs found) before releasing it here. No doubt y'all will find more bugs I introduced, and then eventually it'll be as good as, and then better than, the original Proxomitron. My tentative name for it is "Proxomitron Reborn".
Add Thank You Quote this message in a reply
[-] The following 9 users say Thank You to amy for this post:
soccerfan, mizzmona, usr, chatterer, Styx, Callahan, zoltan, ProxRocks, prxymouse
May. 01, 2018, 04:43 PM (This post was last modified: May. 01, 2018 07:32 PM by mizzmona.)
Post: #29
RE: "Recovering" Proxomitron's Source Code...
(Apr. 30, 2018 04:26 AM)amy Wrote:  [...] My tentative name for it is "Proxomitron Reborn".
Tentative?

Well, if you're still trying on names...here's a little wordplay that would also acknowledge you (and any future collaborators): "Proxomitron Recast"

Reborn ... "Regenerated"... "Regeneration"...

"Next Generation" (I know, I know...but hey)

Just tossing it out there.

"Reborn" is excellent, though. I just have a hard time resisting this sort of thing. (pay me no mind)

-M
[edited]
Add Thank You Quote this message in a reply
[-] The following 1 user says Thank You to mizzmona for this post:
Callahan
May. 01, 2018, 10:42 PM
Post: #30
RE: "Recovering" Proxomitron's Source Code...
All good news ... just to add, I happen to like 'Proxomitron Reborn' !!!
...
Add Thank You Quote this message in a reply
[-] The following 1 user says Thank You to Callahan for this post:
mizzmona
Post Reply 


Forum Jump: