[haiku-commits] Change in haiku[master]: IPP: Accept replies without content-type

  • From: Gerrit <review@xxxxxxxxxxxxxxxxxxx>
  • To: waddlesplash <waddlesplash@xxxxxxxxx>, haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 28 Jun 2020 16:06:03 +0000

From Adrien Destugues <pulkomandy@xxxxxxxxx>:

Adrien Destugues has uploaded this change for review. ( 
https://review.haiku-os.org/c/haiku/+/2962 ;)


Change subject: IPP: Accept replies without content-type
......................................................................

IPP: Accept replies without content-type

My printer doesn't include a content-type in its replies.
If a content-type is present, it should be the expected one. But if the
printer doesn't specify it, we can try to parse the reply and see if it
makes sense. Since the reauest has a content-type, it's reasonably safe
to assume the reply will match the requested content type.
---
M src/add-ons/print/transports/ipp/IppSetupDlg.cpp
M src/add-ons/print/transports/ipp/IppTransport.cpp
2 files changed, 5 insertions(+), 3 deletions(-)



  git pull ssh://git.haiku-os.org:22/haiku refs/changes/62/2962/1

diff --git a/src/add-ons/print/transports/ipp/IppSetupDlg.cpp 
b/src/add-ons/print/transports/ipp/IppSetupDlg.cpp
index fb0046a..5285fe3 100644
--- a/src/add-ons/print/transports/ipp/IppSetupDlg.cpp
+++ b/src/add-ons/print/transports/ipp/IppSetupDlg.cpp
@@ -121,10 +121,12 @@
                HTTP_RESPONSECODE response_code = conn.getResponseCode();
                if (response_code == HTTP_OK) {
                        const char *content_type = conn.getContentType();
-                       if (content_type && !strncasecmp(content_type, 
"application/ipp", 15)) {
+                       if (content_type == NULL
+                               || strncasecmp(content_type, "application/ipp", 
15) == 0) {
                                const IppContent *ipp_response = 
conn.getIppResponse();
                                if (ipp_response->good()) {
-                                       dir->WriteAttr(IPP_URL, B_STRING_TYPE, 
0, url->Text(), strlen(url->Text()) + 1);
+                                       dir->WriteAttr(IPP_URL, B_STRING_TYPE, 
0, url->Text(),
+                                               strlen(url->Text()) + 1);
                                        return true;
                                } else {
                                        error_msg = 
ipp_response->getStatusMessage();
diff --git a/src/add-ons/print/transports/ipp/IppTransport.cpp 
b/src/add-ons/print/transports/ipp/IppTransport.cpp
index 53494c2..a706387 100644
--- a/src/add-ons/print/transports/ipp/IppTransport.cpp
+++ b/src/add-ons/print/transports/ipp/IppTransport.cpp
@@ -107,7 +107,7 @@
                HTTP_RESPONSECODE response_code = conn.getResponseCode();
                if (response_code == HTTP_OK) {
                        const char *content_type = conn.getContentType();
-                       if (content_type && !strncasecmp(content_type, 
"application/ipp", 15)) {
+                       if (content_type == NULL || strncasecmp(content_type, 
"application/ipp", 15) == 0) {
                                const IppContent *ipp_response = 
conn.getIppResponse();
                                if (ipp_response->fail()) {
                                        __error = true;

--
To view, visit https://review.haiku-os.org/c/haiku/+/2962
To unsubscribe, or for help writing mail filters, visit 
https://review.haiku-os.org/settings

Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: I0fce7edd7cc40d2761b683d3e4c7b5316436e298
Gerrit-Change-Number: 2962
Gerrit-PatchSet: 1
Gerrit-Owner: Adrien Destugues <pulkomandy@xxxxxxxxx>
Gerrit-MessageType: newchange

Other related posts:

  • » [haiku-commits] Change in haiku[master]: IPP: Accept replies without content-type - Gerrit