// file dumsockc.c
#ifdef OS_WIN32
WSADATA wsaData;
SOCKET dmclientSocket;
SOCKADDR_IN sockClientAddr;
LPHOSTENT lpHostEnt;
#endif
#ifdef OS_UNIX
int dmclientSocket;
struct sockaddr_in sockClientAddr;
struct hostent *lpHostEnt;
#endif
int serverport = 0;
int socloc_port;
char serverhost[256];
char d_log_file[256];
void main(void)
{
char *comm;
int done = FALSE;
if ((comm = malloc(DM_MAXCOMMAND + 1)) == NULL)
{
printf("dumsockc:insufficient memory to run program\n");
exit(0);
}
if (!d_initialize())
{
free(comm);
exit(0);
}
while(!done)
{
printf("dumsockc/%s[%d]> ", serverhost, serverport);
gets(comm);
if (!do_comm(comm))
done = TRUE;
}
free(comm);
#ifdef OS_WIN32
WSACleanup();
#endif
printf("exit dumsockc\n");
exit(0);
}
int d_initialize(void)
{
char *thelist;
int ret;
#ifdef OS_WIN32
if (WSAStartup(WINSOCK_VERSION, &wsaData))
{
WSACleanup();
return(FALSE);
}
#endif
if ((ret = sloc_initialize()) != SL_OK)
{
#ifdef OS_WIN32
WSACleanup();
#endif
return(FALSE);
}
if ((ret = sloc_find(DM_SERVICE_NAME, serverhost, &serverport,
(char *)NULL)) != SL_OK)
{
#ifdef OS_WIN32
WSACleanup();
#endif
return(FALSE);
}
if ((thelist = (char *)malloc(DM_MAXCOMMAND)) == (char *)NULL)
{
#ifdef OS_WIN32
WSACleanup();
#endif
return(FALSE);
}
if ((ret = sloc_config_get_list(thelist)) != SL_OK)
{
free(thelist);
#ifdef OS_WIN32
WSACleanup();
#endif
return(FALSE);
}
if ((ret = sl_config_put_list(thelist)) != SL_OK)
{
free(thelist);
#ifdef OS_WIN32
WSACleanup();
#endif
return(FALSE);
}
sloc_get_active_socloc(thelist, &socloc_port);
free(thelist);
strcpy(d_log_file, DUM_LOG_FILE);
return(TRUE);
}