28bfbcca91
- Resolves: #1924120, Event Notification Support
620 lines
16 KiB
Diff
620 lines
16 KiB
Diff
commit d929fe8470e99f4dcbbd889e7aa87e147d0d5b48
|
|
Author: Ingo Franzki <ifranzki@linux.ibm.com>
|
|
Date: Fri Feb 12 11:25:21 2021 +0100
|
|
|
|
Externalize linked list functions
|
|
|
|
Externalize the linked list functions (dlist_xxx), so that they
|
|
can also be used on pkcsslotd.
|
|
|
|
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
|
|
|
|
diff --git a/usr/lib/cca_stdll/cca_stdll.mk b/usr/lib/cca_stdll/cca_stdll.mk
|
|
index bd230b9f..c5e86fa7 100644
|
|
--- a/usr/lib/cca_stdll/cca_stdll.mk
|
|
+++ b/usr/lib/cca_stdll/cca_stdll.mk
|
|
@@ -35,7 +35,8 @@ opencryptoki_stdll_libpkcs11_cca_la_SOURCES = \
|
|
usr/lib/common/mech_ssl3.c usr/lib/common/verify_mgr.c \
|
|
usr/lib/common/p11util.c usr/lib/common/sw_crypt.c \
|
|
usr/lib/common/shared_memory.c usr/lib/common/profile_obj.c \
|
|
- usr/lib/cca_stdll/cca_specific.c usr/lib/common/attributes.c
|
|
+ usr/lib/cca_stdll/cca_specific.c usr/lib/common/attributes.c \
|
|
+ usr/lib/common/dlist.c
|
|
|
|
if ENABLE_LOCKS
|
|
opencryptoki_stdll_libpkcs11_cca_la_SOURCES += \
|
|
diff --git a/usr/lib/common/dlist.c b/usr/lib/common/dlist.c
|
|
new file mode 100644
|
|
index 00000000..1fee1ea9
|
|
--- /dev/null
|
|
+++ b/usr/lib/common/dlist.c
|
|
@@ -0,0 +1,218 @@
|
|
+/*
|
|
+ * COPYRIGHT (c) International Business Machines Corp. 2021
|
|
+ *
|
|
+ * This program is provided under the terms of the Common Public License,
|
|
+ * version 1.0 (CPL-1.0). Any use, reproduction or distribution for this
|
|
+ * software constitutes recipient's acceptance of CPL-1.0 terms which can be
|
|
+ * found in the file LICENSE file or at
|
|
+ * https://opensource.org/licenses/cpl1.0.php
|
|
+ */
|
|
+
|
|
+#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
+#include <string.h>
|
|
+#include <unistd.h>
|
|
+#include <sys/types.h>
|
|
+#include <errno.h>
|
|
+
|
|
+#include "dlist.h"
|
|
+#include "host_defs.h"
|
|
+#include "h_extern.h"
|
|
+
|
|
+
|
|
+// Function: dlist_add_as_first()
|
|
+//
|
|
+// Adds the specified node to the start of the list
|
|
+//
|
|
+// Returns: pointer to the start of the list
|
|
+//
|
|
+DL_NODE *dlist_add_as_first(DL_NODE *list, void *data)
|
|
+{
|
|
+ DL_NODE *node = NULL;
|
|
+
|
|
+ if (!data)
|
|
+ return list;
|
|
+
|
|
+ node = (DL_NODE *) malloc(sizeof(DL_NODE));
|
|
+ if (!node)
|
|
+ return NULL;
|
|
+
|
|
+ node->data = data;
|
|
+ node->prev = NULL;
|
|
+ node->next = list;
|
|
+ if (list)
|
|
+ list->prev = node;
|
|
+
|
|
+ return node;
|
|
+}
|
|
+
|
|
+// Function: dlist_add_as_last()
|
|
+//
|
|
+// Adds the specified node to the end of the list
|
|
+//
|
|
+// Returns: pointer to the start of the list
|
|
+//
|
|
+DL_NODE *dlist_add_as_last(DL_NODE *list, void *data)
|
|
+{
|
|
+ DL_NODE *node = NULL;
|
|
+
|
|
+ if (!data)
|
|
+ return list;
|
|
+
|
|
+ node = (DL_NODE *) malloc(sizeof(DL_NODE));
|
|
+ if (!node)
|
|
+ return NULL;
|
|
+
|
|
+ node->data = data;
|
|
+ node->next = NULL;
|
|
+
|
|
+ if (!list) {
|
|
+ node->prev = NULL;
|
|
+ return node;
|
|
+ } else {
|
|
+ DL_NODE *temp = dlist_get_last(list);
|
|
+ temp->next = node;
|
|
+ node->prev = temp;
|
|
+
|
|
+ return list;
|
|
+ }
|
|
+}
|
|
+
|
|
+// Function: dlist_find()
|
|
+//
|
|
+DL_NODE *dlist_find(DL_NODE *list, void *data)
|
|
+{
|
|
+ DL_NODE *node = list;
|
|
+
|
|
+ while (node && node->data != data)
|
|
+ node = node->next;
|
|
+
|
|
+ return node;
|
|
+}
|
|
+
|
|
+// Function: dlist_get_first()
|
|
+//
|
|
+// Returns the last node in the list or NULL if list is empty
|
|
+//
|
|
+DL_NODE *dlist_get_first(DL_NODE *list)
|
|
+{
|
|
+ DL_NODE *temp = list;
|
|
+
|
|
+ if (!list)
|
|
+ return NULL;
|
|
+
|
|
+ while (temp->prev != NULL)
|
|
+ temp = temp->prev;
|
|
+
|
|
+ return temp;
|
|
+}
|
|
+
|
|
+// Function: dlist_get_last()
|
|
+//
|
|
+// Returns the last node in the list or NULL if list is empty
|
|
+//
|
|
+DL_NODE *dlist_get_last(DL_NODE *list)
|
|
+{
|
|
+ DL_NODE *temp = list;
|
|
+
|
|
+ if (!list)
|
|
+ return NULL;
|
|
+
|
|
+ while (temp->next != NULL)
|
|
+ temp = temp->next;
|
|
+
|
|
+ return temp;
|
|
+}
|
|
+
|
|
+//
|
|
+//
|
|
+CK_ULONG dlist_length(DL_NODE *list)
|
|
+{
|
|
+ DL_NODE *temp = list;
|
|
+ CK_ULONG len = 0;
|
|
+
|
|
+ while (temp) {
|
|
+ len++;
|
|
+ temp = temp->next;
|
|
+ }
|
|
+
|
|
+ return len;
|
|
+}
|
|
+
|
|
+//
|
|
+//
|
|
+DL_NODE *dlist_next(DL_NODE *node)
|
|
+{
|
|
+ if (!node)
|
|
+ return NULL;
|
|
+
|
|
+ return node->next;
|
|
+}
|
|
+
|
|
+//
|
|
+//
|
|
+DL_NODE *dlist_prev(DL_NODE *node)
|
|
+{
|
|
+ if (!node)
|
|
+ return NULL;
|
|
+
|
|
+ return node->prev;
|
|
+}
|
|
+
|
|
+//
|
|
+//
|
|
+void dlist_purge(DL_NODE *list)
|
|
+{
|
|
+ DL_NODE *node;
|
|
+
|
|
+ if (!list)
|
|
+ return;
|
|
+
|
|
+ do {
|
|
+ node = list->next;
|
|
+ free(list);
|
|
+ list = node;
|
|
+ } while (list);
|
|
+}
|
|
+
|
|
+// Function: dlist_remove_node()
|
|
+//
|
|
+// Attempts to remove the specified node from the list. The caller is
|
|
+// responsible for freeing the data associated with the node prior to
|
|
+// calling this routine
|
|
+//
|
|
+DL_NODE *dlist_remove_node(DL_NODE *list, DL_NODE *node)
|
|
+{
|
|
+ DL_NODE *temp = list;
|
|
+
|
|
+ if (!list || !node)
|
|
+ return NULL;
|
|
+
|
|
+ // special case: removing head of the list
|
|
+ //
|
|
+ if (list == node) {
|
|
+ temp = list->next;
|
|
+ if (temp)
|
|
+ temp->prev = NULL;
|
|
+
|
|
+ free(list);
|
|
+ return temp;
|
|
+ }
|
|
+ // we have no guarantee that the node is in the list
|
|
+ // so search through the list to find it
|
|
+ //
|
|
+ while ((temp != NULL) && (temp->next != node))
|
|
+ temp = temp->next;
|
|
+
|
|
+ if (temp != NULL) {
|
|
+ DL_NODE *next = node->next;
|
|
+
|
|
+ temp->next = next;
|
|
+ if (next)
|
|
+ next->prev = temp;
|
|
+
|
|
+ free(node);
|
|
+ }
|
|
+
|
|
+ return list;
|
|
+}
|
|
diff --git a/usr/lib/common/dlist.h b/usr/lib/common/dlist.h
|
|
new file mode 100644
|
|
index 00000000..eda4af9c
|
|
--- /dev/null
|
|
+++ b/usr/lib/common/dlist.h
|
|
@@ -0,0 +1,32 @@
|
|
+/*
|
|
+ * COPYRIGHT (c) International Business Machines Corp. 2021
|
|
+ *
|
|
+ * This program is provided under the terms of the Common Public License,
|
|
+ * version 1.0 (CPL-1.0). Any use, reproduction or distribution for this
|
|
+ * software constitutes recipient's acceptance of CPL-1.0 terms which can be
|
|
+ * found in the file LICENSE file or at
|
|
+ * https://opensource.org/licenses/cpl1.0.php
|
|
+ */
|
|
+
|
|
+
|
|
+
|
|
+#ifndef _DLIST_H_
|
|
+#define _DLIST_H_
|
|
+
|
|
+#include "pkcs11types.h"
|
|
+#include "defs.h"
|
|
+
|
|
+// linked-list routines
|
|
+//
|
|
+DL_NODE *dlist_add_as_first(DL_NODE *list, void *data);
|
|
+DL_NODE *dlist_add_as_last(DL_NODE *list, void *data);
|
|
+DL_NODE *dlist_find(DL_NODE *list, void *data);
|
|
+DL_NODE *dlist_get_first(DL_NODE *list);
|
|
+DL_NODE *dlist_get_last(DL_NODE *list);
|
|
+CK_ULONG dlist_length(DL_NODE *list);
|
|
+DL_NODE *dlist_next(DL_NODE *list);
|
|
+DL_NODE *dlist_prev(DL_NODE *list);
|
|
+void dlist_purge(DL_NODE *list);
|
|
+DL_NODE *dlist_remove_node(DL_NODE *list, DL_NODE *node);
|
|
+
|
|
+#endif
|
|
diff --git a/usr/lib/common/h_extern.h b/usr/lib/common/h_extern.h
|
|
index 63aff79f..5e251d95 100644
|
|
--- a/usr/lib/common/h_extern.h
|
|
+++ b/usr/lib/common/h_extern.h
|
|
@@ -24,6 +24,7 @@
|
|
#define _H_EXTERN_H
|
|
|
|
#include <stdio.h>
|
|
+#include "dlist.h"
|
|
|
|
// global variables
|
|
//
|
|
@@ -1759,19 +1760,6 @@ int ec_point_from_public_data(const CK_BYTE *data, CK_ULONG data_len,
|
|
CK_BBOOL *allocated, CK_BYTE **ec_point,
|
|
CK_ULONG *ec_point_len);
|
|
|
|
-// linked-list routines
|
|
-//
|
|
-DL_NODE *dlist_add_as_first(DL_NODE *list, void *data);
|
|
-DL_NODE *dlist_add_as_last(DL_NODE *list, void *data);
|
|
-DL_NODE *dlist_find(DL_NODE *list, void *data);
|
|
-DL_NODE *dlist_get_first(DL_NODE *list);
|
|
-DL_NODE *dlist_get_last(DL_NODE *list);
|
|
-CK_ULONG dlist_length(DL_NODE *list);
|
|
-DL_NODE *dlist_next(DL_NODE *list);
|
|
-DL_NODE *dlist_prev(DL_NODE *list);
|
|
-void dlist_purge(DL_NODE *list);
|
|
-DL_NODE *dlist_remove_node(DL_NODE *list, DL_NODE *node);
|
|
-
|
|
CK_RV attach_shm(STDLL_TokData_t *tokdata, CK_SLOT_ID slot_id);
|
|
CK_RV detach_shm(STDLL_TokData_t *tokdata, CK_BBOOL ignore_ref_count);
|
|
|
|
diff --git a/usr/lib/common/utility.c b/usr/lib/common/utility.c
|
|
index 38d8d959..b2c6ee50 100644
|
|
--- a/usr/lib/common/utility.c
|
|
+++ b/usr/lib/common/utility.c
|
|
@@ -40,203 +40,6 @@
|
|
#include <sys/file.h>
|
|
#include <syslog.h>
|
|
|
|
-// Function: dlist_add_as_first()
|
|
-//
|
|
-// Adds the specified node to the start of the list
|
|
-//
|
|
-// Returns: pointer to the start of the list
|
|
-//
|
|
-DL_NODE *dlist_add_as_first(DL_NODE *list, void *data)
|
|
-{
|
|
- DL_NODE *node = NULL;
|
|
-
|
|
- if (!data)
|
|
- return list;
|
|
-
|
|
- node = (DL_NODE *) malloc(sizeof(DL_NODE));
|
|
- if (!node)
|
|
- return NULL;
|
|
-
|
|
- node->data = data;
|
|
- node->prev = NULL;
|
|
- node->next = list;
|
|
- if (list)
|
|
- list->prev = node;
|
|
-
|
|
- return node;
|
|
-}
|
|
-
|
|
-// Function: dlist_add_as_last()
|
|
-//
|
|
-// Adds the specified node to the end of the list
|
|
-//
|
|
-// Returns: pointer to the start of the list
|
|
-//
|
|
-DL_NODE *dlist_add_as_last(DL_NODE *list, void *data)
|
|
-{
|
|
- DL_NODE *node = NULL;
|
|
-
|
|
- if (!data)
|
|
- return list;
|
|
-
|
|
- node = (DL_NODE *) malloc(sizeof(DL_NODE));
|
|
- if (!node)
|
|
- return NULL;
|
|
-
|
|
- node->data = data;
|
|
- node->next = NULL;
|
|
-
|
|
- if (!list) {
|
|
- node->prev = NULL;
|
|
- return node;
|
|
- } else {
|
|
- DL_NODE *temp = dlist_get_last(list);
|
|
- temp->next = node;
|
|
- node->prev = temp;
|
|
-
|
|
- return list;
|
|
- }
|
|
-}
|
|
-
|
|
-// Function: dlist_find()
|
|
-//
|
|
-DL_NODE *dlist_find(DL_NODE *list, void *data)
|
|
-{
|
|
- DL_NODE *node = list;
|
|
-
|
|
- while (node && node->data != data)
|
|
- node = node->next;
|
|
-
|
|
- return node;
|
|
-}
|
|
-
|
|
-// Function: dlist_get_first()
|
|
-//
|
|
-// Returns the last node in the list or NULL if list is empty
|
|
-//
|
|
-DL_NODE *dlist_get_first(DL_NODE *list)
|
|
-{
|
|
- DL_NODE *temp = list;
|
|
-
|
|
- if (!list)
|
|
- return NULL;
|
|
-
|
|
- while (temp->prev != NULL)
|
|
- temp = temp->prev;
|
|
-
|
|
- return temp;
|
|
-}
|
|
-
|
|
-// Function: dlist_get_last()
|
|
-//
|
|
-// Returns the last node in the list or NULL if list is empty
|
|
-//
|
|
-DL_NODE *dlist_get_last(DL_NODE *list)
|
|
-{
|
|
- DL_NODE *temp = list;
|
|
-
|
|
- if (!list)
|
|
- return NULL;
|
|
-
|
|
- while (temp->next != NULL)
|
|
- temp = temp->next;
|
|
-
|
|
- return temp;
|
|
-}
|
|
-
|
|
-//
|
|
-//
|
|
-CK_ULONG dlist_length(DL_NODE *list)
|
|
-{
|
|
- DL_NODE *temp = list;
|
|
- CK_ULONG len = 0;
|
|
-
|
|
- while (temp) {
|
|
- len++;
|
|
- temp = temp->next;
|
|
- }
|
|
-
|
|
- return len;
|
|
-}
|
|
-
|
|
-//
|
|
-//
|
|
-DL_NODE *dlist_next(DL_NODE *node)
|
|
-{
|
|
- if (!node)
|
|
- return NULL;
|
|
-
|
|
- return node->next;
|
|
-}
|
|
-
|
|
-//
|
|
-//
|
|
-DL_NODE *dlist_prev(DL_NODE *node)
|
|
-{
|
|
- if (!node)
|
|
- return NULL;
|
|
-
|
|
- return node->prev;
|
|
-}
|
|
-
|
|
-//
|
|
-//
|
|
-void dlist_purge(DL_NODE *list)
|
|
-{
|
|
- DL_NODE *node;
|
|
-
|
|
- if (!list)
|
|
- return;
|
|
-
|
|
- do {
|
|
- node = list->next;
|
|
- free(list);
|
|
- list = node;
|
|
- } while (list);
|
|
-}
|
|
-
|
|
-// Function: dlist_remove_node()
|
|
-//
|
|
-// Attempts to remove the specified node from the list. The caller is
|
|
-// responsible for freeing the data associated with the node prior to
|
|
-// calling this routine
|
|
-//
|
|
-DL_NODE *dlist_remove_node(DL_NODE *list, DL_NODE *node)
|
|
-{
|
|
- DL_NODE *temp = list;
|
|
-
|
|
- if (!list || !node)
|
|
- return NULL;
|
|
-
|
|
- // special case: removing head of the list
|
|
- //
|
|
- if (list == node) {
|
|
- temp = list->next;
|
|
- if (temp)
|
|
- temp->prev = NULL;
|
|
-
|
|
- free(list);
|
|
- return temp;
|
|
- }
|
|
- // we have no guarantee that the node is in the list
|
|
- // so search through the list to find it
|
|
- //
|
|
- while ((temp != NULL) && (temp->next != node))
|
|
- temp = temp->next;
|
|
-
|
|
- if (temp != NULL) {
|
|
- DL_NODE *next = node->next;
|
|
-
|
|
- temp->next = next;
|
|
- if (next)
|
|
- next->prev = temp;
|
|
-
|
|
- free(node);
|
|
- }
|
|
-
|
|
- return list;
|
|
-}
|
|
-
|
|
CK_RV CreateXProcLock(char *tokname, STDLL_TokData_t *tokdata)
|
|
{
|
|
char lockfile[PATH_MAX];
|
|
diff --git a/usr/lib/ep11_stdll/ep11_stdll.mk b/usr/lib/ep11_stdll/ep11_stdll.mk
|
|
index bc617124..b5574d9e 100644
|
|
--- a/usr/lib/ep11_stdll/ep11_stdll.mk
|
|
+++ b/usr/lib/ep11_stdll/ep11_stdll.mk
|
|
@@ -36,7 +36,7 @@ opencryptoki_stdll_libpkcs11_ep11_la_SOURCES = \
|
|
usr/lib/common/utility.c usr/lib/common/trace.c \
|
|
usr/lib/common/mech_list.c usr/lib/common/shared_memory.c \
|
|
usr/lib/common/attributes.c usr/lib/common/sw_crypt.c \
|
|
- usr/lib/common/profile_obj.c \
|
|
+ usr/lib/common/profile_obj.c usr/lib/common/dlist.c \
|
|
usr/lib/common/pkey_utils.c \
|
|
usr/lib/ep11_stdll/new_host.c usr/lib/ep11_stdll/ep11_specific.c
|
|
|
|
diff --git a/usr/lib/ica_s390_stdll/ica_s390_stdll.mk b/usr/lib/ica_s390_stdll/ica_s390_stdll.mk
|
|
index d8448486..8f467e11 100644
|
|
--- a/usr/lib/ica_s390_stdll/ica_s390_stdll.mk
|
|
+++ b/usr/lib/ica_s390_stdll/ica_s390_stdll.mk
|
|
@@ -34,7 +34,7 @@ opencryptoki_stdll_libpkcs11_ica_la_SOURCES = \
|
|
usr/lib/common/verify_mgr.c usr/lib/common/trace.c \
|
|
usr/lib/common/mech_list.c usr/lib/common/shared_memory.c \
|
|
usr/lib/common/profile_obj.c usr/lib/common/attributes.c \
|
|
- usr/lib/ica_s390_stdll/ica_specific.c
|
|
+ usr/lib/ica_s390_stdll/ica_specific.c usr/lib/common/dlist.c
|
|
|
|
if ENABLE_LOCKS
|
|
opencryptoki_stdll_libpkcs11_ica_la_SOURCES += \
|
|
diff --git a/usr/lib/icsf_stdll/icsf_stdll.mk b/usr/lib/icsf_stdll/icsf_stdll.mk
|
|
index 788478c2..21c64f9a 100644
|
|
--- a/usr/lib/icsf_stdll/icsf_stdll.mk
|
|
+++ b/usr/lib/icsf_stdll/icsf_stdll.mk
|
|
@@ -43,7 +43,7 @@ opencryptoki_stdll_libpkcs11_icsf_la_SOURCES = \
|
|
usr/lib/common/mech_ssl3.c usr/lib/common/verify_mgr.c \
|
|
usr/lib/common/mech_list.c usr/lib/common/shared_memory.c \
|
|
usr/lib/common/attributes.c usr/lib/icsf_stdll/new_host.c \
|
|
- usr/lib/common/profile_obj.c \
|
|
+ usr/lib/common/profile_obj.c usr/lib/common/dlist.c \
|
|
usr/lib/icsf_stdll/pbkdf.c usr/lib/icsf_stdll/icsf_specific.c \
|
|
usr/lib/icsf_stdll/icsf_config_parse.y \
|
|
usr/lib/icsf_stdll/icsf_config_lexer.l \
|
|
diff --git a/usr/lib/soft_stdll/soft_stdll.mk b/usr/lib/soft_stdll/soft_stdll.mk
|
|
index cea802b5..ac401539 100644
|
|
--- a/usr/lib/soft_stdll/soft_stdll.mk
|
|
+++ b/usr/lib/soft_stdll/soft_stdll.mk
|
|
@@ -32,7 +32,8 @@ opencryptoki_stdll_libpkcs11_sw_la_SOURCES = \
|
|
usr/lib/common/utility.c usr/lib/common/verify_mgr.c \
|
|
usr/lib/common/trace.c usr/lib/common/mech_list.c \
|
|
usr/lib/common/shared_memory.c usr/lib/common/profile_obj.c \
|
|
- usr/lib/soft_stdll/soft_specific.c usr/lib/common/attributes.c
|
|
+ usr/lib/soft_stdll/soft_specific.c usr/lib/common/attributes.c \
|
|
+ usr/lib/common/dlist.c
|
|
|
|
if ENABLE_LOCKS
|
|
opencryptoki_stdll_libpkcs11_sw_la_SOURCES += \
|
|
diff --git a/usr/lib/tpm_stdll/tpm_stdll.mk b/usr/lib/tpm_stdll/tpm_stdll.mk
|
|
index f199a103..0e0eb024 100644
|
|
--- a/usr/lib/tpm_stdll/tpm_stdll.mk
|
|
+++ b/usr/lib/tpm_stdll/tpm_stdll.mk
|
|
@@ -34,7 +34,8 @@ opencryptoki_stdll_libpkcs11_tpm_la_SOURCES = \
|
|
usr/lib/common/verify_mgr.c usr/lib/common/mech_list.c \
|
|
usr/lib/common/shared_memory.c usr/lib/common/profile_obj.c \
|
|
usr/lib/tpm_stdll/tpm_specific.c usr/lib/common/attributes.c \
|
|
- usr/lib/tpm_stdll/tpm_openssl.c usr/lib/tpm_stdll/tpm_util.c
|
|
+ usr/lib/tpm_stdll/tpm_openssl.c usr/lib/tpm_stdll/tpm_util.c \
|
|
+ usr/lib/common/dlist.c
|
|
|
|
if ENABLE_LOCKS
|
|
opencryptoki_stdll_libpkcs11_tpm_la_SOURCES += \
|
|
diff --git a/usr/sbin/pkcscca/pkcscca.mk b/usr/sbin/pkcscca/pkcscca.mk
|
|
index a223265f..cc40f819 100644
|
|
--- a/usr/sbin/pkcscca/pkcscca.mk
|
|
+++ b/usr/sbin/pkcscca/pkcscca.mk
|
|
@@ -36,7 +36,7 @@ usr_sbin_pkcscca_pkcscca_SOURCES = \
|
|
usr/lib/common/p11util.c usr/lib/common/sw_crypt.c \
|
|
usr/lib/common/shared_memory.c usr/lib/common/profile_obj.c \
|
|
usr/lib/common/attributes.c usr/lib/common/mech_rng.c \
|
|
- usr/lib/common/pkcs_utils.c \
|
|
+ usr/lib/common/pkcs_utils.c usr/lib/common/dlist.c \
|
|
usr/sbin/pkcscca/pkcscca.c
|
|
|
|
|
|
diff --git a/usr/sbin/pkcsslotd/pkcsslotd.mk b/usr/sbin/pkcsslotd/pkcsslotd.mk
|
|
index 4f0e3c56..2d36b4a9 100644
|
|
--- a/usr/sbin/pkcsslotd/pkcsslotd.mk
|
|
+++ b/usr/sbin/pkcsslotd/pkcsslotd.mk
|
|
@@ -21,5 +21,6 @@ usr_sbin_pkcsslotd_pkcsslotd_SOURCES = \
|
|
usr/sbin/pkcsslotd/socket_server.c
|
|
|
|
nodist_usr_sbin_pkcsslotd_pkcsslotd_SOURCES = \
|
|
- usr/lib/common/parser.h usr/lib/common/parser.c usr/lib/common/lexer.c
|
|
+ usr/lib/common/parser.h usr/lib/common/parser.c usr/lib/common/lexer.c \
|
|
+ usr/lib/common/dlist.c
|
|
usr/sbin/pkcsslotd/slotmgr.$(OBJEXT): usr/lib/common/parser.h
|