2010-11-12 3 views
2

J'écris un serveur avec API OpenSSL. Je veux réutiliser le port déjà utilisé.Comment réutiliser un port lié avec OpenSSL api?

Je peux le faire dans la programmation de la prise en appelant

setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); 

avant d'appeler

bind(sockfd, ...); 

Mais comment réutiliser le port de programmation dans OpenSSL ?

J'utilise

bio = BIO_new_ssl(ctx, 0); 
BIO_get_ssl(bio, &ssl); 
SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY); 
abio = BIO_new_accept(server_port); 
BIO_set_accept_bios(abio, bio); 
BIO_do_accept(abio) 

pour configurer ma connexion OpenSSL Server.

Existe-t-il des fonctions telles que setsockopt() qui peut faire un BIO * réutiliser le port?

Merci!

Répondre

3

Vous pouvez utiliser BIO_set_bind_mode:

BIO_set_bind_mode(abio, BIO_BIND_REUSEADDR); 
+0

Dois-je appeler BIO_set_bind_mode() avant BIO_new_accept()? – Celebi

+0

@Celebi: Vous ne pouvez pas, parce que vous devez l'appeler sur le «BIO» accepter lui-même, qui est créé par 'BIO_new_accept()'. Vous pouvez l'appeler n'importe quand entre l'acceptation de 'BIO' a été créé et le premier appel' BIO_do_accept() '. – caf

Questions connexes