16 #define CONFIG_NET "/etc/conf.d/net"
17 #define CONFIG_HOSTNAME "/etc/conf.d/hostname"
23 QByteArray action = request.getParameter(
"action");
24 if (action.startsWith(
"apply")) {
33 "<table class=\"formTable\">\n"
35 "<input type=\"hidden\" name=\"action\" value=\"apply\"/>\n"
36 "<tr><td>%2</td><td><input type=\"text\" name=\"hostname\" value=\"%3\"></td></tr>\n"
37 "<tr><td>%4</td><td><input type=\"checkbox\" name=\"ipv4_dhcp\" value=\"Y\" %5></td></tr>\n"
38 "<tr><td>%6</td><td><input type=\"text\" name=\"ipv4_addr\" value=\"%7\"></td></tr>\n"
39 "<tr><td>%8</td><td><input type=\"text\" name=\"ipv4_mask\" value=\"%9\"></td></tr>\n"
40 "<tr><td>%10</td><td><input type=\"text\" name=\"ipv4_router\" value=\"%11\"></td></tr>\n"
41 "<tr><td>%12</td><td><input type=\"text\" name=\"ipv4_dns\" value=\"%13\"></td></tr>\n"
42 "<tr><td></td><td><input type=\"submit\" value=\"OK\"></td></tr>\n"
44 .arg(tr(
"Network settings"))
45 .arg(tr(
"Hostname:")) .arg( m_hostname )
46 .arg(tr(
"Use DHCP:")) .arg( (m_ipv4_dhcp) ?
"checked" :
"" )
47 .arg(tr(
"IPv4 address:")) .arg( m_ipv4_addr )
48 .arg(tr(
"IPv4 mask:")) .arg( m_ipv4_mask )
49 .arg(tr(
"IPv4 router:")) .arg( m_ipv4_router )
50 .arg(tr(
"IPv4 dns server:")) .arg( m_ipv4_dns )
57 void NetworkController::getConfigValues() {
58 m_hostname =
"hostname";
60 m_ipv4_addr =
"192.168.1.135";
61 m_ipv4_mask =
"255.255.255.0";
62 m_ipv4_router =
"192.168.1.1";
63 m_ipv4_dns =
"8.8.8.8";
65 QRegExp rx_dhcp (
"config_eth0=\"dhcp\"");
66 QRegExp rx_addr (
"config_eth0=\"([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})\\snetmask\\s([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})\"");
67 QRegExp rx_route (
"routes_eth0=\"default via ([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})\"");
68 QRegExp rx_dns (
"dns_servers_eth0=\"([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})\"");
69 QRegExp rx_hostname (
"hostname=\"(.*)\"");
71 QFile net(CONFIG_NET);
72 if (!net.open(QIODevice::ReadOnly | QIODevice::Text)) {
73 qDebug() <<
"Could not open /etc/conf.d/net";
77 while (!net.atEnd()) {
78 QString line = QString::fromUtf8(net.readLine()).trimmed();
79 if (rx_dhcp.exactMatch(line)) {
83 if (rx_addr.exactMatch(line)) {
84 m_ipv4_addr = rx_addr.cap(1);
85 m_ipv4_mask = rx_addr.cap(2);
88 if (rx_route.exactMatch(line)) {
89 m_ipv4_router = rx_route.cap(1);
92 if (rx_dns.exactMatch(line)) {
93 m_ipv4_dns = rx_dns.cap(1);
100 QFile host(CONFIG_HOSTNAME);
101 if (!host.open(QIODevice::ReadOnly | QIODevice::Text)) {
102 qDebug() <<
"Could not open /etc/conf.d/hostname";
106 while (!host.atEnd()) {
107 QString line = QString::fromUtf8(host.readLine()).trimmed();
108 if (rx_hostname.exactMatch(line)) {
109 m_hostname = rx_hostname.cap(1);
120 m_hostname = request.getParameter(
"hostname");
121 m_ipv4_dhcp = ( request.getParameter(
"ipv4_dhcp") ==
"Y") ?
true :
false;
122 m_ipv4_addr = request.getParameter(
"ipv4_addr");
123 m_ipv4_mask = request.getParameter(
"ipv4_mask");
124 m_ipv4_router = request.getParameter(
"ipv4_router");
125 m_ipv4_dns = request.getParameter(
"ipv4_dns");
127 QFile host(CONFIG_HOSTNAME);
128 if (!host.open(QIODevice::WriteOnly | QIODevice::Text)) {
129 qDebug() <<
"Could not open /etc/conf.d/hostname for writing";
130 write( tr(
"Sorry, it is not possible to write to /etc/conf.d/hostname").toUtf8() );
133 host.write(
"# This file is generated by fotobot application\n");
134 host.write(
"# Your changes will be overwritten\n\n");
135 host.write( QString(
"hostname=\"%1\"\n").arg(m_hostname).toUtf8() );
138 QFile net(CONFIG_NET);
139 if (!net.open(QIODevice::WriteOnly | QIODevice::Text)) {
140 qDebug() <<
"Could not open /etc/conf.d/hostname for writing";
141 write( tr(
"Sorry, it is not possible to write to /etc/conf.d/net").toUtf8() );
144 net.write(
"# This file is generated by fotobot application\n");
145 net.write(
"# Your changes will be overwritten\n\n");
147 net.write(
"dns_servers_eth0=\"8.8.8.8\"\n" );
148 net.write(
"config_eth0=\"dhcp\"\n" );
149 net.write(
"fallback_eth0=\"192.168.1.111 netmask 255.255.255.0\"\n" );
151 net.write( QString(
"config_eth0=\"%1 netmask %2\"\n").arg(m_ipv4_addr).arg(m_ipv4_mask).toUtf8() );
152 net.write( QString(
"routes_eth0=\"%1\"\n").arg(m_ipv4_router).toUtf8() );
153 net.write( QString(
"dns_servers_eth0=\"%1\"\n").arg(m_ipv4_dns).toUtf8() );
157 write( tr(
"<h2>Restarting....</h2>\n<p>Device is restarting now. Please wait few minutes and then refresh this page.</p>").toUtf8() );
159 QProcess *restart =
new QProcess();
160 restart->start(
"/usr/bin/fotobot-reboot");
void servicePrivate(HttpRequest &request)
void actionApply(HttpRequest &request)