여러 스레드에서 여러 개의 SSL 서버를 실행 중입니다. openssl C++에서 잠금 메소드를 정의하는 데 문제가 있습니까? 전체 애플리케이션 또는 스레드 당 여러 개의 잠금/정리 메소드를 정의해야합니까?CRYPTO_thread_setup을 사용하는 다중 SSL 환경
1
A
답변
1
초기화 한 번 기본 응용 프로그램 스레드 라이브러리, 여기 같은 : https://github.com/openssl/openssl/blob/master/crypto/threads/mttest.c#L331 또는 여기 샘플에서 같은 일 : https://github.com/openssl/openssl/tree/master/crypto/threads
1
내가 전체 응용 프로그램 또는 즉 당 여러 개의 스레드에 대해 하나의 잠금/정리 방법을 정의 하는가?
OpenSSL은 이 아닙니다.은 스레드 로컬 저장소를 사용합니다. 따라서 이 아닌은 스레드별로 잠금을 설치하려고 시도해야합니다.
응용 프로그램과 관련된 잠금을 제공해야합니다.
다음은 관련 소스입니다.
$ grep -R CRYPTO_thread_setup *
crypto/threads/th-lock.c: * CRYPTO_thread_setup();
crypto/threads/th-lock.c:void CRYPTO_thread_setup(void)
...
그리고 여기가 (다른 플랫폼에 대한 그들 중 몇 가지가 있습니다) 설정의 한 예입니다 :
static HANDLE *lock_cs;
...
void CRYPTO_thread_setup(void)
{
int i;
lock_cs=OPENSSL_malloc(CRYPTO_num_locks() * sizeof(HANDLE));
for (i=0; i<CRYPTO_num_locks(); i++)
{
lock_cs[i]=CreateMutex(NULL,FALSE,NULL);
}
CRYPTO_set_locking_callback((void (*)(int,int,char *,int))win32_locking_callback);
/* id callback defined */
return(1);
}
사항은 응용 프로그램에 걸쳐 사용되는 잠금 장치의 한 세트가있다.
관련 문제
- 1. 다중 사용자 다중 환경
- 2. 다중 사용자 환경 다루기
- 3. GWT의 다중 페이지 환경
- 4. Apache - 다중 SSL 문제
- 5. JMeter의 다중 SSL 인증서
- 6. 다중 도메인 SSL?
- 7. 다중 도메인은,와 SSL
- 8. iis가있는 다중 SSL
- 9. Nginx에서 Rails 용 다중 스테이징 환경
- 10. 다중 스레드 환경 문제
- 11. SItecore의 다중 QA 환경
- 12. 다중 서버 환경
- 13. .net에서 다중 스레드 환경 디버깅
- 14. ASP.NET MVC 및 다중 환경
- 15. ColdFusion 다중 도메인 SSL을 사용하는 SSL 웹 서비스 사용
- 16. 목록 및 다중 스레드 환경
- 17. 다중 또는 와일드 카드 SSL?
- 18. Tomcat 8.5에 다중 SSL 구성
- 19. 다중 SSL 연결 풀 만들기
- 20. Postgres - python 다중 SSL 연결
- 21. nupin에서 서브 디렉토리를 사용하는 drupal의 다중 사이트 환경
- 22. ASP.Net MVC 2의 다중 환경
- 23. Android의 다중 계층 환경 설정?
- 24. UrbanCode 다중 환경 승인자 배포
- 25. 이상적인 다중 서버 램프 환경
- 26. 탄성 검색 다중 노드 환경
- 27. Android에서 HttpClient를 사용하는 SSL
- 28. SoftLayer의 Object Storage - 다중 환경 지원 방법
- 29. RabbitMQ 및 Celery가있는 다중 서버 환경
- 30. Jenkins의 원격 배포 용 작업 - 다중 환경