|
From: Jiri J. <jja...@re...> - 2013-10-07 11:30:38
|
This enables the server to write PID of itself into a file, like so:
-f /path/to/file.pid
Signed-off-by: Jiri Jaburek <jja...@re...>
---
.../utils/network-server/lblnet_tst_server.c | 30 ++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/audit-test/utils/network-server/lblnet_tst_server.c b/audit-test/utils/network-server/lblnet_tst_server.c
index 64faa96..834326f 100644
--- a/audit-test/utils/network-server/lblnet_tst_server.c
+++ b/audit-test/utils/network-server/lblnet_tst_server.c
@@ -104,12 +104,31 @@ void hlp_usage(char *name)
{
SMSG(SMSG_ERR,
fprintf(log_fd,
- "usage: %s [-i] [-l <log_file>] [-p <port>] [-q] [-t <secs>] [-v]\n",
+ "usage: %s [-i] [-l <log_file>] [-p <port>] [-f <pid_file>] [-q] [-t <secs>] [-v]\n",
(name != NULL ? name : "?")));
exit(1);
}
/**
+ * write_pid - Write pid of the current process into a file
+ * @filename - pidfile name / path
+ *
+ */
+int write_pid(char *filename)
+{
+ FILE *pfile;
+
+ pfile = fopen(filename, "w");
+ if (pfile == NULL)
+ return -1;
+
+ fprintf(pfile, "%d\n", getpid());
+ fclose(pfile);
+
+ return 0;
+}
+
+/**
* net_hlp_timeout_rcv - Wait for data on a socket
* @sock: socket
*
@@ -1006,7 +1025,7 @@ int main(int argc, char *argv[])
/* command line arguments */
do {
- arg_iter = getopt(argc, argv, "ip:qt:vl:");
+ arg_iter = getopt(argc, argv, "ip:f:qt:vl:");
switch (arg_iter) {
case 'i':
/* [x]inetd flag */
@@ -1016,6 +1035,13 @@ int main(int argc, char *argv[])
/* control message port */
ctl_port = atoi(optarg);
break;
+ case 'f':
+ /* pid file */
+ if (write_pid(optarg) < 0) {
+ fprintf(stderr,
+ "error: failed to create pidfile %s\n", optarg);
+ }
+ break;
case 'q':
/* quiet */
smsg_level = SMSG_NONE;
--
1.8.3.1
|