--- a/master/slave.c Tue Jun 27 20:08:15 2006 +0000
+++ b/master/slave.c Tue Jun 27 20:24:32 2006 +0000
@@ -1422,28 +1422,23 @@
ec_slave_t *slave = container_of(kobj, ec_slave_t, kobj);
if (attr == &attr_state) {
- if (!strcmp(buffer, "INIT\n")) {
+ if (!strcmp(buffer, "INIT\n"))
slave->requested_state = EC_SLAVE_STATE_INIT;
- slave->error_flag = 0;
- return size;
- }
- else if (!strcmp(buffer, "PREOP\n")) {
+ else if (!strcmp(buffer, "PREOP\n"))
slave->requested_state = EC_SLAVE_STATE_PREOP;
- slave->error_flag = 0;
- return size;
- }
- else if (!strcmp(buffer, "SAVEOP\n")) {
+ else if (!strcmp(buffer, "SAVEOP\n"))
slave->requested_state = EC_SLAVE_STATE_SAVEOP;
- slave->error_flag = 0;
- return size;
- }
- else if (!strcmp(buffer, "OP\n")) {
+ else if (!strcmp(buffer, "OP\n"))
slave->requested_state = EC_SLAVE_STATE_OP;
- slave->error_flag = 0;
- return size;
- }
-
- EC_ERR("Failed to set slave state!\n");
+ else {
+ EC_ERR("Invalid slave state \"%s\"!\n", buffer);
+ return -EINVAL;
+ }
+
+ EC_INFO("Accepted new state %s for slave %i.\n",
+ buffer, slave->ring_position);
+ slave->error_flag = 0;
+ return size;
}
else if (attr == &attr_eeprom) {
if (!ec_slave_write_eeprom(slave, buffer, size))