Ejemplo n.º 1
0
void CALLBACK StartupTimerProc(HWND hwnd, UINT msg, UINT timer, DWORD dwTime)
{
   /* See if we've timed out */
   timeout += BEACON_INTERVAL;
   debug(("In timer proc\n"));
   if (timeout >= BEACON_TIMEOUT)
   {
      Logoff();
      ClientError(hInst, hMain, IDS_CONNECTERROR);
      return;
   }

   /* Spew at server again */
   WriteServer((char *) client_string1, INITSTR_LENGTH);
}
Ejemplo n.º 2
0
/* 
 * StartupInit:  Send startup string, and wait for string from server.
 *   final_state is the state we should end up in if the resynchronization succeeds.
 *   This should be STATE_LOGIN if we are just connecting to the server or if we 
 *   try to resync in login mode, and STATE_GAME if we are trying to resync in game mode.
 */
void StartupInit(int final_state)
{
   dest_state = final_state;
   pos = 0;
   timeout = 0;

   /* Set timer to keep writing initial string to server */
   WriteServer((char *) client_string1, INITSTR_LENGTH);
   timer_id = SetTimer(NULL, 0, BEACON_INTERVAL, StartupTimerProc);
   if (timer_id == 0)
   {
      ClientError(hInst, hMain, IDS_NOTIMERS);
      return;
   }
}
Ejemplo n.º 3
0
int IOWrite( int writehandle, char *buff, int buff_len )
{
    my_file     *p;
    int         index;
    int         written;

//  if( !MayRelinquishControl ) return( -1 );
    index = writehandle - FIRST_HANDLE;
    if( index < 0 || index >= NUM_FILES || Files[ index ].file_type != FILE_SERVER ) {
        BadFile();
    }
    p = &Files[ index ];
    written = WriteServer( p->handle, p->seekpos, buff, buff_len );
    if( written != buff_len ) {
        written = ErrorCode();
    }
    return( written );
}
Ejemplo n.º 4
0
/*
 * AddCharsStartup:  We got some stuff from the server; see what it is.
 */
void AddCharsStartup(char *message, int len)
{
   int i;
   Bool done = False;

   for (i=0; i < len; i++)
   {
      /* If character doesn't match code, start over */
      if (server_string[pos] != (unsigned char) message[i])
      {
	 pos = 0;
	 continue;
      }
      pos++;

      /* If we reach end of server string, win */
      if (pos == INITSTR_LENGTH)
      {
	 done = True;
	 break;
      }
   }

   if (!done)
      return;

   debug(("Got response from server\n"));

   /* We found server's code string.  Send response and go into correct mode. */
   AbortStartupTimer();
   WriteServer((char *) client_string2, INITSTR_LENGTH);
   
   switch (dest_state)
   {
   case STATE_LOGIN:
      MainSetState(STATE_LOGIN);
      break;

   case STATE_GAME:
      /* We're already in game state, so don't do MainSetState--just get new game data */
      ResetUserData();
      break;
   }
}
Ejemplo n.º 5
0
Archivo: migcom.c Proyecto: Prajna/mach
void
main(int argc, char **argv)
{
    FILE *uheader, *server, *user;
    FILE *iheader, *sheader;

    set_program_name("mig");
    parseArgs(argc, argv);
    init_global();
    init_type();

    LookNormal();
    (void) yyparse();

    if (errors > 0)
	exit(1);

    more_global();

    uheader = myfopen(UserHeaderFileName, "w");
    if (!UserFilePrefix)
	user = myfopen(UserFileName, "w");
    server = myfopen(ServerFileName, "w");
    if (ServerHeaderFileName)
	sheader = myfopen(ServerHeaderFileName, "w");
    if (IsKernelServer)
    {
	iheader = myfopen(InternalHeaderFileName, "w");
    }

    if (BeVerbose)
    {
	printf("Writing %s ... ", UserHeaderFileName);
	fflush(stdout);
    }
    WriteUserHeader(uheader, StatementList);
    fclose(uheader);
    if (ServerHeaderFileName)
    {
	if (BeVerbose)
	{
	    printf ("done.\nWriting %s ...", ServerHeaderFileName);
	    fflush (stdout);
	}
	WriteServerHeader(sheader, StatementList);
	fclose(sheader);
    }
    if (IsKernelServer)
    {
	if (BeVerbose)
	{
	    printf("done.\nWriting %s ... ", InternalHeaderFileName);
	    fflush(stdout);
	}
	WriteInternalHeader(iheader, StatementList);
	fclose(iheader);
    }
    if (UserFilePrefix)
    {
	if (BeVerbose)
	{
	    printf("done.\nWriting individual user files ... ");
	    fflush(stdout);
	}
	WriteUserIndividual(StatementList);
    }
    else
    {
	if (BeVerbose)
	{
	    printf("done.\nWriting %s ... ", UserFileName);
	    fflush(stdout);
	}
	WriteUser(user, StatementList);
	fclose(user);
    }
    if (BeVerbose)
    {
	printf("done.\nWriting %s ... ", ServerFileName);
	fflush(stdout);
    }
    WriteServer(server, StatementList);
    fclose(server);
    if (BeVerbose)
	printf("done.\n");

    exit(0);
}