Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/daemon.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,19 +79,22 @@ void signal_handler(int signal)
syslog(LOG_WARNING, "Received SIGTERM signal.");
delete_pid();
//TODO: free resources
set_fans_auto(fans);
exit(EXIT_SUCCESS);
break;

case SIGINT:
syslog(LOG_WARNING, "Received SIGINT signal.");
delete_pid();
//TODO: free resources
set_fans_auto(fans);
exit(EXIT_SUCCESS);

case SIGSTOP:
syslog(LOG_WARNING, "Received SIGSTOP signal.");
delete_pid();
//TODO: free resources
set_fans_auto(fans);
exit(EXIT_SUCCESS);

default:
Expand Down
2 changes: 2 additions & 0 deletions src/global.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,7 @@ struct s_fans {
typedef struct s_sensors t_sensors;
typedef struct s_fans t_fans;

extern t_sensors* sensors;
extern t_fans* fans;

#endif
27 changes: 20 additions & 7 deletions src/mbpfan.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,9 @@ int max_temp = 86; // do not set it > 90

int polling_interval = 7;

typedef struct s_sensors t_sensors;
typedef struct s_fans t_fans;
t_sensors* sensors = NULL;
t_fans* fans = NULL;


bool is_legacy_kernel()
{
Expand Down Expand Up @@ -243,7 +244,7 @@ t_fans *retrieve_fans()
int counter = 0;
int fans_found = 0;

for(int counter = 0; counter<10; counter++) {
for(counter = 0; counter<10; counter++) {

path_output = (char*) malloc(sizeof( char ) * path_min_size);
path_output[0] = '\0';
Expand Down Expand Up @@ -313,7 +314,7 @@ t_fans *retrieve_fans()
}


void set_fans_man(t_fans *fans)
static void set_fans_mode(t_fans *fans, int mode)
{

t_fans *tmp = fans;
Expand All @@ -323,14 +324,26 @@ void set_fans_man(t_fans *fans)
file = fopen(tmp->fan_manual_path, "rw+");

if(file != NULL) {
fprintf(file, "%d", 1);
fprintf(file, "%d", mode);
fclose(file);
}

tmp = tmp->next;
}
}

void set_fans_man(t_fans *fans)
{

set_fans_mode(fans, 1);
}

void set_fans_auto(t_fans *fans)
{

set_fans_mode(fans, 0);
}

t_sensors *refresh_sensors(t_sensors *sensors)
{

Expand Down Expand Up @@ -488,8 +501,8 @@ void mbpfan()

retrieve_settings(NULL);

t_sensors* sensors = retrieve_sensors();
t_fans* fans = retrieve_fans();
sensors = retrieve_sensors();
fans = retrieve_fans();

set_fans_man(fans);
new_temp = get_temp(sensors);
Expand Down
6 changes: 6 additions & 0 deletions src/mbpfan.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,12 @@ t_fans* retrieve_fans();
*/
void set_fans_man(t_fans *fans);

/**
* Given a list of sensors with associated fans
* Set them to automatic control
*/
void set_fans_auto(t_fans *fans);

/**
* Given a list of sensors with associated fans
* Change their speed
Expand Down