From: Chris R. <cro...@di...> - 2005-05-25 11:30:15
|
Robert McQueen wrote: > Mark Doliner wrote: > >>I should point out that gaim_proxy_connect is used for normal connections as >>well as proxied connections. The function name is a holdover from the libfaim >>version, as far as I know. >> >>gaim_proxy_connect will connect to the given host on the given port using the >>proxy setting specified in your preferences (this can be GAIM_PROXY_SOCKS5 or >>GAIM_PROXY_NONE). > > I'm certainly aware of this - I said the connections go through it so > that the TCP stream can be set up over a proxy if necessary. However > there are no UDP proxies that I'm aware of, so unless someone turns up > and tells us about one, mutilating the TCP connection code to support > UDP connections is totally gratuitous. Not to mention trying to fit a > square peg in a round hole - even if a UDP proxy existed, it should be > added alongside the TCP code, not by trying to pretend UDP is stateful. Right. I totally agree. While it would be possible to modify the existing code to make a UDP "connection," it would be complicated. Trying to get read(2)/write(2) to "do the right thing" given a non-stream protocol would be a long drawn-out nightmare, I suspect. This isn't an issue unless the connection/proxy code does reading and writing on it's own, but I assume at least that it can. I've started working on my own network code inside of the prpl. I need to figure out how to hand things to back to the gaim core event engine during connection, and after connection, so that I get notified when things need to be done. But, I assume that will all be doable once I figure it out. Sadly, the existing prpl's shipped with gaim appear to be mostly TCP, and use the gaim_proxy_connect() method, so I don't have any good examples to look at. Does anyone have any suggestions or guidance on doing the connection establishment myself, but still allowing gaim to process anything else it needs to using the event engine? I'll just dig into the code and see what I find. :-) - Chris |