Changeset 165

Show
Ignore:
Timestamp:
04/04/13 10:37:36 (9 years ago)
Author:
andreu
Message:

filters readed by all renetcolSMP process

Location:
branches/renetcolSMP/src
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • branches/renetcolSMP/src/renetcolSMP2.c

    r164 r165  
    390390  msgType myMsg; 
    391391  char *msgTextIndex; 
    392   unsigned short tplMsgType = 12; 
     392  unsigned short tplMsgType = 14; 
    393393  pid_t myPID; 
    394394 
  • branches/renetcolSMP/src/renetcolSMP3.c

    r164 r165  
    390390  msgType myMsg; 
    391391  char *msgTextIndex; 
    392   unsigned short tplMsgType = 12; 
     392  unsigned short tplMsgType = 15; 
    393393  pid_t myPID; 
    394394 
  • branches/renetcolSMP/src/renetcolSMP4.c

    r164 r165  
    388388  msgType myMsg; 
    389389  char *msgTextIndex; 
    390   unsigned short tplMsgType = 12; 
     390  unsigned short tplMsgType = 16; 
    391391  pid_t myPID; 
    392392 
  • branches/renetcolSMP/src/renetcolSender.c

    r154 r165  
    11/* 
    22 * File: renetcolSender.c 
    3  *  
    4  * Authors: ANDREU Francois-Xavier  
    53 * 
    6  * Copyright (C) 2005-2011 GIP RENATER  
     4 * Authors: ANDREU Francois-Xavier 
     5 * 
     6 * Copyright (C) 2005-2011 GIP RENATER 
    77 */ 
    88 
    9 /*  This file is part of renetcol.  
     9/*  This file is part of renetcol. 
    1010 * 
    1111 *  renetcol is free software; you can redistribute it and/or modify 
     
    2626#include "renetcolSender.h" 
    2727 
    28 key_t myKey = 0; 
    29 int myQueue = 0; 
    30 msgType myMsg; 
     28key_t myKeySMP1 = 0; 
     29int myQueueSMP1 = 0; 
     30key_t myKeySMP2 = 0; 
     31int myQueueSMP2 = 0; 
     32key_t myKeySMP3 = 0; 
     33int myQueueSMP3 = 0; 
     34key_t myKeySMP4 = 0; 
     35int myQueueSMP4 = 0; 
     36 
     37msgType myMsgSMP1; 
     38msgType myMsgSMP2; 
     39msgType myMsgSMP3; 
     40msgType myMsgSMP4; 
    3141long type; 
    3242RulesPtr rulesListPtr; 
    33 char *keyId; 
     43char *keyIdSMP1; 
     44char *keyIdSMP2; 
     45char *keyIdSMP3; 
     46char *keyIdSMP4; 
    3447char *remoteHost; 
    3548int i=0; 
    3649int j=0; 
    37 unsigned char *myText; 
     50unsigned char *myTextSMP1; 
     51unsigned char *myTextSMP2; 
     52unsigned char *myTextSMP3; 
     53unsigned char *myTextSMP4; 
    3854unsigned char buffer2[2]; 
    3955unsigned char buffer4[4]; 
     
    4460/* 
    4561 *   subsstr 
    46  *    
     62 * 
    4763 *   substitute '_' char in a string with ' ' 
    4864 */ 
     
    147163      /* NEW RULE */ 
    148164      if (sscanf(buffer, "%s %s\n", 
    149                 port,  
    150                 filters) == 0) {  
     165                port, 
     166                filters) == 0) { 
    151167syslog (LOG_ERR, "reception de : %s, %s et %s", buffer, port, filters); 
    152168        syslog (LOG_ERR, "error in rule syntax: %s", filters); 
     
    164180        fprintf(ruleFile, "N %s\n", host); 
    165181        fprintf(ruleFile, "O socket %s %s\n", host, port); 
    166         fprintf(ruleFile, "%s\n", filters);  
     182        fprintf(ruleFile, "%s\n", filters); 
    167183        fclose(ruleFile); 
    168184      } 
     
    184200  int listenSock; 
    185201  int returnCode; 
    186   pid_t renetcolPID = 0; 
     202  pid_t renetcolSMP1PID = 0; 
     203  pid_t renetcolSMP2PID = 0; 
     204  pid_t renetcolSMP3PID = 0; 
     205  pid_t renetcolSMP4PID = 0; 
    187206  FILE *pidFile; 
    188207  unsigned pid; 
     
    201220  } 
    202221  listenAddressLen = result->ai_addrlen; 
    203   memcpy(&listenAddress, result->ai_addr, (size_t) listenAddressLen);    
     222  memcpy(&listenAddress, result->ai_addr, (size_t) listenAddressLen); 
    204223  listenSock = socket(result->ai_family, result->ai_socktype, 
    205224                      result->ai_protocol); 
     
    210229  } 
    211230  freeaddrinfo(result); 
    212    
     231 
    213232  { 
    214233    int on = 1; 
     
    221240    return -1; 
    222241  } 
    223   for (;;) {             
     242  for (;;) { 
    224243    int clientSock; 
    225244    struct sockaddr_storage clientAddress; 
    226245    socklen_t clientAddressLen; 
    227246    char host[NI_MAXHOST]; 
    228      
     247 
    229248    memset(&clientAddress, 0, sizeof clientAddress); 
    230249    clientAddressLen = (socklen_t) sizeof clientAddress; 
    231      
    232     if ((clientSock =  
     250 
     251    if ((clientSock = 
    233252         accept(listenSock, (struct sockaddr *) 
    234253                &clientAddress, 
     
    244263                    clientAddressLen, host, sizeof host, 
    245264                    NULL, (size_t) 0, NI_NUMERICHOST) == 0) { 
    246       syslog(LOG_INFO,  
     265      syslog(LOG_INFO, 
    247266             "New connection from %s", host); 
    248267    } 
     
    252271      close (listenSock); 
    253272      todo(clientSock, remoteHost); 
    254       if (!(pidFile = fopen("/var/run/renetcol.pid", "r"))) { 
    255         syslog (LOG_ERR, "error during /var/run/renetcol.pid opening : %s\n", 
    256                 strerror(errno)); 
    257         exit(1); 
    258       } else { 
    259         fgets(line, 256, pidFile); 
    260         if (sscanf(line, "%u", &pid)==0) 
    261           syslog(LOG_ERR,"sscanf : %s", strerror(errno)); 
    262         renetcolPID = pid; 
    263       } 
    264       fclose(pidFile); 
    265       if (renetcolPID==0){ 
    266         syslog(LOG_INFO, "PID null"); 
     273      /* get PID SMP1 */ 
     274      if (!(pidFile = fopen("/var/run/renetcolSMP1.pid", "r"))) { 
     275              syslog (LOG_ERR, "error during /var/run/renetcolSMP1.pid opening : %s\n", 
     276                    strerror(errno)); 
     277              exit(1); 
     278      } else { 
     279              fgets(line, 256, pidFile); 
     280              if (sscanf(line, "%u", &pid)==0) 
     281                syslog(LOG_ERR,"sscanf : %s", strerror(errno)); 
     282        renetcolSMP1PID = pid; 
     283      } 
     284      fclose(pidFile); 
     285      if (renetcolSMP1PID==0){ 
     286              syslog(LOG_INFO, "PID SMP1 null"); 
    267287      }else{ 
    268         if (kill(renetcolPID, SIGUSR1)<0) 
    269           syslog(LOG_ERR, "I can't send SIGUSR1 to renetcol process : %s", 
    270                  strerror(errno)); 
     288              if (kill(renetcolSMP1PID, SIGUSR1)<0) 
     289                syslog(LOG_ERR, "I can't send SIGUSR1 to renetcolSMP1 process : %s", strerror(errno)); 
     290      } 
     291      /* get PID SMP2 */ 
     292      if (!(pidFile = fopen("/var/run/renetcolSMP2.pid", "r"))) { 
     293              syslog (LOG_ERR, "error during /var/run/renetcolSMP2.pid opening : %s\n", 
     294                    strerror(errno)); 
     295              exit(1); 
     296      } else { 
     297              fgets(line, 256, pidFile); 
     298              if (sscanf(line, "%u", &pid)==0) 
     299                syslog(LOG_ERR,"sscanf : %s", strerror(errno)); 
     300        renetcolSMP2PID = pid; 
     301      } 
     302      fclose(pidFile); 
     303      if (renetcolSMP2PID==0){ 
     304              syslog(LOG_INFO, "PID SMP2 null"); 
     305      }else{ 
     306              if (kill(renetcolSMP2PID, SIGUSR1)<0) 
     307                syslog(LOG_ERR, "I can't send SIGUSR1 to renetcolSMP2 process : %s", strerror(errno)); 
     308      } 
     309      /* get PID SMP3 */ 
     310      if (!(pidFile = fopen("/var/run/renetcolSMP3.pid", "r"))) { 
     311              syslog (LOG_ERR, "error during /var/run/renetcolSMP3.pid opening : %s\n", 
     312                    strerror(errno)); 
     313              exit(1); 
     314      } else { 
     315              fgets(line, 256, pidFile); 
     316              if (sscanf(line, "%u", &pid)==0) 
     317                syslog(LOG_ERR,"sscanf : %s", strerror(errno)); 
     318        renetcolSMP3PID = pid; 
     319      } 
     320      fclose(pidFile); 
     321      if (renetcolSMP3PID==0){ 
     322              syslog(LOG_INFO, "PID SMP3 null"); 
     323      }else{ 
     324              if (kill(renetcolSMP3PID, SIGUSR1)<0) 
     325                syslog(LOG_ERR, "I can't send SIGUSR1 to renetcolSMP3 process : %s", strerror(errno)); 
     326      } 
     327      /* get PID SMP4 */ 
     328      if (!(pidFile = fopen("/var/run/renetcolSMP4.pid", "r"))) { 
     329              syslog (LOG_ERR, "error during /var/run/renetcolSMP4.pid opening : %s\n", 
     330                    strerror(errno)); 
     331              exit(1); 
     332      } else { 
     333              fgets(line, 256, pidFile); 
     334              if (sscanf(line, "%u", &pid)==0) 
     335                syslog(LOG_ERR,"sscanf : %s", strerror(errno)); 
     336        renetcolSMP4PID = pid; 
     337      } 
     338      fclose(pidFile); 
     339      if (renetcolSMP4PID==0){ 
     340              syslog(LOG_INFO, "PID SMP4 null"); 
     341      }else{ 
     342              if (kill(renetcolSMP4PID, SIGUSR1)<0) 
     343                syslog(LOG_ERR, "I can't send SIGUSR1 to renetcolSMP4 process : %s", strerror(errno)); 
    271344      } 
    272345      exit (0); 
     
    277350      close (clientSock); 
    278351      if (waitpid( -1, &status, WNOHANG)==-1){ 
    279         syslog(LOG_ERR, "waitpid : %s", strerror(errno)); 
    280         exit(1); 
     352              syslog(LOG_ERR, "waitpid : %s", strerror(errno)); 
     353        exit(1); 
    281354      } 
    282355    } 
     
    306379} 
    307380 
    308 /*  
     381/* 
    309382 * Main 
    310383 * ---- 
    311384 */ 
    312 int  
     385int 
    313386main (int argc, char *argv[]) 
    314387{ 
     
    316389  unsigned short rulesID = 0; 
    317390  FILE *pidFile; 
    318   pid_t renetcolPID = 0; 
    319  
    320   if ( argc != 3) { 
     391  pid_t renetcolSMP1PID = 0; 
     392  pid_t renetcolSMP2PID = 0; 
     393  pid_t renetcolSMP3PID = 0; 
     394  pid_t renetcolSMP4PID = 0; 
     395  if ( argc != 6) { 
    321396    fprintf (stderr, 
    322              "%s: Usage: %s <key> <msg type>\n exp: %s renetcol 1 \n",  
     397             "%s: Usage: %s <key> <msg type>\n exp: %s renetcol 1 \n or %s renetcolSMP1 renetcolSMP2 renetcolSMP3 renetcolSMP4 1\n", 
    323398             argv[0], argv[0], argv[0]); 
    324399    exit(1); 
    325400  } 
    326   if (sscanf (argv[2], "%ld", &type) != 1){ 
     401  if (sscanf (argv[5], "%ld", &type) != 1){ 
    327402    fprintf(stderr, "renetcolSender: Error, Invalid message type in command\n"); 
    328403    exit(1); 
    329   }   
     404  } 
    330405 
    331406  openlog(argv[0], LOG_PID, LOG_USER); 
    332   keyId = (char *) malloc((strlen(argv[1])+1) * sizeof(char)); 
    333   strcpy (keyId, argv[1]); 
     407 
     408  keyIdSMP1 = (char *) malloc((strlen(argv[1])+1) * sizeof(char)); 
     409  strcpy (keyIdSMP1, argv[1]); 
     410  keyIdSMP2 = (char *) malloc((strlen(argv[2])+1) * sizeof(char)); 
     411  strcpy (keyIdSMP2, argv[2]); 
     412  keyIdSMP3 = (char *) malloc((strlen(argv[3])+1) * sizeof(char)); 
     413  strcpy (keyIdSMP3, argv[3]); 
     414  keyIdSMP4 = (char *) malloc((strlen(argv[4])+1) * sizeof(char)); 
     415  strcpy (keyIdSMP4, argv[4]); 
     416 
    334417  rulesListPtr = NULL; 
    335418  rulesListPtr = getRules(rulesListPtr, RULES_FILE); 
     
    343426  tmp = NULL; 
    344427  /* get IPC messages queue */ 
    345   if ((myKey = ftok(keyId, 0))== -1){ 
     428  if ((myKeySMP1 = ftok(keyIdSMP1, 0))== -1){ 
    346429    syslog(LOG_ERR, "ftok : %s", strerror(errno)); 
    347430    exit(1); 
    348431  } 
    349   if ((myQueue = msgget(myKey, 0)) == -1){ 
     432  if ((myQueueSMP1 = msgget(myKeySMP1, 0)) == -1){ 
     433    syslog(LOG_ERR, "msgget : %s", strerror(errno)); 
     434    exit(1); 
     435  } 
     436  if ((myKeySMP2 = ftok(keyIdSMP2, 0))== -1){ 
     437    syslog(LOG_ERR, "ftok : %s", strerror(errno)); 
     438    exit(1); 
     439  } 
     440  if ((myQueueSMP2 = msgget(myKeySMP2, 0)) == -1){ 
     441    syslog(LOG_ERR, "msgget : %s", strerror(errno)); 
     442    exit(1); 
     443  } 
     444  if ((myKeySMP3 = ftok(keyIdSMP3, 0))== -1){ 
     445    syslog(LOG_ERR, "ftok : %s", strerror(errno)); 
     446    exit(1); 
     447  } 
     448  if ((myQueueSMP3 = msgget(myKeySMP3, 0)) == -1){ 
     449    syslog(LOG_ERR, "msgget : %s", strerror(errno)); 
     450    exit(1); 
     451  } 
     452  if ((myKeySMP4 = ftok(keyIdSMP4, 0))== -1){ 
     453    syslog(LOG_ERR, "ftok : %s", strerror(errno)); 
     454    exit(1); 
     455  } 
     456  if ((myQueueSMP4 = msgget(myKeySMP4, 0)) == -1){ 
    350457    syslog(LOG_ERR, "msgget : %s", strerror(errno)); 
    351458    exit(1); 
     
    361468/*   for (i = 0; i < FOPEN_MAX; i ++) */ 
    362469/*     close (i); */ 
    363    
     470 
    364471  /* launch a TCP server to listen remote clients */ 
    365472  switch (fork ()) { 
     
    375482  while (1) { 
    376483    i=0; 
    377     myText = msgRcv(myQueue, &myMsg, type); 
    378     buffer2[0]= *(myText+i); i++; 
    379     buffer2[1]= *(myText+i); i++; 
     484    myTextSMP1 = msgRcv(myQueueSMP1, &myMsgSMP1, type); 
     485    buffer2[0]= *(myTextSMP1+i); i++; 
     486    buffer2[1]= *(myTextSMP1+i); i++; 
    380487    typeMsg = *((unsigned short *)&buffer2); 
    381488    if (1==typeMsg){ 
     
    383490      tmp = rulesListPtr; 
    384491      for ( ; tmp; tmp=tmp->next) { 
    385         s = sendMessage(tmp->host->sockId, myText, sizeof(myMsg.text), 
    386                         tmp->host->hostAddressPtr); 
    387       } 
    388     } else if (11==*((unsigned short*)&buffer2)){  
    389       buffer2[0]= *(myText+i); i++; 
    390       buffer2[1]= *(myText+i); i++; 
     492        s = sendMessage(tmp->host->sockId, myTextSMP1, sizeof(myMsgSMP1.text), 
     493                          tmp->host->hostAddressPtr); 
     494      } 
     495    } else if (11==*((unsigned short*)&buffer2)){ 
     496      buffer2[0]= *(myTextSMP1+i); i++; 
     497      buffer2[1]= *(myTextSMP1+i); i++; 
    391498      rulesID = *((unsigned short *)&buffer2); 
    392499      /* here we send the flow to the correct remote client */ 
    393500      tmp = rulesListPtr; 
    394501      for ( ; tmp; tmp=tmp->next) { /* FIXME while */ 
    395         if (tmp->id == rulesID){ 
    396           s = sendMessage(tmp->host->sockId, myText, sizeof(myMsg.text), 
    397                           tmp->host->hostAddressPtr); 
    398         } 
    399       } 
    400     } else if (12==*((unsigned short*)&buffer2)){  
    401       buffer4[0]= *(myText+i); i++; 
    402       buffer4[1]= *(myText+i); i++; 
    403       buffer4[2]= *(myText+i); i++; 
    404       buffer4[3]= *(myText+i); i++; 
    405       renetcolPID = *((pid_t *)&buffer4); 
    406       if (!(pidFile = fopen("/var/run/renetcol.pid", "w"))) { 
    407         syslog (LOG_ERR, "error during /var/run/renetcol.pid opening : %s\n", 
    408                 strerror(errno)); 
    409         exit(1); 
    410       } else { 
    411         if (fprintf(pidFile, "%u", renetcolPID)==0) 
    412           syslog(LOG_ERR,"fprintf : %s", strerror(errno)); 
    413       } 
    414       fclose(pidFile); 
    415     } else if (13==*((unsigned short*)&buffer2)){  
     502              if (tmp->id == rulesID){ 
     503                s = sendMessage(tmp->host->sockId, myTextSMP1, sizeof(myMsgSMP1.text), 
     504                            tmp->host->hostAddressPtr); 
     505              } 
     506      } 
     507    } else if (12==*((unsigned short*)&buffer2)){ 
     508      buffer4[0]= *(myTextSMP1+i); i++; 
     509      buffer4[1]= *(myTextSMP1+i); i++; 
     510      buffer4[2]= *(myTextSMP1+i); i++; 
     511      buffer4[3]= *(myTextSMP1+i); i++; 
     512      renetcolSMP1PID = *((pid_t *)&buffer4); 
     513      if (!(pidFile = fopen("/var/run/renetcolSMP1.pid", "w"))) { 
     514        syslog (LOG_ERR, "error during /var/run/renetcolSMP1.pid opening : %s\n", 
     515                    strerror(errno)); 
     516              exit(1); 
     517      } else { 
     518              if (fprintf(pidFile, "%u", renetcolSMP1PID)==0) 
     519              syslog(LOG_ERR,"fprintf : %s", strerror(errno)); 
     520      } 
     521      fclose(pidFile); 
     522    } else if (13==*((unsigned short*)&buffer2)){ 
    416523      initConfSender(); 
    417524    } else { 
     
    419526    } 
    420527    i=0; 
     528 
     529    myTextSMP2 = msgRcv(myQueueSMP2, &myMsgSMP2, type); 
     530    buffer2[0]= *(myTextSMP2+i); i++; 
     531    buffer2[1]= *(myTextSMP2+i); i++; 
     532    typeMsg = *((unsigned short *)&buffer2); 
     533    if (1==typeMsg){ 
     534      /* we send the template definition to all the known destination */ 
     535      tmp = rulesListPtr; 
     536      for ( ; tmp; tmp=tmp->next) { 
     537        s = sendMessage(tmp->host->sockId, myTextSMP2, sizeof(myMsgSMP2.text), 
     538                          tmp->host->hostAddressPtr); 
     539      } 
     540    } else if (14==*((unsigned short*)&buffer2)){ 
     541      buffer4[0]= *(myTextSMP2+i); i++; 
     542      buffer4[1]= *(myTextSMP2+i); i++; 
     543      buffer4[2]= *(myTextSMP2+i); i++; 
     544      buffer4[3]= *(myTextSMP2+i); i++; 
     545      renetcolSMP2PID = *((pid_t *)&buffer4); 
     546      if (!(pidFile = fopen("/var/run/renetcolSMP2.pid", "w"))) { 
     547        syslog (LOG_ERR, "error during /var/run/renetcolSMP2.pid opening : %s\n", 
     548                            strerror(errno)); 
     549              exit(1); 
     550      } else { 
     551              if (fprintf(pidFile, "%u", renetcolSMP2PID)==0) 
     552              syslog(LOG_ERR,"fprintf : %s", strerror(errno)); 
     553      } 
     554      fclose(pidFile); 
     555    } else if (13==*((unsigned short*)&buffer2)){ 
     556      initConfSender(); 
     557    } else { 
     558      syslog(LOG_ERR,"message type undefined for this queue SMP2"); 
     559    } 
     560    i=0; 
     561 
     562    myTextSMP3 = msgRcv(myQueueSMP3, &myMsgSMP3, type); 
     563    buffer2[0]= *(myTextSMP3+i); i++; 
     564    buffer2[1]= *(myTextSMP3+i); i++; 
     565    typeMsg = *((unsigned short *)&buffer2); 
     566    if (1==typeMsg){ 
     567      /* we send the template definition to all the known destination */ 
     568      tmp = rulesListPtr; 
     569      for ( ; tmp; tmp=tmp->next) { 
     570        s = sendMessage(tmp->host->sockId, myTextSMP3, sizeof(myMsgSMP3.text), 
     571                          tmp->host->hostAddressPtr); 
     572      } 
     573    } else if (15==*((unsigned short*)&buffer2)){ 
     574      buffer4[0]= *(myTextSMP3+i); i++; 
     575      buffer4[1]= *(myTextSMP3+i); i++; 
     576      buffer4[2]= *(myTextSMP3+i); i++; 
     577      buffer4[3]= *(myTextSMP3+i); i++; 
     578      renetcolSMP3PID = *((pid_t *)&buffer4); 
     579      if (!(pidFile = fopen("/var/run/renetcolSMP3.pid", "w"))) { 
     580        syslog (LOG_ERR, "error during /var/run/renetcolSMP3.pid opening : %s\n", 
     581                            strerror(errno)); 
     582              exit(1); 
     583      } else { 
     584              if (fprintf(pidFile, "%u", renetcolSMP3PID)==0) 
     585              syslog(LOG_ERR,"fprintf : %s", strerror(errno)); 
     586      } 
     587      fclose(pidFile); 
     588    } else if (13==*((unsigned short*)&buffer2)){ 
     589      initConfSender(); 
     590    } else { 
     591      syslog(LOG_ERR,"message type undefined for this queue SMP3"); 
     592    } 
     593    i=0; 
     594 
     595    myTextSMP4 = msgRcv(myQueueSMP4, &myMsgSMP4, type); 
     596    buffer2[0]= *(myTextSMP4+i); i++; 
     597    buffer2[1]= *(myTextSMP4+i); i++; 
     598    typeMsg = *((unsigned short *)&buffer2); 
     599    if (1==typeMsg){ 
     600      /* we send the template definition to all the known destination */ 
     601      tmp = rulesListPtr; 
     602      for ( ; tmp; tmp=tmp->next) { 
     603        s = sendMessage(tmp->host->sockId, myTextSMP4, sizeof(myMsgSMP4.text), 
     604                          tmp->host->hostAddressPtr); 
     605      } 
     606    } else if (16==*((unsigned short*)&buffer2)){ 
     607      buffer4[0]= *(myTextSMP4+i); i++; 
     608      buffer4[1]= *(myTextSMP4+i); i++; 
     609      buffer4[2]= *(myTextSMP4+i); i++; 
     610      buffer4[3]= *(myTextSMP4+i); i++; 
     611      renetcolSMP4PID = *((pid_t *)&buffer4); 
     612      if (!(pidFile = fopen("/var/run/renetcolSMP4.pid", "w"))) { 
     613        syslog (LOG_ERR, "error during /var/run/renetcolSMP4.pid opening : %s\n", 
     614                            strerror(errno)); 
     615              exit(1); 
     616      } else { 
     617              if (fprintf(pidFile, "%u", renetcolSMP4PID)==0) 
     618              syslog(LOG_ERR,"fprintf : %s", strerror(errno)); 
     619      } 
     620      fclose(pidFile); 
     621    } else if (13==*((unsigned short*)&buffer2)){ 
     622      initConfSender(); 
     623    } else { 
     624      syslog(LOG_ERR,"message type undefined for this queue SMP4"); 
     625    } 
     626    i=0; 
    421627  } 
    422628  return(0);