Beispiel #1
0
void rlm_liqcomp_RLMStart(void *ptr,const char *arg)
{
  char address[17];
  char section[256];
  char errtext[256];
  int i=1;

  rlm_liqcomp_devs=0;
  rlm_liqcomp_addresses=NULL;
  rlm_liqcomp_ports=NULL;
  rlm_liqcomp_masters=NULL;
  rlm_liqcomp_aux1s=NULL;
  rlm_liqcomp_aux2s=NULL;

  sprintf(section,"System%d",i++);
  strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15);
  if(strlen(address)==0) {
    RLMLog(ptr,LOG_WARNING,"rlm_liqcomp: no encoder destinations specified");
    return;
  }
  while(strlen(address)>0) {
    rlm_liqcomp_addresses=
      realloc(rlm_liqcomp_addresses,(rlm_liqcomp_devs+1)*(rlm_liqcomp_devs+1)*16);
    strcpy(rlm_liqcomp_addresses+16*rlm_liqcomp_devs,address);
    rlm_liqcomp_ports=realloc(rlm_liqcomp_ports,(rlm_liqcomp_devs+1)*sizeof(uint16_t));
    rlm_liqcomp_ports[rlm_liqcomp_devs]=
      RLMGetIntegerValue(ptr,arg,section,"UdpPort",0);
    rlm_liqcomp_titles=realloc(rlm_liqcomp_titles,(rlm_liqcomp_devs+1)*256);
    strncpy(rlm_liqcomp_titles+256*rlm_liqcomp_devs,
	    RLMGetStringValue(ptr,arg,section,"Title",""),256);
    rlm_liqcomp_artists=realloc(rlm_liqcomp_artists,(rlm_liqcomp_devs+1)*256);
    strncpy(rlm_liqcomp_artists+256*rlm_liqcomp_devs,
	    RLMGetStringValue(ptr,arg,section,"Artist",""),256);
    rlm_liqcomp_albums=realloc(rlm_liqcomp_albums,(rlm_liqcomp_devs+1)*256);
    strncpy(rlm_liqcomp_albums+256*rlm_liqcomp_devs,
	    RLMGetStringValue(ptr,arg,section,"Album",""),256);
    rlm_liqcomp_labels=realloc(rlm_liqcomp_labels,(rlm_liqcomp_devs+1)*256);
    strncpy(rlm_liqcomp_labels+256*rlm_liqcomp_devs,
	    RLMGetStringValue(ptr,arg,section,"Label",""),256);
    rlm_liqcomp_masters=realloc(rlm_liqcomp_masters,
			    (rlm_liqcomp_devs+1)*sizeof(int));
    rlm_liqcomp_masters[rlm_liqcomp_devs]=
      rlm_liqcomp_GetLogStatus(ptr,arg,section,"MasterLog");
    rlm_liqcomp_aux1s=realloc(rlm_liqcomp_aux1s,
			  (rlm_liqcomp_devs+1)*sizeof(int));
    rlm_liqcomp_aux1s[rlm_liqcomp_devs]=
      rlm_liqcomp_GetLogStatus(ptr,arg,section,"Aux1Log");
    rlm_liqcomp_aux2s=realloc(rlm_liqcomp_aux2s,
			  (rlm_liqcomp_devs+1)*sizeof(int));
    rlm_liqcomp_aux2s[rlm_liqcomp_devs]=
      rlm_liqcomp_GetLogStatus(ptr,arg,section,"Aux2Log");
    sprintf(errtext,"rlm_liqcomp: configured destination \"%s:%d\"",address,
	    rlm_liqcomp_ports[rlm_liqcomp_devs]);
    rlm_liqcomp_devs++;
    RLMLog(ptr,LOG_INFO,errtext);
    sprintf(section,"System%d",i++);
    strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15);
  }
}
void rlm_walltime_RLMStart(void *ptr,const char *arg)
{
  char address[17];
  char section[256];
  char errtext[256];
  int i=1;

  rlm_walltime_devs=0;
  rlm_walltime_addresses=NULL;
  rlm_walltime_ports=NULL;
  rlm_walltime_formats=NULL;
  rlm_walltime_host_addresses=NULL;
  rlm_walltime_masters=NULL;
  rlm_walltime_aux1s=NULL;
  rlm_walltime_aux2s=NULL;

  sprintf(section,"Walltime%d",i++);
  strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15);
  if(strlen(address)==0) {
    RLMLog(ptr,LOG_WARNING,"rlm_walltime: no walltime destinations specified");
    return;
  }
  while(strlen(address)>0) {
    rlm_walltime_addresses=
      realloc(rlm_walltime_addresses,(rlm_walltime_devs+1)*(rlm_walltime_devs+1)*16);
    strcpy(rlm_walltime_addresses+16*rlm_walltime_devs,address);
    rlm_walltime_ports=realloc(rlm_walltime_ports,(rlm_walltime_devs+1)*sizeof(uint16_t));
    rlm_walltime_ports[rlm_walltime_devs]=
      RLMGetIntegerValue(ptr,arg,section,"UdpPort",0);
    rlm_walltime_formats=realloc(rlm_walltime_formats,(rlm_walltime_devs+1)*8192);
    strncpy(rlm_walltime_formats+8192*rlm_walltime_devs,
	    RLMGetStringValue(ptr,arg,section,"FormatString",""),8192);
    rlm_walltime_host_addresses=
      realloc(rlm_walltime_host_addresses,(rlm_walltime_devs+1)*(rlm_walltime_devs+1)*16);
    strncpy(rlm_walltime_host_addresses+16*rlm_walltime_devs,
	    RLMGetStringValue(ptr,arg,section,"HostAddress",""),15);
    rlm_walltime_masters=realloc(rlm_walltime_masters,
			    (rlm_walltime_devs+1)*sizeof(int));
    rlm_walltime_masters[rlm_walltime_devs]=
      rlm_walltime_GetLogStatus(ptr,arg,section,"MasterLog");

    rlm_walltime_aux1s=realloc(rlm_walltime_aux1s,
			  (rlm_walltime_devs+1)*sizeof(int));
    rlm_walltime_aux1s[rlm_walltime_devs]=
      rlm_walltime_GetLogStatus(ptr,arg,section,"Aux1Log");
    rlm_walltime_aux2s=realloc(rlm_walltime_aux2s,
			  (rlm_walltime_devs+1)*sizeof(int));
    rlm_walltime_aux2s[rlm_walltime_devs]=
      rlm_walltime_GetLogStatus(ptr,arg,section,"Aux2Log");
    sprintf(errtext,"rlm_walltime: configured destination \"%s:%d\"",address,
	    rlm_walltime_ports[rlm_walltime_devs]);
    rlm_walltime_devs++;
    RLMLog(ptr,LOG_INFO,errtext);
    sprintf(section,"Walltime%d",i++);
    strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15);
  }
}
Beispiel #3
0
void rlm_test_RLMStart(void *ptr,const char *arg)
{
  char str[1024];
  sprintf(str,"rlm_test: started on %s",
	  RLMDateTime(ptr,0,"MM/dd/yyyy at hh:mm:ss"));
  RLMLog(ptr,LOG_NOTICE,str);
}
Beispiel #4
0
void rlm_spottrap_RLMPadDataSent(void *ptr,const struct rlm_svc *svc,
			    const struct rlm_log *log,
			    const struct rlm_pad *now,
			    const struct rlm_pad *next)
{
  int i;
  int flag=0;
  char msg[1500];

  for(i=0;i<rlm_spottrap_devs;i++) {
    switch(log->log_mach) {
      case 0:
	flag=rlm_spottrap_masters[i];
	break;

      case 1:
	flag=rlm_spottrap_aux1s[i];
	break;

      case 2:
	flag=rlm_spottrap_aux2s[i];
	break;
    }
    if((flag==1)||((flag==2)&&(log->log_onair!=0))) {
      if((strcasecmp(now->rlm_group,rlm_spottrap_groups+16*i)==0)&&
	 (now->rlm_len>=rlm_spottrap_minimums[i])&&
	 (now->rlm_len<=rlm_spottrap_maximums[i])) {
	const char *str=
	  RLMResolveNowNext(ptr,now,next,rlm_spottrap_formats+256*i);
	RLMSendUdp(ptr,rlm_spottrap_addresses+i*16,rlm_spottrap_ports[i],
		   str,strlen(str));
	snprintf(msg,1500,"rlm_spottrap: sending pad update: \"%s\"",
		 (const char *)str);
	RLMLog(ptr,LOG_INFO,msg);
      }
      else {
	const char *str=
	  RLMResolveNowNext(ptr,now,next,rlm_spottrap_default_formats+256*i);
	RLMSendUdp(ptr,rlm_spottrap_addresses+i*16,rlm_spottrap_ports[i],
		   str,strlen(str));
	snprintf(msg,1500,"rlm_spottrap: sending default pad update: \"%s\"",
		 (const char *)str);
	RLMLog(ptr,LOG_INFO,msg);
      }
    }
  }
}
void rlm_walltime_RLMPadDataSent(void *ptr,const struct rlm_svc *svc,
			    const struct rlm_log *log,
			    const struct rlm_pad *now,
			    const struct rlm_pad *next)
{
  int i;
  int flag=0;
  char timer[1500];
  FILE *f;

  for(i=0;i<rlm_walltime_devs;i++) {
    switch(log->log_mach) {
      case 0:
	flag=rlm_walltime_masters[i];
	break;

      case 1:
	flag=rlm_walltime_aux1s[i];
	break;

      case 2:
	flag=rlm_walltime_aux2s[i];
	break;
    }
    if((flag==1)||((flag==2)&&(log->log_onair!=0))) {
      f=fopen("/var/www/html/walltime/walltime.html","w");
      if(now->rlm_len==0) {
	snprintf(timer,1500,
		 "SP!RS!WU http://%s/walltime/walltime.html!",
		 rlm_walltime_host_addresses+16*i);
	fprintf(f,"<body bgcolor=\"#000000\">&nbsp;</body>");
      }
      else {
	snprintf(timer,1500,
		 "SM D!PS %d!ST!WU http://%s/walltime/walltime.html!",
		 now->rlm_len/1000,
		 rlm_walltime_host_addresses+16*i);
	fprintf(f,"%s\n",
	     RLMResolveNowNextEncoded(ptr,now,next,rlm_walltime_formats+8192*i,
				      RLM_ENCODE_XML));
      }
      fclose(f);
      RLMSendUdp(ptr,rlm_walltime_addresses+i*16,rlm_walltime_ports[i],
		 timer,strlen(timer));
      RLMLog(ptr,LOG_INFO,"rlm_walltime: sending pad update!");
    }
  }
}
Beispiel #6
0
void rlm_liqcomp_RLMPadDataSent(void *ptr,const char *svcname,int onair,
			       int lognum,const struct rlm_pad *now,
			       const struct rlm_pad *next)
{
  int i;
  int flag=0;
  char fmt[1500];
  char msg[1500];

  for(i=0;i<rlm_liqcomp_devs;i++) {
    switch(lognum) {
      case 0:
	flag=rlm_liqcomp_masters[i];
	break;

      case 1:
	flag=rlm_liqcomp_aux1s[i];
	break;

      case 2:
	flag=rlm_liqcomp_aux2s[i];
	break;
    }
    if((flag==1)||((flag==2)&&(onair!=0))) {
      snprintf(fmt,1500,"|%s|%s|%06u|%u|%s|%s|%s|\n",
	      rlm_liqcomp_titles+256*i,
	      rlm_liqcomp_artists+256*i,
	      now->rlm_cartnum,
	      now->rlm_len,
	      now->rlm_group,
	      rlm_liqcomp_albums+256*i,
	      rlm_liqcomp_labels+256*i);
      const char *str=RLMResolveNowNext(ptr,now,next,fmt);
      RLMSendUdp(ptr,rlm_liqcomp_addresses+i*16,rlm_liqcomp_ports[i],str,
		 strlen(str));
      snprintf(msg,1500,"rlm_liqcomp: sending pad update: \"%s\"",
	       (const char *)str);
      RLMLog(ptr,LOG_INFO,msg);
    }
  }
}
Beispiel #7
0
void rlm_inno713_RLMPadDataSent(void *ptr,const struct rlm_svc *svc,
			     const struct rlm_log *log,
			     const struct rlm_pad *now,
			     const struct rlm_pad *next)
{
  int i;
  int flag=0;
  char msg[1500];

  for(i=0;i<rlm_inno713_devs;i++) {
    switch(log->log_mach) {
      case 0:
	flag=rlm_inno713_masters[i];
	break;

      case 1:
	flag=rlm_inno713_aux1s[i];
	break;

      case 2:
	flag=rlm_inno713_aux2s[i];
	break;
    }
    if((flag==1)||((flag==2)&&(log->log_onair!=0))) {
      rlm_inno713_SendString(ptr,now,next,"DPS",rlm_inno713_dynamicpss+256*i,
			     rlm_inno713_addresses+i*16,rlm_inno713_ports[i],
			     rlm_inno713_handles[i]);
      rlm_inno713_SendString(ptr,now,next,"PS",rlm_inno713_pss+256*i,
			     rlm_inno713_addresses+i*16,rlm_inno713_ports[i],
			     rlm_inno713_handles[i]);
      rlm_inno713_SendString(ptr,now,next,"TEXT",rlm_inno713_radiotexts+256*i,
			     rlm_inno713_addresses+i*16,rlm_inno713_ports[i],
			     rlm_inno713_handles[i]);

      const char *str=RLMResolveNowNext(ptr,now,next,rlm_inno713_pss+256*i);
      snprintf(msg,1500,"rlm_inno713: sending pad update: \"%s\"",str);
      RLMLog(ptr,LOG_INFO,msg);
    }
  }
}
Beispiel #8
0
/*
void rlm_xmpad_RLMPadDataSent(void *ptr,const char *svcname,int onair,
			      int lognum,const struct rlm_pad *now,
			      const struct rlm_pad *next)
*/
void rlm_xmpad_RLMPadDataSent(void *ptr,const struct rlm_svc *svc,
			      const struct rlm_log *log,
			      const struct rlm_pad *now,
			      const struct rlm_pad *next)
{
  int i;
  int flag=0;
  char str1[33];
  char str2[33];
  char msg[1500];

  if(now->rlm_cartnum==0) {  // Suppress null PAD frames
    return;
  }
  for(i=0;i<rlm_xmpad_devs;i++) {
    switch(log->log_mach) {
      case 0:
	flag=rlm_xmpad_masters[i];
	break;

      case 1:
	flag=rlm_xmpad_aux1s[i];
	break;

      case 2:
	flag=rlm_xmpad_aux2s[i];
	break;
    }
    if((flag==1)||((flag==2)&&(log->log_onair!=0))) {
      strncpy(str1,RLMResolveNowNext(ptr,now,next,rlm_xmpad_format1s+256*i),32);
      str1[32]=0;
      strncpy(str2,RLMResolveNowNext(ptr,now,next,rlm_xmpad_format2s+256*i),32);
      str2[32]=0;
      rlm_xmpad_SendPad(ptr,i,str1,str2,now->rlm_len);
      snprintf(msg,1500,"rlm_xmpad: sending pad update: \"%s | %s\"",
	       (const char *)str1,(const char *)str2);
      RLMLog(ptr,LOG_INFO,msg);
    }
  }
}
Beispiel #9
0
void rlm_inno713_RLMStart(void *ptr,const char *arg)
{
  char address[17];
  char section[256];
  char errtext[256];
  char device[256];
  int speed;
  int parity;
  int wsize;
  int i=1;

  rlm_inno713_devs=0;
  rlm_inno713_addresses=NULL;
  rlm_inno713_ports=NULL;
  rlm_inno713_handles=NULL;
  rlm_inno713_dynamicpss=NULL;
  rlm_inno713_masters=NULL;
  rlm_inno713_aux1s=NULL;
  rlm_inno713_aux2s=NULL;

  sprintf(section,"Rds%d",i++);
  strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15);
  strncpy(device,RLMGetStringValue(ptr,arg,section,"Device",""),256);
  if((strlen(address)==0)&&(strlen(device)==0)) {
    RLMLog(ptr,LOG_WARNING,"rlm_inno713: no RDS connections specified");
    return;
  }
  while((strlen(address)>0)||(strlen(device)>0)) {
    rlm_inno713_addresses=
      realloc(rlm_inno713_addresses,
	      (rlm_inno713_devs+1)*(rlm_inno713_devs+1)*16);
    strcpy(rlm_inno713_addresses+16*rlm_inno713_devs,address);
    rlm_inno713_ports=realloc(rlm_inno713_ports,
			      (rlm_inno713_devs+1)*sizeof(uint16_t));
    rlm_inno713_ports[rlm_inno713_devs]=
      RLMGetIntegerValue(ptr,arg,section,"UdpPort",0);
    speed=RLMGetIntegerValue(ptr,arg,section,"Speed",9600);
    parity=RLMGetIntegerValue(ptr,arg,section,"Parity",0);
    wsize=RLMGetIntegerValue(ptr,arg,section,"WordSize",8);
    rlm_inno713_handles=realloc(rlm_inno713_handles,
				(rlm_inno713_devs+1)*sizeof(int));
    rlm_inno713_handles[rlm_inno713_devs]=
      RLMOpenSerial(ptr,device,speed,parity,wsize);
    rlm_inno713_dynamicpss=realloc(rlm_inno713_dynamicpss,(rlm_inno713_devs+1)*256);
    strncpy(rlm_inno713_dynamicpss+256*rlm_inno713_devs,
	    RLMGetStringValue(ptr,arg,section,"DynamicPsString",""),256);

    rlm_inno713_pss=realloc(rlm_inno713_pss,(rlm_inno713_devs+1)*256);
    strncpy(rlm_inno713_pss+256*rlm_inno713_devs,
	    RLMGetStringValue(ptr,arg,section,"PsString",""),256);
    rlm_inno713_radiotexts=realloc(rlm_inno713_radiotexts,
				   (rlm_inno713_devs+1)*256);
    strncpy(rlm_inno713_radiotexts+256*rlm_inno713_devs,
	    RLMGetStringValue(ptr,arg,section,"RadiotextString",""),256);
    rlm_inno713_masters=realloc(rlm_inno713_masters,
			    (rlm_inno713_devs+1)*sizeof(int));
    rlm_inno713_masters[rlm_inno713_devs]=
      rlm_inno713_GetLogStatus(ptr,arg,section,"MasterLog");
    rlm_inno713_aux1s=realloc(rlm_inno713_aux1s,
			  (rlm_inno713_devs+1)*sizeof(int));
    rlm_inno713_aux1s[rlm_inno713_devs]=
      rlm_inno713_GetLogStatus(ptr,arg,section,"Aux1Log");
    rlm_inno713_aux2s=realloc(rlm_inno713_aux2s,
			  (rlm_inno713_devs+1)*sizeof(int));
    rlm_inno713_aux2s[rlm_inno713_devs]=
      rlm_inno713_GetLogStatus(ptr,arg,section,"Aux2Log");
    sprintf(errtext,"rlm_inno713: configured destination \"%s:%d\"",address,
	    rlm_inno713_ports[rlm_inno713_devs]);
    RLMLog(ptr,LOG_INFO,errtext);
    if(strlen(device)>0) {
      if(rlm_inno713_handles[rlm_inno713_devs]<0) {
	sprintf(errtext,"rlm_inno713: unable to open serial device \"%s\"",device);
      }
      else {
	sprintf(errtext,"rlm_inno713: configured serial device \"%s\"",device);
      }
      RLMLog(ptr,LOG_INFO,errtext);
    }
    rlm_inno713_devs++;
    sprintf(section,"Rds%d",i++);
    strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15);
    strncpy(device,RLMGetStringValue(ptr,arg,section,"Device",""),256);
  }
}
Beispiel #10
0
void rlm_xmpad_SendPad(void *ptr,int config,const char *line1,
		       const char *line2,int len)
{
  char str[1024];
  char sline1[17];
  char sline2[17];
  char flag1[1024];
  char flag2[1024];
  int i;

  //
  // Log it
  //
  sprintf(str,"rlm_xmpad: sending pad update: |%s|%s|%d|",line1,line2,len);
  RLMLog(ptr,LOG_INFO,str);

  //
  // Generate Display Strings and Flags
  //
  strncpy(sline1,line1,16);
  sline1[16]=0;
  flag1[0]=0;
  for(i=0;i<rlm_xmpad_display_size1s[config];i++) {
    strcat(flag1,"1");
  }
  strncpy(sline2,line2,16);
  sline2[16]=0;
  flag2[0]=0;
  for(i=0;i<rlm_xmpad_display_size2s[config];i++) {
    strcat(flag2,"1");
  }
  
  //
  // Generate PAD Data
  // The B-4 packet
  //
  sprintf(str,"B-4%c%d%c%d%c%d%c%d%c%d%c%d%c%s%c%s%c%s%c%s%c%s%c%s%c%u\n",
	  RLM_XMPAD_DELIMITER,!(rlm_xmpad_recordings[config]),
	  RLM_XMPAD_DELIMITER,1,
	  RLM_XMPAD_DELIMITER,len/432,
	  RLM_XMPAD_DELIMITER,0,
	  RLM_XMPAD_DELIMITER,rlm_xmpad_display_size1s[config],
	  RLM_XMPAD_DELIMITER,rlm_xmpad_display_size2s[config],
	  RLM_XMPAD_DELIMITER,flag1,
	  RLM_XMPAD_DELIMITER,flag2,
	  RLM_XMPAD_DELIMITER,sline2,
	  RLM_XMPAD_DELIMITER,flag1,
	  RLM_XMPAD_DELIMITER,flag2,
	  RLM_XMPAD_DELIMITER,sline1,
	  RLM_XMPAD_DELIMITER,rlm_xmpad_ids[config]);
  RLMSendSerial(ptr,rlm_xmpad_handles[config],str,strlen(str));
  RLMSendSerial(ptr,rlm_xmpad_handles[config],str,strlen(str));
  RLMSendSerial(ptr,rlm_xmpad_handles[config],str,strlen(str));

  //
  // The A4 Packet
  //
  sprintf(str,"A4%c%d%c%s\n",RLM_XMPAD_DELIMITER,1,RLM_XMPAD_DELIMITER,line1);
  RLMSendSerial(ptr,rlm_xmpad_handles[config],str,strlen(str));
  
  //
  // The A5 Packet
  //
  sprintf(str,"A5%c%d%c%s\n",RLM_XMPAD_DELIMITER,1,RLM_XMPAD_DELIMITER,line2);
  RLMSendSerial(ptr,rlm_xmpad_handles[config],str,strlen(str));
}
Beispiel #11
0
void rlm_xmpad_RLMStart(void *ptr,const char *arg)
{
  int handle;
  char device[256];
  int speed;
  int parity;
  int wsize;
  char section[256];
  char errtext[256];
  int i=1;
  int interval;

  rlm_xmpad_devs=0;
  rlm_xmpad_ids=NULL;
  rlm_xmpad_handles=NULL;
  rlm_xmpad_recordings=NULL;
  rlm_xmpad_format1s=NULL;
  rlm_xmpad_format2s=NULL;
  rlm_xmpad_display_size1s=NULL;
  rlm_xmpad_display_size2s=NULL;
  rlm_xmpad_masters=NULL;
  rlm_xmpad_aux1s=NULL;
  rlm_xmpad_aux2s=NULL;

  sprintf(section,"Serial%d",i++);
  strncpy(device,RLMGetStringValue(ptr,arg,section,"Device",""),256);
  if(strlen(device)==0) {
    RLMLog(ptr,LOG_WARNING,"rlm_xmpad: no serial devices specified");
    return;
  }
  while(strlen(device)>0) {
    speed=RLMGetIntegerValue(ptr,arg,section,"Speed",9600);
    parity=RLMGetIntegerValue(ptr,arg,section,"Parity",0);
    wsize=RLMGetIntegerValue(ptr,arg,section,"WordSize",8);
    if((handle=RLMOpenSerial(ptr,device,speed,parity,wsize))>=0) {
      rlm_xmpad_handles=realloc(rlm_xmpad_handles,
				 (rlm_xmpad_devs+1)*sizeof(int));
      rlm_xmpad_handles[rlm_xmpad_devs]=handle;
      rlm_xmpad_ids=realloc(rlm_xmpad_ids,(rlm_xmpad_devs+1)*sizeof(int));
      rlm_xmpad_ids[rlm_xmpad_devs]=
	RLMGetIntegerValue(ptr,arg,section,"ProgramID",0);
      rlm_xmpad_format1s=realloc(rlm_xmpad_format1s,(rlm_xmpad_devs+1)*256);
      strncpy(rlm_xmpad_format1s+256*rlm_xmpad_devs,
	      RLMGetStringValue(ptr,arg,section,"FormatString1",""),256);
      rlm_xmpad_format2s=realloc(rlm_xmpad_format2s,(rlm_xmpad_devs+1)*256);
      strncpy(rlm_xmpad_format2s+256*rlm_xmpad_devs,
	      RLMGetStringValue(ptr,arg,section,"FormatString2",""),256);
      rlm_xmpad_display_size1s=realloc(rlm_xmpad_display_size1s,
				       (rlm_xmpad_devs+1)*sizeof(int));
      rlm_xmpad_display_size1s[rlm_xmpad_devs]=
	RLMGetIntegerValue(ptr,arg,section,"DisplaySize1",8);
      rlm_xmpad_display_size2s=realloc(rlm_xmpad_display_size2s,
				       (rlm_xmpad_devs+1)*sizeof(int));
      rlm_xmpad_display_size2s[rlm_xmpad_devs]=
	RLMGetIntegerValue(ptr,arg,section,"DisplaySize2",10);
      rlm_xmpad_recordings=realloc(rlm_xmpad_recordings,
				   (rlm_xmpad_devs+1)*sizeof(int));
      rlm_xmpad_recordings[rlm_xmpad_devs]=
	RLMGetBooleanValue(ptr,arg,section,"Recording",1);
      rlm_xmpad_masters=realloc(rlm_xmpad_masters,
				 (rlm_xmpad_devs+1)*sizeof(int));
      rlm_xmpad_masters[rlm_xmpad_devs]=
	rlm_xmpad_GetLogStatus(ptr,arg,section,"MasterLog");
      rlm_xmpad_aux1s=realloc(rlm_xmpad_aux1s,
				 (rlm_xmpad_devs+1)*sizeof(int));
      rlm_xmpad_aux1s[rlm_xmpad_devs]=
	rlm_xmpad_GetLogStatus(ptr,arg,section,"Aux1Log");
      rlm_xmpad_aux2s=realloc(rlm_xmpad_aux2s,
				 (rlm_xmpad_devs+1)*sizeof(int));
      rlm_xmpad_aux2s[rlm_xmpad_devs]=
	rlm_xmpad_GetLogStatus(ptr,arg,section,"Aux2Log");
      interval=RLMGetIntegerValue(ptr,arg,section,"HeartbeatInterval",30);
      if(interval>0) {
	RLMStartTimer(ptr,rlm_xmpad_devs,1000*interval,RLM_TIMER_REPEATING);
      }
      rlm_xmpad_devs++;
      sprintf(errtext,"rlm_xmpad: opened device \"%s\"",device);
      RLMLog(ptr,LOG_INFO,errtext);
    }
    else {
      sprintf(errtext,"unable to open tty \"%s\"",device);
      RLMLog(ptr,LOG_WARNING,errtext);
    }
    sprintf(section,"Serial%d",i++);
    strncpy(device,RLMGetStringValue(ptr,arg,section,"Device",""),256);
  }
}
Beispiel #12
0
void rlm_spottrap_RLMStart(void *ptr,const char *arg)
{
  char address[17];
  char section[256];
  char errtext[256];
  int i=1;

  rlm_spottrap_devs=0;
  rlm_spottrap_groups=NULL;
  rlm_spottrap_addresses=NULL;
  rlm_spottrap_minimums=NULL;
  rlm_spottrap_maximums=NULL;
  rlm_spottrap_ports=NULL;
  rlm_spottrap_formats=NULL;
  rlm_spottrap_default_formats=NULL;
  rlm_spottrap_masters=NULL;
  rlm_spottrap_aux1s=NULL;
  rlm_spottrap_aux2s=NULL;

  sprintf(section,"Rule%d",i++);
  strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15);
  if(strlen(address)==0) {
    RLMLog(ptr,LOG_WARNING,"rlm_spottrap: no rules specified");
    return;
  }
  while(strlen(address)>0) {
    rlm_spottrap_addresses=
      realloc(rlm_spottrap_addresses,(rlm_spottrap_devs+1)*(rlm_spottrap_devs+1)*16);
    strcpy(rlm_spottrap_addresses+16*rlm_spottrap_devs,address);
    rlm_spottrap_groups=realloc(rlm_spottrap_groups,(rlm_spottrap_devs+1)*16);
    strncpy(rlm_spottrap_groups+16*rlm_spottrap_devs,
	    RLMGetStringValue(ptr,arg,section,"GroupName",""),10);
    rlm_spottrap_minimums=realloc(rlm_spottrap_minimums,(rlm_spottrap_devs+1)*sizeof(int));
    rlm_spottrap_minimums[rlm_spottrap_devs]=
      RLMGetIntegerValue(ptr,arg,section,"MinimumLength",0);
    rlm_spottrap_maximums=realloc(rlm_spottrap_maximums,(rlm_spottrap_devs+1)*sizeof(int));
    rlm_spottrap_maximums[rlm_spottrap_devs]=
      RLMGetIntegerValue(ptr,arg,section,"MaximumLength",0);
    rlm_spottrap_ports=realloc(rlm_spottrap_ports,(rlm_spottrap_devs+1)*sizeof(uint16_t));
    rlm_spottrap_ports[rlm_spottrap_devs]=
      RLMGetIntegerValue(ptr,arg,section,"UdpPort",0);
    rlm_spottrap_formats=realloc(rlm_spottrap_formats,(rlm_spottrap_devs+1)*256);
    strncpy(rlm_spottrap_formats+256*rlm_spottrap_devs,
	    RLMGetStringValue(ptr,arg,section,"FormatString",""),256);
    rlm_spottrap_default_formats=realloc(rlm_spottrap_default_formats,
					 (rlm_spottrap_devs+1)*256);
    strncpy(rlm_spottrap_default_formats+256*rlm_spottrap_devs,
	    RLMGetStringValue(ptr,arg,section,"DefaultFormatString",""),256);
    rlm_spottrap_masters=realloc(rlm_spottrap_masters,
			    (rlm_spottrap_devs+1)*sizeof(int));
    rlm_spottrap_masters[rlm_spottrap_devs]=
      rlm_spottrap_GetLogStatus(ptr,arg,section,"MasterLog");
    rlm_spottrap_aux1s=realloc(rlm_spottrap_aux1s,
			  (rlm_spottrap_devs+1)*sizeof(int));
    rlm_spottrap_aux1s[rlm_spottrap_devs]=
      rlm_spottrap_GetLogStatus(ptr,arg,section,"Aux1Log");
    rlm_spottrap_aux2s=realloc(rlm_spottrap_aux2s,
			  (rlm_spottrap_devs+1)*sizeof(int));
    rlm_spottrap_aux2s[rlm_spottrap_devs]=
      rlm_spottrap_GetLogStatus(ptr,arg,section,"Aux2Log");
    sprintf(errtext,"rlm_spottrap: configured rule for \"%s:%d\"",address,
	    rlm_spottrap_ports[rlm_spottrap_devs]);
    rlm_spottrap_devs++;
    RLMLog(ptr,LOG_INFO,errtext);
    sprintf(section,"Rule%d",i++);
    strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15);
  }
}