Advertisement
Guest User

Untitled

a guest
Dec 6th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.68 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. #include "../include/TYPES.h"
  5. #include <sys/ipc.h>
  6. #include <sys/msg.h>
  7.  
  8. struct Message message;
  9.  
  10. long int msg_to_receive;
  11.  
  12. int main()
  13. {
  14.     (void) fprintf(stderr,"Server is Running\n");
  15.     START: ;
  16.  
  17.     int msgQid = msgget((key_t)1234, 0666 | IPC_CREAT);
  18.     msg_to_receive = 0;
  19.  
  20.  
  21.     if(msgQid == -1) {
  22.         exit(EXIT_FAILURE);
  23.     }
  24.  
  25.    //(void) fprintf(stderr,"msgget: msgget succeeded: msgQid = %d\n",msgQid);
  26.  
  27.    bool running = true;
  28.    bool waiting = true;
  29.  
  30.  
  31.  
  32.     while(running)
  33.     {
  34.         if(msgrcv(msgQid, (void *)&message, sizeof(message),PIN,0) == -1)
  35.         {
  36.             perror("msgrcv failed receive pinMessage");
  37.             exit(1);
  38.         }
  39.         if(message.messageType == PIN)
  40.         {
  41.         (void) fprintf(stderr,"Server received PIN message\n");
  42.         //  GET VALID/INVALID MESSAGE FROM DB
  43.         message.messageType = VALIDATE;
  44.        
  45.             // Send validate message to DB
  46.             if(msgsnd(msgQid, &message, sizeof(message), 0) < 0)
  47.             {
  48.                 perror("msgsnd: failed VALIDATE message");
  49.                 exit(1);
  50.             }
  51.  
  52.         (void) fprintf(stderr,"Server sent VALIDATE message\n");
  53.  
  54.         while(waiting)
  55.         {
  56.              if(msgrcv(msgQid, (void *)&message, sizeof(message),-4,0) == -1)
  57.                  {
  58.                      perror("msgrcv failed receive pinMessage");
  59.                      exit(1);
  60.                  }
  61.          
  62.          if(message.messageType == NOTOK)
  63.          {
  64.             (void) fprintf(stderr,"You Fucked up\n");
  65.          }
  66.          else
  67.          {
  68.             (void) fprintf(stderr,"Access Granted\n");
  69.          }
  70.         waiting = false;
  71.  
  72.         }
  73.  
  74.  
  75.  
  76.         }
  77.  
  78.  
  79.     }
  80.  
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement