components/trousers/patches/tddl.c.patch
author Melynda Hunter <melynda.hunter@oracle.com>
Wed, 26 Sep 2012 16:12:30 -0700
branchs11-sru
changeset 2355 27c96268ac37
parent 399 d877cc559d95
child 622 fd8f0e501744
permissions -rw-r--r--
Added tag S11SRU12_04 for changeset c2d501c87c20
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
399
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
     1
--- src/tddl/tddl.c.old	2010-04-12 22:24:21.000000000 -0700
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
     2
+++ src/tddl/tddl.c 2011-07-12 13:14:57.362305220 -0700
259
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
     3
@@ -18,13 +18,17 @@
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
     4
 
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
     5
 #include "trousers/tss.h"
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
     6
 #include "trousers_types.h"
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
     7
+#ifndef SOLARIS
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
     8
 #include "linux/tpm.h"
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
     9
+#endif
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    10
 #include "tcslog.h"
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    11
 #include "tddl.h"
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    12
 
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    13
 struct tpm_device_node tpm_device_nodes[] = {
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    14
+#ifndef SOLARIS
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    15
 	{"/dev/tpm0", TDDL_UNDEF, TDDL_UNDEF},
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    16
 	{"/udev/tpm0", TDDL_UNDEF, TDDL_UNDEF},
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    17
+#endif
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    18
 	{"/dev/tpm", TDDL_UNDEF, TDDL_UNDEF},
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    19
 	{NULL, 0, 0}
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    20
 };
399
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    21
@@ -63,7 +67,7 @@
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    22
 	 
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    23
 		
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    24
 		fd = socket(AF_INET, SOCK_STREAM, 0);
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    25
-		if (fd > 0) {
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    26
+		if (fd >= 0) {
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    27
 			struct hostent *host = gethostbyname(tcp_device_hostname);
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    28
 			if (host != NULL) {   
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    29
 				struct sockaddr_in addr;
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    30
@@ -105,12 +109,16 @@
259
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    31
 		/* tpm_device_paths is filled out in tddl.h */
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    32
 		for (i = 0; tpm_device_nodes[i].path != NULL; i++) {
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    33
 			errno = 0;
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    34
-			if ((fd = open(tpm_device_nodes[i].path, O_RDWR)) >= 0)
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    35
+			if ((fd = open(tpm_device_nodes[i].path, O_RDWR)) >= 0) {
399
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    36
 				break;
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    37
+			} else {
259
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    38
+				fprintf(stderr, "Error opening %s: %s\n",
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    39
+				    tpm_device_nodes[i].path, strerror(errno));
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    40
+			}
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    41
 		}
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    42
 	}
399
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    43
-	
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    44
-	if (fd > 0) {
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    45
+
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    46
+	if (fd >= 0) {
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    47
 		opened_device = &(tpm_device_nodes[i]);
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    48
 		tpm_device_nodes[i].fd = fd;
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    49
 	}
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    50
@@ -181,11 +189,13 @@
259
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    51
 			/* fall through */
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    52
 		case TDDL_TRANSMIT_IOCTL:
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    53
 			errno = 0;
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    54
+#ifndef SOLARIS
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    55
 			if ((sizeResult = ioctl(opened_device->fd, TPMIOC_TRANSMIT, txBuffer)) != -1) {
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    56
 				opened_device->transmit = TDDL_TRANSMIT_IOCTL;
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    57
 				break;
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    58
 			}
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    59
 			LogWarn("ioctl: (%d) %s", errno, strerror(errno));
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    60
+#endif
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    61
 			LogInfo("Falling back to Read/Write device support.");
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    62
 			/* fall through */
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    63
 		case TDDL_TRANSMIT_RW:
399
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    64
@@ -255,6 +265,7 @@
259
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    65
 
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    66
 TSS_RESULT Tddli_Cancel(void)
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    67
 {
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    68
+#ifndef SOLARIS
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    69
 	int rc;
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    70
 
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    71
 	if (opened_device->transmit == TDDL_TRANSMIT_IOCTL) {
399
d877cc559d95 7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents: 259
diff changeset
    72
@@ -270,4 +281,7 @@
259
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    73
 	} else {
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    74
 		return TDDLERR(TSS_E_NOTIMPL);
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    75
 	}
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    76
+#else
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    77
+	return TDDLERR(TSS_E_NOTIMPL);
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    78
+#endif /* SOLARIS */
520697a05dde 7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff changeset
    79
 }