- Status New
- Percent Complete
- Task Type Feature Request
- Category core
- Assigned To No-one
- Operating System Linux
- Severity Low
- Priority Normal
- Reported Version irssi 0.8.13
- Due in Version irssi 0.8.16
- Due Date Undecided
- Votes 0
- Private No
Attached to Project: Irssi core bugs
Opened by Enrico Scholz (ensc) - 2009-07-26
Last edited by Wouter Coekaerts (coekie) - 2010-04-06
Opened by Enrico Scholz (ensc) - 2009-07-26
Last edited by Wouter Coekaerts (coekie) - 2010-04-06
FS#691 - [PATCH] Proxy enhancements (incl. native SOCKS5 support)
These patches were reported more than a year ago to the maillist, but they were ignored there. While upgrading to 0.8.13 I had to rediff them against and provide them through this bugtracker.
0001-PROXY-implemented-native...
Sunday, 26 July 2009, 14:15 GMT
Sunday, 26 July 2009, 14:16 GMT
Sunday, 26 July 2009, 14:16 GMT
Sunday, 26 July 2009, 14:16 GMT
Monday, 10 August 2009, 08:01 GMT
Tuesday, 06 April 2010, 21:25 GMT
I've only taken a very quick look at the patches. The functionality it provides certainly seems useful.
I've got my doubts (but am still undecided) about the "container_of" usage, mostly because it seems inconsistent with how such things are handled elsewhere in irssi code.
Wednesday, 07 April 2010, 08:01 GMT
* container_of() is common style e.g. in the linux kernel and is used for class inheritance. Without it, you would have to add a private data pointer to each class, and would have to handle two memory allocations (one for the specialised class, one for the base one) where container_of() requires only one.
Wednesday, 14 April 2010, 18:56 GMT
Thursday, 15 April 2010, 19:29 GMT
Anyway, I've implemented basic http proxy support like this (see attachment)
I see your patch supports more protocols. However, it is not irssi style, so I guess it needs to be rewritten.
Any comments on what to do?
Thursday, 15 April 2010, 20:57 GMT
On first glance its seems to be very unportable; e.g. in
--- base-rec.h ---
char x;
char y;
int z;
--- foo.h ---
struct base {
#include "base-rec.h"
};
struct foo {
char a;
#include "base-rec.h"
};
--
foo::z and base::z will be on different positions relative to the ::x attribute. This means, when you cast the 'base-rec' object in 'foo' to 'base' you will access bad memory.
Thursday, 15 April 2010, 23:11 GMT
Saturday, 17 April 2010, 11:10 GMT
Because I am using irssi, I am basically willing to rewrite the whole -rec stuff in a portable way. But my experiences with this patchset shows, that I might have to wait other two years until I get a single comment about these changes. As they will touch a lot of code, it will be (too) much work to keep them in sync with upstream.
Saturday, 17 April 2010, 11:32 GMT
Tuesday, 27 April 2010, 19:24 GMT
> char a;
> #include "base-rec.h"
Irssi doesn't do it like that, the include is always the first thing in the struct.
Tuesday, 27 April 2010, 19:27 GMT