Skip to content

Latest commit

 

History

History
115 lines (94 loc) · 2.75 KB

main.cpp

File metadata and controls

115 lines (94 loc) · 2.75 KB
 
Mar 19, 2013
Mar 19, 2013
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/****************************************************************************
**
** Copyright (C) 2013 Jolla Ltd
** Contact: lorn.potter@gmail.com
**
**
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
****************************************************************************/
Mar 18, 2013
Mar 18, 2013
16
17
18
#include <QtCore/QCoreApplication>
#include <QTimer>
Oct 3, 2013
Oct 3, 2013
19
#include <QtGlobal>
Mar 18, 2013
Mar 18, 2013
20
21
22
23
24
#include <QDebug>
#include <signal.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
Oct 2, 2014
Oct 2, 2014
25
#include <unistd.h>
Mar 18, 2013
Mar 18, 2013
26
Mar 17, 2014
Mar 17, 2014
27
#include "qconnectionagent.h"
Mar 18, 2014
Mar 18, 2014
28
#include "connectiond_adaptor.h"
Mar 18, 2013
Mar 18, 2013
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
static void signal_handler(int signum)
{
switch(signum) {
case SIGHUP: exit(EXIT_FAILURE); break;
case SIGTERM: exit(EXIT_SUCCESS); exit(0); break;
}
}
static void daemonize(void)
{
pid_t pid, sid;
int fd;
if ( getppid() == 1 ) return;
signal(SIGHUP,signal_handler);
signal(SIGTERM,signal_handler);
pid = fork();
if (pid < 0) {
exit(EXIT_FAILURE);
}
if (pid > 0) {
exit(EXIT_SUCCESS);
}
sid = setsid();
if (sid < 0) {
exit(EXIT_FAILURE);
}
if ((chdir("/")) < 0) {
exit(EXIT_FAILURE);
}
fd = open("/dev/null",O_RDWR, 0);
if (fd != -1) {
dup2 (fd, STDIN_FILENO);
dup2 (fd, STDOUT_FILENO);
dup2 (fd, STDERR_FILENO);
if (fd > 2) {
close (fd);
}
}
umask(027);
}
Oct 3, 2013
Oct 3, 2013
79
Oct 3, 2013
Oct 3, 2013
80
static QtMessageHandler previousMessageHandler;
Jul 7, 2015
Jul 7, 2015
81
static bool toggleDebug;
Oct 3, 2013
Oct 3, 2013
82
Oct 3, 2013
Oct 3, 2013
83
void messageOutput(QtMsgType type, const QMessageLogContext &context, const QString &str)
Jul 7, 2015
Jul 7, 2015
84
{
Oct 3, 2013
Oct 3, 2013
85
86
if (toggleDebug)
previousMessageHandler(type,context,str);
Jul 7, 2015
Jul 7, 2015
87
}
Mar 18, 2013
Mar 18, 2013
88
Oct 27, 2014
Oct 27, 2014
89
Q_DECL_EXPORT int main(int argc, char *argv[])
Mar 18, 2013
Mar 18, 2013
90
{
Oct 3, 2013
Oct 3, 2013
91
previousMessageHandler = qInstallMessageHandler(messageOutput);
Oct 3, 2013
Oct 3, 2013
92
93
if (argc > 1) {
Sep 26, 2013
Sep 26, 2013
94
if (strcmp(argv[1],"-n") == 0) { //nodaemon
Mar 18, 2013
Mar 18, 2013
95
daemonize();
Sep 26, 2013
Sep 26, 2013
96
} else if (strcmp(argv[1],"-d") == 0) { //debug
Oct 3, 2013
Oct 3, 2013
97
toggleDebug = true;
Sep 26, 2013
Sep 26, 2013
98
}
Oct 3, 2013
Oct 3, 2013
99
}
Nov 20, 2013
Nov 20, 2013
100
101
QCoreApplication::setOrganizationName("nemomobile");
QCoreApplication::setOrganizationDomain("org.nemomobile");
Mar 18, 2013
Mar 18, 2013
102
103
104
105
QCoreApplication::setApplicationName("connectionagent");
QCoreApplication::setApplicationVersion("1.0");
QCoreApplication a(argc, argv);
Jul 7, 2015
Jul 7, 2015
106
107
108
109
QConnectionAgent agent;
if (!agent.isValid()) {
qDebug() << "Connectionagent service failed to register. Exiting now";
Apr 12, 2013
Apr 12, 2013
110
111
return 1;
}
Mar 18, 2013
Mar 18, 2013
112
113
114
return a.exec();
}