sec-mod: will exit if it fails to process commands from main

This commit is contained in:
Nikos Mavrogiannopoulos
2015-03-02 09:00:18 +01:00
parent 65c83c6e84
commit f4d14f7000

View File

@@ -389,7 +389,7 @@ static void check_other_work(sec_mod_st *sec)
} }
static static
void serve_request(sec_mod_st *sec, int cfd, unsigned is_main, uint8_t *buffer, unsigned buffer_size) int serve_request(sec_mod_st *sec, int cfd, unsigned is_main, uint8_t *buffer, unsigned buffer_size)
{ {
int ret, e; int ret, e;
unsigned cmd, length; unsigned cmd, length;
@@ -404,6 +404,7 @@ void serve_request(sec_mod_st *sec, int cfd, unsigned is_main, uint8_t *buffer,
e = errno; e = errno;
seclog(sec, LOG_INFO, "error receiving msg head: %s", seclog(sec, LOG_INFO, "error receiving msg head: %s",
strerror(e)); strerror(e));
ret = -1;
goto leave; goto leave;
} }
@@ -413,6 +414,7 @@ void serve_request(sec_mod_st *sec, int cfd, unsigned is_main, uint8_t *buffer,
if (length > buffer_size - 4) { if (length > buffer_size - 4) {
seclog(sec, LOG_INFO, "too big message (%d)", length); seclog(sec, LOG_INFO, "too big message (%d)", length);
ret = -1;
goto leave; goto leave;
} }
@@ -422,6 +424,7 @@ void serve_request(sec_mod_st *sec, int cfd, unsigned is_main, uint8_t *buffer,
e = errno; e = errno;
seclog(sec, LOG_INFO, "error receiving msg body: %s", seclog(sec, LOG_INFO, "error receiving msg body: %s",
strerror(e)); strerror(e));
ret = -1;
goto leave; goto leave;
} }
@@ -434,7 +437,7 @@ void serve_request(sec_mod_st *sec, int cfd, unsigned is_main, uint8_t *buffer,
} }
leave: leave:
return; return ret;
} }
/* sec_mod_server: /* sec_mod_server:
@@ -659,7 +662,11 @@ void sec_mod_server(void *main_pool, struct cfg_st *config, const char *socket_f
if (buffer == NULL) { if (buffer == NULL) {
seclog(sec, LOG_ERR, "error in memory allocation"); seclog(sec, LOG_ERR, "error in memory allocation");
} else { } else {
serve_request(sec, cmd_fd, 1, buffer, buffer_size); ret = serve_request(sec, cmd_fd, 1, buffer, buffer_size);
if (ret < 0) {
seclog(sec, LOG_ERR, "error processing command from main");
exit(1);
}
talloc_free(buffer); talloc_free(buffer);
} }
} }