SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* */
-
+#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
umask(0);
/* Open any logs here */
-
+ std::string name, dirname;
+ name = getenv("USER");
+ dirname = "/home/" + name + "/.mnenc/";
+ if(mkdir(dirname.c_str(), S_IRWXU | S_IRWXG | S_IRWXO ) < 0) {
+ if(errno != EEXIST) {
+ exit(EXIT_FAILURE);
+ }
+ }
+ /*This is log stuff */
+ std::string logname = "/home/" + name + "/.mnenc/log";
+ std::ofstream log; //Log stream
+ log.open(logname.c_str(), ios::app); // open log
+ time_t rawtime; //Time stuff here
+ struct tm * timeinfo;
+ time ( &rawtime );
+ timeinfo = localtime ( &rawtime );
+ std::string current_time = asctime (timeinfo); //Holds current time
+
/* Create a new SID for the child process */
sid = setsid();
if (sid < 0) {
- /* Log the failure */
+ log << current_time << ": Unable to create a new SID for the child process\n";
exit(EXIT_FAILURE);
}
/* Change the current working directory */
- if ((chdir("/home/micke/.fifo")) < 0) {
- /* Log the failure */
+ if ((chdir("/tmp/")) < 0) {
+ log << current_time << ": Could not change to /tmp\n";
exit(EXIT_FAILURE);
}
close(STDERR_FILENO);
/* Daemon-specific initialization goes here */
+ mkfifo("./mnencdfifo", 0777); //This is the fifo for communications
+ signal(SIGTERM, term); // register a SIGTERM handler
+ log.close(); //Closing log
- mkfifo("./fife", 0777);
-
/* The Big Loop */
while (1) {
std::string request = m_read();
m_send(reply);
sleep(1); /* wait 1 second*/
}
- unlink("fife");
exit(EXIT_SUCCESS);
}