checkpid $pid_file || exit 1
for b in $MSTP_BRIDGES; do
if [ "$bridge" == "$b" ]; then
- exec /sbin/mstpctl notify-daemon-that-stp-is-on $bridge
+ exit 0
fi
done
exit 1 ;;
stop)
- exec /sbin/mstpctl notify-daemon-that-stp-is-off $bridge
+ exit 0
;;
*)
echo "Unknown action:" $2
CTL_CHECK_BRIDGE;
return MSTP_IN_set_all_fids2mstids(br, fids2mstids) ? 0 : -1;
}
-
-int CTL_stp_mode_notification(int br_index, bool on)
-{
- int br_flags;
- CTL_CHECK_BRIDGE;
- if(0 > (br_flags = get_flags(br->sysdeps.name)))
- return br_flags;
- set_br_up(br, !!(br_flags & IFF_UP), on);
- return 0;
-}
#define set_fids2mstids_CALL (in->br_index, in->fids2mstids)
CTL_DECLARE(set_fids2mstids);
-/* stp_mode_notification */
-#define CMD_CODE_stp_mode_notification (122 | RESPONSE_FIRST_HANDLE_LATER)
-#define stp_mode_notification_ARGS (int br_index, bool on)
-struct stp_mode_notification_IN
-{
- int br_index;
- bool on;
-};
-struct stp_mode_notification_OUT
-{
-};
-#define stp_mode_notification_COPY_IN ({ in->br_index = br_index; \
- in->on = on; })
-#define stp_mode_notification_COPY_OUT ({ (void)0; })
-#define stp_mode_notification_CALL (in->br_index, in->on)
-CTL_DECLARE(stp_mode_notification);
-
/* General case part in ctl command server switch */
#define SERVER_MESSAGE_CASE(name) \
case CMD_CODE_ ## name : do \
return CTL_set_fid2mstid(br_index, fid, mstid);
}
-static int cmd_stp_mode_notification(int argc, char *const *argv, bool on)
-{
- int br_index;
- /* Because this command has special handling,
- * argc was not checked earlier
- */
- if(2 > argc)
- {
- fprintf(stderr,
- "Incorrect number of arguments for notification command\n");
- exit(1);
- }
- if(0 > (br_index = get_index(argv[1], "bridge")))
- return br_index;
- return CTL_stp_mode_notification(br_index, on);
-}
-
struct command
{
int nargs;
argv += optind;
if(NULL == (cmd = command_lookup(argv[0])))
{
- /* Two special commands not intended for interactive use */
- if(!strcmp(argv[0], "notify-daemon-that-stp-is-on"))
- return cmd_stp_mode_notification(argc, argv, true);
- if(!strcmp(argv[0], "notify-daemon-that-stp-is-off"))
- return cmd_stp_mode_notification(argc, argv, false);
-
fprintf(stderr, "never heard of command [%s]\n", argv[0]);
goto help;
}
CLIENT_SIDE_FUNCTION(set_fid2mstid)
CLIENT_SIDE_FUNCTION(set_vids2fids)
CLIENT_SIDE_FUNCTION(set_fids2mstids)
-CLIENT_SIDE_FUNCTION(stp_mode_notification)
/*********************** Logging *********************/
SERVER_MESSAGE_CASE(set_fid2mstid);
SERVER_MESSAGE_CASE(set_vids2fids);
SERVER_MESSAGE_CASE(set_fids2mstids);
- SERVER_MESSAGE_CASE(stp_mode_notification);
default:
ERROR("CTL: Unknown command %d", cmd);