Web server: write syslog
Write messages from the web server to the syslog. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
parent
a76a8263b4
commit
ecf63a1367
|
@ -33,6 +33,7 @@
|
|||
#include <stdlib.h>
|
||||
#define __USE_XOPEN
|
||||
#include <signal.h>
|
||||
#include <syslog.h>
|
||||
#include <time.h>
|
||||
#include <usb.h>
|
||||
#include <sys/stat.h>
|
||||
|
@ -516,6 +517,7 @@ static void parse_command_line(int argc, char* argv[], int count,
|
|||
case 'L': {
|
||||
int* s;
|
||||
|
||||
openlog("sispmctl", LOG_PID, LOG_INFO);
|
||||
read_password();
|
||||
if (verbose)
|
||||
printf("Server goes to listen mode now.\n");
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
@ -186,6 +187,7 @@ void process(int out,char *request, struct usb_device *dev, int devnum)
|
|||
}
|
||||
|
||||
if (chdir(homedir) != 0) {
|
||||
syslog(LOG_ERR, "Cannot access directory %s\n", homedir);
|
||||
bad_request(out);
|
||||
return;
|
||||
}
|
||||
|
@ -196,6 +198,7 @@ void process(int out,char *request, struct usb_device *dev, int devnum)
|
|||
in = fopen(ptr,"r");
|
||||
|
||||
if (in == NULL) {
|
||||
syslog(LOG_ERR, "Cannot open %s\n", ptr);
|
||||
bad_request(out);
|
||||
return;
|
||||
}
|
||||
|
@ -204,7 +207,9 @@ void process(int out,char *request, struct usb_device *dev, int devnum)
|
|||
udev = get_handle(dev);
|
||||
if (udev == NULL) {
|
||||
fprintf(stderr, "No access to Gembird #%d USB device %s\n", devnum,
|
||||
dev->filename );
|
||||
dev->filename);
|
||||
syslog(LOG_ERR, "No access to Gembird #%d USB device %s\n", devnum,
|
||||
dev->filename);
|
||||
service_not_available(out);
|
||||
fclose(in);
|
||||
return;
|
||||
|
@ -251,8 +256,10 @@ void process(int out,char *request, struct usb_device *dev, int devnum)
|
|||
|
||||
if (trm != NULL) {
|
||||
if (num == NULL) {
|
||||
fprintf(stderr, "Command-Format: $$exec(#)?positive:negative$$ "
|
||||
"ERROR at #");
|
||||
fprintf(stderr, "Command-Format: $$exec(#)?positive:negative$$ - "
|
||||
"ERROR at #\n");
|
||||
syslog(LOG_ERR, "Command-Format: $$exec(#)?positive:negative$$ - "
|
||||
"ERROR at #\n");
|
||||
service_not_available(out);
|
||||
fclose(in);
|
||||
return;
|
||||
|
@ -269,7 +276,8 @@ void process(int out,char *request, struct usb_device *dev, int devnum)
|
|||
|
||||
if (strncasecmp(cmd,"on(",3)==0) {
|
||||
if (trm[1] != '$' || !pos || !neg) {
|
||||
fprintf(stderr, "Command-Format: $$on(#)?positive:negative$$");
|
||||
fprintf(stderr, "Command-Format: $$on(#)?positive:negative$$\n");
|
||||
syslog(LOG_ERR, "Command-Format: $$on(#)?positive:negative$$\n");
|
||||
service_not_available(out);
|
||||
fclose(in);
|
||||
return;
|
||||
|
@ -282,7 +290,8 @@ void process(int out,char *request, struct usb_device *dev, int devnum)
|
|||
send(out,neg,trm-neg,0);
|
||||
} else if (strncasecmp(cmd,"off(",4)==0) {
|
||||
if (trm[1] != '$' || !pos || !neg) {
|
||||
fprintf(stderr, "Command-Format: $$off(#)?positive:negative$$");
|
||||
fprintf(stderr, "Command-Format: $$off(#)?positive:negative$$\n");
|
||||
syslog(LOG_ERR, "Command-Format: $$off(#)?positive:negative$$\n");
|
||||
service_not_available(out);
|
||||
fclose(in);
|
||||
return;
|
||||
|
@ -295,7 +304,10 @@ void process(int out,char *request, struct usb_device *dev, int devnum)
|
|||
send(out,neg,trm-neg,0);
|
||||
} else if (strncasecmp(cmd,"toggle(",7)==0) {
|
||||
if (trm[1] != '$' || !pos || !neg) {
|
||||
fprintf(stderr, "Command-Format: $$toggle(#)?positive:negative$$");
|
||||
fprintf(stderr,
|
||||
"Command-Format: $$toggle(#)?positive:negative$$\n");
|
||||
syslog(LOG_ERR,
|
||||
"Command-Format: $$toggle(#)?positive:negative$$\n");
|
||||
service_not_available(out);
|
||||
fclose(in);
|
||||
return;
|
||||
|
@ -311,7 +323,10 @@ void process(int out,char *request, struct usb_device *dev, int devnum)
|
|||
}
|
||||
} else if (strncasecmp(cmd,"status(",7)==0) {
|
||||
if (trm[1] != '$' || !pos || !neg) {
|
||||
fprintf(stderr, "Command-Format: $$status(#)?positive:negative$$");
|
||||
fprintf(stderr,
|
||||
"Command-Format: $$status(#)?positive:negative$$\n");
|
||||
syslog(LOG_ERR,
|
||||
"Command-Format: $$status(#)?positive:negative$$\n");
|
||||
service_not_available(out);
|
||||
fclose(in);
|
||||
return;
|
||||
|
@ -324,7 +339,8 @@ void process(int out,char *request, struct usb_device *dev, int devnum)
|
|||
send(out,neg,trm-neg,0);
|
||||
} else if (strncasecmp(cmd, "version(", 8) == 0) {
|
||||
if (trm[1] != '$') {
|
||||
fprintf(stderr, "Command-Format: $$version()$$");
|
||||
fprintf(stderr, "Command-Format: $$version()$$\n");
|
||||
syslog(LOG_ERR, "Command-Format: $$version()$$\n");
|
||||
service_not_available(out);
|
||||
fclose(in);
|
||||
return;
|
||||
|
@ -351,4 +367,3 @@ void process(int out,char *request, struct usb_device *dev, int devnum)
|
|||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
32
src/socket.c
32
src/socket.c
|
@ -23,6 +23,7 @@
|
|||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <netinet/in.h>
|
||||
#include <syslog.h>
|
||||
#include <time.h>
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h>
|
||||
|
@ -45,19 +46,19 @@ void l_listen(int*sock, struct usb_device*dev, int devnum)
|
|||
{
|
||||
int i;
|
||||
int s;
|
||||
char *oob;
|
||||
char *buffer;
|
||||
|
||||
oob = (char *)malloc(32);
|
||||
buffer = (char *)malloc(BUFFERSIZE + 4);
|
||||
|
||||
if (debug)
|
||||
if(debug)
|
||||
fprintf(stderr, "Listening for local provider on port %d...\n", listenport);
|
||||
syslog(LOG_INFO, "Listening on port %d...\n", listenport);
|
||||
listen(*sock, 1); /* We only get one connection on this port.
|
||||
Everything else is refused. */
|
||||
for (;;) {
|
||||
while((s = accept(*sock, NULL, NULL)) == -1) {
|
||||
perror("Accepting connection failed");
|
||||
syslog(LOG_ERR, "Accepting connection failed: %s\n", strerror(errno));
|
||||
sleep(1);
|
||||
/* Retry after error. Really bad errors shouldn't happen. */
|
||||
}
|
||||
|
@ -65,10 +66,6 @@ void l_listen(int*sock, struct usb_device*dev, int devnum)
|
|||
fprintf(stderr, "Provider connected.\n");
|
||||
|
||||
for (;;) {
|
||||
if ((recv(s, oob, 32, MSG_OOB | MSG_DONTWAIT) > 0) &&
|
||||
strncmp(oob, "flush", 5))
|
||||
fprintf(stderr,"OUT-OF-BAND MESSAGE 1");
|
||||
|
||||
memset(buffer, 0, BUFFERSIZE + 4);
|
||||
i = recv(s, buffer, BUFFERSIZE, 0);
|
||||
if (i == -1) {
|
||||
|
@ -77,6 +74,7 @@ void l_listen(int*sock, struct usb_device*dev, int devnum)
|
|||
}
|
||||
/* wait for a new connection */
|
||||
perror("Lost provider connection");
|
||||
syslog(LOG_ERR, "Lost provider connection: %s\n", strerror(errno));
|
||||
} else if (i > 0) {
|
||||
process(s,buffer,dev,devnum);
|
||||
}
|
||||
|
@ -102,19 +100,18 @@ int*socket_init(char* bind_arg)
|
|||
|
||||
/* locate socket */
|
||||
*s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
if( *s == -1 ) {
|
||||
if(*s == -1) {
|
||||
perror("Socket cannot be opened");
|
||||
syslog(LOG_ERR, "Socket cannot be opened: %s\n", strerror(errno));
|
||||
free(s);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
/* set socket options */
|
||||
if( setsockopt(*s, SOL_SOCKET, SO_REUSEADDR, (char *) &on, sizeof(int)) == -1) {
|
||||
perror("Socket option cannot be set");
|
||||
goto socket_error;
|
||||
}
|
||||
if( setsockopt(*s, SOL_SOCKET, SO_RCVBUF, &mtu, sizeof(size_t)) == -1) {
|
||||
if(setsockopt(*s, SOL_SOCKET, SO_REUSEADDR, (char *) &on, sizeof(int)) == -1
|
||||
|| setsockopt(*s, SOL_SOCKET, SO_RCVBUF, &mtu, sizeof(size_t)) == -1) {
|
||||
perror("Socket option cannot be set");
|
||||
syslog(LOG_ERR, "Socket option cannot be set: %s\n", strerror(errno));
|
||||
goto socket_error;
|
||||
}
|
||||
|
||||
|
@ -126,9 +123,14 @@ int*socket_init(char* bind_arg)
|
|||
result=inet_pton(AF_INET,bind_arg,(void*)&bind_addr);
|
||||
if (result<0) {
|
||||
perror("Inet_pton for given bind address failed");
|
||||
syslog(LOG_ERR, "Inet_pton for given bind address failed: %s\n",
|
||||
strerror(errno));
|
||||
goto socket_error;
|
||||
} else if (result==0) {
|
||||
fprintf(stderr,"Given bind address is not a valid IPv4 address: %s\n",bind_arg);
|
||||
fprintf(stderr,"Given bind address is not a valid IPv4 address: %s\n",
|
||||
bind_arg);
|
||||
syslog(LOG_ERR, "Given bind address is not a valid IPv4 address: %s\n",
|
||||
bind_arg);
|
||||
goto socket_error;
|
||||
}
|
||||
} else {
|
||||
|
@ -136,10 +138,10 @@ int*socket_init(char* bind_arg)
|
|||
}
|
||||
addr.sin_addr.s_addr = (uint32_t) bind_addr;
|
||||
|
||||
|
||||
/* bind socket now */
|
||||
if(bind(*s, (struct sockaddr *) &addr, sizeof(struct sockaddr_in)) == -1) {
|
||||
perror("Bind failed");
|
||||
syslog(LOG_ERR, "Bind failed: %s\n", strerror(errno));
|
||||
goto socket_error;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue