#include #include #include #include #include #include #include #include #include #include "common.h" /*sockets for the logger and the qt-reader */ int sockfd, ns; char *socketName; char *interfaceName; void setSocketName(char * sn) { socketName = sn; } void setInterfaceName(char * in){ interfaceName = in; } void initQtLoggerSocket() { /** * new code. seems to be right. */ struct sockaddr_un serv_addr; sockfd = socket(AF_UNIX, SOCK_STREAM, 0); if (sockfd < 0) fprintf(stdout,"ERROR opening socket"); serv_addr.sun_family = AF_UNIX; strcpy(serv_addr.sun_path, socketName); if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) fprintf(stdout,"ERROR connecting"); } void closeQtLoggerSocket (){ close(sockfd); } void logToQt(char * status, char * substatus, char * msg) { char * m = malloc(strlen(interfaceName) + strlen(status) + strlen(substatus) + strlen(msg) +4 ); strcpy(m,interfaceName); strcat(m,";"); strcat(m,status); strcat(m,";"); strcat(m,substatus); strcat(m,";"); strcat(m,msg); sendToQt(m); free(m); } void logToQt(int status, int substatus, char * msg) { char * st = (char *) malloc(sizeof(int)*4+1); char * sst = (char *) malloc(sizeof(int)*4+1); sprintf(st,"%d",status); sprintf(sst,"%d",substatus); char * m = malloc(strlen(interfaceName) + strlen(st) + strlen(sst) + strlen(msg) + 4); strcpy(m,interfaceName); strcat(m,";"); strcat(m, st); strcat(m, ";"); strcat(m, sst); strcat(m, ";"); strcat(m, msg); sendToQt(m); free(st); free(sst); free(m); } void sendToQt(char *msg) { int n = write(sockfd, msg, strlen(msg)); if (n < 0) fprintf(stdout, "ERROR writing to socket: %s", msg); }