X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=powersensordaemon%2Fpowersensordaemon.c;h=ac96ef0dce64af98bf7d5017346c407222390a71;hb=75d3e955b7445b15c9c25a425e888ae76af6c3db;hp=bf0333027c65c18b667d77662b228b7683334427;hpb=199dad6842c2a42184383ee956b2f08957874fb9;p=svn42.git diff --git a/powersensordaemon/powersensordaemon.c b/powersensordaemon/powersensordaemon.c index bf03330..ac96ef0 100644 --- a/powersensordaemon/powersensordaemon.c +++ b/powersensordaemon/powersensordaemon.c @@ -100,24 +100,26 @@ int send_command(int tty_fd, cmd_t* cmd) if(!cmd) return -1; - char c; + if(!cmd->param) + return 0; + + unsigned int j,cmd_param_len = strnlen(cmd->param,60); + + char c[cmd_param_len]; switch(cmd->cmd) { case POWER_ON: { - if(!cmd->param) - return 0; - c = toupper(cmd->param[0]); + for (j=0; j< cmd_param_len; j++) + c[j] = toupper(cmd->param[j]); break; } case POWER_OFF: { - if(!cmd->param) - return 0; - c = tolower(cmd->param[0]); + for (j=0; j< cmd_param_len; j++) + c[j] = tolower(cmd->param[j]); break; } case SAMPLE: { - if(!cmd->param) - return 0; - c = cmd->param[0]; + for (j=0; j< cmd_param_len; j++) + c[j] = cmd->param[j]; break; } default: return 0; @@ -125,7 +127,7 @@ int send_command(int tty_fd, cmd_t* cmd) int ret; do { - ret = write(tty_fd, &c, 1); + ret = write(tty_fd, c, cmd_param_len); } while(!ret || (ret == -1 && errno == EINTR)); if(ret > 0) { @@ -440,7 +442,7 @@ int main_loop(int tty_fd, int cmd_listen_fd, autosample_process_t* autosample, o FD_SET(cmd_listen_fd, &readfds); int max_fd = tty_fd > cmd_listen_fd ? tty_fd : cmd_listen_fd; - int autosample_enabled = 0; + u_int8_t autosample_enabled = 0; if(autosample->pid_ > 0) { clear_fd(autosample->write_fd_); FD_SET(autosample->write_fd_, &readfds);