First, let me define a few names I've given to a few aspects of proxied file transfers. When an AOL proxy is to be used, either the person sending or the person receiving can request that the proxy be used. When the sender requests that it be used, I call it a "Stage 1" proxied transfer, since it has been decided that the proxy will be used before the request is ever sent to the receiver. When the receiver asks that the proxy be used, I call it a "Stage 2" proxied file transfer. In all, there are 4 cases to be handled: sending and receiving files, and a stage 1 and 2 proxy request for each of those.
That said, I had already managed to perform a stage 1 proxied file receive via OSCAR. Tonight, I successfully sent a file via a stage 1 proxy. Part of this involved adding a couple of TLV blocks to the file transfer request SNAC. These were types 0x0016 and 0x0017. They are nothing more than the bitwise complement of types 0x002 and 0x0005, which are the IP address and external port TLV blocks, respectively. Why anyone would design a protocol quite like that is beyond me, but those blocks appear to be necessary for the official AIM client to accept the request. Anyway, now it's on to finish up stage 2 transfers, then get some documentation out on how everything works.
