|
@@ -70,6 +70,32 @@ void log_rules(rule_t *rules)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+int set_led(struct led *led, unsigned char value)
|
|
|
+{
|
|
|
+ char buf[8];
|
|
|
+
|
|
|
+ if ( ! led )
|
|
|
+ return -1;
|
|
|
+
|
|
|
+ if ( ! led->controlfd )
|
|
|
+ return -1;
|
|
|
+
|
|
|
+ if ( led->state == value )
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ snprintf(buf, 8, "%d", value);
|
|
|
+
|
|
|
+ rewind(led->controlfd);
|
|
|
+
|
|
|
+ if ( ! fwrite(buf, sizeof(char), strlen(buf), led->controlfd) )
|
|
|
+ return -2;
|
|
|
+
|
|
|
+ fflush(led->controlfd);
|
|
|
+ led->state=value;
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
int init_led(struct led **led, char *ledname)
|
|
|
{
|
|
|
struct led *newled;
|
|
@@ -102,8 +128,15 @@ int init_led(struct led **led, char *ledname)
|
|
|
|
|
|
newled->sysfspath = bp;
|
|
|
newled->controlfd = bfp;
|
|
|
-
|
|
|
+
|
|
|
*led = newled;
|
|
|
+
|
|
|
+ if ( set_led(newled, 255) )
|
|
|
+ goto cleanup_fp;
|
|
|
+
|
|
|
+ if ( set_led(newled, 0) )
|
|
|
+ goto cleanup_fp;
|
|
|
+
|
|
|
return 0;
|
|
|
|
|
|
cleanup_fp:
|
|
@@ -124,29 +157,6 @@ void close_led(struct led **led)
|
|
|
(*led)=NULL;
|
|
|
}
|
|
|
|
|
|
-int set_led(struct led *led, unsigned char value)
|
|
|
-{
|
|
|
- char buf[8];
|
|
|
-
|
|
|
- if ( ! led )
|
|
|
- return -1;
|
|
|
-
|
|
|
- if ( ! led->controlfd )
|
|
|
- return -1;
|
|
|
-
|
|
|
- snprintf(buf, 8, "%d", value);
|
|
|
-
|
|
|
- rewind(led->controlfd);
|
|
|
-
|
|
|
- if ( ! fwrite(buf, sizeof(char), strlen(buf), led->controlfd) )
|
|
|
- return -2;
|
|
|
-
|
|
|
- fflush(led->controlfd);
|
|
|
- led->state=value;
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
|
|
|
int quality(const struct iwinfo_ops *iw, const char *ifname)
|
|
|
{
|