WSAStartup is called from assuan_sock_init.
And I believe that an application should call assuan_sock_init (when it uses assuan sock API afterwards), instead of calling WSAStartup by itself.
But IIUC, I found discrepancies in:
* dirmngr-client:
- dirmngr/dirmngr-client.c: Calling WSAStartup
* dirmngr
- No call of assuan_sock_init
- dirmngr/dirmngr.c: Call init_common_subsystems (which calls WSAStartup)
- dirmngr/http.c: Calling WSAStartup
* gpg, gpgsm, tools/*
- No call of assuan_sock_init
I think that calling WSAStartup from _init_common_subsystem should be removed and an application should call assuan_sock_init.
I think that correct executable does:
* gpg-agent
- agent/gpg-agent.c: Call init_common_subsystems **and** assuan_sock_init
* keyboxd
- kbx/keyboxd.c: Call init_common_subsystems **and** assuan_sock_init
* scdaemon:
- scd/scdaemon.c: Call init_common_subsystems **and** assuan_sock_init