MCPcopy Create free account
hub / github.com/dmtcp/dmtcp / sshdReceiveFds

Function sshdReceiveFds

src/plugin/ipc/ssh/ssh.cpp:181–214  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

179}
180
181static void
182sshdReceiveFds()
183{
184 // Add receive-fd data socket.
185 static struct sockaddr_un fdReceiveAddr;
186 static socklen_t fdReceiveAddrLen;
187
188 memset(&fdReceiveAddr, 0, sizeof(fdReceiveAddr));
189 jalib::JSocket sock(_real_socket(AF_UNIX, SOCK_DGRAM, 0));
190 JASSERT(sock.isValid());
191 sock.changeFd(SSHD_RECEIVE_FD);
192 fdReceiveAddr.sun_family = AF_UNIX;
193 JASSERT(_real_bind(SSHD_RECEIVE_FD,
194 (struct sockaddr *)&fdReceiveAddr,
195 sizeof(fdReceiveAddr.sun_family)) == 0) (JASSERT_ERRNO);
196
197 fdReceiveAddrLen = sizeof(fdReceiveAddr);
198 JASSERT(getsockname(SSHD_RECEIVE_FD,
199 (struct sockaddr *)&fdReceiveAddr,
200 &fdReceiveAddrLen) == 0);
201
202 // Send this information to dmtcp_ssh process
203 ssize_t ret = write(sshSockFd, &fdReceiveAddrLen, sizeof(fdReceiveAddrLen));
204 JASSERT(ret == sizeof(fdReceiveAddrLen)) (sshSockFd) (ret) (JASSERT_ERRNO);
205 ret = write(sshSockFd, &fdReceiveAddr, fdReceiveAddrLen);
206 JASSERT(ret == (ssize_t)fdReceiveAddrLen);
207
208 // Now receive fds
209 receiveFileDescr(STDIN_FILENO);
210 receiveFileDescr(STDOUT_FILENO);
211 receiveFileDescr(STDERR_FILENO);
212 receiveFileDescr(SSHD_PIPE_FD);
213 _real_close(SSHD_RECEIVE_FD);
214}
215
216static void
217createNewDmtcpSshdProcess()

Callers 1

refillFunction · 0.85

Calls 7

memsetFunction · 0.85
receiveFileDescrFunction · 0.85
_real_socketFunction · 0.50
_real_bindFunction · 0.50
_real_closeFunction · 0.50
isValidMethod · 0.45
changeFdMethod · 0.45

Tested by

no test coverage detected