Salut !
Je suis en train de programmer un serveur SOCKS compatible versions 4, 4A et 5.
Pour l'instant, j'ai fait tout mes tests sur Firefox : ça marche bien (v4 et v5).
Par contre, dès que j'utilise FileZilla ou Internet Explorer, ça plante...
J'ai pas étudié Filezilla en profondeur, mais l'erreur qu'il m'affiche est que le socks ne répond pas (ce qui est faux d'après mes logs)
Pour IE : la connexion à l'hote demandée marche, mais quand je lance mon relais (ce que demande IE, je l'envoie à l'hote et vice versa), le log m'indique qu'absolument aucun paquet n'est reçu et IE est en attente de "réponse".
J'ai étudié mes paquets reçus dans la phase de préparation de la connexion SOCKS, et il n'y a pas de requetes HTTP avec (au cas où tout serait envoyé en un bloc)
Voilà, donc si quelqu'un a déjà travaillé sur les SOCKS, j'aimerai savoir s'il a une idée du problème...
Autre chose : sous Firefox, j'ai remarqué que mes téléchargements plantaient (coupure du chargement au bout de 1 ou 2 sec, voire moins)
Dans mon relais (là où se passe le dl), j'utilise des sockets non bloquantes, et un select pour vérifier s'il y a des données. La coupure se fait toute seule, avec select() qui retourne -1 (SOCKET_ERROR), errno = 0, WSAGetLastError = 10022 (WSAEINVAL).
Je ne comprend pas pourquoi ce WSAEINVAL : j'utilise 2 paramètres : le fd_set et un timeval, sachant que ma socket dans fd_set est valide, et que d'après la doc, la structure timeval n'est pas modifiée... Autrement dit, pq ça marche une fois et pas deux ?
Je vais essayer de peaufiner mes logs, je vous donnerai plus de détails plus tard
Merci