Skip to content
Snippets Groups Projects
Commit cc2292a6 authored by George Nachman's avatar George Nachman
Browse files

Adhoc build 3.0.20161214_154415

parent cf687d7c
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -6324,7 +6324,7 @@
LastUpgradeCheck = 0700;
TargetAttributes = {
874206460564169600CFC3F1 = {
DevelopmentTeam = H7V7XYVQ7D;
DevelopmentTeam = CMC4EL7UVS;
ProvisioningStyle = Manual;
};
A6755F481D729A0500F3726C = {
Loading
Loading
@@ -7993,7 +7993,7 @@
CODE_SIGN_IDENTITY = "Developer ID Application";
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
DEVELOPMENT_TEAM = H7V7XYVQ7D;
DEVELOPMENT_TEAM = CMC4EL7UVS;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)",
Loading
Loading
@@ -9253,7 +9253,7 @@
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = H7V7XYVQ7D;
DEVELOPMENT_TEAM = CMC4EL7UVS;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)",
Loading
Loading
@@ -9318,10 +9318,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_WARN_INT_CONVERSION = YES;
CODE_SIGN_IDENTITY = "Developer ID Application";
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
DEVELOPMENT_TEAM = H7V7XYVQ7D;
DEVELOPMENT_TEAM = CMC4EL7UVS;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)",
Loading
Loading
@@ -9386,7 +9386,7 @@
CLANG_WARN_INT_CONVERSION = YES;
CODE_SIGN_IDENTITY = "Developer ID Application";
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = H7V7XYVQ7D;
DEVELOPMENT_TEAM = CMC4EL7UVS;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)",
Loading
Loading
Loading
Loading
@@ -23,7 +23,7 @@ static ssize_t ReceiveMessageAndFileDescriptor(int fd,
// Loop because sometimes the dynamic loader spews warnings (for example, when malloc logging
// is enabled)
while (1) {
syslog(LOG_NOTICE, "ReceiveMessageAndFileDescriptor\n");
syslog(LOG_ERR, "ReceiveMessageAndFileDescriptor\n");
struct msghdr message;
struct iovec ioVector[1];
iTermFileDescriptorControlMessage controlMessage;
Loading
Loading
@@ -44,43 +44,43 @@ static ssize_t ReceiveMessageAndFileDescriptor(int fd,
// There used to be a race condition where the server would die
// really early and then we'd get stuck in recvmsg. See issue 4383.
if (deadMansPipeReadEnd >= 0) {
syslog(LOG_NOTICE, "Calling select...");
syslog(LOG_ERR, "Calling select...");
int fds[2] = { fd, deadMansPipeReadEnd };
int readable[2];
iTermSelect(fds, 2, readable);
if (readable[1]) {
syslog(LOG_NOTICE, "Server was dead before recevmsg. Did the shell terminate immediately?");
syslog(LOG_ERR, "Server was dead before recevmsg. Did the shell terminate immediately?");
return -1;
}
syslog(LOG_NOTICE, "assuming socket is readable");
syslog(LOG_ERR, "assuming socket is readable");
}
syslog(LOG_NOTICE, "calling recvmsg...");
syslog(LOG_ERR, "calling recvmsg...");
n = recvmsg(fd, &message, 0);
syslog(LOG_NOTICE, "recvmsg returned %zd, errno=%s\n", n, (n < 0 ? strerror(errno) : "n/a"));
syslog(LOG_ERR, "recvmsg returned %zd, errno=%s\n", n, (n < 0 ? strerror(errno) : "n/a"));
} while (n < 0 && errno == EINTR);
 
if (n <= 0) {
syslog(LOG_NOTICE, "error from recvmsg %s\n", strerror(errno));
syslog(LOG_ERR, "error from recvmsg %s\n", strerror(errno));
return n;
}
syslog(LOG_NOTICE, "recvmsg returned %d\n", (int)n);
syslog(LOG_ERR, "recvmsg returned %d\n", (int)n);
 
struct cmsghdr *messageHeader = CMSG_FIRSTHDR(&message);
if (messageHeader != NULL && messageHeader->cmsg_len == CMSG_LEN(sizeof(int))) {
if (messageHeader->cmsg_level != SOL_SOCKET) {
syslog(LOG_NOTICE, "Wrong cmsg level\n");
syslog(LOG_ERR, "Wrong cmsg level\n");
return -1;
}
if (messageHeader->cmsg_type != SCM_RIGHTS) {
syslog(LOG_NOTICE, "Wrong cmsg type\n");
syslog(LOG_ERR, "Wrong cmsg type\n");
return -1;
}
syslog(LOG_NOTICE, "Got a fd\n");
syslog(LOG_ERR, "Got a fd\n");
*receivedFileDescriptorPtr = *((int *)CMSG_DATA(messageHeader));
syslog(LOG_NOTICE, "Return %d\n", (int)n);
syslog(LOG_ERR, "Return %d\n", (int)n);
return n;
} else {
syslog(LOG_NOTICE, "No descriptor passed\n");
syslog(LOG_ERR, "No descriptor passed\n");
*receivedFileDescriptorPtr = -1; // descriptor was not passed, try again.
// This is the only case where the loop repeats.
}
Loading
Loading
@@ -95,7 +95,7 @@ int iTermFileDescriptorClientConnect(const char *path) {
do {
socketFd = socket(AF_UNIX, SOCK_STREAM, 0);
if (socketFd == -1) {
syslog(LOG_NOTICE, "Failed to create socket: %s\n", strerror(errno));
syslog(LOG_ERR, "Failed to create socket: %s\n", strerror(errno));
return -1;
}
 
Loading
Loading
@@ -112,12 +112,12 @@ int iTermFileDescriptorClientConnect(const char *path) {
int rc = connect(socketFd, (struct sockaddr *)&remote, len);
if (rc == -1) {
interrupted = (errno == EINTR);
syslog(LOG_NOTICE, "Connect failed: %s\n", strerror(errno));
syslog(LOG_ERR, "Connect failed: %s\n", strerror(errno));
close(socketFd);
if (!interrupted) {
return -1;
}
syslog(LOG_NOTICE, "Trying again because connect returned EINTR.");
syslog(LOG_ERR, "Trying again because connect returned EINTR.");
} else {
// Make socket block again.
interrupted = 0;
Loading
Loading
@@ -132,7 +132,7 @@ static int FileDescriptorClientConnectPid(pid_t pid) {
char path[PATH_MAX + 1];
iTermFileDescriptorSocketPath(path, sizeof(path), pid);
 
syslog(LOG_NOTICE, "Connect to path %s\n", path);
syslog(LOG_ERR, "Connect to path %s\n", path);
return iTermFileDescriptorClientConnect(path);
}
 
Loading
Loading
@@ -146,7 +146,7 @@ iTermFileDescriptorServerConnection iTermFileDescriptorClientRun(pid_t pid) {
 
iTermFileDescriptorServerConnection result = iTermFileDescriptorClientRead(socketFd, -1);
result.serverPid = pid;
syslog(LOG_NOTICE, "Success: process id is %d, pty master fd is %d\n\n",
syslog(LOG_ERR, "Success: process id is %d, pty master fd is %d\n\n",
(int)pid, result.ptyMasterFd);
 
return result;
Loading
Loading
Loading
Loading
@@ -88,10 +88,10 @@ int iTermSelect(int *fds, int count, int *results) {
}
FD_SET(fds[i], &readset);
}
syslog(LOG_NOTICE, "Calling select...");
syslog(LOG_ERR, "Calling select...");
result = select(max + 1, &readset, NULL, NULL, NULL);
theError = errno;
syslog(LOG_NOTICE, "select returned %d, error = %s", result, strerror(theError));
syslog(LOG_ERR, "select returned %d, error = %s", result, strerror(theError));
} while (result == -1 && theError == EINTR);
 
int n = 0;
Loading
Loading
@@ -119,22 +119,22 @@ int iTermFileDescriptorServerAccept(int socketFd) {
}
 
static int SendFileDescriptorAndWait(int connectionFd) {
syslog(LOG_NOTICE, "send master fd and child pid %d", (int)gChildPid);
syslog(LOG_ERR, "send master fd and child pid %d", (int)gChildPid);
int rc = SendMessageAndFileDescriptor(connectionFd, &gChildPid, sizeof(gChildPid), 0);
if (rc <= 0) {
syslog(LOG_NOTICE, "send failed %s", strerror(errno));
syslog(LOG_ERR, "send failed %s", strerror(errno));
close(connectionFd);
return 0;
}
 
syslog(LOG_NOTICE, "All done. Waiting for client to disconnect or child to die.");
syslog(LOG_ERR, "All done. Waiting for client to disconnect or child to die.");
int fds[2] = { gPipe[0], connectionFd };
int results[2];
iTermSelect(fds, sizeof(fds) / sizeof(*fds), results);
syslog(LOG_NOTICE, "select returned. child dead=%d, connection closed=%d", results[0], results[1]);
syslog(LOG_ERR, "select returned. child dead=%d, connection closed=%d", results[0], results[1]);
close(connectionFd);
 
syslog(LOG_NOTICE, "Connection closed.");
syslog(LOG_ERR, "Connection closed.");
// If the pipe has been written to then results[0] will be nonzero. That
// means the child process has died and we can terminate. The server's
// termination signals the client that the child is dead.
Loading
Loading
@@ -144,7 +144,7 @@ static int SendFileDescriptorAndWait(int connectionFd) {
static int PerformAcceptActivity(int socketFd) {
int connectionFd = iTermFileDescriptorServerAccept(socketFd);
if (connectionFd == -1) {
syslog(LOG_NOTICE, "accept failed %s", strerror(errno));
syslog(LOG_ERR, "accept failed %s", strerror(errno));
return 0;
}
 
Loading
Loading
@@ -154,7 +154,7 @@ static int PerformAcceptActivity(int socketFd) {
int iTermFileDescriptorServerSocketBindListen(const char *path) {
int socketFd = socket(AF_UNIX, SOCK_STREAM, 0);
if (socketFd == -1) {
syslog(LOG_NOTICE, "socket() failed: %s", strerror(errno));
syslog(LOG_ERR, "socket() failed: %s", strerror(errno));
return -1;
}
// Mask off all permissions for group and other. Only user can use this socket.
Loading
Loading
@@ -166,14 +166,14 @@ int iTermFileDescriptorServerSocketBindListen(const char *path) {
unlink(local.sun_path);
int len = strlen(local.sun_path) + sizeof(local.sun_family) + 1;
if (bind(socketFd, (struct sockaddr *)&local, len) == -1) {
syslog(LOG_NOTICE, "bind() failed: %s", strerror(errno));
syslog(LOG_ERR, "bind() failed: %s", strerror(errno));
umask(oldMask);
return -1;
}
syslog(LOG_NOTICE, "bind() created %s", local.sun_path);
syslog(LOG_ERR, "bind() created %s", local.sun_path);
 
if (listen(socketFd, kMaxConnections) == -1) {
syslog(LOG_NOTICE, "listen() failed: %s", strerror(errno));
syslog(LOG_ERR, "listen() failed: %s", strerror(errno));
umask(oldMask);
return -1;
}
Loading
Loading
@@ -183,15 +183,15 @@ int iTermFileDescriptorServerSocketBindListen(const char *path) {
 
static int Initialize(char *path, pid_t childPid) {
openlog("iTerm2-Server", LOG_PID | LOG_NDELAY, LOG_USER);
setlogmask(LOG_UPTO(LOG_NOTICE));
setlogmask(LOG_UPTO(LOG_ERR));
gPath = strdup(path);
// We get this when iTerm2 crashes. Ignore it.
syslog(LOG_NOTICE, "Installing SIGHUP handler.");
syslog(LOG_ERR, "Installing SIGHUP handler.");
signal(SIGHUP, SIG_IGN);
 
pipe(gPipe);
 
syslog(LOG_NOTICE, "Installing SIGCHLD handler.");
syslog(LOG_ERR, "Installing SIGCHLD handler.");
gChildPid = childPid;
signal(SIGCHLD, SigChildHandler);
signal(SIGUSR1, SigUsr1Handler);
Loading
Loading
@@ -200,7 +200,7 @@ static int Initialize(char *path, pid_t childPid) {
sigset_t signal_set;
sigemptyset(&signal_set);
sigaddset(&signal_set, SIGCHLD);
syslog(LOG_NOTICE, "Unblocking SIGCHLD.");
syslog(LOG_ERR, "Unblocking SIGCHLD.");
sigprocmask(SIG_UNBLOCK, &signal_set, NULL);
 
return 0;
Loading
Loading
@@ -208,16 +208,16 @@ static int Initialize(char *path, pid_t childPid) {
 
static void MainLoop(char *path) {
// Listen on a Unix Domain Socket.
syslog(LOG_NOTICE, "Entering main loop.");
syslog(LOG_ERR, "Entering main loop.");
int socketFd;
do {
syslog(LOG_NOTICE, "Calling iTermFileDescriptorServerSocketBindListen.");
syslog(LOG_ERR, "Calling iTermFileDescriptorServerSocketBindListen.");
socketFd = iTermFileDescriptorServerSocketBindListen(path);
if (socketFd < 0) {
syslog(LOG_NOTICE, "iTermFileDescriptorServerSocketBindListen failed");
syslog(LOG_ERR, "iTermFileDescriptorServerSocketBindListen failed");
return;
}
syslog(LOG_NOTICE, "Calling PerformAcceptActivity");
syslog(LOG_ERR, "Calling PerformAcceptActivity");
} while (!PerformAcceptActivity(socketFd));
}
 
Loading
Loading
@@ -226,15 +226,15 @@ int iTermFileDescriptorServerRun(char *path, pid_t childPid, int connectionFd) {
signal(SIGPIPE, SIG_IGN);
int rc = Initialize(path, childPid);
if (rc) {
syslog(LOG_NOTICE, "Initialize failed with code %d", rc);
syslog(LOG_ERR, "Initialize failed with code %d", rc);
} else {
syslog(LOG_NOTICE, "Sending file descriptor and waiting on initial connection");
syslog(LOG_ERR, "Sending file descriptor and waiting on initial connection");
if (!SendFileDescriptorAndWait(connectionFd)) {
MainLoop(path);
}
// MainLoop never returns, except by dying on a signal.
}
syslog(LOG_NOTICE, "Unlink %s", path);
syslog(LOG_ERR, "Unlink %s", path);
unlink(path);
return 1;
}
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment