diff options
author | Rickard Green <[email protected]> | 2019-03-15 15:15:20 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2019-03-18 14:35:00 +0100 |
commit | e645b6b4a5d01406416aa40a0fb822e8993c45bd (patch) | |
tree | 1cf82e6e232f5ba1ff653efecfe17b619ca5946a /lib/erl_interface | |
parent | 620ac3e68c5bc8b36143965fcf2892a07dc005c4 (diff) | |
download | otp-e645b6b4a5d01406416aa40a0fb822e8993c45bd.tar.gz otp-e645b6b4a5d01406416aa40a0fb822e8993c45bd.tar.bz2 otp-e645b6b4a5d01406416aa40a0fb822e8993c45bd.zip |
Fix initialization of erl_call
Previously erl_call relied on the implicit initialization made
of the ei-lib if no explicit initialization had been done. This
implicit initialization was utterly broken and was removed in
erl_interface-3.11 (OTP 21.3) since it has been documented for
a very long time that an explicit initialization is required.
Diffstat (limited to 'lib/erl_interface')
-rw-r--r-- | lib/erl_interface/src/prog/erl_call.c | 54 |
1 files changed, 2 insertions, 52 deletions
diff --git a/lib/erl_interface/src/prog/erl_call.c b/lib/erl_interface/src/prog/erl_call.c index 52ad6885e8..ab91157035 100644 --- a/lib/erl_interface/src/prog/erl_call.c +++ b/lib/erl_interface/src/prog/erl_call.c @@ -88,10 +88,6 @@ #include "ei_resolve.h" #include "erl_start.h" /* FIXME remove dependency */ -#ifdef __WIN32__ -static void initWinSock(void); -#endif - /* * Some nice global variables * (I don't think "nice" is the right word actually... -gordon) @@ -157,6 +153,8 @@ int erl_call(int argc, char **argv) char* progname = argv[0]; ei_cnode ec; + ei_init(); + /* Get the command line options */ while (i < argc) { if (argv[i][0] != '-') { @@ -317,14 +315,6 @@ int erl_call(int argc, char **argv) struct in_addr h_ipadr; char* ct; -#ifdef __WIN32__ - /* - * FIXME Extremly ugly, but needed to get ei_gethostbyname() below - * to work. - */ - initWinSock(); -#endif - /* gethostname requires len to be max(hostname) + 1 */ if (gethostname(h_hostname, EI_MAXHOSTNAMELEN+1) < 0) { fprintf(stderr,"erl_call: failed to get host name: %d\n", errno); @@ -857,46 +847,6 @@ static void usage(const char *progname) { exit(0); } - -/*************************************************************************** - * - * OS specific functions - * - ***************************************************************************/ - -#ifdef __WIN32__ -/* - * FIXME This should not be here. This is a quick fix to make erl_call - * work at all on Windows NT. - */ -static void initWinSock(void) -{ - WORD wVersionRequested; - WSADATA wsaData; - int err; - static int initialized; - - wVersionRequested = MAKEWORD(1, 1); - if (!initialized) { - initialized = 1; - err = WSAStartup(wVersionRequested, &wsaData); - - if (err != 0) { - fprintf(stderr,"erl_call: " - "Can't initialize windows sockets: %d\n", err); - } - - if ( LOBYTE( wsaData.wVersion ) != 1 || - HIBYTE( wsaData.wVersion ) != 1 ) { - fprintf(stderr,"erl_call: This version of " - "windows sockets not supported\n"); - WSACleanup(); - } - } -} -#endif - - /*************************************************************************** * * Utility functions |