diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-01-18 17:57:06 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-01-18 17:57:06 -0500 |
commit | cd27f742d460a99f388478e88f5d19f5cc1a096e (patch) | |
tree | 149027655b970c1039876cb23081e018ed60521a /libs/midi++2 | |
parent | b520db4687f35692c071f6b2c37473280fb81f90 (diff) |
momo ip midi debugging
Diffstat (limited to 'libs/midi++2')
-rw-r--r-- | libs/midi++2/ipmidi_port.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libs/midi++2/ipmidi_port.cc b/libs/midi++2/ipmidi_port.cc index 848276b220..139c799c0a 100644 --- a/libs/midi++2/ipmidi_port.cc +++ b/libs/midi++2/ipmidi_port.cc @@ -231,6 +231,18 @@ IPMIDIPort::open_sockets (int base_port, const string& ifname) addrout.sin_addr.s_addr = ::inet_addr("225.0.0.37"); addrout.sin_port = htons (base_port); + struct sockaddr_in any; + ::memset(&any, 0, sizeof(struct sockaddr_in)); + addrout.sin_family = AF_INET; + addrout.sin_addr.s_addr = INADDR_ANY; + addrout.sin_port = htons (base_port); + + if (::bind(sockout, (struct sockaddr *) (&any), sizeof(any)) < 0) { + ::perror("bind"); + cout << "ipmidi bind error\n"; + return false; + } + #ifndef PLATFORM_WINDOWS int loop; socklen_t size; @@ -239,7 +251,7 @@ IPMIDIPort::open_sockets (int base_port, const string& ifname) int size; #endif - if (::getsockopt (sockin, IPPROTO_IP, IP_MULTICAST_LOOP, (char *) &loop, &size)) { + if (::getsockopt (sockout, IPPROTO_IP, IP_MULTICAST_LOOP, (char *) &loop, &size)) { // ::perror ("getsockopt(IP_MULTICAST_LOOP)"); cout << "Cannot get loopback status\n"; } else { @@ -254,7 +266,7 @@ IPMIDIPort::open_sockets (int base_port, const string& ifname) return false; } - if (::getsockopt (sockin, IPPROTO_IP, IP_MULTICAST_LOOP, (char *) &loop, &size)) { + if (::getsockopt (sockout, IPPROTO_IP, IP_MULTICAST_LOOP, (char *) &loop, &size)) { // ::perror ("getsockopt(IP_MULTICAST_LOOP)"); cout << "Cannot Get loopback status 2\n"; } else { |