blob: 350cd5fd9ca674e3f6ca4c9bfba221e0a3c74eda [file] [log] [blame]
#!/usr/bin/python
import socket, struct, os, signal, sys
# -*- coding: utf-8 -*-
"""
Script used to join machine into multicast groups.
@author Amos Kong <akong@redhat.com>
"""
if __name__ == "__main__":
if len(sys.argv) < 4:
print """%s [mgroup_count] [prefix] [suffix]
mgroup_count: count of multicast addresses
prefix: multicast address prefix
suffix: multicast address suffix""" % sys.argv[0]
sys.exit()
mgroup_count = int(sys.argv[1])
prefix = sys.argv[2]
suffix = int(sys.argv[3])
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
for i in range(mgroup_count):
mcast = prefix + "." + str(suffix + i)
try:
mreq = struct.pack("4sl", socket.inet_aton(mcast),
socket.INADDR_ANY)
s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
except:
s.close()
print "Could not join multicast: %s" % mcast
raise
print "join_mcast_pid:%s" % os.getpid()
os.kill(os.getpid(), signal.SIGSTOP)
s.close()