<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://so.v2.cs.unibo.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Wifi_daemon</id>
	<title>Wifi daemon - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://so.v2.cs.unibo.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Wifi_daemon"/>
	<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Wifi_daemon&amp;action=history"/>
	<updated>2026-05-05T10:39:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Wifi_daemon&amp;diff=877&amp;oldid=prev</id>
		<title>Eddy: Created page with &quot;==Intro== Dato che ogni mattina mentre sono in laboratorio la connessione con ALMAWIFI viene persa ogni 10 minuti, ho deciso di scrivere un demone che me la riattivi ogni volt...&quot;</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Wifi_daemon&amp;diff=877&amp;oldid=prev"/>
		<updated>2015-03-02T08:45:49Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Intro== Dato che ogni mattina mentre sono in laboratorio la connessione con ALMAWIFI viene persa ogni 10 minuti, ho deciso di scrivere un demone che me la riattivi ogni volt...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Intro==&lt;br /&gt;
Dato che ogni mattina mentre sono in laboratorio la connessione con ALMAWIFI viene persa ogni 10 minuti, ho deciso di scrivere un demone che me la riattivi ogni volta.&lt;br /&gt;
PROBLEMA: durante la  wpa_supplicant ho ioctl[SIOCSIWAP]: Operation not permitted&lt;br /&gt;
&lt;br /&gt;
===daemon.c===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/wait.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void daemonFunction (char * argv[]);&lt;br /&gt;
void usage (int argc, char *argv[]);&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
	pid_t child;&lt;br /&gt;
	pid_t gChild;&lt;br /&gt;
	int status;&lt;br /&gt;
&lt;br /&gt;
	usage (argc, argv);&lt;br /&gt;
	child = fork ();&lt;br /&gt;
	switch (child)&lt;br /&gt;
	{&lt;br /&gt;
		case -1:&lt;br /&gt;
			perror (&amp;quot;child&amp;quot;);&lt;br /&gt;
			exit (1);&lt;br /&gt;
		case 0:&lt;br /&gt;
			gChild = fork ();&lt;br /&gt;
			switch (gChild)&lt;br /&gt;
			{&lt;br /&gt;
				  case -1:&lt;br /&gt;
					 perror (&amp;quot;gChild&amp;quot;);&lt;br /&gt;
					 exit (1);&lt;br /&gt;
&lt;br /&gt;
				  case 0:&lt;br /&gt;
					 daemonFunction(argv);&lt;br /&gt;
&lt;br /&gt;
				  default:&lt;br /&gt;
					 //parent gChild&lt;br /&gt;
					 return 0;&lt;br /&gt;
&lt;br /&gt;
			}&lt;br /&gt;
		default:&lt;br /&gt;
&lt;br /&gt;
			//parent&lt;br /&gt;
			waitpid (child, &amp;amp;status, 0);&lt;br /&gt;
			return 0;&lt;br /&gt;
&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		 return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void daemonFunction (char *argv[])&lt;br /&gt;
{&lt;br /&gt;
	argv[0] = &amp;quot;./connect.sh&amp;quot;;&lt;br /&gt;
	while (1)&lt;br /&gt;
	{&lt;br /&gt;
		 pid_t child;&lt;br /&gt;
		 child = fork ();&lt;br /&gt;
		 int status;&lt;br /&gt;
&lt;br /&gt;
		 switch (child)&lt;br /&gt;
		 {&lt;br /&gt;
			case -1:&lt;br /&gt;
				  perror (&amp;quot;child&amp;quot;);&lt;br /&gt;
				  exit (1);&lt;br /&gt;
			case 0:&lt;br /&gt;
				  execv(&amp;quot;./connect.sh&amp;quot;, argv);&lt;br /&gt;
&lt;br /&gt;
				  perror (&amp;quot;execv&amp;quot;);&lt;br /&gt;
				  exit (1);&lt;br /&gt;
&lt;br /&gt;
			default:&lt;br /&gt;
				  //parent &lt;br /&gt;
				  waitpid (child, &amp;amp;status, 0);&lt;br /&gt;
				  break;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		 }&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void usage (int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
	if (argc != 2)&lt;br /&gt;
	{&lt;br /&gt;
		 char *iface= &amp;quot;iface&amp;quot;;&lt;br /&gt;
		 printf (&amp;quot;Usage: %s [%s]\n&amp;quot;,&lt;br /&gt;
			  argv[0],&lt;br /&gt;
			  iface);&lt;br /&gt;
		 exit (1);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===connect.sh===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
main ()&lt;br /&gt;
{&lt;br /&gt;
	  ping -q -c5 google.com &amp;gt;&amp;gt; ./.log&lt;br /&gt;
&lt;br /&gt;
	  if [ $? -eq 0 ]&lt;br /&gt;
	  then&lt;br /&gt;
		 echo &amp;quot;internet ok&amp;quot; &amp;gt;&amp;gt; ./.log&lt;br /&gt;
		 sleep 10&lt;br /&gt;
	  else&lt;br /&gt;
		 connect &amp;quot;$@&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	  fi&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
connect ()&lt;br /&gt;
{&lt;br /&gt;
	  iface=$1&lt;br /&gt;
&lt;br /&gt;
	  sudo killall wpa_supplicant&lt;br /&gt;
	  sudo ifconfig $iface down &lt;br /&gt;
	  sudo iwconfig $iface mode Managed &lt;br /&gt;
	  sudo ifconfig $iface up &lt;br /&gt;
	  sudo wpa_supplicant -B -Dwext -i $iface -c ./wireless-wpa-enterprise.conf -dd &lt;br /&gt;
	  sudo dhclient $iface &lt;br /&gt;
	  sleep 10&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
main &amp;quot;$@&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===wireless-wpa-enterprise.conf===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
    ssid=&amp;quot;ALMAWIFI&amp;quot;&lt;br /&gt;
    scan_ssid=0&lt;br /&gt;
    key_mgmt=WPA-EAP&lt;br /&gt;
    eap=PEAP&lt;br /&gt;
    phase2=&amp;quot;auth=MSCHAPV2&amp;quot;&lt;br /&gt;
    identity=&amp;quot;blabla@studio.unibo.it&amp;quot;&lt;br /&gt;
    password=&amp;quot;psw&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[User:Eddy|Eddy]] ([[User talk:Eddy|talk]]) 10.20 Mon, 02 Mar 2015 (CET)&lt;/div&gt;</summary>
		<author><name>Eddy</name></author>
	</entry>
</feed>