author | spiralman <spiralman> | 2002-05-16 21:14:13 (UTC) |
---|---|---|
committer | spiralman <spiralman> | 2002-05-16 21:14:13 (UTC) |
commit | d8d70e07a09a7c50021f6c85690b79b422d43df5 (patch) (side-by-side diff) | |
tree | 56e4655aca1eac9b46f44e78e2cc378e7f7033de /noncore/tools/remote/buttondialog.cpp | |
parent | daeba256e5a7442dde237f39a6272485e01b7ccd (diff) | |
download | opie-d8d70e07a09a7c50021f6c85690b79b422d43df5.zip opie-d8d70e07a09a7c50021f6c85690b79b422d43df5.tar.gz opie-d8d70e07a09a7c50021f6c85690b79b422d43df5.tar.bz2 |
fixed segfault when socket() returns -1 (hopefully)
Diffstat (limited to 'noncore/tools/remote/buttondialog.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/tools/remote/buttondialog.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/noncore/tools/remote/buttondialog.cpp b/noncore/tools/remote/buttondialog.cpp index e7ff4b4..7479e85 100644 --- a/noncore/tools/remote/buttondialog.cpp +++ b/noncore/tools/remote/buttondialog.cpp @@ -77,48 +77,60 @@ void ButtonDialog::buttonSelected(const QString &string) list+=string; } QStringList ButtonDialog::getList() { return list; } QString ButtonDialog::getLabel() { return label->text(); } QStringList ButtonDialog::getRemotes() { const char write_buffer[] = "LIST\n"; const char *readbuffer; int i, numlines; QStringList list; addr.sun_family=AF_UNIX; strcpy(addr.sun_path,"/dev/lircd"); fd = socket(AF_UNIX, SOCK_STREAM, 0); + if(fd == -1) + { + QMessageBox *mb = new QMessageBox("Error!", + "couldnt connect to socket", + QMessageBox::NoIcon, + QMessageBox::Ok, + QMessageBox::NoButton, + QMessageBox::NoButton); + mb->exec(); + perror("ButtonDialog::GetRemotes"); + return NULL; + } if(std::connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) { QMessageBox *mb = new QMessageBox("Error!", "couldnt connect to socket", QMessageBox::NoIcon, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); mb->exec(); perror("ButtonDialog::GetRemotes"); return NULL; } write(fd, write_buffer, strlen(write_buffer)); for(i=0; i<5; i++) { printf("%d\n", i); readbuffer = readPacket(); printf("%s", readbuffer); printf("%d\n", i); } @@ -137,48 +149,61 @@ QStringList ButtonDialog::getRemotes() QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); mb->exec(); perror("ButtonDialog::GetRemotes"); return NULL; } std::close(fd); return list; } QStringList ButtonDialog::getButtons(const char *remoteName) { QString write_buffer = "LIST "; const char *readbuffer; int i, j, numlines; QStringList list; QString string; write_buffer += remoteName; write_buffer += '\n'; fd = socket(AF_UNIX, SOCK_STREAM, 0); + if(fd == -1) + { + QMessageBox *mb = new QMessageBox("Error!", + "couldnt connect to socket", + QMessageBox::NoIcon, + QMessageBox::Ok, + QMessageBox::NoButton, + QMessageBox::NoButton); + mb->exec(); + perror("ButtonDialog::GetButtons"); + return NULL; + } + if(std::connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) { QMessageBox *mb = new QMessageBox("Error!", "couldnt connect to socket", QMessageBox::NoIcon, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); mb->exec(); perror("ButtonDialog::GetButtons"); return NULL; } write(fd, write_buffer.latin1(), strlen(write_buffer) ); for(i=0; i<5; i++) { readbuffer = readPacket(); } numlines = atoi(readbuffer); for(i=0; i<numlines; i++) |