| | 1879 | | mcap->mc_tid = TIDGID | tp->t_tid;
| | | 1880 | | upkint(mp, &ndst); | | | 1881 | | dsts = TALLOC(ndst, int, "dsts");
| | | 1882 | | for ( i=0, j=0 ; i < ndst ; i++ ) { | | | 1883 | | upkuint(mp, &tid); | | | 1884 | | if ((tid & tidhmask) == myhostpart || tidtohost(hosts, tid)) | | | 1885 | | dsts[j++] = tid; | | | 1886 | | } | | | 1887 | | ndst = j; | | | 1888 | | | | | 1889 | | if (ndst < 1) | | | 1890 | | goto noguys; | | | 1891 | | | | | 1892 | | | | | 1893 | | | | | 1894 | | | | | 1895 | | | | | 1896 | | | | true | 1897 | | mcap->mc_dsts = TALLOC(ndst, int, "mcal");
| | | 1898 | | mcap->mc_ndst = 0; | | | 1899 | | | | | 1900 | | for (j = 0; j < ndst; ) { | | | 1901 | | i = j; | | | 1902 | | tid = dsts[i] & tidhmask; | | | 1903 | | while (++j < ndst && tid == (dsts[j] & tidhmask)) ; | | | 1904 | | mp = mesg_new(0); | | | 1905 | | mp->m_dst = (tid |= TIDPVMD);
| | | 1906 | | mp->m_tag = DM_MCA;
| | | 1907 | | pkint(mp, mcap->mc_tid); | | | 1908 | | pkint(mp, j - i); | | | 1909 | | while (i < j) | | | 1910 | | pkint(mp, dsts[i++]); | | | 1911 | | sendmessage(mp); | | mcap->mc_dsts <= 4095 | 1912 | | mcap->mc_dsts[mcap->mc_ndst++] = tid; |
|