]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Add DNS-SD, cupsCopyString, and cupsConcatString APIs from libcups v3.
authorMichael R Sweet <msweet@msweet.org>
Sun, 3 Sep 2023 02:22:45 +0000 (22:22 -0400)
committerMichael R Sweet <msweet@msweet.org>
Sun, 3 Sep 2023 02:22:45 +0000 (22:22 -0400)
50 files changed:
backend/Dependencies
backend/ipp.c
berkeley/Dependencies
cgi-bin/Dependencies
cgi-bin/admin.c
cups/Dependencies
cups/Makefile
cups/cups-private.h
cups/cups.h
cups/debug.c
cups/dnssd.c [new file with mode: 0644]
cups/dnssd.h [new file with mode: 0644]
cups/globals.c
cups/ipp.c
cups/language.c
cups/libcups2.def
cups/ppd.c
cups/string.c
cups/test-internal.h [new file with mode: 0644]
cups/testclient.c
cups/testdnssd.c [new file with mode: 0644]
cups/testthreads.c
cups/thread-private.h [deleted file]
cups/thread.c
cups/thread.h [new file with mode: 0644]
cups/tls-gnutls.c
cups/tls-openssl.c
cups/transcode.c
filter/Dependencies
locale/Dependencies
monitor/Dependencies
notifier/Dependencies
ppdc/Dependencies
scheduler/Dependencies
scheduler/client.c
scheduler/conf.c
scheduler/ipp.c
scheduler/job.c
scheduler/log.c
scheduler/mime.h
scheduler/printers.c
scheduler/printers.h
systemv/Dependencies
tools/Dependencies
tools/ippeveprinter.c
tools/ipptool.c
vcnet/dns_sd.c
vcnet/libcups2.vcxproj
vcnet/libcups2.vcxproj.filters
xcode/CUPS.xcodeproj/project.pbxproj

index ca6ad402314940bc0010a9445500f551c4bc84c0..75c3ce1d0db43593e91329f5e8b28f657f0fa124 100644 (file)
@@ -3,70 +3,260 @@ ipp.o: ipp.c backend-private.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
+  ../cups/thread.h ../cups/snmp-private.h ../cups/backend.h \
   ../cups/sidechannel.h ../cups/ppd-private.h ../cups/ppd.h \
   ../cups/raster.h
 lpd.o: lpd.c ../cups/http-private.h ../config.h ../cups/language.h \
   ../cups/array.h ../cups/versioning.h ../cups/http.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
-  ../cups/pwg.h backend-private.h ../cups/cups-private.h \
-  ../cups/string-private.h ../cups/array-private.h \
-  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
-  ../cups/sidechannel.h
+  ../cups/pwg.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  backend-private.h ../cups/cups-private.h ../cups/string-private.h \
+  ../cups/array-private.h ../cups/language-private.h ../cups/transcode.h \
+  ../cups/pwg-private.h ../cups/thread.h ../cups/snmp-private.h \
+  ../cups/backend.h ../cups/sidechannel.h
 dnssd.o: dnssd.c backend-private.h ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
+  ../cups/thread.h ../cups/snmp-private.h ../cups/backend.h \
   ../cups/sidechannel.h
 snmp.o: snmp.c backend-private.h ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
+  ../cups/thread.h ../cups/snmp-private.h ../cups/backend.h \
   ../cups/sidechannel.h
 socket.o: socket.c ../cups/http-private.h ../config.h ../cups/language.h \
   ../cups/array.h ../cups/versioning.h ../cups/http.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
-  ../cups/pwg.h backend-private.h ../cups/cups-private.h \
-  ../cups/string-private.h ../cups/array-private.h \
-  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
-  ../cups/sidechannel.h
+  ../cups/pwg.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  backend-private.h ../cups/cups-private.h ../cups/string-private.h \
+  ../cups/array-private.h ../cups/language-private.h ../cups/transcode.h \
+  ../cups/pwg-private.h ../cups/thread.h ../cups/snmp-private.h \
+  ../cups/backend.h ../cups/sidechannel.h
 test1284.o: test1284.c ../cups/string-private.h ../config.h \
   ../cups/versioning.h ieee1284.c backend-private.h \
   ../cups/cups-private.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
+  ../cups/thread.h ../cups/snmp-private.h ../cups/backend.h \
   ../cups/sidechannel.h ../cups/ppd-private.h ../cups/ppd.h \
   ../cups/raster.h
 testbackend.o: testbackend.c ../cups/string-private.h ../config.h \
   ../cups/versioning.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/array.h ../cups/language.h ../cups/pwg.h \
-  ../cups/sidechannel.h
+  ../cups/sidechannel.h backend-private.h ../cups/cups-private.h \
+  ../cups/array-private.h ../cups/ipp-private.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/snmp-private.h ../cups/backend.h
 testsupplies.o: testsupplies.c backend-private.h ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
+  ../cups/thread.h ../cups/snmp-private.h ../cups/backend.h \
   ../cups/sidechannel.h
 usb.o: usb.c backend-private.h ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
+  ../cups/thread.h ../cups/snmp-private.h ../cups/backend.h \
   ../cups/sidechannel.h usb-darwin.c ../cups/debug-private.h \
   ../cups/file-private.h ../cups/ppd-private.h ../cups/ppd.h \
   ../cups/raster.h
index be1f2c048143fa697075f7abd62178585671f978..c733c16f2480cc2bf7695cb1028ebc94885f88aa 100644 (file)
@@ -129,7 +129,7 @@ static const char * const remote_job_states[] =
   "+cups-remote-aborted",
   "+cups-remote-completed"
 };
-static _cups_mutex_t   report_mutex = _CUPS_MUTEX_INITIALIZER;
+static cups_mutex_t    report_mutex = CUPS_MUTEX_INITIALIZER;
                                        /* Mutex to control access */
 static int             num_attr_cache = 0;
                                        /* Number of cached attributes */
@@ -1463,7 +1463,7 @@ main(int  argc,                           /* I - Number of command-line args */
     monitor.job_name = print_job_name;
   }
 
-  _cupsThreadCreate((_cups_thread_func_t)monitor_printer, &monitor);
+  cupsThreadCreate((cups_thread_func_t)monitor_printer, &monitor);
 
  /*
   * Validate access to the printer...
@@ -3126,7 +3126,7 @@ report_attr(ipp_attribute_t *attr)        /* I - Attribute */
 
   *valptr = '\0';
 
-  _cupsMutexLock(&report_mutex);
+  cupsMutexLock(&report_mutex);
 
   if ((cached = cupsGetOption(attr->name, num_attr_cache,
                               attr_cache)) == NULL || strcmp(cached, value))
@@ -3140,7 +3140,7 @@ report_attr(ipp_attribute_t *attr)        /* I - Attribute */
     fprintf(stderr, "ATTR: %s=%s\n", attr->name, value);
   }
 
-  _cupsMutexUnlock(&report_mutex);
+  cupsMutexUnlock(&report_mutex);
 }
 
 
@@ -3577,7 +3577,7 @@ update_reasons(ipp_attribute_t *attr,     /* I - printer-state-reasons or NULL */
           op ? op : ' ', cupsArrayCount(new_reasons),
          cupsArrayCount(state_reasons));
 
-  _cupsMutexLock(&report_mutex);
+  cupsMutexLock(&report_mutex);
 
   if (op == '+')
   {
@@ -3683,7 +3683,7 @@ update_reasons(ipp_attribute_t *attr,     /* I - printer-state-reasons or NULL */
 
   cupsArrayDelete(new_reasons);
 
-  _cupsMutexUnlock(&report_mutex);
+  cupsMutexUnlock(&report_mutex);
 
  /*
   * Report changes and return...
index acb7bd1fd29afb330d47309b2b280474c448c06c..0875f3e0c495a0d4c330e1094dbda7c05e97f509 100644 (file)
@@ -2,23 +2,107 @@ lpc.o: lpc.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
   ../cups/versioning.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 lpq.o: lpq.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
   ../cups/versioning.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 lpr.o: lpr.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
   ../cups/versioning.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 lprm.o: lprm.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h
index d502304461da2b918dad85fefe4171185f5ad904..c16116d592f971a504779c71c98d17c6a9912bf2 100644 (file)
@@ -34,6 +34,27 @@ admin.o: admin.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
   ../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
   ../cups/language-private.h ../config.h ../cups/transcode.h \
   ../cups/string-private.h ../cups/ipp-private.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h \
   ../cups/pwg-private.h ../cups/adminutil.h
 classes.o: classes.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
@@ -51,11 +72,6 @@ jobs.o: jobs.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
   ../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
   ../cups/language-private.h ../config.h ../cups/transcode.h \
   ../cups/string-private.h ../cups/ipp-private.h
-makedocset.o: makedocset.c cgi-private.h cgi.h ../cups/cups.h \
-  ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
-  ../cups/array.h ../cups/language.h ../cups/pwg.h help-index.h \
-  ../cups/debug-private.h ../cups/language-private.h ../config.h \
-  ../cups/transcode.h ../cups/string-private.h ../cups/ipp-private.h
 printers.o: printers.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
   ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
   ../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
index 863e885568704675ca0ad17d9831dcefd02962df..e1b62be28484bf339e2cbc7f3ccb4ae33222a116 100644 (file)
@@ -82,7 +82,7 @@ main(void)
     exit(1);
   }
 
-  fprintf(stderr, "DEBUG: http=%p\n", http);
+  fprintf(stderr, "DEBUG: http=%p\n", (void *)http);
 
  /*
   * Set the web interface section...
@@ -2644,7 +2644,7 @@ do_set_options(http_t *http,              /* I - HTTP connection */
 
   title = cgiText(is_class ? _("Set Class Options") : _("Set Printer Options"));
 
-  fprintf(stderr, "DEBUG: do_set_options(http=%p, is_class=%d)\n", http,
+  fprintf(stderr, "DEBUG: do_set_options(http=%p, is_class=%d)\n", (void *)http,
           is_class);
 
  /*
index a27e9430a44e583e12a232d2da288764b8ec8aff..f0c9b0d934e872b76a16e6616e55232a1c5420be 100644 (file)
@@ -5,150 +5,707 @@ auth.o: auth.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 debug.o: debug.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 dest.o: dest.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 dest-job.o: dest-job.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 dest-localization.o: dest-localization.c cups-private.h string-private.h \
   ../config.h ../cups/versioning.h array-private.h ../cups/array.h \
   versioning.h ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h \
   language.h pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 dest-options.o: dest-options.c cups-private.h string-private.h \
   ../config.h ../cups/versioning.h array-private.h ../cups/array.h \
   versioning.h ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h \
   language.h pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 dir.o: dir.c string-private.h ../config.h ../cups/versioning.h \
   debug-internal.h debug-private.h dir.h versioning.h
+dnssd.o: dnssd.c cups-private.h string-private.h ../config.h \
+  ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
+  ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
+  pwg.h http-private.h ../cups/language.h ../cups/http.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h dnssd.h \
+  cups.h
 encode.o: encode.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 file.o: file.c file-private.h cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 getputfile.o: getputfile.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 globals.o: globals.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
+  debug-internal.h debug-private.h
 hash.o: hash.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
+  debug-internal.h debug-private.h
 http.o: http.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 http-addr.o: http-addr.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 http-addrlist.o: http-addrlist.c cups-private.h string-private.h \
   ../config.h ../cups/versioning.h array-private.h ../cups/array.h \
   versioning.h ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h \
   language.h pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 http-support.o: http-support.c cups-private.h string-private.h \
   ../config.h ../cups/versioning.h array-private.h ../cups/array.h \
   versioning.h ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h \
   language.h pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 ipp.o: ipp.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 ipp-file.o: ipp-file.c ipp-private.h ../cups/cups.h file.h versioning.h \
   ipp.h http.h array.h language.h pwg.h string-private.h ../config.h \
   ../cups/versioning.h debug-internal.h debug-private.h
-ipp-vars.o: ipp-vars.c ../cups/cups.h file.h versioning.h ipp.h http.h \
-  array.h language.h pwg.h ipp-private.h string-private.h ../config.h \
-  ../cups/versioning.h debug-internal.h debug-private.h
+ipp-vars.o: ipp-vars.c cups-private.h string-private.h ../config.h \
+  ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
+  ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
+  pwg.h http-private.h ../cups/language.h ../cups/http.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
+  debug-internal.h debug-private.h
 ipp-support.o: ipp-support.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 langprintf.o: langprintf.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 language.o: language.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 md5.o: md5.c md5-internal.h ../cups/versioning.h string-private.h \
   ../config.h
 md5passwd.o: md5passwd.c ../cups/cups.h file.h versioning.h ipp.h http.h \
   array.h language.h pwg.h http-private.h ../config.h ../cups/language.h \
-  ../cups/http.h ipp-private.h string-private.h ../cups/versioning.h
+  ../cups/http.h ipp-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  string-private.h ../cups/versioning.h
 notify.o: notify.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 options.o: options.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 pwg-media.o: pwg-media.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 raster-error.o: raster-error.c cups-private.h string-private.h \
   ../config.h ../cups/versioning.h array-private.h ../cups/array.h \
   versioning.h ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h \
   language.h pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   raster-private.h raster.h cups.h ../cups/debug-private.h \
   ../cups/string-private.h debug-internal.h debug-private.h
 raster-stream.o: raster-stream.c raster-private.h raster.h cups.h file.h \
@@ -163,55 +720,245 @@ request.o: request.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 snprintf.o: snprintf.c string-private.h ../config.h ../cups/versioning.h
 string.o: string.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 tempfile.o: tempfile.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 thread.o: thread.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h
 tls.o: tls.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
-  debug-internal.h debug-private.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
+  debug-internal.h debug-private.h tls-openssl.c \
+  /usr/local/include/openssl/x509v3.h /usr/local/include/openssl/conf.h
 transcode.o: transcode.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 usersys.o: usersys.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 util.o: util.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h
 adminutil.o: adminutil.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h ppd.h cups.h raster.h adminutil.h
 backchannel.o: backchannel.c cups.h file.h versioning.h ipp.h http.h \
   array.h language.h pwg.h sidechannel.h
@@ -219,68 +966,278 @@ backend.o: backend.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   backend.h ppd.h cups.h raster.h
 getdevices.o: getdevices.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h adminutil.h cups.h
-getifaddrs.o: getifaddrs.c getifaddrs-internal.h ../config.h
+getifaddrs.o: getifaddrs.c getifaddrs-internal.h ../config.h versioning.h
 ppd.o: ppd.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   ppd-private.h ../cups/ppd.h cups.h raster.h debug-internal.h \
   debug-private.h
 ppd-attr.o: ppd-attr.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   ppd-private.h ../cups/ppd.h cups.h raster.h debug-internal.h \
   debug-private.h
 ppd-cache.o: ppd-cache.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   ppd-private.h ../cups/ppd.h cups.h raster.h debug-internal.h \
   debug-private.h
 ppd-conflicts.o: ppd-conflicts.c cups-private.h string-private.h \
   ../config.h ../cups/versioning.h array-private.h ../cups/array.h \
   versioning.h ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h \
   language.h pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   ppd-private.h ../cups/ppd.h cups.h raster.h debug-internal.h \
   debug-private.h
 ppd-custom.o: ppd-custom.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   ppd-private.h ../cups/ppd.h cups.h raster.h debug-internal.h \
   debug-private.h
 ppd-emit.o: ppd-emit.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   debug-internal.h debug-private.h ppd.h cups.h raster.h
 ppd-localize.o: ppd-localize.c cups-private.h string-private.h \
   ../config.h ../cups/versioning.h array-private.h ../cups/array.h \
   versioning.h ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h \
   language.h pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   ppd-private.h ../cups/ppd.h cups.h raster.h debug-internal.h \
   debug-private.h
 ppd-mark.o: ppd-mark.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   ppd-private.h ../cups/ppd.h cups.h raster.h debug-internal.h \
   debug-private.h
 ppd-page.o: ppd-page.c string-private.h ../config.h ../cups/versioning.h \
@@ -290,7 +1247,28 @@ ppd-util.o: ppd-util.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   ppd-private.h ../cups/ppd.h cups.h raster.h debug-internal.h \
   debug-private.h
 raster-interpret.o: raster-interpret.c ../cups/raster-private.h raster.h \
@@ -305,13 +1283,55 @@ sidechannel.o: sidechannel.c sidechannel.h versioning.h cups-private.h \
   string-private.h ../config.h ../cups/versioning.h array-private.h \
   ../cups/array.h ipp-private.h ../cups/cups.h file.h ipp.h http.h \
   array.h language.h pwg.h http-private.h ../cups/language.h \
-  ../cups/http.h language-private.h ../cups/transcode.h pwg-private.h \
-  thread-private.h debug-internal.h debug-private.h
+  ../cups/http.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
+  debug-internal.h debug-private.h
 snmp.o: snmp.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   snmp-private.h debug-internal.h debug-private.h
 raster-interstub.o: raster-interstub.c ../cups/ppd-private.h \
   ../cups/cups.h file.h versioning.h ipp.h http.h array.h language.h \
@@ -320,6 +1340,9 @@ raster-stubs.o: raster-stubs.c raster-private.h raster.h cups.h file.h \
   versioning.h ipp.h http.h array.h language.h pwg.h ../cups/cups.h \
   ../cups/debug-private.h ../cups/versioning.h ../cups/string-private.h \
   ../config.h
+fuzzipp.o: fuzzipp.c file.h versioning.h string-private.h ../config.h \
+  ../cups/versioning.h ipp-private.h ../cups/cups.h ipp.h http.h array.h \
+  language.h pwg.h
 rasterbench.o: rasterbench.c ../config.h ../cups/raster.h cups.h file.h \
   versioning.h ipp.h http.h array.h language.h pwg.h
 testadmin.o: testadmin.c adminutil.h cups.h file.h versioning.h ipp.h \
@@ -333,10 +1356,31 @@ testcache.o: testcache.c ppd-private.h ../cups/cups.h file.h versioning.h \
   pwg-private.h file-private.h cups-private.h string-private.h \
   ../config.h ../cups/versioning.h array-private.h ../cups/array.h \
   ipp-private.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h thread-private.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h thread.h
 testclient.o: testclient.c ../config.h ../cups/cups.h file.h versioning.h \
   ipp.h http.h array.h language.h pwg.h ../cups/raster.h cups.h \
-  ../cups/string-private.h ../cups/versioning.h ../cups/thread-private.h
+  ../cups/string-private.h ../cups/versioning.h ../cups/thread.h
 testconflicts.o: testconflicts.c cups.h file.h versioning.h ipp.h http.h \
   array.h language.h pwg.h ppd.h raster.h string-private.h ../config.h \
   ../cups/versioning.h
@@ -344,24 +1388,89 @@ testcreds.o: testcreds.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h
 testcups.o: testcups.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
-  ppd.h cups.h raster.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h ppd.h \
+  cups.h raster.h
 testdest.o: testdest.c cups.h file.h versioning.h ipp.h http.h array.h \
   language.h pwg.h
+testdnssd.o: testdnssd.c test-internal.h dnssd.h cups.h file.h \
+  versioning.h ipp.h http.h array.h language.h pwg.h thread.h
 testfile.o: testfile.c string-private.h ../config.h ../cups/versioning.h \
-  debug-private.h file.h versioning.h
+  debug-private.h file.h versioning.h dir.h
 testgetdests.o: testgetdests.c cups.h file.h versioning.h ipp.h http.h \
   array.h language.h pwg.h
 testhttp.o: testhttp.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h
 testi18n.o: testi18n.c string-private.h ../config.h ../cups/versioning.h \
   language-private.h ../cups/transcode.h language.h array.h versioning.h
 testipp.o: testipp.c file.h versioning.h string-private.h ../config.h \
@@ -371,18 +1480,81 @@ testoptions.o: testoptions.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h
 testlang.o: testlang.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
-  ppd-private.h ../cups/ppd.h cups.h raster.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
+  ppd-private.h ../cups/ppd.h cups.h raster.h ../cups/dir.h
 testppd.o: testppd.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   ppd-private.h ../cups/ppd.h cups.h raster.h raster-private.h \
   ../cups/debug-private.h ../cups/string-private.h
 testpwg.o: testpwg.c ppd-private.h ../cups/cups.h file.h versioning.h \
@@ -390,7 +1562,28 @@ testpwg.o: testpwg.c ppd-private.h ../cups/cups.h file.h versioning.h \
   pwg-private.h file-private.h cups-private.h string-private.h \
   ../config.h ../cups/versioning.h array-private.h ../cups/array.h \
   ipp-private.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h thread-private.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h thread.h
 testraster.o: testraster.c ../cups/raster-private.h raster.h cups.h \
   file.h versioning.h ipp.h http.h array.h language.h pwg.h \
   ../cups/cups.h ../cups/debug-private.h ../cups/versioning.h \
@@ -399,13 +1592,54 @@ testsnmp.o: testsnmp.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h \
   snmp-private.h
 testthreads.o: testthreads.c ../cups/cups.h file.h versioning.h ipp.h \
-  http.h array.h language.h pwg.h ../cups/thread-private.h ../config.h \
-  ../cups/versioning.h
+  http.h array.h language.h pwg.h ../cups/thread.h
 tlscheck.o: tlscheck.c cups-private.h string-private.h ../config.h \
   ../cups/versioning.h array-private.h ../cups/array.h versioning.h \
   ipp-private.h ../cups/cups.h file.h ipp.h http.h array.h language.h \
   pwg.h http-private.h ../cups/language.h ../cups/http.h \
-  language-private.h ../cups/transcode.h pwg-private.h thread-private.h
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  language-private.h ../cups/transcode.h pwg-private.h thread.h
index d0104cee9681c20f8059ad2c33c2c12596581909..4c354a47f1f9c5c3091083432dd7407c2a85f3b1 100644 (file)
@@ -25,6 +25,7 @@ COREOBJS      =       \
                dest-localization.o \
                dest-options.o \
                dir.o \
+               dnssd.o \
                encode.o \
                file.o \
                getputfile.o \
@@ -97,6 +98,7 @@ TESTOBJS      = \
                testcreds.o \
                testcups.o \
                testdest.o \
+               testdnssd.o \
                testfile.o \
                testgetdests.o \
                testhttp.o \
@@ -124,12 +126,14 @@ COREHEADERS       =       \
                array.h \
                cups.h \
                dir.h \
+               dnssd.h \
                file.h \
                http.h \
                ipp.h \
                language.h \
                pwg.h \
                raster.h \
+               thread.h \
                transcode.h \
                versioning.h
 
@@ -152,8 +156,7 @@ COREHEADERSPRIV =   \
                language-private.h \
                pwg-private.h \
                raster-private.h \
-               string-private.h \
-               thread-private.h
+               string-private.h
 
 DRIVERHEADERSPRIV      =       \
                ppd-private.h \
@@ -183,6 +186,7 @@ UNITTARGETS =       \
                testcreds \
                testcups \
                testdest \
+               testdnssd \
                testfile \
                testgetdests \
                testhttp \
@@ -369,7 +373,7 @@ libcups.2.dylib:    $(LIBOBJS)
        echo Linking $@...
        $(DSO) $(ARCHFLAGS) $(ALL_DSOFLAGS) -o $@ \
                -install_name $(libdir)/$@ \
-               -current_version 2.14.0 \
+               -current_version 2.15.0 \
                -compatibility_version 2.0.0 \
                $(LIBOBJS) $(LIBS)
        $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
@@ -384,7 +388,7 @@ libcups.2.dylib:    $(LIBOBJS)
 libcups.la:    $(LIBOBJS)
        echo Linking $@...
        $(LD_CC) $(ARCHFLAGS) $(ALL_DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) \
-               -rpath $(LIBDIR) -version-info 2:14 $(LIBS)
+               -rpath $(LIBDIR) -version-info 2:15 $(LIBS)
 
 
 #
@@ -405,7 +409,7 @@ libcups.a:  $(LIBOBJS)
 libcups2.def: $(LIBOBJS) $(IMAGEOBJS) Makefile
        echo Generating $@...
        echo "LIBRARY libcups2" >libcups2.def
-       echo "VERSION 2.14" >>libcups2.def
+       echo "VERSION 2.15" >>libcups2.def
        echo "EXPORTS" >>libcups2.def
        (nm $(LIBOBJS) $(IMAGEOBJS) 2>/dev/null | grep "T _" | awk '{print $$3}'; \
         echo __cups_strcpy; echo __cups_strlcat; echo __cups_strlcpy; \
@@ -435,7 +439,7 @@ libcupsimage.2.dylib:       $(IMAGEOBJS) libcups.2.dylib
        echo Linking $@...
        $(DSO) $(ARCHFLAGS) $(ALL_DSOFLAGS) -o $@ \
                -install_name $(libdir)/$@ \
-               -current_version 2.3.0 \
+               -current_version 2.15.0 \
                -compatibility_version 2.0.0 \
                $(IMAGEOBJS) $(LINKCUPS)
        $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
@@ -450,7 +454,7 @@ libcupsimage.2.dylib:       $(IMAGEOBJS) libcups.2.dylib
 libcupsimage.la:       $(IMAGEOBJS) libcups.la
        echo Linking $@...
        $(DSO) $(ARCHFLAGS) $(ALL_DSOFLAGS) -o $@ $(IMAGEOBJS:.o=.lo) \
-               $(LINKCUPS) -rpath $(LIBDIR) -version-info 2:3
+               $(LINKCUPS) -rpath $(LIBDIR) -version-info 2:15
 
 
 #
@@ -568,6 +572,16 @@ testdest:  testdest.o $(LIBCUPSSTATIC)
        $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
 
 
+#
+# testdnssd (dependency on static libraries is intentional)
+#
+
+testdnssd:     testdnssd.o $(LIBCUPSSTATIC)
+       echo Linking $@...
+       $(LD_CC) $(ALL_LDFLAGS) -o $@ testdnssd.o $(LINKCUPSSTATIC)
+       $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
+
+
 #
 # testfile (dependency on static CUPS library is intentional)
 #
index e8920208ae547ada9c15dd73f2a20b8b287c9ddc..e73c61299edaecbc678a228d7a589da4ba373f20 100644 (file)
@@ -22,7 +22,7 @@
 #  include "http-private.h"
 #  include "language-private.h"
 #  include "pwg-private.h"
-#  include "thread-private.h"
+#  include "thread.h"
 #  include <cups/cups.h>
 #  ifdef __APPLE__
 #    include <sys/cdefs.h>
index a0d48b9feb83597bfbab6ca77d13532adf8ff1b9..a74d1dc688753c51e5656830d899f3917b1b2d0c 100644 (file)
@@ -611,6 +611,10 @@ extern ipp_attribute_t     *cupsEncodeOption(ipp_t *ipp, ipp_tag_t group_tag, const
 /* New in CUPS 2.4 */
 extern void            cupsSetOAuthCB(cups_oauth_cb_t cb, void *data) _CUPS_API_2_4;
 
+/* New in CUPS 2.5 */
+extern size_t          cupsConcatString(char *dst, const char *src, size_t dstsize) _CUPS_PUBLIC;
+extern size_t          cupsCopyString(char *dst, const char *src, size_t dstsize) _CUPS_PUBLIC;
+
 
 #  ifdef __cplusplus
 }
index 6b3914ed5110b9600b2b7dee7ab3fc9ed03ad914..62683790d6673de3e6d95e84d79e92b08b496ed2 100644 (file)
@@ -13,7 +13,6 @@
 
 #include "cups-private.h"
 #include "debug-internal.h"
-#include "thread-private.h"
 #ifdef _WIN32
 #  include <sys/timeb.h>
 #  include <time.h>
@@ -55,9 +54,9 @@ int                   _cups_debug_level = 1;
 static regex_t         *debug_filter = NULL;
                                        /* Filter expression for messages */
 static int             debug_init = 0; /* Did we initialize debugging? */
-static _cups_mutex_t   debug_init_mutex = _CUPS_MUTEX_INITIALIZER,
+static cups_mutex_t    debug_init_mutex = CUPS_MUTEX_INITIALIZER,
                                        /* Mutex to control initialization */
-                       debug_log_mutex = _CUPS_MUTEX_INITIALIZER;
+                       debug_log_mutex = CUPS_MUTEX_INITIALIZER;
                                        /* Mutex to serialize log entries */
 
 
@@ -117,9 +116,9 @@ _cups_debug_printf(const char *format,      /* I - Printf-style format string */
   {
     int        result;                         /* Filter result */
 
-    _cupsMutexLock(&debug_init_mutex);
+    cupsMutexLock(&debug_init_mutex);
     result = regexec(debug_filter, format, 0, NULL, 0);
-    _cupsMutexUnlock(&debug_init_mutex);
+    cupsMutexUnlock(&debug_init_mutex);
 
     if (result)
       return;
@@ -154,9 +153,9 @@ _cups_debug_printf(const char *format,      /* I - Printf-style format string */
   * Write it out...
   */
 
-  _cupsMutexLock(&debug_log_mutex);
+  cupsMutexLock(&debug_log_mutex);
   write(_cups_debug_fd, buffer, (size_t)bytes);
-  _cupsMutexUnlock(&debug_log_mutex);
+  cupsMutexUnlock(&debug_log_mutex);
 }
 
 
@@ -200,9 +199,9 @@ _cups_debug_puts(const char *s)             /* I - String to output */
   {
     int        result;                         /* Filter result */
 
-    _cupsMutexLock(&debug_init_mutex);
+    cupsMutexLock(&debug_init_mutex);
     result = regexec(debug_filter, s, 0, NULL, 0);
-    _cupsMutexUnlock(&debug_init_mutex);
+    cupsMutexUnlock(&debug_init_mutex);
 
     if (result)
       return;
@@ -234,9 +233,9 @@ _cups_debug_puts(const char *s)             /* I - String to output */
   * Write it out...
   */
 
-  _cupsMutexLock(&debug_log_mutex);
+  cupsMutexLock(&debug_log_mutex);
   write(_cups_debug_fd, buffer, (size_t)bytes);
-  _cupsMutexUnlock(&debug_log_mutex);
+  cupsMutexUnlock(&debug_log_mutex);
 }
 
 
@@ -250,7 +249,7 @@ _cups_debug_set(const char *logfile,        /* I - Log file or NULL */
                const char *filter,     /* I - Filter string or NULL */
                int        force)       /* I - Force initialization */
 {
-  _cupsMutexLock(&debug_init_mutex);
+  cupsMutexLock(&debug_init_mutex);
 
   if (!debug_init || force)
   {
@@ -312,7 +311,7 @@ _cups_debug_set(const char *logfile,        /* I - Log file or NULL */
     debug_init = 1;
   }
 
-  _cupsMutexUnlock(&debug_init_mutex);
+  cupsMutexUnlock(&debug_init_mutex);
 }
 
 
diff --git a/cups/dnssd.c b/cups/dnssd.c
new file mode 100644 (file)
index 0000000..bbf8609
--- /dev/null
@@ -0,0 +1,2130 @@
+//
+// DNS-SD API functions for CUPS.
+//
+// Copyright Â©Â 2022-2023 by OpenPrinting.
+//
+// Licensed under Apache License v2.0.  See the file "LICENSE" for more
+// information.
+//
+
+#include "cups-private.h"
+#include "debug-internal.h"
+#include "dnssd.h"
+
+#ifdef HAVE_MDNSRESPONDER
+#  include <dns_sd.h>
+#  if _WIN32
+#    include <winsock2.h>
+#    define poll WSAPoll
+#  else
+#    include <poll.h>
+#  endif // _WIN32
+#elif _WIN32
+#  include <windns.h>
+#else // HAVE_AVAHI
+#  include <avahi-client/client.h>
+#  include <avahi-client/lookup.h>
+#  include <avahi-client/publish.h>
+#  include <avahi-common/alternative.h>
+#  include <avahi-common/domain.h>
+#  include <avahi-common/error.h>
+#  include <avahi-common/malloc.h>
+#  include <avahi-common/simple-watch.h>
+#  define AVAHI_DNS_TYPE_LOC 29                // Per RFC 1876
+#  include <net/if.h>
+#endif // HAVE_MDNSRESPONDER
+
+
+//
+// Private structures...
+//
+
+struct _cups_dnssd_s                   // DNS-SD context
+{
+  cups_mutex_t         mutex;          // Mutex for context
+  size_t               config_changes; // Number of hostname/network changes
+  cups_dnssd_error_cb_t        cb;             // Error callback function
+  void                 *cb_data;       // Error callback data
+  cups_array_t         *browses,       // Browse requests
+                       *queries,       // Query requests
+                       *resolves,      // Resolve requests
+                       *services;      // Registered services
+
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceRef                ref;            // Master service reference
+  char                 hostname[256];  // Current mDNS hostname
+  DNSServiceRef                hostname_ref;   // Hostname monitoring reference
+  cups_thread_t                monitor;        // Monitoring thread
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  AvahiClient          *client;        // Avahi client connection
+  AvahiSimplePoll      *poll;          // Avahi poll class
+  cups_thread_t                monitor;        // Monitoring thread
+#endif // HAVE_MDNSRESPONDER
+};
+
+struct _cups_dnssd_browse_s            // DNS-SD browse request
+{
+  cups_dnssd_t         *dnssd;         // DNS-SD context
+  cups_dnssd_browse_cb_t cb;           // Browse callback
+  void                 *cb_data;       // Browse callback data
+
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceRef                ref;            // Browse reference
+#elif _WIN32
+#else // HAVE_AVAHI
+  AvahiServiceBrowser  *browser;       // Browser
+#endif // HAVE_MDNSRESPONDER
+};
+
+struct _cups_dnssd_query_s             // DNS-SD query request
+{
+  cups_dnssd_t         *dnssd;         // DNS-SD context
+  cups_dnssd_query_cb_t        cb;             // Query callback
+  void                 *cb_data;       // Query callback data
+
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceRef                ref;            // Query reference
+#elif _WIN32
+#else // HAVE_AVAHI
+  AvahiRecordBrowser   *browser;       // Browser
+#endif // HAVE_MDNSRESPONDER
+};
+
+struct _cups_dnssd_resolve_s           // DNS-SD resolve request
+{
+  cups_dnssd_t         *dnssd;         // DNS-SD context
+  cups_dnssd_resolve_cb_t cb;          // Resolve callback
+  void                 *cb_data;       // Resolve callback data
+
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceRef                ref;            // Resolve reference
+#elif _WIN32
+#else // HAVE_AVAHI
+  AvahiServiceResolver *resolver;      // Resolver
+#endif // HAVE_MDNSRESPONDER
+};
+
+struct _cups_dnssd_service_s           // DNS-SD service registration
+{
+  cups_dnssd_t         *dnssd;         // DNS-SD context
+  char                 *name;          // Service name
+  uint32_t             if_index;       // Interface index
+  cups_dnssd_service_cb_t cb;          // Service callback
+  void                 *cb_data;       // Service callback data
+  unsigned char                loc[16];        // LOC record data
+  bool                 loc_set;        // Is the location data set?
+
+#ifdef HAVE_MDNSRESPONDER
+  size_t               num_refs;       // Number of service references
+  DNSServiceRef                refs[16];       // Service references
+  DNSRecordRef         loc_refs[16];   // Service location records
+#elif _WIN32
+#else // HAVE_AVAHI
+  AvahiEntryGroup      *group;         // Group of services under this name
+#endif // HAVE_MDNSRESPONDER
+};
+
+
+//
+// Local functions...
+//
+
+static void            delete_browse(cups_dnssd_browse_t *browse);
+static void            delete_query(cups_dnssd_query_t *query);
+static void            delete_resolve(cups_dnssd_resolve_t *resolve);
+static void            delete_service(cups_dnssd_service_t *service);
+static void            report_error(cups_dnssd_t *dnssd, const char *message, ...) _CUPS_FORMAT(2,3);
+
+#ifdef HAVE_MDNSRESPONDER
+static void            *mdns_monitor(cups_dnssd_t *dnssd);
+static void DNSSD_API  mdns_browse_cb(DNSServiceRef ref, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType error, const char *name, const char *regtype, const char *domain, cups_dnssd_browse_t *browse);
+static void DNSSD_API  mdns_hostname_cb(DNSServiceRef ref, DNSServiceFlags flags, uint32_t if_index, DNSServiceErrorType error, const char *fullname, uint16_t rrtype, uint16_t rrclass, uint16_t rdlen, const void *rdata, uint32_t ttl, cups_dnssd_t *dnssd);
+static void DNSSD_API  mdns_query_cb(DNSServiceRef ref, DNSServiceFlags flags, uint32_t if_index, DNSServiceErrorType error, const char *name, uint16_t rrtype, uint16_t rrclass, uint16_t rdlen, const void *rdata, uint32_t ttl, cups_dnssd_query_t *query);
+static void DNSSD_API  mdns_resolve_cb(DNSServiceRef ref, DNSServiceFlags flags, uint32_t if_index, DNSServiceErrorType error, const char *fullname, const char *host, uint16_t port, uint16_t txtlen, const unsigned char *txt, cups_dnssd_resolve_t *resolve);
+static void DNSSD_API  mdns_service_cb(DNSServiceRef ref, DNSServiceFlags flags, DNSServiceErrorType error, const char *name, const char *regtype, const char *domain, cups_dnssd_service_t *service);
+static const char      *mdns_strerror(DNSServiceErrorType errorCode);
+static cups_dnssd_flags_t mdns_to_cups(DNSServiceFlags flags, DNSServiceErrorType error);
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+static void            avahi_browse_cb(AvahiServiceBrowser *browser, AvahiIfIndex if_index, AvahiProtocol protocol, AvahiBrowserEvent event, const char *name, const char *type, const char *domain, AvahiLookupResultFlags flags, cups_dnssd_browse_t *browse);
+static void            avahi_client_cb(AvahiClient *c, AvahiClientState state, cups_dnssd_t *dnssd);
+static AvahiIfIndex    avahi_if_index(uint32_t if_index);
+static void            *avahi_monitor(cups_dnssd_t *dnssd);
+static int             avahi_poll_cb(struct pollfd *ufds, unsigned int nfds, int timeout, cups_dnssd_t *dnssd);
+static void            avahi_query_cb(AvahiRecordBrowser *browser, AvahiIfIndex if_index, AvahiProtocol protocol, AvahiBrowserEvent event, const char *fullName, uint16_t rrclass, uint16_t rrtype, const void *rdata, size_t rdlen, AvahiLookupResultFlags flags, cups_dnssd_query_t *query);
+static void            avahi_resolve_cb(AvahiServiceResolver *resolver, AvahiIfIndex if_index, AvahiProtocol protocol, AvahiResolverEvent event, const char *name, const char *type, const char *domain, const char *host_name, const AvahiAddress *address, uint16_t port, AvahiStringList *txtrec, AvahiLookupResultFlags flags, cups_dnssd_resolve_t *resolve);
+static void            avahi_service_cb(AvahiEntryGroup *srv, AvahiEntryGroupState state, cups_dnssd_service_t *service);
+#endif // HAVE_MDNSRESPONDER
+
+
+//
+// 'cupsDNSSDAssembleFullName()' - Create a full service name from the instance
+//                                 name, registration type, and domain.
+//
+// This function combines an instance name ("Example Name"), registration type
+// ("_ipp._tcp"), and domain ("local.") to create a properly escaped full
+// service name ("Example\032Name._ipp._tcp.local.").
+//
+
+bool                                   // O - `true` on success, `false` on failure
+cupsDNSSDAssembleFullName(
+    char       *fullname,              // I - Buffer for full name
+    size_t     fullsize,               // I - Size of buffer
+    const char *name,                  // I - Service instance name
+    const char *type,                  // I - Registration type
+    const char *domain)                        // I - Domain
+{
+  if (!fullname || !fullsize || !name || !type)
+    return (false);
+
+#ifdef HAVE_MDNSRESPONDER
+  if (fullsize < kDNSServiceMaxDomainName)
+    return (false);
+
+  return (DNSServiceConstructFullName(fullname, name, type, domain) == kDNSServiceErr_NoError);
+
+#elif _WIN32
+  return (false);
+
+#else // HAVE_AVAHI
+  return (!avahi_service_name_join(fullname, fullsize, name, type, domain));
+#endif // HAVE_MDNSRESPONDER
+}
+
+
+//
+// 'cupsDNSSDCopyHostName()' - Copy the current mDNS hostname for the system.
+//
+// This function copies the current mDNS hostname ("hostname.local") to the
+// provided buffer.  The "dnssd" parameter is a DNS-SD context created with
+// @link cupsDNSSDNew@.  The "buffer" parameter points to a character array of
+// at least 70 bytes and the "bufsize" parameter specifies the actual size of
+// the array.
+//
+
+char *                                 // O - mDNS hostname or `NULL` on error
+cupsDNSSDCopyHostName(
+    cups_dnssd_t *dnssd,               // I - DNS-SD context
+    char         *buffer,              // I - Hostname buffer
+    size_t       bufsize)              // I - Size of hostname buffer (at least 70 bytes)
+{
+  // Range check input...
+  if (!dnssd || !buffer || bufsize < 70)
+  {
+    if (buffer)
+      *buffer = '\0';
+
+    return (NULL);
+  }
+
+  // Copy the current hostname...
+#ifdef HAVE_MDNSRESPONDER
+  cupsMutexLock(&dnssd->mutex);
+  cupsCopyString(buffer, dnssd->hostname, bufsize);
+  cupsMutexUnlock(&dnssd->mutex);
+
+#else // HAVE_AVAHI
+  cupsCopyString(buffer, avahi_client_get_host_name_fqdn(dnssd->client), bufsize);
+#endif // HAVE_MDNSRESPONDER
+
+  return (buffer);
+}
+
+
+//
+// 'cupsDNSSDDecodeTXT()' - Decode a TXT record into key/value pairs.
+//
+// This function converts the DNS TXT record encoding of key/value pairs into
+// `cups_option_t` elements that can be accessed using the @link cupsGetOption@
+// function and freed using the @link cupsFreeOptions@ function.
+//
+
+size_t                                 // O - Number of key/value pairs
+cupsDNSSDDecodeTXT(
+    const unsigned char *txtrec,       // I - TXT record data
+    uint16_t            txtlen,                // I - TXT record length
+    cups_option_t       **txt)         // O - Key/value pairs
+{
+  size_t       num_txt = 0;            // Number of key/value pairs
+  unsigned char        keylen;                 // Length of key/value
+  char         key[256],               // Key/value buffer
+               *value;                 // Pointer to value
+  const unsigned char *txtptr,         // Pointer into TXT record data
+               *txtend;                // End of TXT record data
+
+
+  // Range check input...
+  if (txt)
+    *txt = NULL;
+  if (!txtrec || !txtlen || !txt)
+    return (0);
+
+  // Loop through the record...
+  for (txtptr = txtrec, txtend = txtrec + txtlen; txtptr < txtend; txtptr += keylen)
+  {
+    // Format is a length byte followed by "key=value"
+    keylen = *txtptr++;
+    if (keylen == 0 || (txtptr + keylen) > txtend)
+      break;                           // Bogus length
+
+    // Copy the data to a C string...
+    memcpy(key, txtptr, keylen);
+    key[keylen] = '\0';
+
+    if ((value = strchr(key, '=')) != NULL)
+    {
+      // Got value separator, add it...
+      *value++ = '\0';
+
+      num_txt = cupsAddOption(key, value, num_txt, txt);
+    }
+    else
+    {
+      // No value, stop...
+      break;
+    }
+  }
+
+  // Return the number of pairs we parsed...
+  return (num_txt);
+
+}
+
+
+//
+// 'cupsDNSSDSeparateFullName()' - Separate a full service name into an instance
+//                                 name, registration type, and domain.
+//
+// This function separates a full service name such as
+// "Example\032Name._ipp._tcp.local.") into its instance name ("Example Name"),
+// registration type ("_ipp._tcp"), and domain ("local.").
+//
+
+bool                                   // O - `true` on success, `false` on error
+cupsDNSSDSeparateFullName(
+    const char *fullname,              // I - Full service name
+    char       *name,                  // I - Instance name buffer
+    size_t     namesize,               // I - Size of instance name buffer
+    char       *type,                  // I - Registration type buffer
+    size_t     typesize,               // I - Size of registration type buffer
+    char       *domain,                        // I - Domain name buffer
+    size_t     domainsize)             // I - Size of domain name buffer
+{
+  // Range check input..
+  if (!fullname || !name || !namesize || !type || !typesize || !domain || !domainsize)
+  {
+    if (name)
+      *name = '\0';
+    if (type)
+      *type = '\0';
+    if (domain)
+      *domain = '\0';
+
+    return (false);
+  }
+
+#if _WIN32 || defined(HAVE_MDNSRESPONDER)
+  bool ret = true;                     // Return value
+  char *ptr,                           // Pointer into name/type/domain
+       *end;                           // Pointer to end of name/type/domain
+
+  // Get the service name...
+  for (ptr = name, end = name + namesize - 1; *fullname; fullname ++)
+  {
+    if (*fullname == '.')
+    {
+      // Service type separator...
+      break;
+    }
+    else if (*fullname == '\\' && isdigit(fullname[1] & 255) && isdigit(fullname[2] & 255) && isdigit(fullname[3] & 255))
+    {
+      // Escaped character
+      if (ptr < end)
+        *ptr++ = (fullname[1] - '0') * 100 + (fullname[2] - '0') * 10 + fullname[3] - '0';
+      else
+        ret = false;
+
+      fullname += 3;
+    }
+    else if (ptr < end)
+      *ptr++ = *fullname;
+    else
+      ret = false;
+  }
+  *ptr = '\0';
+
+  if (*fullname)
+    fullname ++;
+
+  // Get the type...
+  for (ptr = type, end = type + typesize - 1; *fullname; fullname ++)
+  {
+    if (*fullname == '.' && fullname[1] != '_')
+    {
+      // Service type separator...
+      break;
+    }
+    else if (*fullname == '\\' && isdigit(fullname[1] & 255) && isdigit(fullname[2] & 255) && isdigit(fullname[3] & 255))
+    {
+      // Escaped character
+      if (ptr < end)
+        *ptr++ = (fullname[1] - '0') * 100 + (fullname[2] - '0') * 10 + fullname[3] - '0';
+      else
+        ret = false;
+
+      fullname += 3;
+    }
+    else if (ptr < end)
+      *ptr++ = *fullname;
+    else
+      ret = false;
+  }
+  *ptr = '\0';
+
+  if (*fullname)
+    fullname ++;
+
+  // Get the domain...
+  for (ptr = domain, end = domain + domainsize - 1; *fullname; fullname ++)
+  {
+    if (*fullname == '\\' && isdigit(fullname[1] & 255) && isdigit(fullname[2] & 255) && isdigit(fullname[3] & 255))
+    {
+      // Escaped character
+      if (ptr < end)
+        *ptr++ = (fullname[1] - '0') * 100 + (fullname[2] - '0') * 10 + fullname[3] - '0';
+      else
+        ret = false;
+
+      fullname += 3;
+    }
+    else if (ptr < end)
+      *ptr++ = *fullname;
+    else
+      ret = false;
+  }
+  *ptr = '\0';
+
+  return (ret);
+
+#else // HAVE_AVAHI
+  return (!avahi_service_name_split(fullname, name, namesize, type, typesize, domain, domainsize));
+#endif // _WIN32 || HAVE_MDNSRESPONDER
+}
+
+
+//
+// 'cupsDNSSDDelete()' - Delete a DNS-SD context and all its requests.
+//
+
+void
+cupsDNSSDDelete(cups_dnssd_t *dnssd)   // I - DNS-SD context
+{
+  if (!dnssd)
+    return;
+
+  cupsMutexLock(&dnssd->mutex);
+
+  cupsArrayDelete(dnssd->browses);
+  cupsArrayDelete(dnssd->queries);
+  cupsArrayDelete(dnssd->resolves);
+  cupsArrayDelete(dnssd->services);
+
+#ifdef HAVE_MDNSRESPONDER
+  cupsThreadCancel(dnssd->monitor);
+  cupsThreadWait(dnssd->monitor);
+  DNSServiceRefDeallocate(dnssd->ref);
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  cupsThreadCancel(dnssd->monitor);
+  cupsThreadWait(dnssd->monitor);
+  avahi_simple_poll_free(dnssd->poll);
+#endif // HAVE_MDNSRESPONDER
+
+  cupsMutexUnlock(&dnssd->mutex);
+  cupsMutexDestroy(&dnssd->mutex);
+  free(dnssd);
+}
+
+
+//
+// 'cupsDNSSDGetConfigChanges()' - Get the number of host name/network
+//                                 configuration changes seen.
+//
+// This function returns the number of host name or network configuration
+// changes that have been seen since the context was created.  The value can be
+// used to track when local services need to be updated.  Registered services
+// will also get a callback with the `CUPS_DNSSD_FLAGS_HOST_CHANGE` bit set in
+// the "flags" argument for host name changes and/or
+// `CUPS_DNSSD_FLAGS_NETWORK_CHANGE` for network changes.
+//
+
+size_t                                 // O - Number of host name changes
+cupsDNSSDGetConfigChanges(
+    cups_dnssd_t *dnssd)               // I - DNS-SD context
+{
+  return (dnssd ? dnssd->config_changes : 0);
+}
+
+
+//
+// 'cupsDNSSDNew()' - Create a new DNS-SD context.
+//
+// This function creates a new DNS-SD context for browsing, querying, resolving,
+// and/or registering services.  Call @link cupsDNSSDDelete@ to stop any pending
+// browses, queries, or resolves, unregister any services, and free the DNS-SD
+// context.
+//
+
+cups_dnssd_t *                         // O - DNS-SD context
+cupsDNSSDNew(
+    cups_dnssd_error_cb_t error_cb,    // I - Error callback function
+    void                  *cb_data)    // I - Error callback data
+{
+  cups_dnssd_t *dnssd;                 // DNS-SD context
+
+
+  DEBUG_printf(("cupsDNSSDNew(error_cb=%p, cb_data=%p)", (void *)error_cb, cb_data));
+
+  // Allocate memory...
+  if ((dnssd = (cups_dnssd_t *)calloc(1, sizeof(cups_dnssd_t))) == NULL)
+  {
+    DEBUG_puts("2cupsDNSSDNew: Unable to allocate memory, returning NULL.");
+    return (NULL);
+  }
+
+  // Save the error callback...
+  dnssd->cb      = error_cb;
+  dnssd->cb_data = cb_data;
+
+  // Initialize the mutex...
+  cupsMutexInit(&dnssd->mutex);
+
+  // Setup the DNS-SD connection and monitor thread...
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceErrorType error;           // Error code
+
+  if ((error = DNSServiceCreateConnection(&dnssd->ref)) != kDNSServiceErr_NoError)
+  {
+    // Unable to create connection...
+    report_error(dnssd, "Unable to initialize DNS-SD: %s", mdns_strerror(error));
+    cupsDNSSDDelete(dnssd);
+    DEBUG_puts("2cupsDNSSDNew: Unable to create DNS-SD thread - returning NULL.");
+    return (NULL);
+  }
+
+  // Monitor for hostname changes...
+  httpGetHostname(NULL, dnssd->hostname, sizeof(dnssd->hostname));
+  dnssd->hostname_ref = dnssd->ref;
+  if ((error = DNSServiceQueryRecord(&dnssd->hostname_ref, kDNSServiceFlagsShareConnection, kDNSServiceInterfaceIndexLocalOnly, "1.0.0.127.in-addr.arpa.", kDNSServiceType_PTR, kDNSServiceClass_IN, (DNSServiceQueryRecordReply)mdns_hostname_cb, dnssd)) != kDNSServiceErr_NoError)
+  {
+    report_error(dnssd, "Unable to query PTR record for local hostname: %s", mdns_strerror(error));
+    dnssd->hostname_ref = NULL;
+  }
+
+  // Start the background monitoring thread...
+  if ((dnssd->monitor = cupsThreadCreate((void *(*)(void *))mdns_monitor, dnssd)) == 0)
+  {
+    report_error(dnssd, "Unable to create DNS-SD thread: %s", strerror(errno));
+    cupsDNSSDDelete(dnssd);
+    DEBUG_puts("2cupsDNSSDNew: Unable to create DNS-SD thread - returning NULL.");
+    return (NULL);
+  }
+
+  DEBUG_printf(("2cupsDNSSDNew: dnssd->monitor=%p", (void *)dnssd->monitor));
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  int error;                           // Error code
+
+  if ((dnssd->poll = avahi_simple_poll_new()) == NULL)
+  {
+    // Unable to create the background thread...
+    report_error(dnssd, "Unable to initialize DNS-SD: %s", strerror(errno));
+    cupsDNSSDDelete(dnssd);
+    DEBUG_puts("2cupsDNSSDNew: Unable to create simple poll - returning NULL.");
+    return (NULL);
+  }
+
+  avahi_simple_poll_set_func(dnssd->poll, (AvahiPollFunc)avahi_poll_cb, dnssd);
+
+  DEBUG_printf(("2cupsDNSSDNew: dnssd->poll=%p", (void *)dnssd->poll));
+
+  if ((dnssd->client = avahi_client_new(avahi_simple_poll_get(dnssd->poll), AVAHI_CLIENT_NO_FAIL, (AvahiClientCallback)avahi_client_cb, dnssd, &error)) == NULL)
+  {
+    // Unable to create the client...
+    report_error(dnssd, "Unable to initialize DNS-SD: %s", avahi_strerror(error));
+    avahi_simple_poll_free(dnssd->poll);
+    cupsDNSSDDelete(dnssd);
+    DEBUG_puts("2cupsDNSSDNew: Unable to create Avahi client - returning NULL.");
+    return (NULL);
+  }
+
+  DEBUG_printf(("2cupsDNSSDNew: dnssd->client=%p", (void *)dnssd->client));
+
+  if ((dnssd->monitor = cupsThreadCreate((void *(*)(void *))avahi_monitor, dnssd)) == 0)
+  {
+    report_error(dnssd, "Unable to create DNS-SD thread: %s", strerror(errno));
+    cupsDNSSDDelete(dnssd);
+    DEBUG_puts("2cupsDNSSDNew: Unable to create DNS-SD thread - returning NULL.");
+    return (NULL);
+  }
+
+  DEBUG_printf(("2cupsDNSSDNew: dnssd->monitor=%p", (void *)dnssd->monitor));
+#endif // HAVE_MDNSRESPONDER
+
+  DEBUG_printf(("2cupsDNSSDNew: Returning %p.", (void *)dnssd));
+
+  return (dnssd);
+}
+
+
+//
+// 'cupsDNSSDBrowseDelete()' - Cancel and delete a browse request.
+//
+
+void
+cupsDNSSDBrowseDelete(
+    cups_dnssd_browse_t *browse)       // I - Browse request
+{
+  if (browse)
+  {
+    cups_dnssd_t *dnssd = browse->dnssd;
+
+    cupsMutexLock(&dnssd->mutex);
+    cupsArrayRemove(dnssd->browses, browse);
+    cupsMutexUnlock(&dnssd->mutex);
+  }
+}
+
+
+//
+// 'cupsDNSSDBrowseGetContext()' - Get the DNS-SD context for the browse request.
+//
+
+cups_dnssd_t *                         // O - Context or `NULL`
+cupsDNSSDBrowseGetContext(
+    cups_dnssd_browse_t *browse)       // I - Browse request
+{
+  return (browse ? browse->dnssd : NULL);
+}
+
+
+//
+// 'cupsDNSSDBrowseNew()' - Create a new DNS-SD browse request.
+//
+// This function creates a new DNS-SD browse request for the specified service
+// types and optional domain and interface index.  The "types" argument can be a
+// single service type ("_ipp._tcp") or a service type and comma-delimited list
+// of sub-types ("_ipp._tcp,_print,_universal").
+//
+// Newly discovered services are reported using the required browse callback
+// function, with the "flags" argument set to `CUPS_DNSSD_FLAGS_ADD` for newly
+// discovered services, `CUPS_DNSSD_FLAGS_NONE` for removed services, or
+// `CUPS_DNSSD_FLAGS_ERROR` on an error:
+//
+// ```
+// void
+// browse_cb(
+//     cups_dnssd_browse_t *browse,
+//     void                *cb_data,
+//     cups_dnssd_flags_t  flags,
+//     uint32_t            if_index,
+//     const char          *name,
+//     const char          *regtype,
+//     const char          *domain)
+// {
+//     // Process added/removed service
+// }
+// ```
+//
+
+cups_dnssd_browse_t *                  // O - Browse request or `NULL` on error
+cupsDNSSDBrowseNew(
+    cups_dnssd_t           *dnssd,     // I - DNS-SD context
+    uint32_t               if_index,   // I - Interface index, `CUPS_DNSSD_IF_ANY`, or `CUPS_DNSSD_IF_LOCAL`
+    const char             *types,     // I - Service types
+    const char             *domain,    // I - Domain name or `NULL` for default
+    cups_dnssd_browse_cb_t browse_cb,  // I - Browse callback function
+    void                   *cb_data)   // I - Browse callback data
+{
+  cups_dnssd_browse_t  *browse;        // Browse request
+
+
+  // Range check input...
+  if (!dnssd || !types || !browse_cb)
+    return (NULL);
+
+  // Allocate memory for the browser...
+  if ((browse = (cups_dnssd_browse_t *)calloc(1, sizeof(cups_dnssd_browse_t))) == NULL)
+    return (NULL);
+
+  browse->dnssd   = dnssd;
+  browse->cb      = browse_cb;
+  browse->cb_data = cb_data;
+
+  cupsMutexLock(&dnssd->mutex);
+
+  if (!dnssd->browses)
+  {
+    // Create an array of browsers...
+    if ((dnssd->browses = cupsArrayNew3(NULL, NULL, NULL, 0, NULL, (cups_afree_func_t)delete_browse)) == NULL)
+    {
+      // Unable to create...
+      free(browse);
+      browse = NULL;
+      goto done;
+    }
+  }
+
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceErrorType error;           // Error, if any
+
+  browse->ref = dnssd->ref;
+  if ((error = DNSServiceBrowse(&browse->ref, kDNSServiceFlagsShareConnection, if_index, types, domain, (DNSServiceBrowseReply)mdns_browse_cb, browse)) != kDNSServiceErr_NoError)
+  {
+    report_error(dnssd, "Unable to create DNS-SD browse request: %s", mdns_strerror(error));
+    free(browse);
+    browse = NULL;
+    goto done;
+  }
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  browse->browser = avahi_service_browser_new(dnssd->client, avahi_if_index(if_index), AVAHI_PROTO_UNSPEC, types, NULL, 0, (AvahiServiceBrowserCallback)avahi_browse_cb, browse);
+  avahi_simple_poll_wakeup(dnssd->poll);
+
+  if (!browse->browser)
+  {
+    report_error(dnssd, "Unable to create DNS-SD browse request: %s", avahi_strerror(avahi_client_errno(dnssd->client)));
+    free(browse);
+    browse = NULL;
+    goto done;
+  }
+#endif // HAVE_MDNSRESPONDER
+
+  cupsArrayAdd(dnssd->browses, browse);
+
+  done:
+
+  cupsMutexUnlock(&dnssd->mutex);
+
+  return (browse);
+}
+
+
+
+//
+// 'cupsDNSSDQueryDelete()' - Cancel and delete a query request.
+//
+
+void
+cupsDNSSDQueryDelete(
+    cups_dnssd_query_t *query)         // I - Query request
+{
+  if (query)
+  {
+    cups_dnssd_t *dnssd = query->dnssd;
+
+    cupsMutexLock(&dnssd->mutex);
+    cupsArrayRemove(dnssd->queries, query);
+    cupsMutexUnlock(&dnssd->mutex);
+  }
+}
+
+
+//
+// 'cupsDNSSDQueryGetContext()' - Get the DNS-SD context for the query request.
+//
+
+cups_dnssd_t *                         // O - DNS-SD context or `NULL`
+cupsDNSSDQueryGetContext(
+    cups_dnssd_query_t *query)         // I - Query request
+{
+  return (query ? query->dnssd : NULL);
+}
+
+
+//
+// 'cupsDNSSDQueryNew()' - Create a new query request.
+//
+// This function creates a new DNS-SD query request for the specified full
+// service name and DNS record type.  The "fullname" parameter specifies the
+// full DNS name of the service (instance name, type, and domain) being queried.
+// Responses to the query are reported using the required query callback
+// function with the "flags" argument set to `CUPS_DNSSD_FLAGS_NONE` on success
+// or `CUPS_DNSSD_FLAGS_ERROR` on error:
+//
+// ```
+// void
+// query_cb(
+//     cups_dnssd_query_t *query,
+//     void               *cb_data,
+//     cups_dnssd_flags_t flags,
+//     uint32_t           if_index,
+//     const char         *fullname,
+//     uint16_t           rrtype,
+//     const void         *qdata,
+//     uint16_t           qlen)
+// {
+//     // Process query record
+// }
+// ```
+//
+
+cups_dnssd_query_t *                   // O - Query request or `NULL` on error
+cupsDNSSDQueryNew(
+    cups_dnssd_t          *dnssd,      // I - DNS-SD context
+    uint32_t              if_index,    // I - Interface index or `CUPS_DNSSD_IF_ANY` or `CUPS_DNSSD_IF_LOCAL`
+    const char            *fullname,   // I - Full DNS name including types and domain
+    uint16_t              rrtype,      // I - Record type to query (`CUPS_DNSSD_RRTYPE_TXT`, etc.)
+    cups_dnssd_query_cb_t query_cb,    // I - Query callback function
+    void                  *cb_data)    // I - Query callback data
+{
+  cups_dnssd_query_t   *query;         // Query request
+
+
+  // Range check input...
+  if (!dnssd || !fullname || !query_cb)
+    return (NULL);
+
+  // Allocate memory for the queryr...
+  if ((query = (cups_dnssd_query_t *)calloc(1, sizeof(cups_dnssd_query_t))) == NULL)
+    return (NULL);
+
+  query->dnssd   = dnssd;
+  query->cb      = query_cb;
+  query->cb_data = cb_data;
+
+  cupsMutexLock(&dnssd->mutex);
+
+  if (!dnssd->queries)
+  {
+    // Create an array of queryrs...
+    if ((dnssd->queries = cupsArrayNew3(NULL, NULL, NULL, 0, NULL, (cups_afree_func_t)delete_query)) == NULL)
+    {
+      // Unable to create...
+      free(query);
+      query = NULL;
+      goto done;
+    }
+  }
+
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceErrorType error;           // Error, if any
+
+  query->ref = dnssd->ref;
+  if ((error = DNSServiceQueryRecord(&query->ref, kDNSServiceFlagsShareConnection, if_index, fullname, rrtype, kDNSServiceClass_IN, (DNSServiceQueryRecordReply)mdns_query_cb, query)) != kDNSServiceErr_NoError)
+  {
+    report_error(dnssd, "Unable to create DNS-SD query request: %s", mdns_strerror(error));
+    free(query);
+    query = NULL;
+    goto done;
+  }
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  query->browser = avahi_record_browser_new(dnssd->client, avahi_if_index(if_index), AVAHI_PROTO_UNSPEC, fullname, AVAHI_DNS_CLASS_IN, rrtype, 0, (AvahiRecordBrowserCallback)avahi_query_cb, query);
+  avahi_simple_poll_wakeup(dnssd->poll);
+
+  if (!query->browser)
+  {
+    report_error(dnssd, "Unable to create DNS-SD query request: %s", avahi_strerror(avahi_client_errno(dnssd->client)));
+    free(query);
+    query = NULL;
+    goto done;
+  }
+#endif // HAVE_MDNSRESPONDER
+
+  cupsArrayAdd(dnssd->queries, query);
+
+  done:
+
+  cupsMutexUnlock(&dnssd->mutex);
+
+  return (query);
+}
+
+
+
+//
+// 'cupsDNSSDResolveDelete()' - Cancel and free a resolve request.
+//
+
+void
+cupsDNSSDResolveDelete(
+    cups_dnssd_resolve_t *res)         // I - Resolve request
+{
+  if (res)
+  {
+    cups_dnssd_t *dnssd = res->dnssd;
+
+    cupsMutexLock(&dnssd->mutex);
+    cupsArrayRemove(dnssd->resolves, res);
+    cupsMutexUnlock(&dnssd->mutex);
+  }
+}
+
+
+//
+// 'cupsDNSSDResolveGetContext()' - Get the DNS-SD context for the resolve request.
+//
+
+cups_dnssd_t *                         // O - DNS-SD context or `NULL`
+cupsDNSSDResolveGetContext(
+    cups_dnssd_resolve_t *resolve)     // I - Resolve request
+{
+  return (resolve ? resolve->dnssd : NULL);
+}
+
+
+//
+// 'cupsDNSSDResolveNew()' - Create a new DNS-SD resolve request.
+//
+// This function creates a new DNS-SD resolver for the specified instance name,
+// service type, and optional domain and interface index.  Resikved services
+// are reported using the required resolve callback function, with the "flags"
+// argument set to `CUPS_DNSSD_FLAGS_NONE` on success or
+// `CUPS_DNSSD_FLAGS_ERROR` on error:
+//
+// ```
+// void
+// resolve_cb(
+//     cups_dnssd_resolve_t *resolve,
+//     void                 *cb_data,
+//     cups_dnssd_flags_t   flags,
+//     uint32_t             if_index,
+//     const char           *fullname,
+//     const char           *host,
+//     uint16_t             port,
+//     size_t               num_txt,
+//     cups_option_t        *txt)
+// {
+//     // Process resolved service
+// }
+// ```
+//
+
+cups_dnssd_resolve_t *                 // O - Resolve request or `NULL` on error
+cupsDNSSDResolveNew(
+    cups_dnssd_t            *dnssd,    // I - DNS-SD context
+    uint32_t                if_index,  // I - Interface index or `CUPS_DNSSD_IF_ANY` or `CUPS_DNSSD_IF_LOCAL`
+    const char              *name,     // I - Service name
+    const char              *type,     // I - Service type
+    const char              *domain,   // I - Domain name or `NULL` for default
+    cups_dnssd_resolve_cb_t resolve_cb,        // I - Resolve callback function
+    void                    *cb_data)  // I - Resolve callback data
+{
+  cups_dnssd_resolve_t *resolve;       // Resolve request
+
+
+  DEBUG_printf(("cupsDNSSDResolveNew(dnssd=%p, if_index=%u, name=\"%s\", type=\"%s\", domain=\"%s\", resolve_cb=%p, cb_data=%p)", (void *)dnssd, (unsigned)if_index, name, type, domain, (void *)resolve_cb, cb_data));
+
+  // Range check input...
+  if (!dnssd || !name || !type || !resolve_cb)
+    return (NULL);
+
+  // Allocate memory for the queryr...
+  if ((resolve = (cups_dnssd_resolve_t *)calloc(1, sizeof(cups_dnssd_resolve_t))) == NULL)
+    return (NULL);
+
+  resolve->dnssd   = dnssd;
+  resolve->cb      = resolve_cb;
+  resolve->cb_data = cb_data;
+
+  cupsMutexLock(&dnssd->mutex);
+
+  if (!dnssd->resolves)
+  {
+    // Create an array of queryrs...
+    if ((dnssd->resolves = cupsArrayNew3(NULL, NULL, NULL, 0, NULL, (cups_afree_func_t)delete_resolve)) == NULL)
+    {
+      // Unable to create...
+      free(resolve);
+      resolve = NULL;
+      goto done;
+    }
+  }
+
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceErrorType error;           // Error, if any
+
+  resolve->ref = dnssd->ref;
+  if ((error = DNSServiceResolve(&resolve->ref, kDNSServiceFlagsShareConnection, if_index, name, type, domain, (DNSServiceResolveReply)mdns_resolve_cb, resolve)) != kDNSServiceErr_NoError)
+  {
+    report_error(dnssd, "Unable to create DNS-SD query request: %s", mdns_strerror(error));
+    free(resolve);
+    resolve = NULL;
+    goto done;
+  }
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  resolve->resolver = avahi_service_resolver_new(dnssd->client, avahi_if_index(if_index), AVAHI_PROTO_UNSPEC, name, type, domain, AVAHI_PROTO_UNSPEC, /*flags*/0, (AvahiServiceResolverCallback)avahi_resolve_cb, resolve);
+  avahi_simple_poll_wakeup(dnssd->poll);
+
+  if (!resolve->resolver)
+  {
+    report_error(dnssd, "Unable to create DNS-SD resolve request: %s", avahi_strerror(avahi_client_errno(dnssd->client)));
+    free(resolve);
+    resolve = NULL;
+    goto done;
+  }
+#endif // HAVE_MDNSRESPONDER
+
+  cupsArrayAdd(dnssd->resolves, resolve);
+
+  done:
+
+  cupsMutexUnlock(&dnssd->mutex);
+
+  return (resolve);
+}
+
+
+//
+// 'cupsDNSSDServiceAdd()' - Add a service instance.
+//
+// This function adds a service instance for the specified service types,
+// domain, host, and port.  The "types" argument can be a single service type
+// ("_ipp._tcp") or a service type and comma-delimited list of sub-types
+// ("_ipp._tcp,_print,_universal").
+//
+// Call the @link cupsDNSSDServicePublish@ function after all service instances
+// have been added.
+//
+
+bool                                   // O - `true` on success, `false` on failure
+cupsDNSSDServiceAdd(
+    cups_dnssd_service_t *service,     // I - Service
+    const char           *types,       // I - Service types
+    const char           *domain,      // I - Domain name or `NULL` for default
+    const char           *host,                // I - Host name or `NULL` for default
+    uint16_t             port,         // I - Port number or `0` for none
+    size_t               num_txt,      // I - Number of TXT record values
+    cups_option_t        *txt)         // I - TXT record values
+{
+  bool         ret = true;             // Return value
+  size_t       i;                      // Looping var
+
+
+  DEBUG_printf(("cupsDNSSDServiceAdd(service=%p, types=\"%s\", domain=\"%s\", host=\"%s\", port=%u, num_txt=%u, txt=%p)", (void *)service, types, domain, host, port, (unsigned)num_txt, (void *)txt));
+
+  // Range check input...
+  if (!service || !types)
+    return (false);
+
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceErrorType  error;          // Error, if any
+  TXTRecordRef         txtrec,         // TXT record
+                       *txtptr = NULL; // Pointer to TXT record, if any
+
+  // Limit number of services with this name...
+  if (service->num_refs >= (sizeof(service->refs) / sizeof(service->refs[0])))
+  {
+    report_error(service->dnssd, "Unable to create DNS-SD service registration: Too many services with this name.");
+    ret = false;
+    goto done;
+  }
+
+  // Create the TXT record as needed...
+  if (num_txt)
+  {
+    TXTRecordCreate(&txtrec, 1024, NULL);
+    for (i = 0; i < num_txt; i ++)
+      TXTRecordSetValue(&txtrec, txt[i].name, (uint8_t)strlen(txt[i].value), txt[i].value);
+
+    txtptr = &txtrec;
+  }
+
+  service->refs[service->num_refs] = service->dnssd->ref;
+  if ((error = DNSServiceRegister(service->refs + service->num_refs, kDNSServiceFlagsShareConnection | kDNSServiceFlagsNoAutoRename, service->if_index, service->name, types, domain, host, htons(port), txtptr ? TXTRecordGetLength(txtptr) : 0, txtptr ? TXTRecordGetBytesPtr(txtptr) : NULL, (DNSServiceRegisterReply)mdns_service_cb, service)) != kDNSServiceErr_NoError)
+  {
+    if (txtptr)
+      TXTRecordDeallocate(txtptr);
+
+    report_error(service->dnssd, "Unable to create DNS-SD service registration: %s", mdns_strerror(error));
+    ret = false;
+    goto done;
+  }
+
+  if (txtptr)
+    TXTRecordDeallocate(txtptr);
+
+  if (service->loc_set)
+  {
+    if ((error = DNSServiceAddRecord(service->refs[service->num_refs], service->loc_refs + service->num_refs, 0, kDNSServiceType_LOC, sizeof(service->loc), service->loc, 0)) != kDNSServiceErr_NoError)
+    {
+      report_error(service->dnssd, "Unable to add DNS-SD service location data: %s", mdns_strerror(error));
+    }
+  }
+
+  service->num_refs ++;
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  int                  error;          // Error code
+  AvahiStringList      *txtrec = NULL; // TXT record string list
+  char                 *regtype,       // Registration type
+                       *subtypes;      // Subtypes (if any)
+
+  // Build the string list from the TXT array...
+  for (i = 0; i < num_txt; i ++)
+    txtrec = avahi_string_list_add_printf(txtrec, "%s=%s", txt[i].name, txt[i].value);
+
+  // Copy the registration type...
+  if ((regtype = strdup(types)) == NULL)
+  {
+    report_error(service->dnssd, "Unable to duplicate registration types: %s", strerror(errno));
+    ret = false;
+    goto done;
+  }
+
+  if ((subtypes = strchr(regtype, ',')) != NULL)
+    *subtypes++ = '\0';
+
+  // Add the service entry...
+  if ((error = avahi_entry_group_add_service_strlst(service->group, avahi_if_index(service->if_index), AVAHI_PROTO_UNSPEC, /*flags*/0, service->name, regtype, domain, host, port, txtrec)) < 0)
+  {
+    report_error(service->dnssd, "Unable to register '%s.%s': %s", service->name, regtype, avahi_strerror(error));
+    ret = false;
+  }
+  else if (subtypes)
+  {
+    char       subtype[256];           // Subtype string
+    char       *start, *end;           // Pointers into sub-types...
+
+    DEBUG_printf(("cupsDNSSDServiceAdd: Registered '%s.%s.%s'.", service->name, regtype, domain));
+
+    for (start = subtypes; ret && start && *start; start = end)
+    {
+      if ((end = strchr(start, ',')) != NULL)
+       *end++ = '\0';
+      else
+       end = start + strlen(start);
+
+      snprintf(subtype, sizeof(subtype), "%s._sub.%s", start, regtype);
+      if ((error = avahi_entry_group_add_service_subtype(service->group, avahi_if_index(service->if_index), AVAHI_PROTO_UNSPEC, /*flags*/0, service->name, regtype, domain, subtype)) < 0)
+      {
+        report_error(service->dnssd, "Unable to register '%s.%s': %s", service->name, subtype, avahi_strerror(error));
+        ret = false;
+      }
+
+      DEBUG_printf(("cupsDNSSDServiceAdd: Registered '%s.%s.%s'.", service->name, subtype, domain));
+    }
+  }
+
+  free(regtype);
+
+  if (txtrec)
+    avahi_string_list_free(txtrec);
+#endif // HAVE_MDNSRESPONDER
+
+  done:
+
+  DEBUG_printf(("2cupsDNSSDServiceAdd: Returning %s.", ret ? "true" : "false"));
+  return (ret);
+}
+
+
+//
+// 'cupsDNSSDServiceDelete()' - Cancel and free a service registration.
+//
+
+void
+cupsDNSSDServiceDelete(
+    cups_dnssd_service_t *service)     // I - Service
+{
+  DEBUG_printf(("cupsDNSSDServiceDelete(service=%p)", (void *)service));
+
+  if (service)
+  {
+    cups_dnssd_t *dnssd = service->dnssd;
+
+    cupsMutexLock(&dnssd->mutex);
+    cupsArrayRemove(dnssd->services, service);
+    cupsMutexUnlock(&dnssd->mutex);
+  }
+}
+
+
+//
+// 'cupsDNSSDServiceGetContext()' - Get the DNS-SD context for the service
+//                                  registration.
+//
+
+cups_dnssd_t *                         // O - DNS-SD context or `NULL`
+cupsDNSSDServiceGetContext(
+    cups_dnssd_service_t *service)     // I - Service registration
+{
+  return (service ? service->dnssd : NULL);
+}
+
+
+//
+// 'cupsDNSSDServiceGetName()' - Get the service instance name for the service registration.
+//
+
+const char *                           // O - Service instance name
+cupsDNSSDServiceGetName(
+    cups_dnssd_service_t *service)     // I - Service registration
+{
+  return (service ? service->name : NULL);
+}
+
+
+//
+// 'cupsDNSSDServiceNew()' - Create a new named service.
+//
+// This function creates a new DNS-SD service registration for the given service
+// instance name and interface.  Specific services using the name are added
+// using the @link cupsDNSSDServiceAdd@ function.
+//
+// The required service callback is called for select events, with the "flags"
+// argument set to `CUPS_DNSSD_FLAGS_NONE` for a successful registration,
+// `CUPS_DNSSD_FLAGS_COLLISION` when there is a name collision, or
+// `CUPS_DNSSD_FLAGS_ERROR` when there is a problem completing the service
+// registration.
+//
+
+cups_dnssd_service_t *                 // O - Service or `NULL` on error
+cupsDNSSDServiceNew(
+    cups_dnssd_t            *dnssd,    // I - DNS-SD context
+    uint32_t                if_index,  // I - Interface index, `CUPS_DNSSD_IF_ANY`, or `CUPS_DNSSD_IF_LOCAL`
+    const char              *name,     // I - Name of service
+    cups_dnssd_service_cb_t cb,                // I - Service registration callback function
+    void                    *cb_data)  // I - Service registration callback data
+{
+  cups_dnssd_service_t *service;       // Service registration
+
+
+  DEBUG_printf(("cupsDNSSDServiceNew(dnssd=%p, if_index=%u, name=\"%s\", cb=%p, cb_data=%p)", (void *)dnssd, (unsigned)if_index, name, (void *)cb, cb_data));
+
+  // Range check input...
+  if (!dnssd || !name || !cb)
+    return (NULL);
+
+  // Allocate memory for the service...
+  if ((service = (cups_dnssd_service_t *)calloc(1, sizeof(cups_dnssd_service_t))) == NULL)
+    return (NULL);
+
+  service->dnssd    = dnssd;
+  service->cb       = cb;
+  service->cb_data  = cb_data;
+  service->name     = strdup(name);
+  service->if_index = if_index;
+
+#ifdef HAVE_MDNSRESPONDER
+#elif _WIN32
+#else // HAVE_AVAHI
+  service->group = avahi_entry_group_new(dnssd->client, (AvahiEntryGroupCallback)avahi_service_cb, service);
+
+  if (!service->group)
+  {
+    report_error(dnssd, "Unable to create DNS-SD service registration: %s", avahi_strerror(avahi_client_errno(dnssd->client)));
+    free(service);
+    service = NULL;
+    goto done;
+  }
+#endif // HAVE_MDNSRESPONDER
+
+  cupsMutexLock(&dnssd->mutex);
+
+  if (!dnssd->services)
+  {
+    // Create an array of queryrs...
+    if ((dnssd->services = cupsArrayNew3(NULL, NULL, NULL, 0, NULL, (cups_afree_func_t)delete_service)) == NULL)
+    {
+      // Unable to create...
+      free(service);
+      service = NULL;
+      goto done;
+    }
+  }
+
+  cupsArrayAdd(dnssd->services, service);
+
+  done:
+
+  cupsMutexUnlock(&dnssd->mutex);
+
+  DEBUG_printf(("2cupsDNSSDServiceNew: Returning %p.", (void *)service));
+  return (service);
+}
+
+
+//
+// 'cupsDNSSDServicePublish()' - Publish a service.
+//
+// This function publishes the DNS-SD services added using the
+// @link cupsDNSSDServiceAdd@ function.
+//
+
+bool                                   // O - `true` on success, `false` on failure
+cupsDNSSDServicePublish(
+    cups_dnssd_service_t *service)     // I - Service
+{
+  bool         ret = true;             // Return value
+
+
+  DEBUG_printf(("cupsDNSSDServicePublish(service=%p)", (void *)service));
+
+#if _WIN32
+  (void)service;
+#elif defined(HAVE_MDNSRESPONDER)
+  (void)service;
+#else // HAVE_AVAHI
+  avahi_entry_group_commit(service->group);
+  avahi_simple_poll_wakeup(service->dnssd->poll);
+#endif // _WIN32
+
+  DEBUG_printf(("2cupsDNSSDServicePublish: Returning %s.", ret ? "true" : "false"));
+  return (ret);
+}
+
+
+//
+// 'cupsDNSSDServiceSetLocation()' - Set the geolocation (LOC record) of a
+//                                   service.
+//
+// This function sets the geolocation of a service using a 'geo:' URI (RFC 5870)
+// of the form
+// 'geo:LATITUDE,LONGITUDE[,ALTITUDE][;crs=CRSLABEL][;u=UNCERTAINTY]'.  The
+// specified coordinates and uncertainty are converted into a DNS LOC record
+// for the service name label.  Only the "wgs84" CRSLABEL string is supported.
+//
+// You must call this function prior to @link cupsDNSSDServiceAdd@.
+//
+
+bool                                   // O - `true` on success, `false` on failure
+cupsDNSSDServiceSetLocation(
+    cups_dnssd_service_t *service,     // I - Service
+    const char           *geo_uri)     // I - Geolocation as a 'geo:' URI
+{
+  bool         ret = true;             // Return value
+  const char   *geo_ptr;               // Pointer into 'geo;' URI
+  double       lat = 0.0, lon = 0.0;   // Latitude and longitude in degrees
+  double       alt = 0.0;              // Altitude in meters
+  double       u = 5.0;                // Uncertainty in meters
+  unsigned int lat_ksec, lon_ksec;     // Latitude and longitude in thousandths of arc seconds, biased by 2^31
+  unsigned int alt_cm;                 // Altitude in centimeters, biased by 10,000,000cm
+  unsigned char        prec;                   // Precision value
+
+
+  // Range check input...
+  if (!service || !geo_uri)
+    return (false);
+
+  // See if this is a WGS-84 coordinate...
+  if ((geo_ptr = strstr(geo_uri, ";crs=")) != NULL && strncmp(geo_ptr + 5, "wgs84", 5))
+  {
+    // Not WGS-84...
+    _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Only WGS-84 coordinates are supported."), true);
+    return (false);
+  }
+
+  // Pull apart the "geo:" URI and convert to the integer representation for
+  // the LOC record...
+  sscanf(geo_uri, "geo:%lf,%lf,%lf", &lat, &lon, &alt);
+  lat_ksec = (unsigned)((int)(lat * 3600000.0) + 0x40000000 + 0x40000000);
+  lon_ksec = (unsigned)((int)(lon * 3600000.0) + 0x40000000 + 0x40000000);
+  alt_cm   = (unsigned)((int)(alt * 100.0) + 10000000);
+
+  if ((geo_ptr = strstr(geo_uri, ";u=")) != NULL)
+    u = strtod(geo_ptr + 3, NULL);
+
+  if (u < 0.0)
+    u = 0.0;
+
+  for (prec = 0, u = u * 100.0; u >= 10.0 && prec < 15; u = u * 0.01)
+    prec ++;
+
+  if (u < 10.0)
+    prec |= (unsigned char)((int)u << 4);
+  else
+    prec |= (unsigned char)0x90;
+
+  // Build the LOC record...
+  service->loc[0]  = 0x00;             // Version
+  service->loc[1]  = 0x51;             // Size (50cm)
+  service->loc[2]  = prec;             // Horizontal precision
+  service->loc[3]  = prec;             // Vertical precision
+
+  service->loc[4]  = (unsigned char)(lat_ksec >> 24);
+                                       // Latitude (32-bit big-endian)
+  service->loc[5]  = (unsigned char)(lat_ksec >> 16);
+  service->loc[6]  = (unsigned char)(lat_ksec >> 8);
+  service->loc[7]  = (unsigned char)(lat_ksec);
+
+  service->loc[8]  = (unsigned char)(lon_ksec >> 24);
+                                       // Latitude (32-bit big-endian)
+  service->loc[9]  = (unsigned char)(lon_ksec >> 16);
+  service->loc[10] = (unsigned char)(lon_ksec >> 8);
+  service->loc[11] = (unsigned char)(lon_ksec);
+
+  service->loc[12] = (unsigned char)(alt_cm >> 24);
+                                       // Altitude (32-bit big-endian)
+  service->loc[13] = (unsigned char)(alt_cm >> 16);
+  service->loc[14] = (unsigned char)(alt_cm >> 8);
+  service->loc[15] = (unsigned char)(alt_cm);
+
+  service->loc_set = true;
+
+#ifdef HAVE_MDNSRESPONDER
+  // Add LOC record in cupsDNSSDServiceAdd()
+
+#elif _WIN32
+  // Add LOC record in cupsDNSSDServiceAdd()
+
+#else // HAVE_AVAHI
+  // Add LOC record now...
+  int error;                           // Error code
+
+  if ((error = avahi_entry_group_add_record(service->group, avahi_if_index(service->if_index), AVAHI_PROTO_UNSPEC, /*flags*/0, service->name, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_LOC, /*ttl*/75 * 60, service->loc, sizeof(service->loc))) < 0)
+  {
+    report_error(service->dnssd, "Unable to register LOC record for '%s': %s", service->name, avahi_strerror(error));
+    ret = false;
+  }
+#endif // HAVE_MDNSRESPONDER
+
+  return (ret);
+}
+
+
+//
+// 'delete_browse()' - Delete a browse request.
+//
+
+static void
+delete_browse(
+    cups_dnssd_browse_t *browse)       // I - Browse request
+{
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceRefDeallocate(browse->ref);
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  avahi_service_browser_free(browse->browser);
+#endif // HAVE_MDNSRESPONDER
+
+  free(browse);
+}
+
+
+//
+// 'delete_query()' - Delete a query request.
+//
+
+static void
+delete_query(
+    cups_dnssd_query_t *query)         // I - Query request
+{
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceRefDeallocate(query->ref);
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  avahi_record_browser_free(query->browser);
+#endif // HAVE_MDNSRESPONDER
+}
+
+
+//
+// 'delete_resolve()' - Delete a resolve request.
+//
+
+static void
+delete_resolve(
+    cups_dnssd_resolve_t *resolve)     // I - Resolve request
+{
+#ifdef HAVE_MDNSRESPONDER
+  DNSServiceRefDeallocate(resolve->ref);
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  avahi_service_resolver_free(resolve->resolver);
+#endif // HAVE_MDNSRESPONDER
+
+}
+
+
+//
+// 'delete_service()' - Delete a service registration.
+//
+
+static void
+delete_service(
+    cups_dnssd_service_t *service)     // I - Service
+{
+  free(service->name);
+
+#ifdef HAVE_MDNSRESPONDER
+  size_t       i;                      // Looping var
+
+  for (i = 0; i < service->num_refs; i ++)
+    DNSServiceRefDeallocate(service->refs[i]);
+
+#elif _WIN32
+
+#else // HAVE_AVAHI
+  avahi_entry_group_free(service->group);
+#endif // HAVE_MDNSRESPONDER
+
+  free(service);
+}
+
+
+//
+// 'report_error()' - Report an error.
+//
+
+static void
+report_error(cups_dnssd_t *dnssd,      // I - DNS-SD context
+             const char   *message,    // I - printf-style message string
+             ...)                      // I - Additional arguments as needed
+{
+  va_list      ap;                     // Pointer to arguments
+  char         buffer[8192];           // Formatted message
+
+
+  // Format the message...
+  va_start(ap, message);
+  vsnprintf(buffer, sizeof(buffer), message, ap);
+  va_end(ap);
+
+  // Send it...
+  if (dnssd->cb)
+    (dnssd->cb)(dnssd->cb_data, buffer);
+  else
+    fprintf(stderr, "%s\n", buffer);
+}
+
+
+#ifdef HAVE_MDNSRESPONDER
+//
+// 'mdns_browse_cb()' - Handle DNS-SD browse callbacks from mDNSResponder.
+//
+
+static void
+mdns_browse_cb(
+    DNSServiceRef       ref,           // I - Service reference
+    DNSServiceFlags     flags,         // I - Browse flags
+    uint32_t            if_index,      // I - Interface index
+    DNSServiceErrorType error,         // I - Error code, if any
+    const char          *name,         // I - Service name
+    const char          *regtype,      // I - Registration type
+    const char          *domain,       // I - Domain
+    cups_dnssd_browse_t *browse)       // I - Browse request
+{
+  (void)ref;
+
+  if (error != kDNSServiceErr_NoError)
+    report_error(browse->dnssd, "DNS-SD browse error: %s", mdns_strerror(error));
+
+  (browse->cb)(browse, browse->cb_data, mdns_to_cups(flags, error), if_index, name, regtype, domain);
+}
+
+
+//
+// 'mdns_hostname_cb()' - Track changes to the mDNS hostname...
+//
+
+static void DNSSD_API
+mdns_hostname_cb(
+    DNSServiceRef       ref,           // I - Service reference (unsued)
+    DNSServiceFlags     flags,         // I - Flags (unused)
+    uint32_t            if_index,      // I - Interface index (unused)
+    DNSServiceErrorType error,         // I - Error code, if any
+    const char          *fullname,     // I - Search name (unused)
+    uint16_t            rrtype,                // I - Record type (unused)
+    uint16_t            rrclass,       // I - Record class (unused)
+    uint16_t            rdlen,         // I - Record data length
+    const void          *rdata,                // I - Record data
+    uint32_t            ttl,           // I - Time-to-live (unused)
+    cups_dnssd_t        *dnssd)                // I - DNS-SD context
+{
+  uint8_t      *rdataptr,              // Pointer into record data
+               lablen;                 // Length of current label
+  char         temp[1024],             // Temporary hostname string
+               *tempptr;               // Pointer into temporary string
+
+
+  (void)ref;
+  (void)flags;
+  (void)if_index;
+  (void)fullname;
+  (void)rrtype;
+  (void)rrclass;
+  (void)ttl;
+
+  // Check for errors...
+  if (error != kDNSServiceErr_NoError)
+    return;
+
+  // Copy the hostname from the PTR record...
+  for (rdataptr = (uint8_t *)rdata, tempptr = temp; rdlen > 0 && tempptr < (temp + sizeof(temp) - 2); rdlen -= lablen, rdataptr += lablen)
+  {
+    lablen = *rdataptr++;
+    rdlen --;
+
+    if (!rdlen || rdlen < lablen)
+      break;
+
+    if (tempptr > temp)
+      *tempptr++ = '.';
+
+    if (lablen < (sizeof(temp) - (size_t)(tempptr - temp)))
+    {
+      memcpy(tempptr, rdataptr, lablen);
+      tempptr += lablen;
+    }
+  }
+
+  *tempptr = '\0';
+
+  // Ignore localhost...
+  if (!strcmp(temp, "localhost"))
+    return;
+
+  // Look for changes to the hostname...
+  cupsMutexLock(&dnssd->mutex);
+  if (strcmp(temp, dnssd->hostname))
+  {
+    cups_dnssd_service_t *service;     // Current service
+
+    // Copy the new hostname...
+    cupsCopyString(dnssd->hostname, temp, sizeof(dnssd->hostname));
+    dnssd->config_changes ++;
+
+    // Notify services of the change...
+    for (service = (cups_dnssd_service_t *)cupsArrayFirst(dnssd->services); service; service = (cups_dnssd_service_t *)cupsArrayNext(dnssd->services))
+      (service->cb)(service, service->cb_data, CUPS_DNSSD_FLAGS_HOST_CHANGE);
+  }
+  cupsMutexUnlock(&dnssd->mutex);
+}
+
+
+//
+// 'mdns_monitor()' - Monitor DNS-SD messages from mDNSResponder.
+//
+
+static void *                          // O - Return value (always `NULL`)
+mdns_monitor(cups_dnssd_t *dnssd)      // I - DNS-SD context
+{
+  DNSServiceErrorType  error;          // Current error
+  struct pollfd                polldata;       // Polling data
+
+  polldata.fd     = DNSServiceRefSockFD(dnssd->ref);
+  polldata.events = POLLERR | POLLHUP | POLLIN;
+
+  for (;;)
+  {
+#  ifndef _WIN32
+    if (poll(&polldata, 1, 1000) < 0 && errno != EINTR && errno != EAGAIN)
+      break;
+
+    if (!(polldata.revents & POLLIN))
+      continue;
+#  endif // !_WIN32
+
+    if ((error = DNSServiceProcessResult(dnssd->ref)) != kDNSServiceErr_NoError)
+    {
+      report_error(dnssd, "Unable to read response from DNS-SD service: %s", mdns_strerror(error));
+      break;
+    }
+  }
+
+  return (NULL);
+}
+
+
+//
+// 'mdns_query_cb()' - Handle DNS-SD query callbacks from mDNSResponder.
+//
+
+static void
+mdns_query_cb(
+    DNSServiceRef       ref,           // I - Service reference
+    DNSServiceFlags     flags,         // I - Query flags
+    uint32_t            if_index,      // I - Interface index
+    DNSServiceErrorType error,         // I - Error code, if any
+    const char          *name,         // I - Service name
+    uint16_t            rrtype,                // I - Record type
+    uint16_t            rrclass,       // I - Record class
+    uint16_t            rdlen,         // I - Response length
+    const void          *rdata,                // I - Response data
+    uint32_t            ttl,           // I - Time-to-live value
+    cups_dnssd_query_t  *query)                // I - Query request
+{
+  (void)ref;
+  (void)rrclass;
+  (void)ttl;
+
+  if (error != kDNSServiceErr_NoError)
+    report_error(query->dnssd, "DNS-SD query error: %s", mdns_strerror(error));
+
+  (query->cb)(query, query->cb_data, mdns_to_cups(flags, error), if_index, name, rrtype, rdata, rdlen);
+}
+
+
+//
+// 'mdns_resolve_cb()' - Handle DNS-SD resolution callbacks from mDNSResponder.
+//
+
+static void
+mdns_resolve_cb(
+    DNSServiceRef        ref,          // I - Service reference
+    DNSServiceFlags      flags,                // I - Registration flags
+    uint32_t             if_index,     // I - Interface index
+    DNSServiceErrorType  error,                // I - Error code, if any
+    const char           *fullname,    // I - Full name of service
+    const char           *host,                // I - Hostname of service
+    uint16_t             port,         // I - Port number in network byte order
+    uint16_t             txtlen,       // I - Length of TXT record
+    const unsigned char  *txtrec,      // I - TXT record
+    cups_dnssd_resolve_t *resolve)     // I - Resolve request
+{
+  size_t       num_txt;                // Number of TXT key/value pairs
+  cups_option_t        *txt;                   // TXT key/value pairs
+
+
+  (void)ref;
+
+  if (error != kDNSServiceErr_NoError)
+    report_error(resolve->dnssd, "DNS-SD resolve error: %s", mdns_strerror(error));
+
+  num_txt = cupsDNSSDDecodeTXT(txtrec, txtlen, &txt);
+
+  (resolve->cb)(resolve, resolve->cb_data, mdns_to_cups(flags, error), if_index, fullname, host, ntohs(port), num_txt, txt);
+
+  cupsFreeOptions(num_txt, txt);
+}
+
+
+//
+// 'mdns_service_cb()' - Handle DNS-SD service registration callbacks from
+//                       mDNSResponder.
+//
+
+static void
+mdns_service_cb(
+    DNSServiceRef        ref,          // I - Service reference
+    DNSServiceFlags      flags,                // I - Registration flags
+    DNSServiceErrorType  error,                // I - Error code, if any
+    const char           *name,                // I - Service name
+    const char           *regtype,     // I - Registration type
+    const char           *domain,      // I - Domain
+    cups_dnssd_service_t *service)     // I - Service registration
+{
+  (void)ref;
+  (void)name;
+  (void)regtype;
+  (void)domain;
+
+  if (error != kDNSServiceErr_NoError)
+    report_error(service->dnssd, "DNS-SD service registration error: %s", mdns_strerror(error));
+
+  (service->cb)(service, service->cb_data, mdns_to_cups(flags, error));
+}
+
+
+//
+// 'mdns_strerror()' - Convert an error code to a string.
+//
+
+static const char *                    // O - Error message
+mdns_strerror(
+    DNSServiceErrorType errorCode)     // I - Error code
+{
+  switch (errorCode)
+  {
+    case kDNSServiceErr_NoError :
+        return ("No error");
+
+    case kDNSServiceErr_Unknown :
+    default :
+        return ("Unknown error");
+
+    case kDNSServiceErr_NoSuchName :
+        return ("Name not found");
+
+    case kDNSServiceErr_NoMemory :
+        return ("Out of memory");
+
+    case kDNSServiceErr_BadParam :
+        return ("Bad parameter");
+
+    case kDNSServiceErr_BadReference :
+        return ("Bad service reference");
+
+    case kDNSServiceErr_BadState :
+        return ("Bad state");
+
+    case kDNSServiceErr_BadFlags :
+        return ("Bad flags argument");
+
+    case kDNSServiceErr_Unsupported :
+        return ("Unsupported feature");
+
+    case kDNSServiceErr_NotInitialized :
+        return ("Not initialized");
+
+    case kDNSServiceErr_AlreadyRegistered :
+        return ("Name already registered");
+
+    case kDNSServiceErr_NameConflict :
+        return ("Name conflicts");
+
+    case kDNSServiceErr_Invalid :
+        return ("Invalid argument");
+
+    case kDNSServiceErr_Firewall :
+        return ("Firewall prevents access");
+
+    case kDNSServiceErr_Incompatible :
+        return ("Client library incompatible with background daemon");
+
+    case kDNSServiceErr_BadInterfaceIndex :
+        return ("Bad interface index");
+
+    case kDNSServiceErr_Refused :
+        return ("Connection refused");
+
+    case kDNSServiceErr_NoSuchRecord :
+        return ("DNS record not found");
+
+    case kDNSServiceErr_NoAuth :
+        return ("No authoritative answer");
+
+    case kDNSServiceErr_NoSuchKey :
+        return ("TXT record key not found");
+
+    case kDNSServiceErr_NATTraversal :
+        return ("Unable to traverse via NAT");
+
+    case kDNSServiceErr_DoubleNAT :
+        return ("Double NAT is in use");
+
+    case kDNSServiceErr_BadTime :
+        return ("Bad time value");
+
+    case kDNSServiceErr_BadSig :
+        return ("Bad signal");
+
+    case kDNSServiceErr_BadKey :
+        return ("Bad TXT record key");
+
+    case kDNSServiceErr_Transient :
+        return ("Transient error");
+
+    case kDNSServiceErr_ServiceNotRunning :
+        return ("Background daemon not running");
+
+    case kDNSServiceErr_NATPortMappingUnsupported :
+        return ("NAT doesn't support PCP, NAT-PMP or UPnP");
+
+    case kDNSServiceErr_NATPortMappingDisabled :
+        return ("NAT supports PCP, NAT-PMP or UPnP, but it's disabled by the administrator");
+
+    case kDNSServiceErr_NoRouter :
+        return ("No router configured, probably no network connectivity");
+
+    case kDNSServiceErr_PollingMode :
+        return ("Polling error");
+
+    case kDNSServiceErr_Timeout :
+        return ("Timeout");
+
+#if !_WIN32 // Bonjour SDK for Windows doesn't define this...
+    case kDNSServiceErr_DefunctConnection :
+        return ("Connection lost");
+#endif // !_WIN32
+  }
+}
+
+
+//
+// 'mdns_to_cups()' - Convert mDNSResponder flags to CUPS DNS-SD flags...
+//
+
+static cups_dnssd_flags_t              // O - CUPS DNS-SD flags
+mdns_to_cups(
+    DNSServiceFlags     flags,         // I - mDNSResponder flags
+    DNSServiceErrorType error)         // I - mDNSResponder error code
+{
+  cups_dnssd_flags_t   cups_flags = CUPS_DNSSD_FLAGS_NONE;
+                                       // CUPS DNS-SD flags
+
+
+  if (flags & kDNSServiceFlagsAdd)
+    cups_flags |= CUPS_DNSSD_FLAGS_ADD;
+  if (flags & kDNSServiceFlagsMoreComing)
+    cups_flags |= CUPS_DNSSD_FLAGS_MORE;
+  if (error != kDNSServiceErr_NoError)
+    cups_flags |= CUPS_DNSSD_FLAGS_ERROR;
+
+  return (cups_flags);
+}
+
+
+#elif _WIN32
+
+
+#else // HAVE_AVAHI
+//
+// 'avahi_browse_cb()' - Handle browse callbacks from Avahi.
+//
+
+static void
+avahi_browse_cb(
+    AvahiServiceBrowser    *browser,   // I - Avahi browser
+    AvahiIfIndex           if_index,   // I - Interface index
+    AvahiProtocol          protocol,   // I - Network protocol (unused)
+    AvahiBrowserEvent      event,      // I - What happened
+    const char             *name,      // I - Service name
+    const char             *type,      // I - Service type
+    const char             *domain,    // I - Domain
+    AvahiLookupResultFlags flags,      // I - Flags
+    cups_dnssd_browse_t    *browse)    // I - CUPS browse request
+{
+  cups_dnssd_flags_t   cups_flags;     // CUPS DNS-SD flags
+
+
+  (void)protocol;
+  (void)flags;
+
+  switch (event)
+  {
+    case AVAHI_BROWSER_NEW :
+        cups_flags = CUPS_DNSSD_FLAGS_ADD;
+        break;
+    case AVAHI_BROWSER_REMOVE :
+        cups_flags = CUPS_DNSSD_FLAGS_NONE;
+        break;
+    case AVAHI_BROWSER_FAILURE :
+        cups_flags = CUPS_DNSSD_FLAGS_ERROR;
+        break;
+
+    default :
+        // Other events don't get passed through...
+        return;
+  }
+
+  (browse->cb)(browse, browse->cb_data, cups_flags, (uint32_t)if_index, name, type, domain);
+}
+
+
+//
+// 'avahi_client_cb()' - Client callback for Avahi.
+//
+// Called whenever the client or server state changes...
+//
+
+static void
+avahi_client_cb(
+    AvahiClient      *c,               // I - Client
+    AvahiClientState state,            // I - Current state
+    cups_dnssd_t     *dnssd)           // I - DNS-SD context
+{
+  if (!c)
+    return;
+
+  if (state == AVAHI_CLIENT_FAILURE)
+  {
+    if (avahi_client_errno(c) == AVAHI_ERR_DISCONNECTED)
+      report_error(dnssd, "Avahi server crashed.");
+  }
+  else if (state == AVAHI_CLIENT_S_RUNNING)
+  {
+    // Let the services know the hostname has changed...
+    cups_dnssd_service_t *service;     // Current service
+
+    cupsMutexLock(&dnssd->mutex);
+
+    dnssd->config_changes ++;
+
+    for (service = (cups_dnssd_service_t *)cupsArrayFirst(dnssd->services); service; service = (cups_dnssd_service_t *)cupsArrayNext(dnssd->services))
+      (service->cb)(service, service->cb_data, CUPS_DNSSD_FLAGS_HOST_CHANGE);
+
+    cupsMutexUnlock(&dnssd->mutex);
+  }
+}
+
+
+//
+// 'avahi_if_index()' - Convert the DNS-SD interface index to an Avahi interface index.
+//
+
+static AvahiIfIndex                    // O - Avahi interface index
+avahi_if_index(uint32_t if_index)      // I - DNS-SD interface index
+{
+  if (if_index == CUPS_DNSSD_IF_INDEX_ANY)
+    return (AVAHI_IF_UNSPEC);
+  else if (if_index == CUPS_DNSSD_IF_INDEX_LOCAL)
+    return (if_nametoindex("lo"));
+  else
+    return ((int)if_index);
+}
+
+
+//
+// 'avahi_monitor()' - Background thread for Avahi.
+//
+
+static void *                          // O - Exit status
+avahi_monitor(cups_dnssd_t *dnssd)     // I - DNS-SD context
+{
+  DEBUG_printf(("avahi_monitor(dnssd=%p)", (void *)dnssd));
+
+  DEBUG_puts("2avahi_monitor: Locking mutex.");
+  cupsMutexLock(&dnssd->mutex);
+
+  DEBUG_puts("2avahi_monitor: Running poll loop.");
+  avahi_simple_poll_loop(dnssd->poll);
+
+  DEBUG_puts("2avahi_monitor: Unlocking mutex.");
+  cupsMutexUnlock(&dnssd->mutex);
+
+  return (NULL);
+}
+
+
+//
+// 'avahi_poll_cb()' - Poll callback for Avahi event handler...
+//
+
+static int                             // O - Number of file descriptors or `-1` on error
+avahi_poll_cb(struct pollfd *ufds,     // I - File descriptors for poll
+              unsigned int  nfds,      // I - Number of file descriptors
+              int           timeout,   // I - Timeout in milliseconds
+              cups_dnssd_t  *dnssd)    // I - DNS-SD context
+{
+  int  ret;                            // Return value
+
+
+  DEBUG_printf(("avahi_poll_cb(ufds=%p, nfds=%u, timeout=%d, dnssd=%p)", (void *)ufds, nfds, timeout, (void *)dnssd));
+
+  cupsMutexUnlock(&dnssd->mutex);
+  DEBUG_puts("2avahi_poll_cb: Polling sockets...");
+  ret = poll(ufds, nfds, timeout);
+  DEBUG_printf(("2avahi_poll_cb: poll() returned %d...", ret));
+  cupsMutexLock(&dnssd->mutex);
+
+  return (ret);
+}
+
+
+//
+// 'avahi_query_cb()' - Query callback for Avahi.
+//
+
+static void
+avahi_query_cb(
+    AvahiRecordBrowser     *browser,   // I - Browser
+    AvahiIfIndex           if_index,   // I - Interface index
+    AvahiProtocol          protocol,   // I - Network protocol (not used)
+    AvahiBrowserEvent      event,      // I - What happened
+    const char             *fullname,  // I - Full service name
+    uint16_t               rrclass,    // I - Record class (not used)
+    uint16_t               rrtype,     // I - Record type
+    const void             *rdata,     // I - Record data
+    size_t                 rdlen,      // I - Size of record data
+    AvahiLookupResultFlags flags,      // I - Flags
+    cups_dnssd_query_t     *query)     // I - Query request
+{
+  (void)browser;
+  (void)protocol;
+  (void)rrclass;
+
+  (query->cb)(query, query->cb_data, event == AVAHI_BROWSER_NEW ? CUPS_DNSSD_FLAGS_NONE : CUPS_DNSSD_FLAGS_ERROR, (uint32_t)if_index, fullname, rrtype, rdata, rdlen);
+}
+
+
+//
+// 'avahi_resolve_cb()' - Resolver callback for Avahi.
+//
+
+static void
+avahi_resolve_cb(
+    AvahiServiceResolver   *resolver,  // I - Service resolver
+    AvahiIfIndex           if_index,   // I - Interface index
+    AvahiProtocol          protocol,   // I - Network protocol (not used)
+    AvahiResolverEvent     event,      // I - What happened
+    const char             *name,      // I - Service name
+    const char             *type,      // I - Service type
+    const char             *domain,    // I - Domain
+    const char             *host,      // I - Host name
+    const AvahiAddress     *address,   // I - Address
+    uint16_t               port,       // I - Port number
+    AvahiStringList        *txtrec,    // I - TXT record
+    AvahiLookupResultFlags flags,      // I - Flags
+    cups_dnssd_resolve_t   *resolve)   // I - Resolve request
+{
+  AvahiStringList *txtpair;            // Current pair
+  size_t       num_txt = 0;            // Number of TXT key/value pairs
+  cups_option_t        *txt = NULL;            // TXT key/value pairs
+  char         fullname[1024];         // Full service name
+
+
+  DEBUG_printf(("avahi_resolve_cb(resolver=%p, if_index=%d, protocol=%d, event=%d, name=\"%s\", type=\"%s\", domain=\"%s\", host=\"%s\", address=%p, port=%u, txtrec=%p, flags=%u, resolve=%p)", (void *)resolver, if_index, protocol, event, name, type, domain, host, (void *)address, (unsigned)port, (void *)txtrec, (unsigned)flags, (void *)resolve));
+
+  if (!resolver)
+    return;
+
+  (void)resolver;
+  (void)protocol;
+  (void)address;
+  (void)flags;
+
+  // Convert TXT key/value pairs into CUPS option array...
+  for (txtpair = txtrec; txtpair; txtpair = avahi_string_list_get_next(txtpair))
+  {
+    char *key, *value;                 // Key and value
+
+    avahi_string_list_get_pair(txtpair, &key, &value, NULL);
+
+    num_txt = cupsAddOption(key, value, num_txt, &txt);
+
+    avahi_free(key);
+    avahi_free(value);
+  }
+
+  // Create a full name for the service...
+  cupsDNSSDAssembleFullName(fullname, sizeof(fullname), name, type, domain);
+
+  // Do the resolve callback and free the TXT record stuff...
+  (resolve->cb)(resolve, resolve->cb_data, event == AVAHI_RESOLVER_FOUND ? CUPS_DNSSD_FLAGS_NONE : CUPS_DNSSD_FLAGS_ERROR, (uint32_t)if_index, fullname, host, port, num_txt, txt);
+
+  cupsFreeOptions(num_txt, txt);
+}
+
+
+//
+// 'avahi_service_cb()' - Service callback for Avahi.
+//
+
+static void
+avahi_service_cb(
+    AvahiEntryGroup      *srv,         // I - Service
+    AvahiEntryGroupState state,                // I - Registration state
+    cups_dnssd_service_t *service)     // I - Service registration
+{
+  (void)srv;
+
+  (service->cb)(service, service->cb_data, state == AVAHI_ENTRY_GROUP_COLLISION ? CUPS_DNSSD_FLAGS_COLLISION : CUPS_DNSSD_FLAGS_NONE);
+}
+#endif // HAVE_MDNSRESPONDER
diff --git a/cups/dnssd.h b/cups/dnssd.h
new file mode 100644 (file)
index 0000000..cc3f1cd
--- /dev/null
@@ -0,0 +1,124 @@
+//
+// DNS-SD API definitions for CUPS.
+//
+// Copyright Â©Â 2022 by OpenPrinting.
+//
+// Licensed under Apache License v2.0.  See the file "LICENSE" for more
+// information.
+//
+
+#ifndef _CUPS_DNSSD_H_
+#  define _CUPS_DNSSD_H_
+#  include "cups.h"
+#  ifdef __cplusplus
+extern "C" {
+#  endif // __cplusplus
+
+
+//
+// Types and constants...
+//
+
+#  define CUPS_DNSSD_IF_INDEX_ANY      0
+#  define CUPS_DNSSD_IF_INDEX_LOCAL    ((uint32_t)-1)
+
+typedef struct _cups_dnssd_s cups_dnssd_t;
+                                       // DNS-SD context
+
+enum cups_dnssd_flags_e                        // DNS-SD callback flag values
+{
+  CUPS_DNSSD_FLAGS_NONE = 0,           // No flags
+  CUPS_DNSSD_FLAGS_ADD = 1,            // Added (removed if not set)
+  CUPS_DNSSD_FLAGS_ERROR = 2,          // Error occurred
+  CUPS_DNSSD_FLAGS_COLLISION = 4,      // Collision occurred
+  CUPS_DNSSD_FLAGS_HOST_CHANGE = 8,    // Host name changed
+  CUPS_DNSSD_FLAGS_NETWORK_CHANGE = 16,        // Network connection changed
+  CUPS_DNSSD_FLAGS_MORE = 128          // More coming
+};
+typedef unsigned cups_dnssd_flags_t;   // DNS-SD callback flag bitmask
+
+typedef enum cups_dnssd_rrtype_e       // DNS record type values
+{
+  CUPS_DNSSD_RRTYPE_A = 1,             // Host address
+  CUPS_DNSSD_RRTYPE_NS,                        // Name server
+  CUPS_DNSSD_RRTYPE_CNAME = 5,         // Canonical name
+  CUPS_DNSSD_RRTYPE_WKS = 11,          // Well known service
+  CUPS_DNSSD_RRTYPE_PTR,               // Domain name pointer
+  CUPS_DNSSD_RRTYPE_TXT = 16,          // One or more text strings
+  CUPS_DNSSD_RRTYPE_RT = 21,           // Router
+  CUPS_DNSSD_RRTYPE_SIG = 24,          // Security signature
+  CUPS_DNSSD_RRTYPE_KEY,               // Security key
+  CUPS_DNSSD_RRTYPE_AAAA = 28,         // IPv6 Address.
+  CUPS_DNSSD_RRTYPE_LOC,               // Location Information.
+  CUPS_DNSSD_RRTYPE_KX = 36,           // Key Exchange
+  CUPS_DNSSD_RRTYPE_CERT,              // Certification record
+  CUPS_DNSSD_RRTYPE_RRSIG = 46,                // RRSIG
+  CUPS_DNSSD_RRTYPE_DNSKEY = 48,       // DNSKEY
+  CUPS_DNSSD_RRTYPE_DHCID,             // DHCP Client Identifier
+  CUPS_DNSSD_RRTYPE_HTTPS = 65,                // HTTPS Service Binding
+  CUPS_DNSSD_RRTYPE_SPF = 99,          // Sender Policy Framework for E-Mail
+  CUPS_DNSSD_RRTYPE_ANY = 255          // Wildcard match
+} cups_dnssd_rrtype_t;
+
+typedef struct _cups_dnssd_browse_s cups_dnssd_browse_t;
+                                       // DNS browse request
+typedef void (*cups_dnssd_browse_cb_t)(cups_dnssd_browse_t *browse, void *cb_data, cups_dnssd_flags_t flags, uint32_t if_index, const char *name, const char *regtype, const char *domain);
+                                       // DNS-SD browse callback
+
+typedef void (*cups_dnssd_error_cb_t)(void *cb_data, const char *message);
+                                       // DNS-SD error callback
+
+typedef struct _cups_dnssd_query_s cups_dnssd_query_t;
+                                       // DNS query request
+typedef void (*cups_dnssd_query_cb_t)(cups_dnssd_query_t *query, void *cb_data, cups_dnssd_flags_t flags, uint32_t if_index, const char *fullname, uint16_t rrtype, const void *qdata, uint16_t qlen);
+                                       // DNS-SD query callback
+
+typedef struct _cups_dnssd_resolve_s cups_dnssd_resolve_t;
+                                       // DNS resolve request
+typedef void (*cups_dnssd_resolve_cb_t)(cups_dnssd_resolve_t *res, void *cb_data, cups_dnssd_flags_t flags, uint32_t if_index, const char *fullname, const char *host, uint16_t port, size_t num_txt, cups_option_t *txt);
+                                       // DNS-SD resolve callback
+
+typedef struct _cups_dnssd_service_s cups_dnssd_service_t;
+                                       // DNS service registration
+typedef void (*cups_dnssd_service_cb_t)(cups_dnssd_service_t *service, void *cb_data, cups_dnssd_flags_t flags);
+                                       // DNS-SD service registration callback
+
+
+//
+// Functions...
+//
+
+extern char            *cupsDNSSDCopyHostName(cups_dnssd_t *dnssd, char *buffer, size_t bufsize) _CUPS_PUBLIC;
+extern void            cupsDNSSDDelete(cups_dnssd_t *dnssd) _CUPS_PUBLIC;
+extern size_t          cupsDNSSDGetConfigChanges(cups_dnssd_t *dnssd) _CUPS_PUBLIC;
+extern cups_dnssd_t    *cupsDNSSDNew(cups_dnssd_error_cb_t error_cb, void *cb_data) _CUPS_PUBLIC;
+
+extern void            cupsDNSSDBrowseDelete(cups_dnssd_browse_t *browser) _CUPS_PUBLIC;
+extern cups_dnssd_t    *cupsDNSSDBrowseGetContext(cups_dnssd_browse_t *browser) _CUPS_PUBLIC;
+extern cups_dnssd_browse_t *cupsDNSSDBrowseNew(cups_dnssd_t *dnssd, uint32_t if_index, const char *types, const char *domain, cups_dnssd_browse_cb_t browse_cb, void *cb_data) _CUPS_PUBLIC;
+
+extern void            cupsDNSSDQueryDelete(cups_dnssd_query_t *query) _CUPS_PUBLIC;
+extern cups_dnssd_t    *cupsDNSSDQueryGetContext(cups_dnssd_query_t *query) _CUPS_PUBLIC;
+extern cups_dnssd_query_t *cupsDNSSDQueryNew(cups_dnssd_t *dnssd, uint32_t if_index, const char *fullname, uint16_t rrtype, cups_dnssd_query_cb_t query_cb, void *cb_data) _CUPS_PUBLIC;
+
+extern void            cupsDNSSDResolveDelete(cups_dnssd_resolve_t *res) _CUPS_PUBLIC;
+extern cups_dnssd_t    *cupsDNSSDResolveGetContext(cups_dnssd_resolve_t *res) _CUPS_PUBLIC;
+extern cups_dnssd_resolve_t *cupsDNSSDResolveNew(cups_dnssd_t *dnssd, uint32_t if_index, const char *name, const char *type, const char *domain, cups_dnssd_resolve_cb_t resolve_cb, void *cb_data) _CUPS_PUBLIC;
+
+extern bool            cupsDNSSDServiceAdd(cups_dnssd_service_t *service, const char *types, const char *domain, const char *host, uint16_t port, size_t num_txt, cups_option_t *txt) _CUPS_PUBLIC;
+extern void            cupsDNSSDServiceDelete(cups_dnssd_service_t *service) _CUPS_PUBLIC;
+extern cups_dnssd_t    *cupsDNSSDServiceGetContext(cups_dnssd_service_t *service) _CUPS_PUBLIC;
+extern const char      *cupsDNSSDServiceGetName(cups_dnssd_service_t *service) _CUPS_PUBLIC;
+extern cups_dnssd_service_t *cupsDNSSDServiceNew(cups_dnssd_t *dnssd, uint32_t if_index, const char *name, cups_dnssd_service_cb_t cb, void *cb_data) _CUPS_PUBLIC;
+extern bool            cupsDNSSDServicePublish(cups_dnssd_service_t *service) _CUPS_PUBLIC;
+extern bool            cupsDNSSDServiceSetLocation(cups_dnssd_service_t *service, const char *geo_uri) _CUPS_PUBLIC;
+
+extern bool            cupsDNSSDAssembleFullName(char *fullname, size_t fullsize, const char *name, const char *type, const char *domain);
+extern size_t          cupsDNSSDDecodeTXT(const unsigned char *txtrec, uint16_t txtlen, cups_option_t **txt) _CUPS_PUBLIC;
+extern bool            cupsDNSSDSeparateFullName(const char *fullname, char *name, size_t namesize, char *type, size_t typesize, char *domain, size_t domainsize);
+
+
+#  ifdef __cplusplus
+}
+#  endif // __cplusplus
+#endif // !_CUPS_DNSSD_H_
index 0e0b8f30d67924f5a15e25e904838c085c25155b..333f7d53f6318caced5a4767649af8287f9d6e55 100644 (file)
 static int             cups_global_index = 0;
                                        /* Next thread number */
 #endif /* DEBUG */
-static _cups_threadkey_t cups_globals_key = _CUPS_THREADKEY_INITIALIZER;
+static cups_thread_key_t cups_globals_key = CUPS_THREADKEY_INITIALIZER;
                                        /* Thread local storage key */
 #ifdef HAVE_PTHREAD_H
 static pthread_once_t  cups_globals_key_once = PTHREAD_ONCE_INIT;
                                        /* One-time initialization object */
 #endif /* HAVE_PTHREAD_H */
 #if defined(HAVE_PTHREAD_H) || defined(_WIN32)
-static _cups_mutex_t   cups_global_mutex = _CUPS_MUTEX_INITIALIZER;
+static cups_mutex_t    cups_global_mutex = CUPS_MUTEX_INITIALIZER;
                                        /* Global critical section */
 #endif /* HAVE_PTHREAD_H || _WIN32 */
 
@@ -93,14 +93,14 @@ _cupsGlobals(void)
   * See if we have allocated the data yet...
   */
 
-  if ((cg = (_cups_globals_t *)_cupsThreadGetData(cups_globals_key)) == NULL)
+  if ((cg = (_cups_globals_t *)cupsThreadGetData(cups_globals_key)) == NULL)
   {
    /*
     * No, allocate memory as set the pointer for the key...
     */
 
     if ((cg = cups_globals_alloc()) != NULL)
-      _cupsThreadSetData(cups_globals_key, cg);
+      cupsThreadSetData(cups_globals_key, cg);
   }
 
  /*
index 23179d6fab519743b3d0ba0a6f96c5841391f98e..2afb3fbf222af6938fffbec425afab63aaa1dce9 100644 (file)
@@ -2657,7 +2657,7 @@ ippNewRequest(ipp_op_t op)                /* I - Operation code */
   ipp_t                *request;               /* IPP request message */
   cups_lang_t  *language;              /* Current language localization */
   static int   request_id = 0;         /* Current request ID */
-  static _cups_mutex_t request_mutex = _CUPS_MUTEX_INITIALIZER;
+  static cups_mutex_t request_mutex = CUPS_MUTEX_INITIALIZER;
                                        /* Mutex for request ID */
 
 
@@ -2674,12 +2674,12 @@ ippNewRequest(ipp_op_t op)              /* I - Operation code */
   * Set the operation and request ID...
   */
 
-  _cupsMutexLock(&request_mutex);
+  cupsMutexLock(&request_mutex);
 
   request->request.op.operation_id = op;
   request->request.op.request_id   = ++request_id;
 
-  _cupsMutexUnlock(&request_mutex);
+  cupsMutexUnlock(&request_mutex);
 
  /*
   * Use UTF-8 as the character set...
index 96e828332fa465cadb9b4811ebc631a555c14a5e..abb71bb72fa77caf4a9f5220f9c56ea0910c06d0 100644 (file)
@@ -30,7 +30,7 @@
  * Local globals...
  */
 
-static _cups_mutex_t   lang_mutex = _CUPS_MUTEX_INITIALIZER;
+static cups_mutex_t    lang_mutex = CUPS_MUTEX_INITIALIZER;
                                        /* Mutex to control access to cache */
 static cups_lang_t     *lang_cache = NULL;
                                        /* Language string cache */
@@ -396,7 +396,7 @@ cupsLangFlush(void)
   * Free all languages in the cache...
   */
 
-  _cupsMutexLock(&lang_mutex);
+  cupsMutexLock(&lang_mutex);
 
   for (lang = lang_cache; lang != NULL; lang = next)
   {
@@ -416,7 +416,7 @@ cupsLangFlush(void)
 
   lang_cache = NULL;
 
-  _cupsMutexUnlock(&lang_mutex);
+  cupsMutexUnlock(&lang_mutex);
 }
 
 
@@ -429,12 +429,12 @@ cupsLangFlush(void)
 void
 cupsLangFree(cups_lang_t *lang)                /* I - Language to free */
 {
-  _cupsMutexLock(&lang_mutex);
+  cupsMutexLock(&lang_mutex);
 
   if (lang != NULL && lang->used > 0)
     lang->used --;
 
-  _cupsMutexUnlock(&lang_mutex);
+  cupsMutexUnlock(&lang_mutex);
 }
 
 
@@ -773,11 +773,11 @@ cupsLangGet(const char *language) /* I - Language or locale */
   else
     strlcpy(real, langname, sizeof(real));
 
-  _cupsMutexLock(&lang_mutex);
+  cupsMutexLock(&lang_mutex);
 
   if ((lang = cups_cache_lookup(real, encoding)) != NULL)
   {
-    _cupsMutexUnlock(&lang_mutex);
+    cupsMutexUnlock(&lang_mutex);
 
     DEBUG_printf(("3cupsLangGet: Using cached copy of \"%s\"...", real));
 
@@ -801,7 +801,7 @@ cupsLangGet(const char *language)   /* I - Language or locale */
 
     if ((lang = calloc(1, sizeof(cups_lang_t))) == NULL)
     {
-      _cupsMutexUnlock(&lang_mutex);
+      cupsMutexUnlock(&lang_mutex);
 
       return (NULL);
     }
@@ -835,7 +835,7 @@ cupsLangGet(const char *language)   /* I - Language or locale */
   * Return...
   */
 
-  _cupsMutexUnlock(&lang_mutex);
+  cupsMutexUnlock(&lang_mutex);
 
   return (lang);
 }
@@ -864,7 +864,7 @@ _cupsLangString(cups_lang_t *lang,  /* I - Language */
   if (!lang || !message || !*message)
     return (message);
 
-  _cupsMutexLock(&lang_mutex);
+  cupsMutexLock(&lang_mutex);
 
  /*
   * Load the message catalog if needed...
@@ -875,7 +875,7 @@ _cupsLangString(cups_lang_t *lang,  /* I - Language */
 
   s = _cupsMessageLookup(lang->strings, message);
 
-  _cupsMutexUnlock(&lang_mutex);
+  cupsMutexUnlock(&lang_mutex);
 
   return (s);
 }
index 268522259d21e178a68e606dee66a15982dbb333..eae561d4b550a509c20b4a341325569ae69563df 100644 (file)
@@ -1,14 +1,11 @@
 LIBRARY libcups2
-VERSION 2.14
+VERSION 2.15
 EXPORTS
 _cupsArrayAddStrings
 _cupsArrayNewStrings
 _cupsBufferGet
 _cupsBufferRelease
 _cupsCharmapFlush
-_cupsCondBroadcast
-_cupsCondInit
-_cupsCondWait
 _cupsConnect
 _cupsConvertOptions
 _cupsCreateDest
@@ -31,14 +28,7 @@ _cupsMessageLoad
 _cupsMessageLookup
 _cupsMessageNew
 _cupsMessageSave
-_cupsMutexInit
-_cupsMutexLock
-_cupsMutexUnlock
 _cupsNextDelay
-_cupsRWInit
-_cupsRWLockRead
-_cupsRWLockWrite
-_cupsRWUnlock
 _cupsRasterAddError
 _cupsRasterClearError
 _cupsRasterColorSpaceString
@@ -64,19 +54,17 @@ _cupsStrFree
 _cupsStrRetain
 _cupsStrScand
 _cupsStrStatistics
-_cupsThreadCancel
-_cupsThreadCreate
-_cupsThreadDetach
-_cupsThreadWait
 _cupsUserDefault
 _cups_gettimeofday
 _cups_safe_vsnprintf
+_cups_snprintf
 _cups_strcasecmp
 _cups_strcpy
 _cups_strcpy
 _cups_strlcat
 _cups_strlcpy
 _cups_strncasecmp
+_cups_vsnprintf
 _httpAddrSetPort
 _httpCreateCredentials
 _httpDecodeURI
@@ -95,7 +83,6 @@ _httpTLSStop
 _httpTLSWrite
 _httpUpdate
 _httpWait
-_ippCheckOptions
 _ippFileParse
 _ippFileReadToken
 _ippFindOption
@@ -120,6 +107,7 @@ _ppdCacheGetSource
 _ppdCacheGetType
 _ppdCacheWriteFile
 _ppdCreateFromIPP
+_ppdCreateFromIPP2
 _ppdFreeLanguages
 _ppdGetEncoding
 _ppdGetLanguages
@@ -171,12 +159,41 @@ cupsCancelJob2
 cupsCharsetToUTF8
 cupsCheckDestSupported
 cupsCloseDestJob
+cupsConcatString
+cupsCondBroadcast
+cupsCondDestroy
+cupsCondInit
+cupsCondWait
 cupsConnectDest
 cupsCopyDest
 cupsCopyDestConflicts
 cupsCopyDestInfo
+cupsCopyString
 cupsCreateDestJob
 cupsCreateJob
+cupsDNSSDAssembleFullName
+cupsDNSSDBrowseDelete
+cupsDNSSDBrowseGetContext
+cupsDNSSDBrowseNew
+cupsDNSSDCopyHostName
+cupsDNSSDDecodeTXT
+cupsDNSSDDelete
+cupsDNSSDGetConfigChanges
+cupsDNSSDNew
+cupsDNSSDQueryDelete
+cupsDNSSDQueryGetContext
+cupsDNSSDQueryNew
+cupsDNSSDResolveDelete
+cupsDNSSDResolveGetContext
+cupsDNSSDResolveNew
+cupsDNSSDSeparateFullName
+cupsDNSSDServiceAdd
+cupsDNSSDServiceDelete
+cupsDNSSDServiceGetContext
+cupsDNSSDServiceGetName
+cupsDNSSDServiceNew
+cupsDNSSDServicePublish
+cupsDNSSDServiceSetLocation
 cupsDirClose
 cupsDirOpen
 cupsDirRead
@@ -269,6 +286,10 @@ cupsLocalizeDestOption
 cupsLocalizeDestValue
 cupsMakeServerCredentials
 cupsMarkOptions
+cupsMutexDestroy
+cupsMutexInit
+cupsMutexLock
+cupsMutexUnlock
 cupsNotifySubject
 cupsNotifyText
 cupsParseOptions
@@ -278,6 +299,11 @@ cupsPrintFiles
 cupsPrintFiles2
 cupsPutFd
 cupsPutFile
+cupsRWDestroy
+cupsRWInit
+cupsRWLockRead
+cupsRWLockWrite
+cupsRWUnlock
 cupsRasterClose
 cupsRasterClose
 cupsRasterErrorString
@@ -314,6 +340,7 @@ cupsSetDefaultDest
 cupsSetDests
 cupsSetDests2
 cupsSetEncryption
+cupsSetOAuthCB
 cupsSetPasswordCB
 cupsSetPasswordCB2
 cupsSetServer
@@ -326,6 +353,10 @@ cupsStartDocument
 cupsTempFd
 cupsTempFile
 cupsTempFile2
+cupsThreadCancel
+cupsThreadCreate
+cupsThreadDetach
+cupsThreadWait
 cupsUTF32ToUTF8
 cupsUTF8ToCharset
 cupsUTF8ToUTF32
index 4ce9fcc5cddcd5080a96825054e1fe701c27175d..74fa29c7f6c7bf7095852a7cbabe1ff0e6780db2 100644 (file)
@@ -47,7 +47,7 @@ typedef struct _ppd_line_s
  * Local globals...
  */
 
-static _cups_threadkey_t ppd_globals_key = _CUPS_THREADKEY_INITIALIZER;
+static cups_thread_key_t ppd_globals_key = CUPS_THREADKEY_INITIALIZER;
                                        /* Thread local storage key */
 #ifdef HAVE_PTHREAD_H
 static pthread_once_t  ppd_globals_key_once = PTHREAD_ONCE_INIT;
@@ -365,14 +365,14 @@ _ppdGlobals(void)
   * See if we have allocated the data yet...
   */
 
-  if ((pg = (_ppd_globals_t *)_cupsThreadGetData(ppd_globals_key)) == NULL)
+  if ((pg = (_ppd_globals_t *)cupsThreadGetData(ppd_globals_key)) == NULL)
   {
    /*
     * No, allocate memory as set the pointer for the key...
     */
 
     if ((pg = ppd_globals_alloc()) != NULL)
-      _cupsThreadSetData(ppd_globals_key, pg);
+      cupsThreadSetData(ppd_globals_key, pg);
   }
 
  /*
index b4fc12050c8be0b04c744698784255759ca8acaf..dfe1adfb3e2c57f90de24fba9d219fb62a33382a 100644 (file)
@@ -24,7 +24,7 @@
  * Local globals...
  */
 
-static _cups_mutex_t   sp_mutex = _CUPS_MUTEX_INITIALIZER;
+static cups_mutex_t    sp_mutex = CUPS_MUTEX_INITIALIZER;
                                        /* Mutex to control access to pool */
 static cups_array_t    *stringpool = NULL;
                                        /* Global string pool */
@@ -37,6 +37,90 @@ static cups_array_t  *stringpool = NULL;
 static int     compare_sp_items(_cups_sp_item_t *a, _cups_sp_item_t *b);
 
 
+//
+// 'cupsConcatString()' - Safely concatenate two strings.
+//
+
+size_t                                 // O - Length of string
+cupsConcatString(char       *dst,      // O - Destination string
+                 const char *src,      // I - Source string
+                size_t     dstsize)    // I - Size of destination string buffer
+{
+  // Range check input...
+  if (!dst || !src || dstsize == 0)
+    return (0);
+
+#ifdef HAVE_STRLCAT
+  return (strlcat(dst, src, dstsize));
+
+#else
+  size_t       srclen;                 // Length of source string
+  size_t       dstlen;                 // Length of destination string
+
+
+  // Figure out how much room is left...
+  dstlen = strlen(dst);
+
+  if (dstsize < (dstlen + 1))
+    return (dstlen);                   // No room, return immediately...
+
+  dstsize -= dstlen + 1;
+
+  // Figure out how much room is needed...
+  srclen = strlen(src);
+
+  // Copy the appropriate amount...
+  if (srclen > dstsize)
+    srclen = dstsize;
+
+  memmove(dst + dstlen, src, srclen);
+  dst[dstlen + srclen] = '\0';
+
+  return (dstlen + srclen);
+#endif // HAVE_STRLCAT
+}
+
+
+//
+// 'cupsCopyString()' - Safely copy two strings.
+//
+
+size_t                                 // O - Length of string
+cupsCopyString(char       *dst,                // O - Destination string
+               const char *src,                // I - Source string
+              size_t     dstsize)      // I - Size of destination string buffer
+{
+  // Range check input...
+  if (!dst || !src || dstsize == 0)
+  {
+    if (dst)
+      *dst = '\0';
+    return (0);
+  }
+
+#ifdef HAVE_STRLCPY
+  return (strlcpy(dst, src, dstsize));
+
+#else
+  size_t       srclen;                 // Length of source string
+
+  // Figure out how much room is needed...
+  dstsize --;
+
+  srclen = strlen(src);
+
+  // Copy the appropriate amount...
+  if (srclen > dstsize)
+    srclen = dstsize;
+
+  memmove(dst, src, srclen);
+  dst[srclen] = '\0';
+
+  return (srclen);
+#endif // HAVE_STRLCPY
+}
+
+
 /*
  * '_cupsStrAlloc()' - Allocate/reference a string.
  */
@@ -60,14 +144,14 @@ _cupsStrAlloc(const char *s)               /* I - String */
   * Get the string pool...
   */
 
-  _cupsMutexLock(&sp_mutex);
+  cupsMutexLock(&sp_mutex);
 
   if (!stringpool)
     stringpool = cupsArrayNew((cups_array_func_t)compare_sp_items, NULL);
 
   if (!stringpool)
   {
-    _cupsMutexUnlock(&sp_mutex);
+    cupsMutexUnlock(&sp_mutex);
 
     return (NULL);
   }
@@ -95,7 +179,7 @@ _cupsStrAlloc(const char *s)         /* I - String */
       abort();
 #endif /* DEBUG_GUARDS */
 
-    _cupsMutexUnlock(&sp_mutex);
+    cupsMutexUnlock(&sp_mutex);
 
     return (item->str);
   }
@@ -108,7 +192,7 @@ _cupsStrAlloc(const char *s)                /* I - String */
   item = (_cups_sp_item_t *)calloc(1, sizeof(_cups_sp_item_t) + slen);
   if (!item)
   {
-    _cupsMutexUnlock(&sp_mutex);
+    cupsMutexUnlock(&sp_mutex);
 
     return (NULL);
   }
@@ -130,7 +214,7 @@ _cupsStrAlloc(const char *s)                /* I - String */
 
   cupsArrayAdd(stringpool, item);
 
-  _cupsMutexUnlock(&sp_mutex);
+  cupsMutexUnlock(&sp_mutex);
 
   return (item->str);
 }
@@ -182,7 +266,7 @@ _cupsStrFlush(void)
   DEBUG_printf(("4_cupsStrFlush: %d strings in array",
                 cupsArrayCount(stringpool)));
 
-  _cupsMutexLock(&sp_mutex);
+  cupsMutexLock(&sp_mutex);
 
   for (item = (_cups_sp_item_t *)cupsArrayFirst(stringpool);
        item;
@@ -192,7 +276,7 @@ _cupsStrFlush(void)
   cupsArrayDelete(stringpool);
   stringpool = NULL;
 
-  _cupsMutexUnlock(&sp_mutex);
+  cupsMutexUnlock(&sp_mutex);
 }
 
 
@@ -309,7 +393,7 @@ _cupsStrFree(const char *s)         /* I - String to free */
   * See if the string is already in the pool...
   */
 
-  _cupsMutexLock(&sp_mutex);
+  cupsMutexLock(&sp_mutex);
 
   key = (_cups_sp_item_t *)(s - offsetof(_cups_sp_item_t, str));
 
@@ -342,7 +426,7 @@ _cupsStrFree(const char *s)         /* I - String to free */
     }
   }
 
-  _cupsMutexUnlock(&sp_mutex);
+  cupsMutexUnlock(&sp_mutex);
 }
 
 
@@ -373,11 +457,11 @@ _cupsStrRetain(const char *s)             /* I - String to retain */
     }
 #endif /* DEBUG_GUARDS */
 
-    _cupsMutexLock(&sp_mutex);
+    cupsMutexLock(&sp_mutex);
 
     item->ref_count ++;
 
-    _cupsMutexUnlock(&sp_mutex);
+    cupsMutexUnlock(&sp_mutex);
   }
 
   return ((char *)s);
@@ -541,7 +625,7 @@ _cupsStrStatistics(size_t *alloc_bytes,     /* O - Allocated bytes */
   * Loop through strings in pool, counting everything up...
   */
 
-  _cupsMutexLock(&sp_mutex);
+  cupsMutexLock(&sp_mutex);
 
   for (count = 0, abytes = 0, tbytes = 0,
            item = (_cups_sp_item_t *)cupsArrayFirst(stringpool);
@@ -558,7 +642,7 @@ _cupsStrStatistics(size_t *alloc_bytes,     /* O - Allocated bytes */
     tbytes += item->ref_count * len;
   }
 
-  _cupsMutexUnlock(&sp_mutex);
+  cupsMutexUnlock(&sp_mutex);
 
  /*
   * Return values...
diff --git a/cups/test-internal.h b/cups/test-internal.h
new file mode 100644 (file)
index 0000000..7b30c38
--- /dev/null
@@ -0,0 +1,281 @@
+//
+// Unit test header for C/C++ programs.
+//
+// Copyright Â© 2021-2022 by Michael R Sweet.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice,
+//    this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+
+#ifndef TEST_H
+#  define TEST_H
+#  include <stdio.h>
+#  include <stdlib.h>
+#  include <stdarg.h>
+#  include <stdbool.h>
+#  include <string.h>
+#  if _WIN32
+#    define isatty(f) _isatty(f)
+#  else
+#    include <unistd.h>
+#  endif // !_WIN32
+#  ifdef __cplusplus
+extern "C" {
+#  endif // __cplusplus
+
+
+//
+// This header implements a simple unit test framework for C/C++ programs.
+// Inline functions are provided to write a test summary to stdout and the
+// details to stderr.  This allows unit test programs to output a summary to
+// stdout with details sent to stderr, e.g.:
+//
+//     mytestprogram 2>test.log
+//
+// Documentation:
+//
+// void testBegin(const char *title, ...)
+//
+//     Start a test with a printf-style title message.  "Title:" (the formatted
+//     title followed by a colon) is output.
+//
+// void testEnd(bool pass)
+//
+//     End a test without an additional message.  "pass" should be `true` if the
+//     test passed and `false` otherwise.  "PASS" or "FAIL" is output.
+//
+// void testEndMessage(bool pass, const char *message, ...)
+//
+//     End a test with an additional printf-style message.  "pass" should be
+//     `true` if the test passed and `false` otherwise.  "PASS (message)" or
+//     "FAIL (message)" is output.
+//
+// testError(const char *error, ...)
+//
+//     Sends a formatted error string to stderr.
+//
+// testHexDump(const unsigned char *buffer, size_t bytes)
+//
+//     Sends a hex dump of the specified buffer to stderr.
+//
+// testMessage(const char *error, ...)
+//
+//     Outputs a formatted message string.
+//
+// testProgress(void)
+//
+//     Shows a progress spinner for long-running tests.
+//
+// bool testsPassed
+//
+//     This global variable specifies whether all tests have passed (`true`)
+//     or one or more have failed (`false`).
+//
+
+static bool testsPassed = true;                // All tests passed?
+static int test_progress;              // Current progress
+static char test_title[1024] = "";     // Current test title
+
+
+// Start a test
+static inline void
+testBegin(const char *title, ...)      // I - printf-style title string
+{
+  va_list      ap;                     // Pointer to additional arguments
+
+
+  // Format the title string
+  va_start(ap, title);
+  vsnprintf(test_title, sizeof(test_title), title, ap);
+  va_end(ap);
+
+  // Send the title to stdout and stderr...
+  test_progress = 0;
+
+  printf("%s: ", test_title);
+  fflush(stdout);
+
+  if (!isatty(2))
+    fprintf(stderr, "%s: ", test_title);
+}
+
+
+// End a test with no additional information
+static inline void
+testEnd(bool pass)                     // I - `true` if the test passed, `false` otherwise
+{
+  // Send the test result to stdout and stderr
+  if (test_progress)
+    putchar('\b');
+
+  if (!pass)
+    testsPassed = false;
+
+  puts(pass ? "PASS" : "FAIL");
+  if (!isatty(2))
+    fputs(pass ? "PASS\n" : "FAIL\n", stderr);
+
+  test_title[0] = '\0';
+}
+
+
+// End a test with no additional information
+static inline void
+testEndMessage(bool       pass,                // I - `true` if the test passed, `false` otherwise
+               const char *message, ...)// I - printf-style message
+{
+  char         buffer[1024];           // Formatted title string
+  va_list      ap;                     // Pointer to additional arguments
+
+
+  // Format the title string
+  va_start(ap, message);
+  vsnprintf(buffer, sizeof(buffer), message, ap);
+  va_end(ap);
+
+  // Send the test result to stdout and stderr
+  if (test_progress)
+    putchar('\b');
+
+  printf(pass ? "PASS (%s)\n" : "FAIL (%s)\n", buffer);
+  if (!isatty(2))
+    fprintf(stderr, pass ? "PASS (%s)\n" : "FAIL (%s)\n", buffer);
+
+  test_title[0] = '\0';
+}
+
+
+// Show/update a progress spinner
+static inline void
+testProgress(void)
+{
+  if (test_progress)
+    putchar('\b');
+  putchar("-\\|/"[test_progress & 3]);
+  fflush(stdout);
+
+  test_progress ++;
+}
+
+
+// Show an error to stderr...
+static inline void
+testError(const char *error, ...)      // I - printf-style error string
+{
+  char         buffer[1024];           // Formatted title string
+  va_list      ap;                     // Pointer to additional arguments
+
+
+  // Format the error string
+  va_start(ap, error);
+  vsnprintf(buffer, sizeof(buffer), error, ap);
+  va_end(ap);
+
+  // Send the error to stderr...
+  fprintf(stderr, "%s\n", buffer);
+
+  if (test_title[0])
+    fprintf(stderr, "%s: ", test_title);
+}
+
+
+// Show a message to stdout and stderr...
+static inline void
+testMessage(const char *error, ...)    // I - printf-style error string
+{
+  char         buffer[1024];           // Formatted title string
+  va_list      ap;                     // Pointer to additional arguments
+
+
+  // Format the error string
+  va_start(ap, error);
+  vsnprintf(buffer, sizeof(buffer), error, ap);
+  va_end(ap);
+
+  // Send the message to stdout and stderr too if needed...
+  printf("%s\n", buffer);
+  if (test_title[0])
+  {
+    printf("%s: ", test_title);
+    fflush(stdout);
+  }
+
+  if (!isatty(2))
+  {
+    fprintf(stderr, "%s\n", buffer);
+
+    if (test_title[0])
+      fprintf(stderr, "%s: ", test_title);
+  }
+}
+
+
+// Show a hex dump of a buffer to stderr...
+static inline void
+testHexDump(const unsigned char *buffer,// I - Buffer
+            size_t              bytes) // I - Number of bytes
+{
+  size_t       i, j;                   // Looping vars
+  int          ch;                     // Current ASCII char
+
+
+  if (test_title[0])
+    fputs("\n", stderr);
+
+  // Show lines of 16 bytes at a time...
+  for (i = 0; i < bytes; i += 16)
+  {
+    // Show the offset...
+    fprintf(stderr, "%04x ", (unsigned)i);
+
+    // Then up to 16 bytes in hex...
+    for (j = 0; j < 16; j ++)
+    {
+      if ((i + j) < bytes)
+        fprintf(stderr, " %02x", buffer[i + j]);
+      else
+        fputs("   ", stderr);
+    }
+
+    // Then the ASCII representation of the bytes...
+    fputs("  ", stderr);
+
+    for (j = 0; j < 16 && (i + j) < bytes; j ++)
+    {
+      ch = buffer[i + j] & 127;
+
+      if (ch < ' ' || ch == 127)
+        fputc('.', stderr);
+      else
+        fputc(ch, stderr);
+    }
+
+    fputc('\n', stderr);
+  }
+
+  if (test_title[0])
+    fprintf(stderr, "%s: ", test_title);
+}
+
+#  ifdef __cplusplus
+}
+#  endif // __cplusplus
+#endif // !TEST_H
index 9235df0cd5199b819c8df177b1947f971b48e486..52dde040f59b2fdf510de72aa4730136ab15ab83 100644 (file)
@@ -18,7 +18,7 @@
 #include <cups/cups.h>
 #include <cups/raster.h>
 #include <cups/string-private.h>
-#include <cups/thread-private.h>
+#include <cups/thread.h>
 
 
 /*
@@ -59,7 +59,7 @@ typedef struct _client_data_s
  */
 
 static int             client_count = 0;
-static _cups_mutex_t   client_mutex = _CUPS_MUTEX_INITIALIZER;
+static cups_mutex_t    client_mutex = CUPS_MUTEX_INITIALIZER;
 static int             verbosity = 0;
 
 
@@ -242,28 +242,28 @@ main(int  argc,                           /* I - Number of command-line arguments */
 
   while (client_count < num_clients)
   {
-    _cupsMutexLock(&client_mutex);
+    cupsMutexLock(&client_mutex);
     if (client_count < MAX_CLIENTS)
     {
-      _cups_thread_t   tid;            /* New thread */
+      cups_thread_t    tid;            /* New thread */
 
       client_count ++;
-      _cupsMutexUnlock(&client_mutex);
-      tid = _cupsThreadCreate((_cups_thread_func_t)run_client, &data);
-      _cupsThreadDetach(tid);
+      cupsMutexUnlock(&client_mutex);
+      tid = cupsThreadCreate((cups_thread_func_t)run_client, &data);
+      cupsThreadDetach(tid);
     }
     else
     {
-      _cupsMutexUnlock(&client_mutex);
+      cupsMutexUnlock(&client_mutex);
       sleep(1);
     }
   }
 
   while (client_count > 0)
   {
-    _cupsMutexLock(&client_mutex);
+    cupsMutexLock(&client_mutex);
     printf("%d RUNNING CLIENTS\n", client_count);
-    _cupsMutexUnlock(&client_mutex);
+    cupsMutexUnlock(&client_mutex);
     sleep(1);
   }
 
@@ -759,7 +759,7 @@ static void *                               /* O - Thread exit code */
 run_client(
     _client_data_t *data)              /* I - Client data */
 {
-  _cups_thread_t monitor_id;           /* Monitoring thread ID */
+  cups_thread_t monitor_id;            /* Monitoring thread ID */
   const char   *name;                  /* Job name */
   char         tempfile[1024] = "";    /* Temporary file (if any) */
   _client_data_t ldata;                        /* Local client data */
@@ -780,7 +780,7 @@ run_client(
   * Start monitoring the printer in the background...
   */
 
-  monitor_id = _cupsThreadCreate((_cups_thread_func_t)monitor_printer, &ldata);
+  monitor_id = cupsThreadCreate((cups_thread_func_t)monitor_printer, &ldata);
 
  /*
   * Open a connection to the printer...
@@ -954,11 +954,11 @@ run_client(
   if (tempfile[0] && !ldata.keepfile)
     unlink(tempfile);
 
-  _cupsThreadWait(monitor_id);
+  cupsThreadWait(monitor_id);
 
-  _cupsMutexLock(&client_mutex);
+  cupsMutexLock(&client_mutex);
   client_count --;
-  _cupsMutexUnlock(&client_mutex);
+  cupsMutexUnlock(&client_mutex);
 
   return (NULL);
 }
diff --git a/cups/testdnssd.c b/cups/testdnssd.c
new file mode 100644 (file)
index 0000000..e273a6c
--- /dev/null
@@ -0,0 +1,420 @@
+//
+// DNS-SD API test program for CUPS.
+//
+// Copyright Â© 2022 by OpenPrinting.
+//
+// Licensed under Apache License v2.0.  See the file "LICENSE" for more
+// information.
+//
+
+#include "test-internal.h"
+#include "dnssd.h"
+#include "thread.h"
+
+
+//
+// Local structures...
+//
+
+typedef struct testdata_s              // Test data structure
+{
+  cups_mutex_t mutex;                  // Mutex for access
+  cups_array_t *messages;              // Messages from callbacks
+  char         name[256];              // Service name
+  size_t       browse_dnssd_count;     // Number of testdnssd browse callbacks
+  size_t       browse_ipp_count;       // Number of IPP browse callbacks
+  size_t       error_count;            // Number of error callbacks
+  size_t       query_count;            // Number of query callbacks
+  size_t       resolve_count;          // Number of resolve callbacks
+  size_t       service_count;          // Number of service callbacks
+} testdata_t;
+
+
+//
+// Local functions...
+//
+
+static void    browse_cb(cups_dnssd_browse_t *browse, void *cb_data, cups_dnssd_flags_t flags, uint32_t if_index, const char *name, const char *regtype, const char *domain);
+static void    error_cb(void *cb_data, const char *message);
+static void    query_cb(cups_dnssd_query_t *query, void *cb_data, cups_dnssd_flags_t flags, uint32_t if_index, const char *fullname, uint16_t rrtype, const void *qdata, uint16_t qlen);
+static void    resolve_cb(cups_dnssd_resolve_t *res, void *cb_data, cups_dnssd_flags_t flags, uint32_t if_index, const char *fullname, const char *host, uint16_t port, size_t num_txt, cups_option_t *txt);
+static void    service_cb(cups_dnssd_service_t *service, void *cb_data, cups_dnssd_flags_t flags);
+static void    usage(const char *arg);
+
+
+//
+// 'main()' - Main entry.
+//
+
+int                                    // O - Exit status
+main(int  argc,                                // I - Number of command-line arguments
+     char *argv[])                     // I - Command-line arguments
+{
+  int                  i,              // Looping var
+                       ret = 0;        // Return value
+  cups_dnssd_t         *dnssd;         // DNS-SD context
+  cups_dnssd_browse_t  *browse;        // DNS-SD browse request
+//  cups_dnssd_query_t *query;         // DNS-SD query request
+  cups_dnssd_resolve_t *resolve;       // DNS-SD resolve request
+  cups_dnssd_service_t *service;       // DNS-SD service registration
+  size_t               num_txt;        // Number of TXT record key/value pairs
+  cups_option_t                *txt;           // TXT record key/value pairs
+  testdata_t           testdata;       // Test data
+
+
+  // Clear test data...
+  memset(&testdata, 0, sizeof(testdata));
+  testdata.messages = cupsArrayNew3(NULL, NULL, NULL, 0, (cups_acopy_func_t)strdup, (cups_afree_func_t)free);
+#if _WIN32
+  snprintf(testdata.name, sizeof(testdata.name), "Test Service %d", (int)GetCurrentProcessId());
+#else
+  snprintf(testdata.name, sizeof(testdata.name), "Test Service %d", (int)getpid());
+#endif // _WIN32
+
+  if (argc == 1)
+  {
+    // Do unit tests...
+    testBegin("cupsDNSSDNew");
+    if ((dnssd = cupsDNSSDNew(error_cb, &testdata)) != NULL)
+      testEnd(true);
+    else
+      return (1);
+
+    testBegin("cupsDNSSDBrowseNew(_ipp._tcp)");
+    if ((browse = cupsDNSSDBrowseNew(dnssd, CUPS_DNSSD_IF_INDEX_ANY, "_ipp._tcp", NULL, browse_cb, &testdata)) != NULL)
+    {
+      testEnd(true);
+    }
+    else
+    {
+      ret = 1;
+      goto done;
+    }
+
+    testBegin("cupsDNSSDBrowseGetContext");
+    testEnd(cupsDNSSDBrowseGetContext(browse) == dnssd);
+
+    testBegin("cupsDNSSDBrowseNew(_testdnssd._tcp)");
+    if ((browse = cupsDNSSDBrowseNew(dnssd, CUPS_DNSSD_IF_INDEX_ANY, "_testdnssd._tcp", NULL, browse_cb, &testdata)) != NULL)
+    {
+      testEnd(true);
+    }
+    else
+    {
+      ret = 1;
+      goto done;
+    }
+
+    testBegin("cupsDNSSDBrowseGetContext");
+    testEnd(cupsDNSSDBrowseGetContext(browse) == dnssd);
+
+    testBegin("cupsDNSSDServiceNew(%s)", testdata.name);
+    if ((service = cupsDNSSDServiceNew(dnssd, CUPS_DNSSD_IF_INDEX_ANY, testdata.name, service_cb, &testdata)) != NULL)
+    {
+      testEnd(true);
+    }
+    else
+    {
+      ret = 1;
+      goto done;
+    }
+
+    num_txt = cupsAddOption("rp", "ipp/print", 0, &txt);
+
+    testBegin("cupsDNSSDServiceAdd(_http._tcp)");
+    if (cupsDNSSDServiceAdd(service, "_http._tcp,_printer", /*host*/NULL, /*domain*/NULL, 631, /*num_txt*/0, /*txt*/NULL))
+    {
+      testEnd(true);
+    }
+    else
+    {
+      ret = 1;
+      goto done;
+    }
+
+    testBegin("cupsDNSSDServiceAdd(_ipp._tcp)");
+    if (cupsDNSSDServiceAdd(service, "_ipp._tcp,_print", /*host*/NULL, /*domain*/NULL, 631, num_txt, txt))
+    {
+      testEnd(true);
+    }
+    else
+    {
+      ret = 1;
+      goto done;
+    }
+
+    testBegin("cupsDNSSDServiceAdd(_testdnssd._tcp)");
+    if (cupsDNSSDServiceAdd(service, "_testdnssd._tcp", /*host*/NULL, /*domain*/NULL, 54321, num_txt, txt))
+    {
+      testEnd(true);
+    }
+    else
+    {
+      ret = 1;
+      goto done;
+    }
+
+    testBegin("cupsDNSSDServicePublish");
+    testEnd(cupsDNSSDServicePublish(service));
+
+    testBegin("cupsDNSSDServiceGetContext");
+    testEnd(cupsDNSSDServiceGetContext(service) == dnssd);
+
+    cupsFreeOptions(num_txt, txt);
+
+    testBegin("cupsDNSSDResolveNew(%s._testdnssd._tcp.local.)", testdata.name);
+    if ((resolve = cupsDNSSDResolveNew(dnssd, CUPS_DNSSD_IF_INDEX_ANY, testdata.name, "_testdnssd._tcp", "local.", resolve_cb, &testdata)) != NULL)
+    {
+      testEnd(true);
+    }
+    else
+    {
+      ret = 1;
+      goto done;
+    }
+
+    testBegin("cupsDNSSDResolveGetContext");
+    testEnd(cupsDNSSDResolveGetContext(resolve) == dnssd);
+
+    testBegin("Wait for callbacks");
+
+    for (i = 0; i < 30; i ++)
+    {
+      if (testdata.service_count != 0 && testdata.browse_dnssd_count != 0 && testdata.browse_ipp_count != 0 && testdata.resolve_count != 0)
+        break;
+
+      testProgress();
+      sleep(1);
+    }
+
+    testEndMessage(i < 30, "Bdnssd=%u Bipp=%u Q=%u R=%u S=%u", (unsigned)testdata.browse_dnssd_count, (unsigned)testdata.browse_ipp_count, (unsigned)testdata.query_count, (unsigned)testdata.resolve_count, (unsigned)testdata.service_count);
+    if (i >= 30)
+      ret = 1;
+
+    done:
+
+    cupsDNSSDDelete(dnssd);
+
+    if (ret || getenv("TESTDNSSD_DEBUG"))
+    {
+      const char *message;             // Current message
+
+      for (message = (const char *)cupsArrayFirst(testdata.messages); message; message = (const char *)cupsArrayNext(testdata.messages))
+       puts(message);
+    }
+
+    cupsArrayDelete(testdata.messages);
+  }
+  else
+  {
+    usage(argv[1]);
+  }
+
+  return (ret);
+}
+
+
+//
+// 'browse_cb()' - Record browse request callback usage.
+//
+
+static void
+browse_cb(
+    cups_dnssd_browse_t *browse,       // I - Browse request
+    void                *cb_data,      // I - Callback data
+    cups_dnssd_flags_t  flags,         // I - Bit flags
+    uint32_t            if_index,      // I - Interface index
+    const char          *name,         // I - Service name
+    const char          *regtype,      // I - Registration type
+    const char          *domain)       // I - Domain
+{
+  testdata_t   *data = (testdata_t *)cb_data;
+                                       // Test data
+  char         message[1024];          // Message string
+  char         fullname[1024];         // Full service name
+
+
+  snprintf(message, sizeof(message), "B flags=%02X if_index=%u name=\"%s\" regtype=\"%s\" domain=\"%s\"", flags, if_index, name, regtype, domain);
+
+  cupsDNSSDResolveNew(cupsDNSSDBrowseGetContext(browse), CUPS_DNSSD_IF_INDEX_ANY, name, regtype, domain, resolve_cb, cb_data);
+
+  cupsDNSSDAssembleFullName(fullname, sizeof(fullname), name, regtype, domain);
+  cupsDNSSDQueryNew(cupsDNSSDBrowseGetContext(browse), CUPS_DNSSD_IF_INDEX_ANY, fullname, CUPS_DNSSD_RRTYPE_TXT, query_cb, cb_data);
+
+  cupsMutexLock(&data->mutex);
+  cupsArrayAdd(data->messages, message);
+  if (!strncmp(regtype, "_ipp.", 5))
+    data->browse_ipp_count ++;
+  else if (!strncmp(regtype, "_testdnssd.", 11))
+    data->browse_dnssd_count ++;
+  cupsMutexUnlock(&data->mutex);
+}
+
+
+//
+// 'error_cb()' - Display an error.
+//
+
+static void
+error_cb(void       *cb_data,          // I - Callback data
+         const char *message)          // I - Error message
+{
+  testdata_t   *data = (testdata_t *)cb_data;
+                                       // Test data
+
+
+  testEndMessage(false, "%s", message);
+
+  cupsMutexLock(&data->mutex);
+  data->error_count ++;
+  cupsMutexUnlock(&data->mutex);
+}
+
+
+//
+// 'query_cb()' - Record query request callback usage.
+//
+
+static void
+query_cb(
+    cups_dnssd_query_t *query,         // I - Query request
+    void               *cb_data,       // I - Callback data
+    cups_dnssd_flags_t flags,          // I - Flags
+    uint32_t           if_index,       // I - Interface index
+    const char         *fullname,      // I - Full service name
+    uint16_t           rrtype,         // I - Record type
+    const void         *qdata,         // I - Record data
+    uint16_t           qlen)           // I - Length of record data
+{
+  testdata_t   *data = (testdata_t *)cb_data;
+                                       // Test data
+  uint16_t     i;                      // Looping var
+  char         message[2048],          // Message string
+               *mptr;                  // Pointer into message string
+  const unsigned char *qptr;           // Pointer into record data
+
+
+  (void)query;
+
+  snprintf(message, sizeof(message), "Q flags=%02X if_index=%u fullname=\"%s\" rrtype=%u qlen=%u qdata=<", flags, if_index, fullname, rrtype, qlen);
+  for (mptr = message + strlen(message), i = 0, qptr = (const unsigned char *)qdata; i < qlen; i ++, mptr += strlen(mptr), qptr ++)
+    snprintf(mptr, sizeof(message) - (size_t)(mptr - message), "%02X", *qptr);
+  if (mptr < (message + sizeof(message) - 1))
+  {
+    *mptr++ = '>';
+    *mptr   = '\0';
+  }
+
+  cupsMutexLock(&data->mutex);
+  cupsArrayAdd(data->messages, message);
+  data->query_count ++;
+  cupsMutexUnlock(&data->mutex);
+}
+
+
+//
+// 'resolve_cb()' - Record resolve request callback usage.
+//
+
+static void
+resolve_cb(
+    cups_dnssd_resolve_t *res,         // I - Resolve request
+    void                 *cb_data,     // I - Callback data
+    cups_dnssd_flags_t   flags,                // I - Flags
+    uint32_t             if_index,     // I - Interface index
+    const char           *fullname,    // I - Full service name
+    const char           *host,                // I - Hostname
+    uint16_t             port,         // I - Port number
+    size_t               num_txt,      // I - Number of key/value pairs in TXT record
+    cups_option_t        *txt)         // I - Key/value pairs
+{
+  testdata_t   *data = (testdata_t *)cb_data;
+                                       // Test data
+  size_t       i;                      // Looping var
+  char         message[2048],          // Message string
+               *mptr;                  // Pointer into message string
+  const char   *prefix = " txt=";      // Prefix string
+  char         name[256],              // Service name
+               regtype[256],           // Registration type
+               domain[256];            // Domain name
+
+
+  (void)res;
+
+  snprintf(message, sizeof(message), "R flags=%02X if_index=%u fullname=\"%s\" host=\"%s\" port=%u num_txt=%u", flags, if_index, fullname, host, port, (unsigned)num_txt);
+  for (mptr = message + strlen(message), i = 0; i < num_txt; i ++, mptr += strlen(mptr))
+  {
+    snprintf(mptr, sizeof(message) - (size_t)(mptr - message), "%s\"%s=%s\"", prefix, txt[i].name, txt[i].value);
+    prefix = ",";
+  }
+
+  cupsMutexLock(&data->mutex);
+
+  cupsArrayAdd(data->messages, message);
+
+  if (!cupsDNSSDSeparateFullName(fullname, name, sizeof(name), regtype, sizeof(regtype), domain, sizeof(domain)))
+  {
+    // Separation failed...
+    snprintf(message, sizeof(message), "R ==== ERROR: Unable to separate fullname \"%s\" into components ====", fullname);
+    cupsArrayAdd(data->messages, message);
+  }
+  else if (!strcmp(regtype, "_testdnssd._tcp"))
+  {
+    if (strcmp(name, data->name))
+    {
+      snprintf(message, sizeof(message), "R ==== ERROR: Expected name \"%s\", got \"%s\" ====", data->name, name);
+      cupsArrayAdd(data->messages, message);
+    }
+    else if (port != 54321)
+    {
+      snprintf(message, sizeof(message), "R ==== ERROR: Expected port 54321, got %u ====", port);
+      cupsArrayAdd(data->messages, message);
+    }
+    else
+    {
+      data->resolve_count ++;
+    }
+  }
+
+  cupsMutexUnlock(&data->mutex);
+}
+
+
+//
+// 'service_cb()' - Record service registration callback usage.
+//
+
+static void
+service_cb(
+    cups_dnssd_service_t *service,     // I - Service registration
+    void                 *cb_data,     // I - Callback data
+    cups_dnssd_flags_t   flags)                // I - Flags
+{
+  testdata_t   *data = (testdata_t *)cb_data;
+                                       // Test data
+  char         message[1024];          // Message string
+
+
+  snprintf(message, sizeof(message), "S flags=%02X name=\"%s\"", flags, cupsDNSSDServiceGetName(service));
+
+  cupsMutexLock(&data->mutex);
+  cupsArrayAdd(data->messages, message);
+  data->service_count ++;
+  cupsMutexUnlock(&data->mutex);
+}
+
+
+//
+// 'usage()' - Show program usage.
+//
+
+static void
+usage(const char *arg)                 // I - Argument for usage message
+{
+  if (arg)
+    printf("testdnssd: Unknown option \"%s\".\n", arg);
+
+  puts("Usage:");
+
+  exit(arg != NULL);
+}
index 441bc9f1524298308ccd3de57b0b7ed9b1ea4c9b..309077f843fceb4da66377889b4200d2ad8f35f8 100644 (file)
@@ -1,43 +1,37 @@
-/*
- * Threaded test program for CUPS.
- *
- * Copyright Â© 2012-2019 by Apple Inc.
- *
- * Licensed under Apache License v2.0.  See the file "LICENSE" for more
- * information.
- */
-
-/*
- * Include necessary headers...
- */
+//
+// Threaded test program for CUPS.
+//
+// Copyright Â© 2022 by OpenPrinting.
+// Copyright Â© 2012-2019 by Apple Inc.
+//
+// Licensed under Apache License v2.0.  See the file "LICENSE" for more
+// information.
+//
 
 #include <stdio.h>
 #include <errno.h>
 #include <cups/cups.h>
-#include <cups/thread-private.h>
+#include <cups/thread.h>
 
 
-/*
- * Local functions...
- */
+//
+// Local functions...
+//
 
-static int     enum_dests_cb(void *_name, unsigned flags, cups_dest_t *dest);
+static bool    enum_dests_cb(void *_name, unsigned flags, cups_dest_t *dest);
 static void    *run_query(cups_dest_t *dest);
 static void    show_supported(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option, const char *value);
 
 
-/*
- * 'main()' - Main entry.
- */
+//
+// 'main()' - Main entry.
+//
 
-int                                    /* O - Exit status */
-main(int  argc,                                /* I - Number of command-line arguments */
-     char *argv[])                     /* I - Command-line arguments */
+int                                    // O - Exit status
+main(int  argc,                                // I - Number of command-line arguments
+     char *argv[])                     // I - Command-line arguments
 {
- /*
-  * Go through all the available destinations to find the requested one...
-  */
-
+  // Go through all the available destinations to find the requested one...
   (void)argc;
 
   cupsEnumDests(CUPS_DEST_FLAGS_NONE, -1, NULL, 0, 0, enum_dests_cb, argv[1]);
@@ -46,68 +40,59 @@ main(int  argc,                             /* I - Number of command-line arguments */
 }
 
 
-/*
- * 'enum_dests_cb()' - Destination enumeration function...
- */
+//
+// 'enum_dests_cb()' - Destination enumeration function...
+//
 
-static int                             /* O - 1 to continue, 0 to stop */
-enum_dests_cb(void        *_name,      /* I - Printer name, if any */
-              unsigned    flags,       /* I - Enumeration flags */
-              cups_dest_t *dest)       /* I - Found destination */
+static bool                            // O - `true` to continue, `false` to stop
+enum_dests_cb(void        *_name,      // I - Printer name, if any
+              unsigned    flags,       // I - Enumeration flags
+              cups_dest_t *dest)       // I - Found destination
 {
   const char           *name = (const char *)_name;
-                                       /* Printer name */
-  cups_dest_t          *cdest;         /* Copied destination */
+                                       // Printer name
+  cups_dest_t          *cdest;         // Copied destination
 
 
   (void)flags;
 
- /*
-  * If a name was specified, compare it...
-  */
-
+  // If a name was specified, compare it...
   if (name && strcasecmp(name, dest->name))
-    return (1);                                /* Continue */
-
- /*
-  * Copy the destination and run the query on a separate thread...
-  */
+    return (true);                     // Continue
 
+  // Copy the destination and run the query on a separate thread...
   cupsCopyDest(dest, 0, &cdest);
-  _cupsThreadWait(_cupsThreadCreate((_cups_thread_func_t)run_query, cdest));
+  cupsThreadWait(cupsThreadCreate((cups_thread_func_t)run_query, cdest));
 
   cupsFreeDests(1, cdest);
 
- /*
-  * Continue if no name was specified or the name matches...
-  */
-
+  // Continue if no name was specified or the name matches...
   return (!name || !strcasecmp(name, dest->name));
 }
 
 
-/*
- * 'run_query()' - Query printer capabilities on a separate thread.
- */
+//
+// 'run_query()' - Query printer capabilities on a separate thread.
+//
 
-static void *                          /* O - Return value (not used) */
-run_query(cups_dest_t *dest)           /* I - Destination to query */
+static void *                          // O - Return value (not used)
+run_query(cups_dest_t *dest)           // I - Destination to query
 {
-  http_t       *http;                  /* Connection to destination */
-  cups_dinfo_t *dinfo;                 /* Destination info */
+  http_t       *http;                  // Connection to destination
+  cups_dinfo_t *dinfo;                 // Destination info
   unsigned     dflags = CUPS_DEST_FLAGS_NONE;
-                                       /* Destination flags */
+                                       // Destination flags
 
 
   if ((http = cupsConnectDest(dest, dflags, 300, NULL, NULL, 0, NULL, NULL)) == NULL)
   {
-    printf("testthreads: Unable to connect to destination \"%s\": %s\n", dest->name, cupsLastErrorString());
+    printf("testthreads: Unable to connect to destination \"%s\": %s\n", dest->name, cupsGetErrorString());
     return (NULL);
   }
 
   if ((dinfo = cupsCopyDestInfo(http, dest)) == NULL)
   {
-    printf("testdest: Unable to get information for destination \"%s\": %s\n", dest->name, cupsLastErrorString());
+    printf("testdest: Unable to get information for destination \"%s\": %s\n", dest->name, cupsGetErrorString());
     return (NULL);
   }
 
@@ -120,20 +105,20 @@ run_query(cups_dest_t *dest)              /* I - Destination to query */
 
 
 
-/*
- * 'show_supported()' - Show supported options, values, etc.
- */
+//
+// 'show_supported()' - Show supported options, values, etc.
+//
 
 static void
-show_supported(http_t       *http,     /* I - Connection to destination */
-              cups_dest_t  *dest,      /* I - Destination */
-              cups_dinfo_t *dinfo,     /* I - Destination information */
-              const char   *option,    /* I - Option, if any */
-              const char   *value)     /* I - Value, if any */
+show_supported(http_t       *http,     // I - Connection to destination
+              cups_dest_t  *dest,      // I - Destination
+              cups_dinfo_t *dinfo,     // I - Destination information
+              const char   *option,    // I - Option, if any
+              const char   *value)     // I - Value, if any
 {
-  ipp_attribute_t      *attr;          /* Attribute */
-  int                  i,              /* Looping var */
-                       count;          /* Number of values */
+  ipp_attribute_t      *attr;          // Attribute
+  size_t               i,              // Looping var
+                       count;          // Number of values
 
 
   if (!option)
@@ -148,7 +133,7 @@ show_supported(http_t       *http,  /* I - Connection to destination */
     else
     {
       static const char * const options[] =
-      {                                        /* List of standard options */
+      {                                        // List of standard options
         CUPS_COPIES,
        CUPS_FINISHINGS,
        CUPS_MEDIA,
@@ -236,8 +221,10 @@ show_supported(http_t       *http, /* I - Connection to destination */
         case IPP_TAG_STRING :
            for (i = 0; i < count; i ++)
            {
-             int j, len;
+             size_t j;                 // Looping var
+             size_t len;               // Length of value
              unsigned char *data = ippGetOctetString(attr, i, &len);
+                                       // Pointer to octet string
 
               fputs("        ", stdout);
              for (j = 0; j < len; j ++)
diff --git a/cups/thread-private.h b/cups/thread-private.h
deleted file mode 100644 (file)
index 1b8b106..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Private threading definitions for CUPS.
- *
- * Copyright 2009-2017 by Apple Inc.
- *
- * Licensed under Apache License v2.0.  See the file "LICENSE" for more information.
- */
-
-#ifndef _CUPS_THREAD_PRIVATE_H_
-#  define _CUPS_THREAD_PRIVATE_H_
-
-/*
- * Include necessary headers...
- */
-
-#  include "config.h"
-#  include <cups/versioning.h>
-
-
-/*
- * C++ magic...
- */
-
-#  ifdef __cplusplus
-extern "C" {
-#  endif /* __cplusplus */
-
-
-#  ifdef HAVE_PTHREAD_H                        /* POSIX threading */
-#    include <pthread.h>
-typedef void *(*_cups_thread_func_t)(void *arg);
-typedef pthread_t _cups_thread_t;
-typedef pthread_cond_t _cups_cond_t;
-typedef pthread_mutex_t _cups_mutex_t;
-typedef pthread_rwlock_t _cups_rwlock_t;
-typedef pthread_key_t  _cups_threadkey_t;
-#    define _CUPS_COND_INITIALIZER PTHREAD_COND_INITIALIZER
-#    define _CUPS_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
-#    define _CUPS_RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER
-#    define _CUPS_THREADKEY_INITIALIZER 0
-#    define _cupsThreadGetData(k) pthread_getspecific(k)
-#    define _cupsThreadSetData(k,p) pthread_setspecific(k,p)
-
-#  elif defined(_WIN32)                        /* Windows threading */
-#    include <winsock2.h>
-#    include <windows.h>
-typedef void *(__stdcall *_cups_thread_func_t)(void *arg);
-typedef int _cups_thread_t;
-typedef char _cups_cond_t;             /* TODO: Implement Win32 conditional */
-typedef struct _cups_mutex_s
-{
-  int                  m_init;         /* Flag for on-demand initialization */
-  CRITICAL_SECTION     m_criticalSection;
-                                       /* Win32 Critical Section */
-} _cups_mutex_t;
-typedef _cups_mutex_t _cups_rwlock_t;  /* TODO: Implement Win32 reader/writer lock */
-typedef DWORD  _cups_threadkey_t;
-#    define _CUPS_COND_INITIALIZER 0
-#    define _CUPS_MUTEX_INITIALIZER { 0, 0 }
-#    define _CUPS_RWLOCK_INITIALIZER { 0, 0 }
-#    define _CUPS_THREADKEY_INITIALIZER 0
-#    define _cupsThreadGetData(k) TlsGetValue(k)
-#    define _cupsThreadSetData(k,p) TlsSetValue(k,p)
-
-#  else                                        /* No threading */
-typedef void   *(*_cups_thread_func_t)(void *arg);
-typedef int    _cups_thread_t;
-typedef char   _cups_cond_t;
-typedef char   _cups_mutex_t;
-typedef char   _cups_rwlock_t;
-typedef void   *_cups_threadkey_t;
-#    define _CUPS_COND_INITIALIZER 0
-#    define _CUPS_MUTEX_INITIALIZER 0
-#    define _CUPS_RWLOCK_INITIALIZER 0
-#    define _CUPS_THREADKEY_INITIALIZER (void *)0
-#    define _cupsThreadGetData(k) k
-#    define _cupsThreadSetData(k,p) k=p
-#  endif /* HAVE_PTHREAD_H */
-
-
-/*
- * Functions...
- */
-
-extern void    _cupsCondBroadcast(_cups_cond_t *cond) _CUPS_PRIVATE;
-extern void    _cupsCondInit(_cups_cond_t *cond) _CUPS_PRIVATE;
-extern void    _cupsCondWait(_cups_cond_t *cond, _cups_mutex_t *mutex, double timeout) _CUPS_PRIVATE;
-extern void    _cupsMutexInit(_cups_mutex_t *mutex) _CUPS_PRIVATE;
-extern void    _cupsMutexLock(_cups_mutex_t *mutex) _CUPS_PRIVATE;
-extern void    _cupsMutexUnlock(_cups_mutex_t *mutex) _CUPS_PRIVATE;
-extern void    _cupsRWInit(_cups_rwlock_t *rwlock) _CUPS_PRIVATE;
-extern void    _cupsRWLockRead(_cups_rwlock_t *rwlock) _CUPS_PRIVATE;
-extern void    _cupsRWLockWrite(_cups_rwlock_t *rwlock) _CUPS_PRIVATE;
-extern void    _cupsRWUnlock(_cups_rwlock_t *rwlock) _CUPS_PRIVATE;
-extern void    _cupsThreadCancel(_cups_thread_t thread) _CUPS_PRIVATE;
-extern _cups_thread_t _cupsThreadCreate(_cups_thread_func_t func, void *arg) _CUPS_PRIVATE;
-extern void     _cupsThreadDetach(_cups_thread_t thread) _CUPS_PRIVATE;
-extern void    *_cupsThreadWait(_cups_thread_t thread) _CUPS_PRIVATE;
-
-#  ifdef __cplusplus
-}
-#  endif /* __cplusplus */
-#endif /* !_CUPS_THREAD_PRIVATE_H_ */
index a0d6eced06b2d51a7389f4482c2e040d19b06e9a..8cbf1b3b45659c1b7388118be029e526119a5cf1 100644 (file)
-/*
- * Threading primitives for CUPS.
- *
- * Copyright Â© 2021-2023 by OpenPrinting.
- * Copyright Â©Â 2009-2018 by Apple Inc.
- *
- * Licensed under Apache License v2.0.  See the file "LICENSE" for more
- * information.
- */
-
-/*
- * Include necessary headers...
- */
+//
+// Threading primitives for CUPS.
+//
+// Copyright Â© 2021-2023 by OpenPrinting.
+// Copyright Â©Â 2009-2018 by Apple Inc.
+//
+// Licensed under Apache License v2.0.  See the file "LICENSE" for more
+// information.
+//
 
 #include "cups-private.h"
-#include "thread-private.h"
+#include "thread.h"
 
 
-#if defined(HAVE_PTHREAD_H)
-/*
- * '_cupsCondBroadcast()' - Wake up waiting threads.
- */
+//
+// Windows threading...
+//
+
+#if _WIN32
+#  include <setjmp.h>
+
+
+//
+// Private structures...
+//
+
+struct _cups_thread_s
+{
+  HANDLE       h;                      // Thread handle
+  void         *(*func)(void *);       // Thread start function
+  void         *arg;                   // Argument to pass to function
+  void         *retval;                // Return value from function
+  bool         canceled;               // Is the thread canceled?
+  jmp_buf      jumpbuf;                // Jump buffer for error recovery
+};
+
+
+//
+// Local functions...
+//
+
+static cups_thread_t   win32_self(void);
+static void            win32_testcancel(void);
+static DWORD           win32_tls(void);
+static int             win32_wrapper(cups_thread_t thread);
+
+
+//
+// 'cupsCondBroadcast()' - Wake up waiting threads.
+//
 
 void
-_cupsCondBroadcast(_cups_cond_t *cond) /* I - Condition */
+cupsCondBroadcast(cups_cond_t *cond)   // I - Condition variable
 {
-  pthread_cond_broadcast(cond);
+  if (cond)
+    WakeAllConditionVariable(cond);
 }
 
 
-/*
- * '_cupsCondInit()' - Initialize a condition variable.
- */
+//
+// 'cupsCondDestroy()' - Destroy a condition variable.
+//
 
 void
-_cupsCondInit(_cups_cond_t *cond)      /* I - Condition */
+cupsCondDestroy(cups_cond_t *cond)     // I - Condition variable
 {
-  pthread_cond_init(cond, NULL);
+  (void)cond;
 }
 
 
-/*
- * '_cupsCondWait()' - Wait for a condition with optional timeout.
- */
+//
+// 'cupsCondInit()' - Initialize a condition variable.
+//
 
 void
-_cupsCondWait(_cups_cond_t  *cond,     /* I - Condition */
-              _cups_mutex_t *mutex,    /* I - Mutex */
-             double        timeout)    /* I - Timeout in seconds (0 or negative for none) */
+cupsCondInit(cups_cond_t *cond)                // I - Condition variable
 {
-  if (timeout > 0.0)
-  {
-    struct timespec abstime;           /* Timeout */
+  if (cond)
+    InitializeConditionVariable(cond);
+}
 
-    clock_gettime(CLOCK_REALTIME, &abstime);
 
-    abstime.tv_sec  += (long)timeout;
-    abstime.tv_nsec += (long)(1000000000 * (timeout - (long)timeout));
+//
+// 'cupsCondWait()' - Wait for a condition with optional timeout.
+//
 
-    while (abstime.tv_nsec >= 1000000000)
-    {
-      abstime.tv_nsec -= 1000000000;
-      abstime.tv_sec ++;
-    };
+void
+cupsCondWait(cups_cond_t  *cond,       // I - Condition
+            cups_mutex_t *mutex,       // I - Mutex
+            double       timeout)      // I - Timeout in seconds (`0` or negative for none)
+{
+  win32_testcancel();
 
-    (void)pthread_cond_timedwait(cond, mutex, &abstime);
+  if (cond && mutex)
+  {
+    if (timeout > 0.0)
+      SleepConditionVariableCS(cond, mutex, (int)(1000.0 * timeout));
+    else
+      SleepConditionVariableCS(cond, mutex, INFINITE);
   }
-  else
-    (void)pthread_cond_wait(cond, mutex);
 }
 
 
-/*
- * '_cupsMutexInit()' - Initialize a mutex.
- */
+//
+// 'cupsMutexDestroy()' - Destroy a mutex.
+//
 
 void
-_cupsMutexInit(_cups_mutex_t *mutex)   /* I - Mutex */
+cupsMutexDestroy(cups_mutex_t *mutex)  // I - Mutex
 {
-  pthread_mutex_init(mutex, NULL);
+  (void)mutex;
 }
 
 
-/*
- * '_cupsMutexLock()' - Lock a mutex.
- */
+//
+// 'cupsMutexInit()' - Initialize a mutex.
+//
 
 void
-_cupsMutexLock(_cups_mutex_t *mutex)   /* I - Mutex */
+cupsMutexInit(cups_mutex_t *mutex)     // I - Mutex
 {
-  pthread_mutex_lock(mutex);
+  if (mutex)
+    InitializeCriticalSection(mutex);
 }
 
 
-/*
- * '_cupsMutexUnlock()' - Unlock a mutex.
- */
+//
+// 'cupsMutexLock()' - Lock a mutex.
+//
 
 void
-_cupsMutexUnlock(_cups_mutex_t *mutex) /* I - Mutex */
+cupsMutexLock(cups_mutex_t *mutex)     // I - Mutex
 {
-  pthread_mutex_unlock(mutex);
+  if (mutex)
+    EnterCriticalSection(mutex);
 }
 
 
-/*
- * '_cupsRWInit()' - Initialize a reader/writer lock.
- */
+//
+// 'cupsMutexUnlock()' - Unlock a mutex.
+//
 
 void
-_cupsRWInit(_cups_rwlock_t *rwlock)    /* I - Reader/writer lock */
+cupsMutexUnlock(cups_mutex_t *mutex)   // I - Mutex
 {
-  pthread_rwlock_init(rwlock, NULL);
+  if (mutex)
+    LeaveCriticalSection(mutex);
 }
 
 
-/*
- * '_cupsRWLockRead()' - Acquire a reader/writer lock for reading.
- */
+//
+// 'cupsRWDestroy()' - Destroy a reader/writer lock.
+//
 
 void
-_cupsRWLockRead(_cups_rwlock_t *rwlock)        /* I - Reader/writer lock */
+cupsRWDestroy(cups_rwlock_t *rwlock)   // I - Reader/writer lock
 {
-  pthread_rwlock_rdlock(rwlock);
+  (void)rwlock;
 }
 
 
-/*
- * '_cupsRWLockWrite()' - Acquire a reader/writer lock for writing.
- */
+//
+// 'cupsRWInit()' - Initialize a reader/writer lock.
+//
 
 void
-_cupsRWLockWrite(_cups_rwlock_t *rwlock)/* I - Reader/writer lock */
+cupsRWInit(cups_rwlock_t *rwlock)      // I - Reader/writer lock
 {
-  pthread_rwlock_wrlock(rwlock);
+  if (rwlock)
+    InitializeSRWLock(rwlock);
 }
 
 
-/*
- * '_cupsRWUnlock()' - Release a reader/writer lock.
- */
+//
+// 'cupsRWLockRead()' - Acquire a reader/writer lock for reading.
+//
 
 void
-_cupsRWUnlock(_cups_rwlock_t *rwlock)  /* I - Reader/writer lock */
+cupsRWLockRead(cups_rwlock_t *rwlock)  // I - Reader/writer lock
 {
-  pthread_rwlock_unlock(rwlock);
+  if (rwlock)
+    AcquireSRWLockShared(rwlock);
 }
 
 
-/*
- * '_cupsThreadCancel()' - Cancel (kill) a thread.
- */
+//
+// 'cupsRWLockWrite()' - Acquire a reader/writer lock for writing.
+//
 
 void
-_cupsThreadCancel(_cups_thread_t thread)/* I - Thread ID */
+cupsRWLockWrite(cups_rwlock_t *rwlock)// I - Reader/writer lock
 {
-  pthread_cancel(thread);
+  if (rwlock)
+    AcquireSRWLockExclusive(rwlock);
 }
 
 
-/*
- * '_cupsThreadCreate()' - Create a thread.
- */
+//
+// 'cupsRWUnlock()' - Release a reader/writer lock.
+//
 
-_cups_thread_t                         /* O - Thread ID */
-_cupsThreadCreate(
-    _cups_thread_func_t func,          /* I - Entry point */
-    void                *arg)          /* I - Entry point context */
+void
+cupsRWUnlock(cups_rwlock_t *rwlock)    // I - Reader/writer lock
 {
-  pthread_t thread;
+  if (rwlock)
+  {
+    void       *val = *(void **)rwlock;// Lock value
 
-  if (pthread_create(&thread, NULL, (void *(*)(void *))func, arg))
-    return (0);
-  else
-    return (thread);
+    if (val == (void *)1)
+      ReleaseSRWLockExclusive(rwlock);
+    else
+      ReleaseSRWLockShared(rwlock);
+  }
 }
 
 
-/*
- * '_cupsThreadDetach()' - Tell the OS that the thread is running independently.
- */
+//
+// 'cupsThreadCancel()' - Cancel (kill) a thread.
+//
 
 void
-_cupsThreadDetach(_cups_thread_t thread)/* I - Thread ID */
+cupsThreadCancel(cups_thread_t thread)// I - Thread ID
 {
-  pthread_detach(thread);
+  if (thread)
+    thread->canceled = true;
 }
 
 
-/*
- * '_cupsThreadWait()' - Wait for a thread to exit.
- */
+//
+// 'cupsThreadCreate()' - Create a thread.
+//
 
-void *                                 /* O - Return value */
-_cupsThreadWait(_cups_thread_t thread) /* I - Thread ID */
+cups_thread_t                          // O - Thread ID or `CUPS_THREAD_INVALID` on failure
+cupsThreadCreate(
+    cups_thread_func_t func,           // I - Entry point
+    void               *arg)           // I - Entry point context
 {
-  void *ret;                           /* Return value */
+  cups_thread_t        thread;                 // Thread data
 
 
-  if (pthread_join(thread, &ret))
-    return (NULL);
-  else
-    return (ret);
-}
-
+  if (!func)
+    return (CUPS_THREAD_INVALID);
 
-#elif defined(_WIN32)
-#  include <process.h>
+  if ((thread = (cups_thread_t)calloc(1, sizeof(struct _cups_thread_s))) == NULL)
+    return (CUPS_THREAD_INVALID);
 
+  thread->func = func;
+  thread->arg  = arg;
+  thread->h    = (HANDLE)_beginthreadex(NULL, 0, (LPTHREAD_START_ROUTINE)win32_wrapper, thread, 0, NULL);
 
-/*
- * '_cupsCondBroadcast()' - Wake up waiting threads.
- */
+  if (thread->h == 0 || thread->h == (HANDLE)-1)
+  {
+    free(thread);
+    return (CUPS_THREAD_INVALID);
+  }
 
-void
-_cupsCondBroadcast(_cups_cond_t *cond) /* I - Condition */
-{
-  // TODO: Implement me
+  return (thread);
 }
 
 
-/*
- * '_cupsCondInit()' - Initialize a condition variable.
- */
+//
+// 'cupsThreadDetach()' - Tell the OS that the thread is running independently.
+//
 
 void
-_cupsCondInit(_cups_cond_t *cond)      /* I - Condition */
+cupsThreadDetach(cups_thread_t thread)// I - Thread ID
 {
-  // TODO: Implement me
+  if (thread)
+  {
+    CloseHandle(thread->h);
+    thread->h = 0;
+  }
 }
 
 
-/*
- * '_cupsCondWait()' - Wait for a condition with optional timeout.
- */
+//
+// 'cupsThreadWait()' - Wait for a thread to exit.
+//
 
-void
-_cupsCondWait(_cups_cond_t  *cond,     /* I - Condition */
-              _cups_mutex_t *mutex,    /* I - Mutex */
-             double        timeout)    /* I - Timeout in seconds (0 or negative for none) */
+void *                                 // O - Return value
+cupsThreadWait(cups_thread_t thread)   // I - Thread ID
 {
-  // TODO: Implement me
-}
+  void *retval;                        // Return value
 
 
-/*
- * '_cupsMutexInit()' - Initialize a mutex.
- */
+  if (!thread)
+    return (NULL);
 
-void
-_cupsMutexInit(_cups_mutex_t *mutex)   /* I - Mutex */
-{
-  InitializeCriticalSection(&mutex->m_criticalSection);
-  mutex->m_init = 1;
+  win32_testcancel();
+
+  if (thread->h)
+  {
+    WaitForSingleObject(thread->h, INFINITE);
+    CloseHandle(thread->h);
+  }
+
+  retval = thread->retval;
+
+  free(thread);
+
+  return (retval);
 }
 
 
-/*
- * '_cupsMutexLock()' - Lock a mutex.
- */
+//
+// 'win32_self()' - Return the current thread.
+//
 
-void
-_cupsMutexLock(_cups_mutex_t *mutex)   /* I - Mutex */
+static cups_thread_t                   // O - Thread
+win32_self(void)
 {
-  if (!mutex->m_init)
-  {
-    _cupsGlobalLock();
+  cups_thread_t        thread;                 // Thread
+
 
-    if (!mutex->m_init)
+  if ((thread = TlsGetValue(win32_tls())) == NULL)
+  {
+    // Main thread, so create the info we need...
+    if ((thread = (cups_thread_t)calloc(1, sizeof(struct _cups_thread_s))) != NULL)
     {
-      InitializeCriticalSection(&mutex->m_criticalSection);
-      mutex->m_init = 1;
-    }
+      thread->h = GetCurrentThread();
+      TlsSetValue(win32_tls(), thread);
+
+      if (setjmp(thread->jumpbuf))
+      {
+        if (!thread->h)
+          free(thread);
 
-    _cupsGlobalUnlock();
+        _endthreadex(0);
+      }
+    }
   }
 
-  EnterCriticalSection(&mutex->m_criticalSection);
+  return (thread);
 }
 
 
-/*
- * '_cupsMutexUnlock()' - Unlock a mutex.
- */
+//
+// 'win32_testcancel()' - Mark a safe cancellation point.
+//
 
-void
-_cupsMutexUnlock(_cups_mutex_t *mutex) /* I - Mutex */
+static void
+win32_testcancel(void)
 {
-  LeaveCriticalSection(&mutex->m_criticalSection);
+  cups_thread_t        thread;                 // Current thread
+
+
+  // Go to the thread's exit handler if we've been canceled...
+  if ((thread = win32_self()) != NULL && thread->canceled)
+    longjmp(thread->jumpbuf, 1);
 }
 
 
-/*
- * '_cupsRWInit()' - Initialize a reader/writer lock.
- */
+//
+// 'win32_tls()' - Get the thread local storage key.
+//
 
-void
-_cupsRWInit(_cups_rwlock_t *rwlock)    /* I - Reader/writer lock */
+static DWORD                           // O - Key
+win32_tls(void)
 {
-  _cupsMutexInit((_cups_mutex_t *)rwlock);
-}
+  static DWORD tls = 0;                // Thread local storage key
+  static CRITICAL_SECTION tls_mutex = { (void*)-1, -1, 0, 0, 0, 0 };
+                                       // Lock for thread local storage access
 
 
-/*
- * '_cupsRWLockRead()' - Acquire a reader/writer lock for reading.
- */
+  EnterCriticalSection(&tls_mutex);
+  if (!tls)
+  {
+    if ((tls = TlsAlloc()) == TLS_OUT_OF_INDEXES)
+      abort();
+  }
+  LeaveCriticalSection(&tls_mutex);
 
-void
-_cupsRWLockRead(_cups_rwlock_t *rwlock)        /* I - Reader/writer lock */
-{
-  _cupsMutexLock((_cups_mutex_t *)rwlock);
+  return (tls);
 }
 
 
-/*
- * '_cupsRWLockWrite()' - Acquire a reader/writer lock for writing.
- */
+//
+// 'win32_wrapper()' - Wrapper function for a POSIX thread.
+//
 
-void
-_cupsRWLockWrite(_cups_rwlock_t *rwlock)/* I - Reader/writer lock */
+static int                             // O - Exit status
+win32_wrapper(cups_thread_t thread)    // I - Thread
 {
-  _cupsMutexLock((_cups_mutex_t *)rwlock);
-}
+  TlsSetValue(win32_tls(), thread);
+
+  if (!setjmp(thread->jumpbuf))
+  {
+    // Call function in thread...
+    thread->retval = (thread->func)(thread->arg);
+  }
 
+  // Clean up...
+  while (thread->h == (HANDLE)-1)
+  {
+    // win32_create hasn't finished initializing the handle...
+    YieldProcessor();
+    _ReadWriteBarrier();
+  }
 
-/*
- * '_cupsRWUnlock()' - Release a reader/writer lock.
- */
+  // Free if detached...
+  if (!thread->h)
+    free(thread);
 
-void
-_cupsRWUnlock(_cups_rwlock_t *rwlock)  /* I - Reader/writer lock */
-{
-  _cupsMutexUnlock((_cups_mutex_t *)rwlock);
+  return (0);
 }
 
 
-/*
- * '_cupsThreadCancel()' - Cancel (kill) a thread.
- */
+#else
+//
+// POSIX threading...
+//
+
+//
+// 'cupsCondBroadcast()' - Wake up waiting threads.
+//
 
 void
-_cupsThreadCancel(_cups_thread_t thread)/* I - Thread ID */
+cupsCondBroadcast(cups_cond_t *cond)   // I - Condition
 {
-  // TODO: Implement me
+  pthread_cond_broadcast(cond);
 }
 
 
-/*
- * '_cupsThreadCreate()' - Create a thread.
- */
+//
+// 'cupsCondDestroy()' - Destroy a condition variable.
+//
 
-_cups_thread_t                         /* O - Thread ID */
-_cupsThreadCreate(
-    _cups_thread_func_t func,          /* I - Entry point */
-    void                *arg)          /* I - Entry point context */
+void
+cupsCondDestroy(cups_cond_t *cond)     // I - Condition
 {
-  return (_beginthreadex(NULL, 0, (LPTHREAD_START_ROUTINE)func, arg, 0, NULL));
+  pthread_cond_destroy(cond);
 }
 
 
-/*
- * '_cupsThreadDetach()' - Tell the OS that the thread is running independently.
- */
+//
+// 'cupsCondInit()' - Initialize a condition variable.
+//
 
 void
-_cupsThreadDetach(_cups_thread_t thread)/* I - Thread ID */
+cupsCondInit(cups_cond_t *cond)                // I - Condition
 {
-  // TODO: Implement me
-  (void)thread;
+  pthread_cond_init(cond, NULL);
 }
 
 
-/*
- * '_cupsThreadWait()' - Wait for a thread to exit.
- */
+//
+// 'cupsCondWait()' - Wait for a condition with optional timeout.
+//
 
-void *                                 /* O - Return value */
-_cupsThreadWait(_cups_thread_t thread) /* I - Thread ID */
+void
+cupsCondWait(cups_cond_t  *cond,       // I - Condition
+            cups_mutex_t *mutex,       // I - Mutex
+            double       timeout)      // I - Timeout in seconds (`0` or negative for none)
 {
-  // TODO: Implement me
-  (void)thread;
+  if (timeout > 0.0)
+  {
+    struct timespec abstime;           // Timeout
 
-  return (NULL);
-}
+    clock_gettime(CLOCK_REALTIME, &abstime);
 
+    abstime.tv_sec  += (long)timeout;
+    abstime.tv_nsec += (long)(1000000000 * (timeout - (long)timeout));
 
-#else /* No threading */
-/*
- * '_cupsCondBroadcast()' - Wake up waiting threads.
- */
+    while (abstime.tv_nsec >= 1000000000)
+    {
+      abstime.tv_nsec -= 1000000000;
+      abstime.tv_sec ++;
+    };
 
-void
-_cupsCondBroadcast(_cups_cond_t *cond) /* I - Condition */
-{
-  // TODO: Implement me
+    (void)pthread_cond_timedwait(cond, mutex, &abstime);
+  }
+  else
+    (void)pthread_cond_wait(cond, mutex);
 }
 
 
-/*
- * '_cupsCondInit()' - Initialize a condition variable.
- */
+//
+// 'cupsMutexDestroy()' - Destroy a mutex.
+//
 
 void
-_cupsCondInit(_cups_cond_t *cond)      /* I - Condition */
+cupsMutexDestroy(cups_mutex_t *mutex)  // I - Mutex
 {
-  // TODO: Implement me
+  pthread_mutex_destroy(mutex);
 }
 
 
-/*
- * '_cupsCondWait()' - Wait for a condition with optional timeout.
- */
+//
+// 'cupsMutexInit()' - Initialize a mutex.
+//
 
 void
-_cupsCondWait(_cups_cond_t  *cond,     /* I - Condition */
-              _cups_mutex_t *mutex,    /* I - Mutex */
-             double        timeout)    /* I - Timeout in seconds (0 or negative for none) */
+cupsMutexInit(cups_mutex_t *mutex)     // I - Mutex
 {
-  // TODO: Implement me
+  pthread_mutex_init(mutex, NULL);
 }
 
 
-/*
- * '_cupsMutexInit()' - Initialize a mutex.
- */
+//
+// 'cupsMutexLock()' - Lock a mutex.
+//
 
 void
-_cupsMutexInit(_cups_mutex_t *mutex)   /* I - Mutex */
+cupsMutexLock(cups_mutex_t *mutex)     // I - Mutex
 {
-  (void)mutex;
+  pthread_mutex_lock(mutex);
 }
 
 
-/*
- * '_cupsMutexLock()' - Lock a mutex.
- */
+//
+// 'cupsMutexUnlock()' - Unlock a mutex.
+//
 
 void
-_cupsMutexLock(_cups_mutex_t *mutex)   /* I - Mutex */
+cupsMutexUnlock(cups_mutex_t *mutex)   // I - Mutex
 {
-  (void)mutex;
+  pthread_mutex_unlock(mutex);
 }
 
 
-/*
- * '_cupsMutexUnlock()' - Unlock a mutex.
- */
+//
+// 'cupsRWDestroy()' - Destroy a reader/writer lock.
+//
 
 void
-_cupsMutexUnlock(_cups_mutex_t *mutex) /* I - Mutex */
+cupsRWDestroy(cups_rwlock_t *rwlock)   // I - Reader/writer lock
 {
-  (void)mutex;
+  pthread_rwlock_destroy(rwlock);
 }
 
 
-/*
- * '_cupsRWInit()' - Initialize a reader/writer lock.
- */
+//
+// 'cupsRWInit()' - Initialize a reader/writer lock.
+//
 
 void
-_cupsRWInit(_cups_rwlock_t *rwlock)    /* I - Reader/writer lock */
+cupsRWInit(cups_rwlock_t *rwlock)      // I - Reader/writer lock
 {
-  (void)rwlock;
+  pthread_rwlock_init(rwlock, NULL);
 }
 
 
-/*
- * '_cupsRWLockRead()' - Acquire a reader/writer lock for reading.
- */
+//
+// 'cupsRWLockRead()' - Acquire a reader/writer lock for reading.
+//
 
 void
-_cupsRWLockRead(_cups_rwlock_t *rwlock)        /* I - Reader/writer lock */
+cupsRWLockRead(cups_rwlock_t *rwlock)  // I - Reader/writer lock
 {
-  (void)rwlock;
+  pthread_rwlock_rdlock(rwlock);
 }
 
 
-/*
- * '_cupsRWLockWrite()' - Acquire a reader/writer lock for writing.
- */
+//
+// 'cupsRWLockWrite()' - Acquire a reader/writer lock for writing.
+//
 
 void
-_cupsRWLockWrite(_cups_rwlock_t *rwlock)/* I - Reader/writer lock */
+cupsRWLockWrite(cups_rwlock_t *rwlock)// I - Reader/writer lock
 {
-  (void)rwlock;
+  pthread_rwlock_wrlock(rwlock);
 }
 
 
-/*
- * '_cupsRWUnlock()' - Release a reader/writer lock.
- */
+//
+// 'cupsRWUnlock()' - Release a reader/writer lock.
+//
 
 void
-_cupsRWUnlock(_cups_rwlock_t *rwlock)  /* I - Reader/writer lock */
+cupsRWUnlock(cups_rwlock_t *rwlock)    // I - Reader/writer lock
 {
-  (void)rwlock;
+  pthread_rwlock_unlock(rwlock);
 }
 
 
-/*
- * '_cupsThreadCancel()' - Cancel (kill) a thread.
- */
+//
+// 'cupsThreadCancel()' - Cancel (kill) a thread.
+//
 
 void
-_cupsThreadCancel(_cups_thread_t thread)/* I - Thread ID */
+cupsThreadCancel(cups_thread_t thread)// I - Thread ID
 {
-  (void)thread;
+  pthread_cancel(thread);
 }
 
 
-/*
- * '_cupsThreadCreate()' - Create a thread.
- */
+//
+// 'cupsThreadCreate()' - Create a thread.
+//
 
-_cups_thread_t                         /* O - Thread ID */
-_cupsThreadCreate(
-    _cups_thread_func_t func,          /* I - Entry point */
-    void                *arg)          /* I - Entry point context */
+cups_thread_t                          // O - Thread ID or `CUPS_THREAD_INVALID` on failure
+cupsThreadCreate(
+    cups_thread_func_t func,           // I - Entry point
+    void               *arg)           // I - Entry point context
 {
-  fputs("DEBUG: CUPS was compiled without threading support, no thread created.\n", stderr);
+  pthread_t thread;                    // Thread
 
-  (void)func;
-  (void)arg;
 
-  return (0);
+  if (pthread_create(&thread, NULL, (void *(*)(void *))func, arg))
+    return (CUPS_THREAD_INVALID);
+  else
+    return (thread);
 }
 
 
-/*
- * '_cupsThreadDetach()' - Tell the OS that the thread is running independently.
- */
+//
+// 'cupsThreadDetach()' - Tell the OS that the thread is running independently.
+//
 
 void
-_cupsThreadDetach(_cups_thread_t thread)/* I - Thread ID */
+cupsThreadDetach(cups_thread_t thread)// I - Thread ID
 {
-  (void)thread;
+  pthread_detach(thread);
 }
 
 
-/*
- * '_cupsThreadWait()' - Wait for a thread to exit.
- */
+//
+// 'cupsThreadWait()' - Wait for a thread to exit.
+//
 
-void *                                 /* O - Return value */
-_cupsThreadWait(_cups_thread_t thread) /* I - Thread ID */
+void *                                 // O - Return value
+cupsThreadWait(cups_thread_t thread)   // I - Thread ID
 {
-  (void)thread;
+  void *ret;                           // Return value
 
-  return (NULL);
-}
 
-#endif /* HAVE_PTHREAD_H */
+  if (pthread_join(thread, &ret))
+    return (NULL);
+  else
+    return (ret);
+}
+#endif // _WIN32
diff --git a/cups/thread.h b/cups/thread.h
new file mode 100644 (file)
index 0000000..c99428c
--- /dev/null
@@ -0,0 +1,96 @@
+//
+// Threading definitions for CUPS.
+//
+// Copyright Â© 2021-2022 by OpenPrinting.
+// Copyright Â©Â 2009-2017 by Apple Inc.
+//
+// Licensed under Apache License v2.0.  See the file "LICENSE" for more
+// information.
+//
+
+#ifndef _CUPS_THREAD_H_
+#  define _CUPS_THREAD_H_
+#  include "versioning.h"
+#  ifdef __cplusplus
+extern "C" {
+#  endif // __cplusplus
+
+
+//
+// Windows threading...
+//
+
+#  if _WIN32
+#    include <winsock2.h>
+#    include <process.h>
+#    include <windows.h>
+typedef void *(__stdcall *cups_thread_func_t)(void *arg);
+                                       // Thread function
+typedef struct _cups_thread_s *cups_thread_t;
+                                       // Thread identifier
+typedef CONDITION_VARIABLE cups_cond_t;        // Condition variable
+typedef CRITICAL_SECTION cups_mutex_t; // Mutual exclusion lock
+typedef SRWLOCK cups_rwlock_t;         // Reader/writer lock
+typedef DWORD  cups_thread_key_t;      // Thread data key
+#    define CUPS_COND_INITIALIZER { 0 }
+#    define CUPS_MUTEX_INITIALIZER { (void*)-1, -1, 0, 0, 0, 0 }
+#    define CUPS_RWLOCK_INITIALIZER { 0 }
+#    define CUPS_THREADKEY_INITIALIZER 0
+#    define cupsThreadGetData(k) TlsGetValue(k)
+#    define cupsThreadSetData(k,p) TlsSetValue(k,p)
+#  else
+
+
+//
+// POSIX threading...
+//
+
+#    include <pthread.h>
+typedef void *(*cups_thread_func_t)(void *arg);
+                                       // Thread function
+typedef pthread_t cups_thread_t;       // Thread identifier
+typedef pthread_cond_t cups_cond_t;    // Condition variable
+typedef pthread_mutex_t cups_mutex_t;  // Mutual exclusion lock
+typedef pthread_rwlock_t cups_rwlock_t;        // Reader/writer lock
+typedef pthread_key_t  cups_thread_key_t;
+                                       // Thread data key
+#    define CUPS_COND_INITIALIZER PTHREAD_COND_INITIALIZER
+#    define CUPS_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
+#    define CUPS_RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER
+#    define CUPS_THREADKEY_INITIALIZER 0
+#    define cupsThreadGetData(k) pthread_getspecific(k)
+#    define cupsThreadSetData(k,p) pthread_setspecific(k,p)
+#  endif // _WIN32
+#  define CUPS_THREAD_INVALID (cups_thread_t)0
+
+
+//
+// Functions...
+//
+
+extern void    cupsCondBroadcast(cups_cond_t *cond) _CUPS_PUBLIC;
+extern void    cupsCondDestroy(cups_cond_t *cond) _CUPS_PUBLIC;
+extern void    cupsCondInit(cups_cond_t *cond) _CUPS_PUBLIC;
+extern void    cupsCondWait(cups_cond_t *cond, cups_mutex_t *mutex, double timeout) _CUPS_PUBLIC;
+
+extern void    cupsMutexDestroy(cups_mutex_t *mutex) _CUPS_PUBLIC;
+extern void    cupsMutexInit(cups_mutex_t *mutex) _CUPS_PUBLIC;
+extern void    cupsMutexLock(cups_mutex_t *mutex) _CUPS_PUBLIC;
+extern void    cupsMutexUnlock(cups_mutex_t *mutex) _CUPS_PUBLIC;
+
+extern void    cupsRWDestroy(cups_rwlock_t *rwlock) _CUPS_PUBLIC;
+extern void    cupsRWInit(cups_rwlock_t *rwlock) _CUPS_PUBLIC;
+extern void    cupsRWLockRead(cups_rwlock_t *rwlock) _CUPS_PUBLIC;
+extern void    cupsRWLockWrite(cups_rwlock_t *rwlock) _CUPS_PUBLIC;
+extern void    cupsRWUnlock(cups_rwlock_t *rwlock) _CUPS_PUBLIC;
+
+extern void    cupsThreadCancel(cups_thread_t thread) _CUPS_PUBLIC;
+extern cups_thread_t cupsThreadCreate(cups_thread_func_t func, void *arg) _CUPS_PUBLIC;
+extern void     cupsThreadDetach(cups_thread_t thread) _CUPS_PUBLIC;
+extern void    *cupsThreadWait(cups_thread_t thread) _CUPS_PUBLIC;
+
+
+#  ifdef __cplusplus
+}
+#  endif // __cplusplus
+#endif // !_CUPS_THREAD_H_
index b1fc298bf9fb7452859eafc8942b6cef1d1a7136..f5bc285d00465bdfadb733192c3867982178c006 100644 (file)
@@ -29,7 +29,7 @@ static char           *tls_common_name = NULL;
 static gnutls_x509_crl_t tls_crl = NULL;/* Certificate revocation list */
 static char            *tls_keypath = NULL;
                                        /* Server cert keychain path */
-static _cups_mutex_t   tls_mutex = _CUPS_MUTEX_INITIALIZER;
+static cups_mutex_t    tls_mutex = CUPS_MUTEX_INITIALIZER;
                                        /* Mutex for keychain/certs */
 static int             tls_options = -1,/* Options for TLS connections */
                        tls_min_version = _HTTP_TLS_1_0,
@@ -282,7 +282,7 @@ cupsSetServerCredentials(
     return (0);
   }
 
-  _cupsMutexLock(&tls_mutex);
+  cupsMutexLock(&tls_mutex);
 
  /*
   * Free old values...
@@ -302,7 +302,7 @@ cupsSetServerCredentials(
   tls_auto_create = auto_create;
   tls_common_name = _cupsStrAlloc(common_name);
 
-  _cupsMutexUnlock(&tls_mutex);
+  cupsMutexUnlock(&tls_mutex);
 
   return (1);
 }
@@ -406,7 +406,7 @@ httpCredentialsAreValidForName(
       size_t           cserial_size,   /* Size of cert serial number */
                        rserial_size;   /* Size of revoked serial number */
 
-      _cupsMutexLock(&tls_mutex);
+      cupsMutexLock(&tls_mutex);
 
       if (gnutls_x509_crl_get_crt_count(tls_crl) > 0)
       {
@@ -428,7 +428,7 @@ httpCredentialsAreValidForName(
        gnutls_x509_crl_iter_deinit(iter);
       }
 
-      _cupsMutexUnlock(&tls_mutex);
+      cupsMutexUnlock(&tls_mutex);
     }
 
     gnutls_x509_crt_deinit(cert);
@@ -980,7 +980,7 @@ http_gnutls_default_path(char   *buffer,/* I - Path buffer */
 static void
 http_gnutls_load_crl(void)
 {
-  _cupsMutexLock(&tls_mutex);
+  cupsMutexLock(&tls_mutex);
 
   if (!gnutls_x509_crl_init(&tls_crl))
   {
@@ -1064,7 +1064,7 @@ http_gnutls_load_crl(void)
     }
   }
 
-  _cupsMutexUnlock(&tls_mutex);
+  cupsMutexUnlock(&tls_mutex);
 }
 
 
@@ -1407,7 +1407,7 @@ _httpTLSStart(http_t *http)               /* I - Connection to server */
     if (isdigit(hostname[0] & 255) || hostname[0] == '[')
       hostname[0] = '\0';              /* Don't allow numeric addresses */
 
-    _cupsMutexLock(&tls_mutex);
+    cupsMutexLock(&tls_mutex);
 
     if (hostname[0])
       cn = hostname;
@@ -1472,7 +1472,7 @@ _httpTLSStart(http_t *http)               /* I - Connection to server */
        http->error  = errno = EINVAL;
        http->status = HTTP_STATUS_ERROR;
        _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Unable to create server credentials."), 1);
-       _cupsMutexUnlock(&tls_mutex);
+       cupsMutexUnlock(&tls_mutex);
 
        return (-1);
       }
@@ -1480,7 +1480,7 @@ _httpTLSStart(http_t *http)               /* I - Connection to server */
 
     DEBUG_printf(("4_httpTLSStart: Using certificate \"%s\" and private key \"%s\".", crtfile, keyfile));
 
-    _cupsMutexUnlock(&tls_mutex);
+    cupsMutexUnlock(&tls_mutex);
 
     status = gnutls_certificate_set_x509_key_file(*credentials, crtfile, keyfile, GNUTLS_X509_FMT_PEM);
   }
index 804e45fdd7ac6e7f8abbeb7dbf74797e59205057..b3296c333f065a3d728de6e79ff28441c860a237 100644 (file)
@@ -52,7 +52,7 @@ static char           *tls_common_name = NULL;
 //static X509_CRL              *tls_crl = NULL;/* Certificate revocation list */
 static char            *tls_keypath = NULL;
                                        /* Server cert keychain path */
-static _cups_mutex_t   tls_mutex = _CUPS_MUTEX_INITIALIZER;
+static cups_mutex_t    tls_mutex = CUPS_MUTEX_INITIALIZER;
                                        /* Mutex for keychain/certs */
 static int             tls_options = -1,/* Options for TLS connections */
                        tls_min_version = _HTTP_TLS_1_0,
@@ -293,7 +293,7 @@ cupsSetServerCredentials(
     return (0);
   }
 
-  _cupsMutexLock(&tls_mutex);
+  cupsMutexLock(&tls_mutex);
 
  /*
   * Free old values...
@@ -313,7 +313,7 @@ cupsSetServerCredentials(
   tls_auto_create = auto_create;
   tls_common_name = _cupsStrAlloc(common_name);
 
-  _cupsMutexUnlock(&tls_mutex);
+  cupsMutexUnlock(&tls_mutex);
 
   return (1);
 }
@@ -1038,7 +1038,7 @@ _httpTLSStart(http_t *http)               // I - Connection to server
     else
       cn = tls_common_name;
 
-    _cupsMutexLock(&tls_mutex);
+    cupsMutexLock(&tls_mutex);
 
     if (cn)
     {
@@ -1087,13 +1087,13 @@ _httpTLSStart(http_t *http)             // I - Connection to server
        http->status = HTTP_STATUS_ERROR;
        _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Unable to create server credentials."), 1);
        SSL_CTX_free(context);
-        _cupsMutexUnlock(&tls_mutex);
+        cupsMutexUnlock(&tls_mutex);
 
        return (-1);
       }
     }
 
-    _cupsMutexUnlock(&tls_mutex);
+    cupsMutexUnlock(&tls_mutex);
 
     DEBUG_printf(("4_httpTLSStart: Using private key file '%s'.", keyfile));
     DEBUG_printf(("4_httpTLSStart: Using certificate file '%s'.", crtfile));
@@ -1134,7 +1134,7 @@ _httpTLSStart(http_t *http)               // I - Connection to server
   SSL_CTX_set_cipher_list(context, cipherlist);
 
   // Setup a TLS session
-  _cupsMutexLock(&tls_mutex);
+  cupsMutexLock(&tls_mutex);
   if (!tls_bio_method)
   {
     tls_bio_method = BIO_meth_new(BIO_get_new_index(), "http");
@@ -1145,7 +1145,7 @@ _httpTLSStart(http_t *http)               // I - Connection to server
     BIO_meth_set_puts(tls_bio_method, http_bio_puts);
     BIO_meth_set_write(tls_bio_method, http_bio_write);
   }
-  _cupsMutexUnlock(&tls_mutex);
+  cupsMutexUnlock(&tls_mutex);
 
   bio = BIO_new(tls_bio_method);
   BIO_ctrl(bio, BIO_C_SET_FILE_PTR, 0, (char *)http);
@@ -1482,7 +1482,7 @@ http_get_date(X509 *cert,         // I - Certificate
 static void
 http_load_crl(void)
 {
-  _cupsMutexLock(&tls_mutex);
+  cupsMutexLock(&tls_mutex);
 
   if (!openssl_x509_crl_init(&tls_crl))
   {
@@ -1566,7 +1566,7 @@ http_load_crl(void)
     }
   }
 
-  _cupsMutexUnlock(&tls_mutex);
+  cupsMutexUnlock(&tls_mutex);
 }
 #endif // 0
 
index 4267813192d76adac64d831bd629084368da9c6d..cbde6f426a5fc930418cb9832cba34ef65ee2fc7 100644 (file)
@@ -25,7 +25,7 @@
  */
 
 #ifdef HAVE_ICONV_H
-static _cups_mutex_t   map_mutex = _CUPS_MUTEX_INITIALIZER;
+static cups_mutex_t    map_mutex = CUPS_MUTEX_INITIALIZER;
                                        /* Mutex to control access to maps */
 static iconv_t         map_from_utf8 = (iconv_t)-1;
                                        /* Convert from UTF-8 to charset */
@@ -142,7 +142,7 @@ cupsCharsetToUTF8(
   */
 
 #ifdef HAVE_ICONV_H
-  _cupsMutexLock(&map_mutex);
+  cupsMutexLock(&map_mutex);
 
   if (map_encoding != encoding)
   {
@@ -167,12 +167,12 @@ cupsCharsetToUTF8(
     iconv(map_to_utf8, (char **)&src, &srclen, &altdestptr, &outBytesLeft);
     *altdestptr = '\0';
 
-    _cupsMutexUnlock(&map_mutex);
+    cupsMutexUnlock(&map_mutex);
 
     return ((int)(altdestptr - (char *)dest));
   }
 
-  _cupsMutexUnlock(&map_mutex);
+  cupsMutexUnlock(&map_mutex);
 #endif /* HAVE_ICONV_H */
 
  /*
@@ -271,7 +271,7 @@ cupsUTF8ToCharset(
   * Convert input UTF-8 to legacy charset...
   */
 
-  _cupsMutexLock(&map_mutex);
+  cupsMutexLock(&map_mutex);
 
   if (map_encoding != encoding)
   {
@@ -296,12 +296,12 @@ cupsUTF8ToCharset(
     iconv(map_from_utf8, &altsrc, &srclen, &destptr, &outBytesLeft);
     *destptr = '\0';
 
-    _cupsMutexUnlock(&map_mutex);
+    cupsMutexUnlock(&map_mutex);
 
     return ((int)(destptr - dest));
   }
 
-  _cupsMutexUnlock(&map_mutex);
+  cupsMutexUnlock(&map_mutex);
 #endif /* HAVE_ICONV_H */
 
  /*
index 50320a1cc6965fc552dcfc833a5b8877cbcd03d9..cef47cbcfc94297f5382188eb6560ef60eb521ed 100644 (file)
@@ -3,15 +3,56 @@ commandtops.o: commandtops.c ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/ppd.h ../cups/raster.h \
-  ../cups/sidechannel.h
+  ../cups/thread.h ../cups/ppd.h ../cups/raster.h ../cups/sidechannel.h
 gziptoany.o: gziptoany.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h
 common.o: common.c common.h ../cups/string-private.h ../config.h \
   ../cups/versioning.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/array.h ../cups/language.h ../cups/pwg.h \
@@ -41,6 +82,26 @@ rastertopwg.o: rastertopwg.c ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/ppd-private.h ../cups/ppd.h \
-  ../cups/raster.h
+  ../cups/thread.h ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h
index 5b5507ad15de8724253a5439593689748c1ae08c..f7238728675d47297116d34f91d7fd2a91979a47 100644 (file)
@@ -2,13 +2,54 @@ checkpo.o: checkpo.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h
 po2strings.o: po2strings.c ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
-strings2po.o: strings2po.c
+  ../cups/thread.h
index 5b9da267ff2836e68a951b20620b502ffed4332f..b661a89054f8ce9d89cc820063bf6868d36049f5 100644 (file)
@@ -2,12 +2,53 @@ bcp.o: bcp.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
   ../cups/versioning.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/ppd.h ../cups/raster.h
+  ../cups/thread.h ../cups/ppd.h ../cups/raster.h
 tbcp.o: tbcp.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/ppd.h \
-  ../cups/raster.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/ppd.h ../cups/raster.h
index 5846943eedafc0ed382fafd1c26f11adc1195573..9ed9e6da9c45f78b4db363b83db218114ce88a41 100644 (file)
@@ -5,8 +5,29 @@ mailto.o: mailto.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h
 rss.o: rss.c ../cups/cups.h ../cups/file.h ../cups/versioning.h \
   ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h \
   ../cups/pwg.h ../cups/string-private.h ../config.h \
@@ -16,5 +37,26 @@ testnotify.o: testnotify.c ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
index af0ac5b98c921a5ab8ea2a0023eb7bff5563d1cb..143f3711d0114d2db07b8ed0accb3a11edc36d94 100644 (file)
@@ -3,181 +3,726 @@ ppdc-array.o: ppdc-array.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-attr.o: ppdc-attr.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-catalog.o: ppdc-catalog.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-choice.o: ppdc-choice.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-constraint.o: ppdc-constraint.cxx ppdc-private.h ppdc.h \
   ../cups/file.h ../cups/versioning.h ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h \
   ../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-driver.o: ppdc-driver.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-file.o: ppdc-file.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-filter.o: ppdc-filter.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-font.o: ppdc-font.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-group.o: ppdc-group.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-import.o: ppdc-import.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/ppd.h ../cups/raster.h
+  ../cups/thread.h ../cups/ppd.h ../cups/raster.h
 ppdc-mediasize.o: ppdc-mediasize.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-message.o: ppdc-message.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-option.o: ppdc-option.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-profile.o: ppdc-profile.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-shared.o: ppdc-shared.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-source.o: ppdc-source.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/raster.h ../data/epson.h ../data/hp.h \
+  ../cups/thread.h ../cups/raster.h ../data/epson.h ../data/hp.h \
   ../data/label.h
 ppdc-string.o: ppdc-string.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc-variable.o: ppdc-variable.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 genstrings.o: genstrings.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdc.o: ppdc.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdhtml.o: ppdhtml.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdi.o: ppdi.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 ppdmerge.o: ppdmerge.cxx ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/ppd-private.h \
-  ../cups/ppd.h ../cups/raster.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h
 ppdpo.o: ppdpo.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 testcatalog.o: testcatalog.cxx ppdc-private.h ppdc.h ../cups/file.h \
   ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
index 519ecda61ee47f0f1fc1cd21d195e0e908cea733..bc63f9268744b70bb3a924bafca7fa067f2f2efb 100644 (file)
@@ -2,18 +2,60 @@ auth.o: auth.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
-  ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
-  statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
-  colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
+  client.h policy.h printers.h classes.h job.h colorman.h conf.h \
+  banners.h dirsvc.h network.h subscriptions.h
 banners.o: banners.c cupsd.h ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h ../cups/dir.h
@@ -21,18 +63,60 @@ cert.o: cert.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
-  ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
-  statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
-  colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
+  client.h policy.h printers.h classes.h job.h colorman.h conf.h \
+  banners.h dirsvc.h network.h subscriptions.h
 classes.o: classes.c cupsd.h ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
@@ -41,8 +125,29 @@ client.o: client.c cupsd.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
@@ -51,8 +156,29 @@ colorman.o: colorman.c cupsd.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
@@ -60,18 +186,60 @@ conf.o: conf.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
-  ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
-  statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
-  colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
+  client.h policy.h printers.h classes.h job.h colorman.h conf.h \
+  banners.h dirsvc.h network.h subscriptions.h
 dirsvc.o: dirsvc.c cupsd.h ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
@@ -79,46 +247,150 @@ env.o: env.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
-  ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
-  statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
-  colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
+  client.h policy.h printers.h classes.h job.h colorman.h conf.h \
+  banners.h dirsvc.h network.h subscriptions.h
 file.o: file.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
-  ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
-  statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
-  colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h \
-  ../cups/dir.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
+  client.h policy.h printers.h classes.h job.h colorman.h conf.h \
+  banners.h dirsvc.h network.h subscriptions.h ../cups/dir.h
 main.o: main.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
-  ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
-  statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
-  colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
+  client.h policy.h printers.h classes.h job.h colorman.h conf.h \
+  banners.h dirsvc.h network.h subscriptions.h
 ipp.o: ipp.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
-  ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
-  statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
-  colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
+  client.h policy.h printers.h classes.h job.h colorman.h conf.h \
+  banners.h dirsvc.h network.h subscriptions.h
 listen.o: listen.c cupsd.h ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
@@ -126,27 +398,90 @@ job.o: job.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
-  ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
-  statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
-  colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h \
-  ../cups/backend.h ../cups/dir.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
+  client.h policy.h printers.h classes.h job.h colorman.h conf.h \
+  banners.h dirsvc.h network.h subscriptions.h ../cups/backend.h \
+  ../cups/dir.h
 log.o: log.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
-  ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
-  statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
-  colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
+  client.h policy.h printers.h classes.h job.h colorman.h conf.h \
+  banners.h dirsvc.h network.h subscriptions.h
 network.o: network.c ../cups/http-private.h ../config.h \
   ../cups/language.h ../cups/array.h ../cups/versioning.h ../cups/http.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
-  ../cups/pwg.h cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+  ../cups/pwg.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../cups/array-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
+  ../cups/pwg-private.h ../cups/thread.h ../cups/file-private.h \
   ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
   statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
   colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h \
@@ -156,8 +491,29 @@ policy.o: policy.c cupsd.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
@@ -166,8 +522,29 @@ printers.o: printers.c cupsd.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h ../cups/dir.h
@@ -176,8 +553,29 @@ process.o: process.c cupsd.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
@@ -186,8 +584,29 @@ quotas.o: quotas.c cupsd.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
@@ -196,17 +615,59 @@ select.o: select.c cupsd.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
 server.o: server.c ../cups/http-private.h ../config.h ../cups/language.h \
   ../cups/array.h ../cups/versioning.h ../cups/http.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
-  ../cups/pwg.h cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+  ../cups/pwg.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  cupsd.h ../cups/cups-private.h ../cups/string-private.h \
   ../cups/array-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/file-private.h \
+  ../cups/pwg-private.h ../cups/thread.h ../cups/file-private.h \
   ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h mime.h sysman.h \
   statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
   colorman.h conf.h banners.h dirsvc.h network.h subscriptions.h
@@ -215,8 +676,29 @@ statbuf.o: statbuf.c cupsd.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
@@ -225,8 +707,29 @@ subscriptions.o: subscriptions.c cupsd.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
@@ -235,42 +738,127 @@ sysman.o: sysman.c cupsd.h ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h sysman.h statbuf.h cert.h auth.h \
   client.h policy.h printers.h classes.h job.h colorman.h conf.h \
   banners.h dirsvc.h network.h subscriptions.h
 filter.o: filter.c ../cups/string-private.h ../config.h \
   ../cups/versioning.h mime.h ../cups/array.h ../cups/ipp.h \
-  ../cups/http.h ../cups/file.h
+  ../cups/http.h ../cups/file.h ../cups/thread.h
 mime.o: mime.c ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/dir.h mime-private.h mime.h ../cups/array.h ../cups/ipp.h \
-  ../cups/http.h ../cups/file.h
+  ../cups/http.h ../cups/file.h ../cups/thread.h
 type.o: type.c ../cups/string-private.h ../config.h ../cups/versioning.h \
-  mime.h ../cups/array.h ../cups/ipp.h ../cups/http.h ../cups/file.h
+  mime.h ../cups/array.h ../cups/ipp.h ../cups/http.h ../cups/file.h \
+  ../cups/thread.h
 cupsfilter.o: cupsfilter.c ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/file-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/file-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h mime.h
 cups-deviced.o: cups-deviced.c util.h ../cups/array-private.h \
   ../cups/array.h ../cups/versioning.h ../cups/file-private.h \
   ../cups/cups-private.h ../cups/string-private.h ../config.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/dir.h
+  ../cups/thread.h ../cups/dir.h
 cups-exec.o: cups-exec.c ../cups/string-private.h ../config.h \
   ../cups/versioning.h ../cups/file.h
 cups-lpd.o: cups-lpd.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h
 testlpd.o: testlpd.c ../cups/cups.h ../cups/file.h ../cups/versioning.h \
   ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h \
   ../cups/pwg.h ../cups/string-private.h ../config.h
@@ -278,7 +866,8 @@ testmime.o: testmime.c ../cups/string-private.h ../config.h \
   ../cups/versioning.h ../cups/dir.h ../cups/debug-private.h \
   ../cups/ppd-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/array.h ../cups/language.h ../cups/pwg.h \
-  ../cups/ppd.h ../cups/raster.h ../cups/pwg-private.h mime.h
+  ../cups/ppd.h ../cups/raster.h ../cups/pwg-private.h mime.h \
+  ../cups/thread.h
 testspeed.o: testspeed.c ../cups/string-private.h ../config.h \
   ../cups/versioning.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/array.h ../cups/language.h ../cups/pwg.h \
@@ -292,13 +881,55 @@ util.o: util.c util.h ../cups/array-private.h ../cups/array.h \
   ../cups/string-private.h ../config.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 cups-driverd.o: cups-driverd.cxx util.h ../cups/array-private.h \
   ../cups/array.h ../cups/versioning.h ../cups/file-private.h \
   ../cups/cups-private.h ../cups/string-private.h ../config.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/dir.h ../cups/ppd-private.h \
-  ../cups/ppd.h ../cups/raster.h ../ppdc/ppdc.h
+  ../cups/thread.h ../cups/dir.h ../cups/ppd-private.h ../cups/ppd.h \
+  ../cups/raster.h ../ppdc/ppdc.h
index 04b710a8d881c248a117ee52834e70640ac1c1cd..5fb042899bc2da751e1333ab01af0229492cfa4c 100644 (file)
@@ -1026,11 +1026,11 @@ cupsdReadClient(cupsd_client_t *con)    /* I - Client to read from */
 
             if ((filename = get_file(con, &filestats, buf, sizeof(buf))) != NULL)
             {
-             _cupsRWLockRead(&MimeDatabase->lock);
+             cupsRWLockRead(&MimeDatabase->lock);
 
              type = mimeFileType(MimeDatabase, filename, NULL, NULL);
 
-             _cupsRWUnlock(&MimeDatabase->lock);
+             cupsRWUnlock(&MimeDatabase->lock);
 
               cupsdLogClient(con, CUPSD_LOG_DEBUG, "filename=\"%s\", type=%s/%s", filename, type ? type->super : "", type ? type->type : "");
 
index da22ff2d3cea0dca3b1788917611086e167e0a7a..adc2226257469ec2d4cbf219f7a549697f0e7f94 100644 (file)
@@ -1560,14 +1560,14 @@ cupsdReadConfiguration(void)
 
     MimeDatabase = mimeNew();
     mimeSetErrorCallback(MimeDatabase, mime_error_cb, NULL);
-    _cupsRWInit(&MimeDatabase->lock);
+    cupsRWInit(&MimeDatabase->lock);
 
-    _cupsRWLockWrite(&MimeDatabase->lock);
+    cupsRWLockWrite(&MimeDatabase->lock);
     MimeDatabase = mimeLoadTypes(MimeDatabase, mimedir);
     MimeDatabase = mimeLoadTypes(MimeDatabase, ServerRoot);
     MimeDatabase = mimeLoadFilters(MimeDatabase, mimedir, temp);
     MimeDatabase = mimeLoadFilters(MimeDatabase, ServerRoot, temp);
-    _cupsRWUnlock(&MimeDatabase->lock);
+    cupsRWUnlock(&MimeDatabase->lock);
 
     if (!MimeDatabase)
     {
index de0084b36fba8226295480d99b0f27d45143231c..039167980c008486fb6a118af01a64e5f62bea27 100644 (file)
@@ -2716,7 +2716,7 @@ add_printer(cupsd_client_t  *con, /* I - Client connection */
       }
 
       // Run a background thread to create the PPD...
-      _cupsThreadCreate((_cups_thread_func_t)create_local_bg_thread, printer);
+      cupsThreadCreate((cups_thread_func_t)create_local_bg_thread, printer);
     }
     else if (!strcmp(ppd_name, "raw"))
     {
@@ -4912,7 +4912,7 @@ copy_printer_attrs(
   * and document-format attributes that may be provided by the client.
   */
 
-  _cupsRWLockRead(&printer->lock);
+  cupsRWLockRead(&printer->lock);
 
   curtime = time(NULL);
 
@@ -5079,7 +5079,7 @@ copy_printer_attrs(
     copy_attrs(con->response, printer->ppd_attrs, ra, IPP_TAG_ZERO, 0, NULL);
   copy_attrs(con->response, CommonData, ra, IPP_TAG_ZERO, IPP_TAG_COPY, NULL);
 
-  _cupsRWUnlock(&printer->lock);
+  cupsRWUnlock(&printer->lock);
 }
 
 
@@ -5429,7 +5429,7 @@ create_local_bg_thread(
 
   if (_ppdCreateFromIPP(fromppd, sizeof(fromppd), response))
   {
-    _cupsRWLockWrite(&printer->lock);
+    cupsRWLockWrite(&printer->lock);
 
     if ((!printer->info || !*(printer->info)) && (attr = ippFindAttribute(response, "printer-info", IPP_TAG_TEXT)) != NULL)
       cupsdSetString(&printer->info, ippGetString(attr, 0, NULL));
@@ -5440,7 +5440,7 @@ create_local_bg_thread(
     if ((!printer->geo_location || !*(printer->geo_location)) && (attr = ippFindAttribute(response, "printer-geo-location", IPP_TAG_URI)) != NULL)
       cupsdSetString(&printer->geo_location, ippGetString(attr, 0, NULL));
 
-    _cupsRWUnlock(&printer->lock);
+    cupsRWUnlock(&printer->lock);
 
     if ((from = cupsFileOpen(fromppd, "r")) == NULL)
     {
@@ -5680,7 +5680,7 @@ create_local_printer(
   * Run a background thread to create the PPD...
   */
 
-  _cupsThreadCreate((_cups_thread_func_t)create_local_bg_thread, printer);
+  cupsThreadCreate((cups_thread_func_t)create_local_bg_thread, printer);
 
  /*
   * Return printer attributes...
@@ -8704,7 +8704,7 @@ print_job(cupsd_client_t  *con,           /* I - Client connection */
     strlcpy(type, "octet-stream", sizeof(type));
   }
 
-  _cupsRWLockRead(&MimeDatabase->lock);
+  cupsRWLockRead(&MimeDatabase->lock);
 
   if (!strcmp(super, "application") && !strcmp(type, "octet-stream"))
   {
@@ -8731,7 +8731,7 @@ print_job(cupsd_client_t  *con,           /* I - Client connection */
   else
     filetype = mimeType(MimeDatabase, super, type);
 
-  _cupsRWUnlock(&MimeDatabase->lock);
+  cupsRWUnlock(&MimeDatabase->lock);
 
   if (filetype &&
       (!format ||
@@ -9952,7 +9952,7 @@ send_document(cupsd_client_t  *con,       /* I - Client connection */
     strlcpy(type, "octet-stream", sizeof(type));
   }
 
-  _cupsRWLockRead(&MimeDatabase->lock);
+  cupsRWLockRead(&MimeDatabase->lock);
 
   if (!strcmp(super, "application") && !strcmp(type, "octet-stream"))
   {
@@ -9983,7 +9983,7 @@ send_document(cupsd_client_t  *con,       /* I - Client connection */
   else
     filetype = mimeType(MimeDatabase, super, type);
 
-  _cupsRWUnlock(&MimeDatabase->lock);
+  cupsRWUnlock(&MimeDatabase->lock);
 
   if (filetype)
   {
@@ -11472,7 +11472,7 @@ validate_job(cupsd_client_t  *con,      /* I - Client connection */
       return;
     }
 
-    _cupsRWLockRead(&MimeDatabase->lock);
+    cupsRWLockRead(&MimeDatabase->lock);
 
     if ((strcmp(super, "application") || strcmp(type, "octet-stream")) &&
        !mimeType(MimeDatabase, super, type))
@@ -11485,12 +11485,12 @@ validate_job(cupsd_client_t  *con,    /* I - Client connection */
       ippAddString(con->response, IPP_TAG_UNSUPPORTED_GROUP, IPP_TAG_MIMETYPE,
                    "document-format", NULL, format->values[0].string.text);
 
-      _cupsRWUnlock(&MimeDatabase->lock);
+      cupsRWUnlock(&MimeDatabase->lock);
 
       return;
     }
 
-    _cupsRWUnlock(&MimeDatabase->lock);
+    cupsRWUnlock(&MimeDatabase->lock);
   }
 
  /*
index 49e4fa3379521eb575f736d8f0ef375ede1829f5..89afab4b2ec044759feb43d7f6e5831efd21e6ad 100644 (file)
@@ -585,7 +585,7 @@ cupsdContinueJob(cupsd_job_t *job)  /* I - Job */
     if (stat(filename, &fileinfo))
       fileinfo.st_size = 0;
 
-    _cupsRWLockWrite(&MimeDatabase->lock);
+    cupsRWLockWrite(&MimeDatabase->lock);
 
     if (job->retry_as_raster)
     {
@@ -622,7 +622,7 @@ cupsdContinueJob(cupsd_job_t *job)  /* I - Job */
 
       ippSetString(job->attrs, &job->reasons, 0, "document-unprintable-error");
 
-      _cupsRWUnlock(&MimeDatabase->lock);
+      cupsRWUnlock(&MimeDatabase->lock);
 
       goto abort_job;
     }
@@ -711,7 +711,7 @@ cupsdContinueJob(cupsd_job_t *job)  /* I - Job */
       filters = prefilters;
     }
 
-    _cupsRWUnlock(&MimeDatabase->lock);
+    cupsRWUnlock(&MimeDatabase->lock);
   }
 
  /*
@@ -1923,7 +1923,7 @@ cupsdLoadJob(cupsd_job_t *job)            /* I - Job */
     * Find all the d##### files...
     */
 
-    _cupsRWLockRead(&MimeDatabase->lock);
+    cupsRWLockRead(&MimeDatabase->lock);
 
     for (fileid = 1; fileid < 10000; fileid ++)
     {
@@ -1990,7 +1990,7 @@ cupsdLoadJob(cupsd_job_t *job)            /* I - Job */
                                              "vnd.cups-raw");
     }
 
-    _cupsRWUnlock(&MimeDatabase->lock);
+    cupsRWUnlock(&MimeDatabase->lock);
   }
 
  /*
@@ -4512,7 +4512,7 @@ load_job_cache(const char *filename)      /* I - job.cache filename */
 
       number --;
 
-      _cupsRWLockRead(&MimeDatabase->lock);
+      cupsRWLockRead(&MimeDatabase->lock);
 
       job->compressions[number] = compression;
       job->filetypes[number]    = mimeType(MimeDatabase, super, type);
@@ -4541,7 +4541,7 @@ load_job_cache(const char *filename)      /* I - job.cache filename */
                                            "vnd.cups-raw");
       }
 
-      _cupsRWUnlock(&MimeDatabase->lock);
+      cupsRWUnlock(&MimeDatabase->lock);
     }
     else
       cupsdLogMessage(CUPSD_LOG_ERROR, "Unknown %s directive on line %d of %s.", line, linenum, filename);
index 8aafb66b723f38fe6b757c82570bcff48f302176..bd807a56ca8b8e03b2417a4d66bd4fc610203041 100644 (file)
@@ -56,7 +56,7 @@
  * Local globals...
  */
 
-static _cups_mutex_t log_mutex = _CUPS_MUTEX_INITIALIZER;
+static cups_mutex_t log_mutex = CUPS_MUTEX_INITIALIZER;
                                        /* Mutex for logging */
 static size_t  log_linesize = 0;       /* Size of line for output file */
 static char    *log_line = NULL;       /* Line for output file */
@@ -1256,7 +1256,7 @@ cupsdWriteErrorLog(int        level,      /* I - Log level */
   * Not using syslog; check the log file...
   */
 
-  _cupsMutexLock(&log_mutex);
+  cupsMutexLock(&log_mutex);
 
   if (!cupsdCheckLogFile(&ErrorFile, ErrorLog))
   {
@@ -1273,7 +1273,7 @@ cupsdWriteErrorLog(int        level,      /* I - Log level */
     cupsFileFlush(ErrorFile);
   }
 
-  _cupsMutexUnlock(&log_mutex);
+  cupsMutexUnlock(&log_mutex);
 
   return (ret);
 }
index ea71415b06fe20cae10ee8e0c4f4d74e38e4e72d..f11a1971edc7cce646582e6188ddd806c9ff3cc9 100644 (file)
@@ -13,7 +13,7 @@
 #  include <cups/array.h>
 #  include <cups/ipp.h>
 #  include <cups/file.h>
-#  include <cups/thread-private.h>
+#  include <cups/thread.h>
 #  include <regex.h>
 
 
@@ -107,7 +107,7 @@ typedef struct _mime_s                      /**** MIME Database ****/
   cups_array_t         *srcs;          /* Filters sorted by source type */
   mime_error_cb_t      error_cb;       /* Error message callback */
   void                 *error_ctx;     /* Pointer for callback */
-  _cups_rwlock_t       lock;   /* Read/write lock for guarding data for background updates */
+  cups_rwlock_t        lock;   /* Read/write lock for guarding data for background updates */
 } mime_t;
 
 
index 5f9852e64f661e3242ea7f30a1ba84bc4261cc3f..27f656e31ef1663bc5990e33e9e2e28554f43106 100644 (file)
@@ -79,7 +79,7 @@ cupsdAddPrinter(const char *name)     /* I - Name of printer */
     return (NULL);
   }
 
-  _cupsRWInit(&p->lock);
+  cupsRWInit(&p->lock);
 
   cupsdSetString(&p->name, name);
   cupsdSetString(&p->info, name);
@@ -98,11 +98,11 @@ cupsdAddPrinter(const char *name)   /* I - Name of printer */
   p->accepting   = 0;
   p->shared      = DefaultShared;
 
-  _cupsRWLockWrite(&MimeDatabase->lock);
+  cupsRWLockWrite(&MimeDatabase->lock);
 
   p->filetype    = mimeAddType(MimeDatabase, "printer", name);
 
-  _cupsRWUnlock(&MimeDatabase->lock);
+  cupsRWUnlock(&MimeDatabase->lock);
 
   cupsdSetString(&p->job_sheets[0], "none");
   cupsdSetString(&p->job_sheets[1], "none");
@@ -706,7 +706,7 @@ cupsdDeletePrinter(
   if (p->printers != NULL)
     free(p->printers);
 
-  _cupsRWLockWrite(&MimeDatabase->lock);
+  cupsRWLockWrite(&MimeDatabase->lock);
 
   delete_printer_filters(p);
 
@@ -721,7 +721,7 @@ cupsdDeletePrinter(
   mimeDeleteType(MimeDatabase, p->filetype);
   mimeDeleteType(MimeDatabase, p->prefiltertype);
 
-  _cupsRWUnlock(&MimeDatabase->lock);
+  cupsRWUnlock(&MimeDatabase->lock);
 
   cupsdFreeStrings(&(p->users));
   cupsdFreeQuotas(p);
@@ -1365,7 +1365,7 @@ cupsdRenamePrinter(
   * Rename the printer type...
   */
 
-  _cupsRWLockWrite(&MimeDatabase->lock);
+  cupsRWLockWrite(&MimeDatabase->lock);
 
   mimeDeleteType(MimeDatabase, p->filetype);
   p->filetype = mimeAddType(MimeDatabase, "printer", name);
@@ -1376,7 +1376,7 @@ cupsdRenamePrinter(
     p->prefiltertype = mimeAddType(MimeDatabase, "prefilter", name);
   }
 
-  _cupsRWUnlock(&MimeDatabase->lock);
+  cupsRWUnlock(&MimeDatabase->lock);
 
  /*
   * Rename the printer...
@@ -2193,8 +2193,8 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)/* I - Printer to setup */
   if (!CommonData)
     cupsdCreateCommonData();
 
-  _cupsRWLockWrite(&p->lock);
-  _cupsRWLockWrite(&MimeDatabase->lock);
+  cupsRWLockWrite(&p->lock);
+  cupsRWLockWrite(&MimeDatabase->lock);
 
  /*
   * Clear out old filters, if any...
@@ -2515,7 +2515,7 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)/* I - Printer to setup */
 
   add_printer_formats(p);
 
-  _cupsRWUnlock(&MimeDatabase->lock);
+  cupsRWUnlock(&MimeDatabase->lock);
 
  /*
   * Add name-default attributes...
@@ -2523,7 +2523,7 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)/* I - Printer to setup */
 
   add_printer_defaults(p);
 
-  _cupsRWUnlock(&p->lock);
+  cupsRWUnlock(&p->lock);
 
  /*
   * Let the browse protocols reflect the change
@@ -3452,7 +3452,7 @@ add_printer_filter(
     }
 
     do
-    {  
+    {
       ptr ++;
     } while (_cups_isspace(*ptr));
 
index 83624de666b46b2ec1d8d769cb8a23a6f5357eb4..598e1d619b6899bc5e55b7c04880d3ab551eb081 100644 (file)
@@ -54,7 +54,7 @@ typedef struct cupsd_job_s cupsd_job_t;
 
 struct cupsd_printer_s
 {
-  _cups_rwlock_t lock;                 /* Concurrency lock for background updates */
+  cups_rwlock_t lock;                  /* Concurrency lock for background updates */
   int          printer_id;             /* Printer ID */
   char         *uri,                   /* Printer URI */
                *uuid,                  /* Printer UUID */
index 1971cdf09f195ca025123ffe9115fc2ecf339e61..c97fd5b42e6f7b014074a9f154ac1201c33198ec 100644 (file)
@@ -2,64 +2,272 @@ cancel.o: cancel.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h
 cupsaccept.o: cupsaccept.c ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 cupsctl.o: cupsctl.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/adminutil.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/adminutil.h
 cupstestppd.o: cupstestppd.c ../cups/cups-private.h \
   ../cups/string-private.h ../config.h ../cups/versioning.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/dir.h ../cups/ppd-private.h \
-  ../cups/ppd.h ../cups/raster.h
+  ../cups/thread.h ../cups/dir.h ../cups/ppd-private.h ../cups/ppd.h \
+  ../cups/raster.h
 lp.o: lp.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
   ../cups/versioning.h ../cups/array-private.h ../cups/array.h \
   ../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
   ../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h
+  ../cups/thread.h
 lpadmin.o: lpadmin.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/ppd-private.h \
-  ../cups/ppd.h ../cups/raster.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h
 lpinfo.o: lpinfo.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/adminutil.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/adminutil.h
 lpmove.o: lpmove.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h
 lpoptions.o: lpoptions.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h ../cups/ppd-private.h \
-  ../cups/ppd.h ../cups/raster.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h ../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h
 lpstat.o: lpstat.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h
index 9ee1f7f6f5aae0b45ceb4cad9f043e81b7351dc7..e25b67f638a701b80b8ab63df9da53acefca7fbe 100644 (file)
@@ -7,8 +7,29 @@ ippeveprinter.o: ippeveprinter.c ../cups/cups-private.h \
   ../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
   ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
   ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
+  /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
   ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
-  ../cups/thread-private.h ../cups/debug-private.h ../cups/ppd-private.h \
+  ../cups/thread.h ../cups/debug-private.h ../cups/ppd-private.h \
   ../cups/ppd.h ../cups/raster.h printer-png.h printer-lg-png.h \
   printer-sm-png.h
 ippeveps.o: ippeveps.c ippevecommon.h ../cups/cups.h ../cups/file.h \
@@ -20,11 +41,53 @@ ippfind.o: ippfind.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h
 ipptool.o: ipptool.c ../cups/cups-private.h ../cups/string-private.h \
   ../config.h ../cups/versioning.h ../cups/array-private.h \
   ../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
   ../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
-  ../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
-  ../cups/pwg-private.h ../cups/thread-private.h
+  ../cups/http-private.h /usr/local/include/openssl/err.h \
+  /usr/local/include/openssl/opensslconf.h \
+  /usr/local/include/openssl/opensslfeatures.h \
+  /usr/local/include/openssl/ossl_typ.h /usr/local/include/openssl/bio.h \
+  /usr/local/include/openssl/crypto.h /usr/local/include/openssl/stack.h \
+  /usr/local/include/openssl/safestack.h \
+  /usr/local/include/openssl/opensslv.h \
+  /usr/local/include/openssl/lhash.h /usr/local/include/openssl/rand.h \
+  /usr/local/include/openssl/ssl.h /usr/local/include/openssl/hmac.h \
+  /usr/local/include/openssl/evp.h /usr/local/include/openssl/objects.h \
+  /usr/local/include/openssl/obj_mac.h /usr/local/include/openssl/asn1.h \
+  /usr/local/include/openssl/bn.h /usr/local/include/openssl/pem.h \
+  /usr/local/include/openssl/x509.h /usr/local/include/openssl/buffer.h \
+  /usr/local/include/openssl/ec.h /usr/local/include/openssl/ecdsa.h \
+  /usr/local/include/openssl/ecdh.h /usr/local/include/openssl/rsa.h \
+  /usr/local/include/openssl/dsa.h /usr/local/include/openssl/dh.h \
+  /usr/local/include/openssl/sha.h /usr/local/include/openssl/x509_vfy.h \
+  /usr/local/include/openssl/pkcs7.h /usr/local/include/openssl/pem2.h \
+  /usr/local/include/openssl/ssl2.h /usr/local/include/openssl/ssl3.h \
+  /usr/local/include/openssl/tls1.h /usr/local/include/openssl/dtls1.h \
+  /usr/local/include/openssl/ssl23.h /usr/local/include/openssl/srtp.h \
+  ../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
+  ../cups/thread.h
index 47c477ef1471cc9bbe82b4358b4b0378362deb2f..fd8fbe7d7c3e58786d85c2d196af1805546a0216 100644 (file)
@@ -218,7 +218,7 @@ typedef struct ippeve_printer_s             /**** Printer data ****/
   cups_array_t         *jobs;          /* Jobs */
   ippeve_job_t         *active_job;    /* Current active/pending job */
   int                  next_job_id;    /* Next job-id value */
-  _cups_rwlock_t       rwlock;         /* Printer lock */
+  cups_rwlock_t        rwlock;         /* Printer lock */
 } ippeve_printer_t;
 
 struct ippeve_job_s                    /**** Job data ****/
@@ -851,7 +851,7 @@ clean_jobs(ippeve_printer_t *printer)       /* I - Printer */
 
   cleantime = time(NULL) - 60;
 
-  _cupsRWLockWrite(&(printer->rwlock));
+  cupsRWLockWrite(&(printer->rwlock));
   for (job = (ippeve_job_t *)cupsArrayFirst(printer->jobs);
        job;
        job = (ippeve_job_t *)cupsArrayNext(printer->jobs))
@@ -862,7 +862,7 @@ clean_jobs(ippeve_printer_t *printer)       /* I - Printer */
     }
     else
       break;
-  _cupsRWUnlock(&(printer->rwlock));
+  cupsRWUnlock(&(printer->rwlock));
 }
 
 
@@ -1118,7 +1118,7 @@ create_job(ippeve_client_t *client)       /* I - Client */
                        uuid[64];       /* job-uuid value */
 
 
-  _cupsRWLockWrite(&(client->printer->rwlock));
+  cupsRWLockWrite(&(client->printer->rwlock));
   if (client->printer->active_job &&
       client->printer->active_job->state < IPP_JSTATE_CANCELED)
   {
@@ -1126,7 +1126,7 @@ create_job(ippeve_client_t *client)       /* I - Client */
     * Only accept a single job at a time...
     */
 
-    _cupsRWUnlock(&(client->printer->rwlock));
+    cupsRWUnlock(&(client->printer->rwlock));
     return (NULL);
   }
 
@@ -1137,7 +1137,7 @@ create_job(ippeve_client_t *client)       /* I - Client */
   if ((job = calloc(1, sizeof(ippeve_job_t))) == NULL)
   {
     perror("Unable to allocate memory for job");
-    _cupsRWUnlock(&(client->printer->rwlock));
+    cupsRWUnlock(&(client->printer->rwlock));
     return (NULL);
   }
 
@@ -1213,7 +1213,7 @@ create_job(ippeve_client_t *client)       /* I - Client */
   cupsArrayAdd(client->printer->jobs, job);
   client->printer->active_job = job;
 
-  _cupsRWUnlock(&(client->printer->rwlock));
+  cupsRWUnlock(&(client->printer->rwlock));
 
   return (job);
 }
@@ -1706,7 +1706,7 @@ create_printer(
     printer->hostname = strdup(temp);
   }
 
-  _cupsRWInit(&(printer->rwlock));
+  cupsRWInit(&(printer->rwlock));
 
  /*
   * Create the listener sockets...
@@ -2345,9 +2345,9 @@ find_job(ippeve_client_t *client)         /* I - Client */
   else if ((attr = ippFindAttribute(client->request, "job-id", IPP_TAG_INTEGER)) != NULL)
     key.id = ippGetInteger(attr, 0);
 
-  _cupsRWLockRead(&(client->printer->rwlock));
+  cupsRWLockRead(&(client->printer->rwlock));
   job = (ippeve_job_t *)cupsArrayFind(client->printer->jobs, &key);
-  _cupsRWUnlock(&(client->printer->rwlock));
+  cupsRWUnlock(&(client->printer->rwlock));
 
   return (job);
 }
@@ -2366,7 +2366,7 @@ finish_document_data(
                        buffer[4096];   /* Copy buffer */
   ssize_t              bytes;          /* Bytes read */
   cups_array_t         *ra;            /* Attributes to send in response */
-  _cups_thread_t        t;              /* Thread */
+  cups_thread_t        t;              /* Thread */
 
 
  /*
@@ -2439,11 +2439,11 @@ finish_document_data(
   * Process the job...
   */
 
-  t = _cupsThreadCreate((_cups_thread_func_t)process_job, job);
+  t = cupsThreadCreate((cups_thread_func_t)process_job, job);
 
   if (t)
   {
-    _cupsThreadDetach(t);
+    cupsThreadDetach(t);
   }
   else
   {
@@ -2574,7 +2574,7 @@ finish_document_uri(
   * Get the document format for the job...
   */
 
-  _cupsRWLockWrite(&(client->printer->rwlock));
+  cupsRWLockWrite(&(client->printer->rwlock));
 
   if ((attr = ippFindAttribute(job->attrs, "document-format", IPP_TAG_MIMETYPE)) != NULL)
     job->format = ippGetString(attr, 0, NULL);
@@ -2587,14 +2587,14 @@ finish_document_uri(
 
   if ((job->fd = create_job_file(job, filename, sizeof(filename), client->printer->directory, NULL)) < 0)
   {
-    _cupsRWUnlock(&(client->printer->rwlock));
+    cupsRWUnlock(&(client->printer->rwlock));
 
     respond_ipp(client, IPP_STATUS_ERROR_INTERNAL, "Unable to create print file: %s", strerror(errno));
 
     goto abort_job;
   }
 
-  _cupsRWUnlock(&(client->printer->rwlock));
+  cupsRWUnlock(&(client->printer->rwlock));
 
   if (!strcmp(scheme, "file"))
   {
@@ -2715,13 +2715,13 @@ finish_document_uri(
     goto abort_job;
   }
 
-  _cupsRWLockWrite(&(client->printer->rwlock));
+  cupsRWLockWrite(&(client->printer->rwlock));
 
   job->fd       = -1;
   job->filename = strdup(filename);
   job->state    = IPP_JSTATE_PENDING;
 
-  _cupsRWUnlock(&(client->printer->rwlock));
+  cupsRWUnlock(&(client->printer->rwlock));
 
  /*
   * Process the job...
@@ -3178,7 +3178,7 @@ ipp_cancel_job(ippeve_client_t *client)   /* I - Client */
         * Cancel the job...
        */
 
-       _cupsRWLockWrite(&(client->printer->rwlock));
+       cupsRWLockWrite(&(client->printer->rwlock));
 
        if (job->state == IPP_JSTATE_PROCESSING ||
            (job->state == IPP_JSTATE_HELD && job->fd >= 0))
@@ -3189,7 +3189,7 @@ ipp_cancel_job(ippeve_client_t *client)   /* I - Client */
          job->completed = time(NULL);
        }
 
-       _cupsRWUnlock(&(client->printer->rwlock));
+       cupsRWUnlock(&(client->printer->rwlock));
 
        respond_ipp(client, IPP_STATUS_OK, NULL);
         break;
@@ -3211,7 +3211,7 @@ ipp_cancel_my_jobs(
   ippeve_job_t         *job;           /* Job information */
 
 
-  _cupsRWLockWrite(&client->printer->rwlock);
+  cupsRWLockWrite(&client->printer->rwlock);
 
   if ((job = client->printer->active_job) != NULL)
   {
@@ -3240,7 +3240,7 @@ ipp_cancel_my_jobs(
 
   respond_ipp(client, IPP_STATUS_OK, NULL);
 
-  _cupsRWUnlock(&client->printer->rwlock);
+  cupsRWUnlock(&client->printer->rwlock);
 }
 
 
@@ -3530,7 +3530,7 @@ ipp_get_jobs(ippeve_client_t *client)     /* I - Client */
 
   respond_ipp(client, IPP_STATUS_OK, NULL);
 
-  _cupsRWLockRead(&(client->printer->rwlock));
+  cupsRWLockRead(&(client->printer->rwlock));
 
   for (count = 0, job = (ippeve_job_t *)cupsArrayFirst(client->printer->jobs);
        (limit <= 0 || count < limit) && job;
@@ -3557,7 +3557,7 @@ ipp_get_jobs(ippeve_client_t *client)     /* I - Client */
 
   cupsArrayDelete(ra);
 
-  _cupsRWUnlock(&(client->printer->rwlock));
+  cupsRWUnlock(&(client->printer->rwlock));
 }
 
 
@@ -3582,7 +3582,7 @@ ipp_get_printer_attributes(
 
   respond_ipp(client, IPP_STATUS_OK, NULL);
 
-  _cupsRWLockRead(&(printer->rwlock));
+  cupsRWLockRead(&(printer->rwlock));
 
   copy_attributes(client->response, printer->attrs, ra, IPP_TAG_ZERO,
                  IPP_TAG_CUPS_CONST);
@@ -3700,7 +3700,7 @@ ipp_get_printer_attributes(
   if (!ra || cupsArrayFind(ra, "queued-job-count"))
     ippAddInteger(client->response, IPP_TAG_PRINTER, IPP_TAG_INTEGER, "queued-job-count", printer->active_job && printer->active_job->state < IPP_JSTATE_CANCELED);
 
-  _cupsRWUnlock(&(printer->rwlock));
+  cupsRWUnlock(&(printer->rwlock));
 
   cupsArrayDelete(ra);
 }
@@ -3918,7 +3918,7 @@ ipp_send_document(
   * Then finish getting the document data and process things...
   */
 
-  _cupsRWLockWrite(&(client->printer->rwlock));
+  cupsRWLockWrite(&(client->printer->rwlock));
 
   copy_attributes(job->attrs, client->request, NULL, IPP_TAG_JOB, 0);
 
@@ -3929,7 +3929,7 @@ ipp_send_document(
   else
     job->format = "application/octet-stream";
 
-  _cupsRWUnlock(&(client->printer->rwlock));
+  cupsRWUnlock(&(client->printer->rwlock));
 
   if (have_data)
     finish_document_data(client, job);
@@ -4005,7 +4005,7 @@ ipp_send_uri(ippeve_client_t *client)     /* I - Client */
   * Then finish getting the document data and process things...
   */
 
-  _cupsRWLockWrite(&(client->printer->rwlock));
+  cupsRWLockWrite(&(client->printer->rwlock));
 
   copy_attributes(job->attrs, client->request, NULL, IPP_TAG_JOB, 0);
 
@@ -4016,7 +4016,7 @@ ipp_send_uri(ippeve_client_t *client)     /* I - Client */
   else
     job->format = "application/octet-stream";
 
-  _cupsRWUnlock(&(client->printer->rwlock));
+  cupsRWUnlock(&(client->printer->rwlock));
 
   finish_document_uri(client, job);
 }
@@ -5745,14 +5745,14 @@ process_attr_message(
       * Update Printer Status attribute...
       */
 
-      _cupsRWLockWrite(&job->printer->rwlock);
+      cupsRWLockWrite(&job->printer->rwlock);
 
       if ((attr = ippFindAttribute(job->printer->attrs, option->name, IPP_TAG_ZERO)) != NULL)
         ippDeleteAttribute(job->printer->attrs, attr);
 
       cupsEncodeOption(job->printer->attrs, IPP_TAG_PRINTER, option->name, option->value);
 
-      _cupsRWUnlock(&job->printer->rwlock);
+      cupsRWUnlock(&job->printer->rwlock);
     }
     else
     {
@@ -7199,7 +7199,7 @@ register_printer(
     const char *uuid = ippGetString(printer_uuid, 0, NULL);
                                        /* "printer-uuid" value */
 
-    _cupsRWLockWrite(&printer->rwlock);
+    cupsRWLockWrite(&printer->rwlock);
 
     snprintf(new_dnssd_name, sizeof(new_dnssd_name), "%s (%c%c%c%c%c%c)", printer->dnssd_name, toupper(uuid[39]), toupper(uuid[40]), toupper(uuid[41]), toupper(uuid[42]), toupper(uuid[43]), toupper(uuid[44]));
 
@@ -7208,7 +7208,7 @@ register_printer(
 
     fprintf(stderr, "DNS-SD name collision, trying new DNS-SD service name '%s'.\n", printer->dnssd_name);
 
-    _cupsRWUnlock(&printer->rwlock);
+    cupsRWUnlock(&printer->rwlock);
 
     printer->dnssd_collision = 0;
   }
@@ -7669,11 +7669,11 @@ run_printer(ippeve_printer_t *printer)  /* I - Printer */
     {
       if ((client = create_client(printer, printer->ipv4)) != NULL)
       {
-        _cups_thread_t t = _cupsThreadCreate((_cups_thread_func_t)process_client, client);
+        cups_thread_t t = cupsThreadCreate((cups_thread_func_t)process_client, client);
 
         if (t)
         {
-          _cupsThreadDetach(t);
+          cupsThreadDetach(t);
         }
         else
        {
@@ -7687,11 +7687,11 @@ run_printer(ippeve_printer_t *printer)  /* I - Printer */
     {
       if ((client = create_client(printer, printer->ipv6)) != NULL)
       {
-        _cups_thread_t t = _cupsThreadCreate((_cups_thread_func_t)process_client, client);
+        cups_thread_t t = cupsThreadCreate((cups_thread_func_t)process_client, client);
 
         if (t)
         {
-          _cupsThreadDetach(t);
+          cupsThreadDetach(t);
         }
         else
        {
@@ -7850,7 +7850,7 @@ show_media(ippeve_client_t  *client)      /* I - Client connection */
     const char *val;                   /* Form value */
     pwg_media_t        *media;                 /* Media info */
 
-    _cupsRWLockWrite(&printer->rwlock);
+    cupsRWLockWrite(&printer->rwlock);
 
     ippDeleteAttribute(printer->attrs, media_col_ready);
     media_col_ready = NULL;
@@ -7919,7 +7919,7 @@ show_media(ippeve_client_t  *client)      /* I - Client connection */
     if (!media_ready)
       media_ready = ippAddOutOfBand(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_NOVALUE, "media-ready");
 
-    _cupsRWUnlock(&printer->rwlock);
+    cupsRWUnlock(&printer->rwlock);
   }
 
   if (printer->web_forms)
@@ -8107,7 +8107,7 @@ show_status(ippeve_client_t  *client)     /* I - Client connection */
 
   if (cupsArrayCount(printer->jobs) > 0)
   {
-    _cupsRWLockRead(&(printer->rwlock));
+    cupsRWLockRead(&(printer->rwlock));
 
     html_printf(client, "<table class=\"striped\" summary=\"Jobs\"><thead><tr><th>Job #</th><th>Name</th><th>Owner</th><th>Status</th></tr></thead><tbody>\n");
     for (job = (ippeve_job_t *)cupsArrayFirst(printer->jobs); job; job = (ippeve_job_t *)cupsArrayNext(printer->jobs))
@@ -8140,7 +8140,7 @@ show_status(ippeve_client_t  *client)     /* I - Client connection */
     }
     html_printf(client, "</tbody></table>\n");
 
-    _cupsRWUnlock(&(printer->rwlock));
+    cupsRWUnlock(&(printer->rwlock));
   }
 
   html_footer(client);
@@ -8245,7 +8245,7 @@ show_supplies(
     char       name[64];               /* Form field */
     const char *val;                   /* Form value */
 
-    _cupsRWLockWrite(&printer->rwlock);
+    cupsRWLockWrite(&printer->rwlock);
 
     ippDeleteAttribute(printer->attrs, supply);
     supply = NULL;
@@ -8282,7 +8282,7 @@ show_supplies(
       }
     }
 
-    _cupsRWUnlock(&printer->rwlock);
+    cupsRWUnlock(&printer->rwlock);
   }
 
   if (printer->web_forms)
index 0c5754ce68e7279e90e937a0958c52e79432a8a9..756aa10cf552e5c083ed653b781489e954d1d91a 100644 (file)
@@ -168,7 +168,7 @@ typedef struct ipptool_test_s               /**** Test Data ****/
   char         test_id[1024];          /* Test identifier */
   ipptool_transfer_t transfer;         /* To chunk or not to chunk */
   int          version;                /* IPP version number to use */
-  _cups_thread_t monitor_thread;       /* Monitoring thread ID */
+  cups_thread_t monitor_thread;        /* Monitoring thread ID */
   int          monitor_done;           /* Set to 1 to stop monitor thread */
   char         *monitor_uri;           /* MONITOR-PRINTER-STATE URI */
   useconds_t   monitor_delay,          /* MONITOR-PRINTER-STATE DELAY value, if any */
@@ -1195,7 +1195,7 @@ do_test(_ipp_file_t    *f,                /* I - IPP data file */
   if (data->monitor_uri)
   {
     data->monitor_done   = 0;
-    data->monitor_thread = _cupsThreadCreate((_cups_thread_func_t)do_monitor_printer_state, data);
+    data->monitor_thread = cupsThreadCreate((cups_thread_func_t)do_monitor_printer_state, data);
   }
 
  /*
@@ -2141,7 +2141,7 @@ do_test(_ipp_file_t    *f,                /* I - IPP data file */
   if (data->monitor_thread)
   {
     data->monitor_done = 1;
-    _cupsThreadWait(data->monitor_thread);
+    cupsThreadWait(data->monitor_thread);
   }
 
   if (data->output == IPPTOOL_OUTPUT_PLIST)
index 952367928af3d2c3c3bcb8168d612a8278ac3200..c72586f1b749b304caf09c96ca55140ad6f811e8 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 //#include <cups/http-private.h>
-#include <cups/thread-private.h>
+#include <cups/thread.h>
 #include "dns_sd.h"
 
 
@@ -17,7 +17,7 @@
  */
 
 static int             dnssd_initialized = 0;
-static _cups_mutex_t   dnssd_mutex = _CUPS_MUTEX_INITIALIZER;
+static cups_mutex_t    dnssd_mutex = CUPS_MUTEX_INITIALIZER;
 static DNSServiceErrorType (*dnssd_add_record)(DNSServiceRef sdRef, DNSRecordRef *RecordRef, DNSServiceFlags flags, uint16_t rrtype, uint16_t rdlen, const void *rdata, uint32_t ttl);
 static DNSServiceErrorType (*dnssd_browse)(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, const char *regtype, const char *domain, DNSServiceBrowseReply callBack, void *context);
 static DNSServiceErrorType (*dnssd_construct_full_name)(char * const fullName, const char * const service, const char * const regtype, const char * const domain);
@@ -48,7 +48,7 @@ static DNSServiceErrorType (*dnssd_txt_set_value)(TXTRecordRef *txtRecord, const
 static void
 dnssd_init(void)
 {
-  _cupsMutexLock(&dnssd_mutex);
+  cupsMutexLock(&dnssd_mutex);
   if (!dnssd_initialized)
   {
     HINSTANCE  dll_handle = LoadLibraryA("dnssd.dll");
@@ -80,7 +80,7 @@ dnssd_init(void)
 
     dnssd_initialized = 1;
   }
-  _cupsMutexUnlock(&dnssd_mutex);
+  cupsMutexUnlock(&dnssd_mutex);
 }
 
 
index 32d254258840720b1535f9d8004bae78fe4595d8..f8af47aff9ddee81a3cf7baa37ace886fd6fc9d0 100644 (file)
     <ClCompile Include="..\cups\dest-options.c" />
     <ClCompile Include="..\cups\dest.c" />
     <ClCompile Include="..\cups\dir.c" />
+    <ClCompile Include="..\cups\dnssd.c" />
     <ClCompile Include="..\cups\encode.c" />
     <ClCompile Include="..\cups\file.c" />
     <ClCompile Include="..\cups\getdevices.c" />
     <ClInclude Include="..\cups\array.h" />
     <ClInclude Include="..\cups\cups-private.h" />
     <ClInclude Include="..\cups\cups.h" />
+    <ClInclude Include="..\cups\debug-internal.h" />
     <ClInclude Include="..\cups\debug-private.h" />
     <ClInclude Include="..\cups\dir.h" />
+    <ClInclude Include="..\cups\dnssd.h" />
     <ClInclude Include="..\cups\file-private.h" />
     <ClInclude Include="..\cups\file.h" />
     <ClInclude Include="..\cups\globals.h" />
     <ClInclude Include="..\cups\raster-private.h" />
     <ClInclude Include="..\cups\raster.h" />
     <ClInclude Include="..\cups\string-private.h" />
-    <ClInclude Include="..\cups\thread-private.h" />
+    <ClInclude Include="..\cups\thread.h" />
     <ClInclude Include="..\cups\transcode.h" />
     <ClInclude Include="..\cups\versioning.h" />
     <ClInclude Include="config.h" />
index 348b72155179984118197684dc490d13d5703138..62796bfea7f2c50dc81b4e539ca0c225a9a7afaa 100644 (file)
     <ClInclude Include="..\cups\string-private.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\cups\thread-private.h">
+    <ClInclude Include="..\cups\thread.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\cups\transcode.h">
index ae3d16bf5b5a7c95a67cd2ffe40a4ccccc4fce29..a2a7dc51def533d3b9c2b477232a7bc932048b57 100644 (file)
@@ -3,7 +3,7 @@
        archiveVersion = 1;
        classes = {
        };
-       objectVersion = 46;
+       objectVersion = 53;
        objects = {
 
 /* Begin PBXAggregateTarget section */
                271287321CC140EB00E517C7 /* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72A4332F155844CF002E172D /* libcups_static.a */; };
                271287331CC140EB00E517C7 /* libcupsppdc_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 724FA7401CC03AAF0092477B /* libcupsppdc_static.a */; };
                271287341CC140F500E517C7 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC591926750C000F61D3 /* CoreFoundation.framework */; };
+               272A5C0B2AA41D5A00027F9B /* dnssd.h in Headers */ = {isa = PBXBuildFile; fileRef = 272A5C0A2AA41D5A00027F9B /* dnssd.h */; };
+               272A5C0C2AA41D5A00027F9B /* dnssd.h in Headers */ = {isa = PBXBuildFile; fileRef = 272A5C0A2AA41D5A00027F9B /* dnssd.h */; };
+               272A5C0E2AA41D6B00027F9B /* dnssd.c in Sources */ = {isa = PBXBuildFile; fileRef = 272A5C0D2AA41D6B00027F9B /* dnssd.c */; };
+               272A5C0F2AA41D6B00027F9B /* dnssd.c in Sources */ = {isa = PBXBuildFile; fileRef = 272A5C0D2AA41D6B00027F9B /* dnssd.c */; };
+               272A5C162AA41D7A00027F9B /* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72A4332F155844CF002E172D /* libcups_static.a */; };
+               272A5C172AA41D7A00027F9B /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC591926750C000F61D3 /* CoreFoundation.framework */; };
+               272A5C182AA41D7A00027F9B /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5A1926750C000F61D3 /* libiconv.dylib */; };
+               272A5C192AA41D7A00027F9B /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5B1926750C000F61D3 /* libresolv.dylib */; };
+               272A5C1A2AA41D7A00027F9B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5C1926750C000F61D3 /* libz.dylib */; };
+               272A5C1B2AA41D7A00027F9B /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5D1926750C000F61D3 /* Security.framework */; };
+               272A5C1C2AA41D7A00027F9B /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5E1926750C000F61D3 /* SystemConfiguration.framework */; };
+               272A5C232AA41DB300027F9B /* testdnssd.c in Sources */ = {isa = PBXBuildFile; fileRef = 272A5C222AA41DB300027F9B /* testdnssd.c */; };
                273B1EA1226B3E4800428143 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC591926750C000F61D3 /* CoreFoundation.framework */; };
                273B1EA2226B3E4800428143 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5B1926750C000F61D3 /* libresolv.dylib */; };
                273B1EA3226B3E4800428143 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5C1926750C000F61D3 /* libz.dylib */; };
                        remoteGlobalIDString = 2712871E1CC140BE00E517C7;
                        remoteInfo = genstrings;
                };
+               272A5C122AA41D7A00027F9B /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = 274FF6891333B1C400317ECB;
+                       remoteInfo = libcups_static;
+               };
                273B1EC1226B3F2600428143 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
                        );
                        runOnlyForDeploymentPostprocessing = 1;
                };
+               272A5C1D2AA41D7A00027F9B /* CopyFiles */ = {
+                       isa = PBXCopyFilesBuildPhase;
+                       buildActionMask = 2147483647;
+                       dstPath = /usr/share/man/man1/;
+                       dstSubfolderSpec = 0;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 1;
+               };
                273B1EA6226B3E4800428143 /* CopyFiles */ = {
                        isa = PBXCopyFilesBuildPhase;
                        buildActionMask = 2147483647;
                271287191CC13FDB00E517C7 /* mantohtml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mantohtml.c; path = ../man/mantohtml.c; sourceTree = "<group>"; };
                2712871D1CC140B400E517C7 /* genstrings.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = genstrings.cxx; path = ../ppdc/genstrings.cxx; sourceTree = "<group>"; };
                2712872C1CC140BE00E517C7 /* genstrings */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = genstrings; sourceTree = BUILT_PRODUCTS_DIR; };
+               272A5C0A2AA41D5A00027F9B /* dnssd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dnssd.h; path = ../cups/dnssd.h; sourceTree = "<group>"; };
+               272A5C0D2AA41D6B00027F9B /* dnssd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dnssd.c; path = ../cups/dnssd.c; sourceTree = "<group>"; };
+               272A5C212AA41D7A00027F9B /* testdnssd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testdnssd; sourceTree = BUILT_PRODUCTS_DIR; };
+               272A5C222AA41DB300027F9B /* testdnssd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testdnssd.c; path = ../cups/testdnssd.c; sourceTree = "<group>"; };
                2732E089137A3F5200FAFEF6 /* cancel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cancel.c; path = ../systemv/cancel.c; sourceTree = "<group>"; };
                2732E08A137A3F5200FAFEF6 /* cupsaccept.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cupsaccept.c; path = ../systemv/cupsaccept.c; sourceTree = "<group>"; };
                2732E08C137A3F5200FAFEF6 /* lp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lp.c; path = ../systemv/lp.c; sourceTree = "<group>"; };
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               272A5C152AA41D7A00027F9B /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               272A5C162AA41D7A00027F9B /* libcups_static.a in Frameworks */,
+                               272A5C172AA41D7A00027F9B /* CoreFoundation.framework in Frameworks */,
+                               272A5C182AA41D7A00027F9B /* libiconv.dylib in Frameworks */,
+                               272A5C192AA41D7A00027F9B /* libresolv.dylib in Frameworks */,
+                               272A5C1A2AA41D7A00027F9B /* libz.dylib in Frameworks */,
+                               272A5C1B2AA41D7A00027F9B /* Security.framework in Frameworks */,
+                               272A5C1C2AA41D7A00027F9B /* SystemConfiguration.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                273B1E9F226B3E4800428143 /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                                270D02251D707E3700EA9403 /* testcreds.c */,
                                273BF6C61333B5370022CAAB /* testcups.c */,
                                2767FC5119266A36000F61D3 /* testdest.c */,
+                               272A5C222AA41DB300027F9B /* testdnssd.c */,
                                727EF045192E3544001EF690 /* testfile.c */,
                                727EF03E192E3498001EF690 /* testhi.c */,
                                278C58E2136B647200836530 /* testhttp.c */,
                                273B1EAA226B3E4800428143 /* ippevepcl */,
                                273B1EBB226B3E5200428143 /* ippeveps */,
                                274770E02345342B0089BC31 /* testthreads */,
+                               272A5C212AA41D7A00027F9B /* testdnssd */,
                        );
                        name = Products;
                        sourceTree = "<group>";
                72220EB41333050100FCA411 /* libcups */ = {
                        isa = PBXGroup;
                        children = (
+                               272A5C0D2AA41D6B00027F9B /* dnssd.c */,
                                72220EB51333052D00FCA411 /* adminutil.c */,
                                72220EB81333056300FCA411 /* array.c */,
                                72220EBB1333056300FCA411 /* auth.c */,
                                72220EB91333056300FCA411 /* array.h */,
                                72220EBE1333056300FCA411 /* backend.h */,
                                72220EC11333056300FCA411 /* cups.h */,
+                               272A5C0A2AA41D5A00027F9B /* dnssd.h */,
                                72220ED9133305BB00FCA411 /* file.h */,
                                72220EE3133305BB00FCA411 /* http.h */,
                                72220EE7133305BB00FCA411 /* ipp.h */,
                                7253C470216ED69400494ADD /* pwg.h in Headers */,
                                270696551CADF3E200FFE5FB /* transcode.h in Headers */,
                                270696561CADF3E200FFE5FB /* versioning.h in Headers */,
+                               272A5C0C2AA41D5A00027F9B /* dnssd.h in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                                72220F28133305BB00FCA411 /* md5-internal.h in Headers */,
                                72220F2F133305BB00FCA411 /* ppd-private.h in Headers */,
                                72220F33133305BB00FCA411 /* pwg-private.h in Headers */,
+                               272A5C0B2AA41D5A00027F9B /* dnssd.h in Headers */,
                                72220F38133305BB00FCA411 /* snmp-private.h in Headers */,
                                72220F3B133305BB00FCA411 /* string-private.h in Headers */,
                                72220F3E133305BB00FCA411 /* thread-private.h in Headers */,
                        productReference = 2712872C1CC140BE00E517C7 /* genstrings */;
                        productType = "com.apple.product-type.tool";
                };
+               272A5C102AA41D7A00027F9B /* testdnssd */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 272A5C1E2AA41D7A00027F9B /* Build configuration list for PBXNativeTarget "testdnssd" */;
+                       buildPhases = (
+                               272A5C132AA41D7A00027F9B /* Sources */,
+                               272A5C152AA41D7A00027F9B /* Frameworks */,
+                               272A5C1D2AA41D7A00027F9B /* CopyFiles */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               272A5C112AA41D7A00027F9B /* PBXTargetDependency */,
+                       );
+                       name = testdnssd;
+                       productName = testcups;
+                       productReference = 272A5C212AA41D7A00027F9B /* testdnssd */;
+                       productType = "com.apple.product-type.tool";
+               };
                273B1E9A226B3E4800428143 /* ippevepcl */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = 273B1EA7226B3E4800428143 /* Build configuration list for PBXNativeTarget "ippevepcl" */;
                72BF96371333042100B1EAD7 /* Project object */ = {
                        isa = PBXProject;
                        attributes = {
-                               LastUpgradeCheck = 1410;
+                               BuildIndependentTargetsInParallel = YES;
+                               LastUpgradeCheck = 1430;
                                ORGANIZATIONNAME = "Apple Inc.";
                                TargetAttributes = {
                                        270695FD1CADF3E200FFE5FB = {
                                270D02131D707E0200EA9403 /* testcreds */,
                                273BF6BC1333B5000022CAAB /* testcups */,
                                2767FC4619266A0D000F61D3 /* testdest */,
+                               272A5C102AA41D7A00027F9B /* testdnssd */,
                                724FA5701CC037810092477B /* testfile */,
                                724FA6AC1CC0393E0092477B /* testhi */,
                                278C58CA136B640300836530 /* testhttp */,
                                270696271CADF3E200FFE5FB /* pwg-media.c in Sources */,
                                270696281CADF3E200FFE5FB /* dest-localization.c in Sources */,
                                270696291CADF3E200FFE5FB /* request.c in Sources */,
+                               272A5C0F2AA41D6B00027F9B /* dnssd.c in Sources */,
                                2706962C1CADF3E200FFE5FB /* snprintf.c in Sources */,
                                2706962D1CADF3E200FFE5FB /* string.c in Sources */,
                                7253C455216E980000494ADD /* raster-error.c in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               272A5C132AA41D7A00027F9B /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               272A5C232AA41DB300027F9B /* testdnssd.c in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                273B1E9D226B3E4800428143 /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                                72220F17133305BB00FCA411 /* globals.c in Sources */,
                                72220F18133305BB00FCA411 /* http-addr.c in Sources */,
                                72220F19133305BB00FCA411 /* http-addrlist.c in Sources */,
+                               272A5C0E2AA41D6B00027F9B /* dnssd.c in Sources */,
                                72220F1B133305BB00FCA411 /* http-support.c in Sources */,
                                7253C45A216E981900494ADD /* raster-interpret.c in Sources */,
                                72A8B3D71C188CB800A1A547 /* ppd-util.c in Sources */,
                        target = 2712871E1CC140BE00E517C7 /* genstrings */;
                        targetProxy = 271287351CC1411000E517C7 /* PBXContainerItemProxy */;
                };
+               272A5C112AA41D7A00027F9B /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = 274FF6891333B1C400317ECB /* libcups_static */;
+                       targetProxy = 272A5C122AA41D7A00027F9B /* PBXContainerItemProxy */;
+               };
                273B1EC2226B3F2600428143 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 273B1E9A226B3E4800428143 /* ippevepcl */;
                                COMBINE_HIDPI_IMAGES = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/cups;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                PROVISIONING_PROFILE = "";
                                COMBINE_HIDPI_IMAGES = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/cups;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                PROVISIONING_PROFILE = "";
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/sbin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/sbin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/sbin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/sbin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/sbin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/sbin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = "/usr/libexec/cups/cgi-bin";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = "/usr/libexec/cups/cgi-bin";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = "/usr/libexec/cups/cgi-bin";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = "/usr/libexec/cups/cgi-bin";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = "/usr/libexec/cups/cgi-bin";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = "/usr/libexec/cups/cgi-bin";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = "/usr/libexec/cups/cgi-bin";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = "/usr/libexec/cups/cgi-bin";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                GCC_WARN_PEDANTIC = NO;
                                PRODUCT_NAME = "$(TARGET_NAME)";
-                               SYSTEM_FRAMEWORK_SEARCH_PATHS = "$(inherited) $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks";
+                               SYSTEM_FRAMEWORK_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks",
+                               );
                        };
                        name = Debug;
                };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                GCC_WARN_PEDANTIC = NO;
                                PRODUCT_NAME = "$(TARGET_NAME)";
-                               SYSTEM_FRAMEWORK_SEARCH_PATHS = "$(inherited) $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks";
+                               SYSTEM_FRAMEWORK_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks",
+                               );
                        };
                        name = Release;
                };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/monitor;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/monitor;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/monitor;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/monitor;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/notifier;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/notifier;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/notifier;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/notifier;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                };
+               272A5C1F2AA41D7A00027F9B /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               CLANG_ENABLE_OBJC_WEAK = YES;
+                               CODE_SIGN_IDENTITY = "-";
+                               DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                       };
+                       name = Debug;
+               };
+               272A5C202AA41D7A00027F9B /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               CLANG_ENABLE_OBJC_WEAK = YES;
+                               CODE_SIGN_IDENTITY = "-";
+                               DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                       };
+                       name = Release;
+               };
                273B1EA8226B3E4800428143 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/ippeveprinter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/ippeveprinter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/ippeveprinter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/ippeveprinter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/daemon;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/daemon;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                COMBINE_HIDPI_IMAGES = YES;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/cups;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                COMBINE_HIDPI_IMAGES = YES;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/cups;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/daemon;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/daemon;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/daemon;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/daemon;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/daemon;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/daemon;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/local/lib;
                                PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/cups;
                                PRODUCT_NAME = libcups_static;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/local/lib;
                                PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/cups;
                                PRODUCT_NAME = libcups_static;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/sbin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/sbin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = testdest;
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = testdest;
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                COPY_PHASE_STRIP = NO;
                                DEAD_CODE_STRIPPING = YES;
                                ENABLE_STRICT_OBJC_MSGSEND = YES;
-                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                GCC_PREPROCESSOR_DEFINITIONS = (
                                DEAD_CODE_STRIPPING = YES;
                                ENABLE_NS_ASSERTIONS = NO;
                                ENABLE_STRICT_OBJC_MSGSEND = YES;
-                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
                                GCC_WARN_UNDECLARED_SELECTOR = YES;
                                GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                DYLIB_COMPATIBILITY_VERSION = 2.0.0;
                                DYLIB_CURRENT_VERSION = 2.12.0;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/cups;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                DYLIB_COMPATIBILITY_VERSION = 2.0.0;
                                DYLIB_CURRENT_VERSION = 2.12.0;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/cups;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/sbin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/sbin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                COMBINE_HIDPI_IMAGES = YES;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                COMBINE_HIDPI_IMAGES = YES;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_MODE_FLAG = "u+rwX,go-rwX";
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_MODE_FLAG = "u+rwX,go-rwX";
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/backend;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                MACH_O_TYPE = staticlib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                MACH_O_TYPE = staticlib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                MACH_O_TYPE = staticlib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                MACH_O_TYPE = staticlib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                MACH_O_TYPE = staticlib;
                                PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/cups;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                MACH_O_TYPE = staticlib;
                                PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/cups;
                                COMBINE_HIDPI_IMAGES = YES;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                COMBINE_HIDPI_IMAGES = YES;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                MACH_O_TYPE = staticlib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_EXTENSION = a;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                MACH_O_TYPE = staticlib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/libexec/cups/filter;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "ipptool copy";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "ipptool copy";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                CLANG_ENABLE_OBJC_WEAK = YES;
                                CODE_SIGN_IDENTITY = "-";
                                DEAD_CODE_STRIPPING = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/bin;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                COMBINE_HIDPI_IMAGES = YES;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                                COMBINE_HIDPI_IMAGES = YES;
                                DEAD_CODE_STRIPPING = YES;
                                EXECUTABLE_PREFIX = "";
+                               GCC_C_LANGUAGE_STANDARD = c99;
                                INSTALL_PATH = /usr/lib;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
+               272A5C1E2AA41D7A00027F9B /* Build configuration list for PBXNativeTarget "testdnssd" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               272A5C1F2AA41D7A00027F9B /* Debug */,
+                               272A5C202AA41D7A00027F9B /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
                273B1EA7226B3E4800428143 /* Build configuration list for PBXNativeTarget "ippevepcl" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (