gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] branch master updated: DNS/REGEX: Move block plugin to plugin d


From: gnunet
Subject: [gnunet] branch master updated: DNS/REGEX: Move block plugin to plugin dir
Date: Fri, 20 Oct 2023 13:10:10 +0200

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new cf1b66251 DNS/REGEX: Move block plugin to plugin dir
cf1b66251 is described below

commit cf1b6625173ac83473efd5def2927b7c41d0b300
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Fri Oct 20 13:10:04 2023 +0200

    DNS/REGEX: Move block plugin to plugin dir
---
 configure.ac                                       |  2 ++
 po/POTFILES.in                                     |  6 ++--
 src/plugin/Makefile.am                             |  2 ++
 src/plugin/dns/Makefile.am                         | 25 ++++++++++++++
 src/plugin/dns/meson.build                         |  6 ++++
 src/{service => plugin}/dns/plugin_block_dns.c     |  0
 src/plugin/meson.build                             |  2 ++
 src/plugin/regex/Makefile.am                       | 40 ++++++++++++++++++++++
 src/plugin/regex/meson.build                       | 23 +++++++++++++
 src/{service => plugin}/regex/plugin_block_regex.c |  0
 src/{service => plugin}/regex/regex_block_lib.c    |  0
 src/{service => plugin}/regex/regex_block_lib.h    |  0
 src/service/dns/Makefile.am                        | 14 --------
 src/service/dns/meson.build                        | 10 +-----
 src/service/meson.build                            |  1 +
 src/service/regex/Makefile.am                      | 40 ++++------------------
 src/service/regex/meson.build                      | 24 +------------
 src/service/regex/regex_internal_dht.c             |  1 -
 src/service/regex/regex_internal_lib.h             |  2 +-
 19 files changed, 114 insertions(+), 84 deletions(-)

diff --git a/configure.ac b/configure.ac
index eb728e122..ebb37bb2b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1241,6 +1241,7 @@ src/plugin/block/Makefile
 src/plugin/datacache/Makefile
 src/plugin/datastore/Makefile
 src/plugin/dht/Makefile
+src/plugin/dns/Makefile
 src/plugin/fs/Makefile
 src/plugin/gns/Makefile
 src/plugin/gnsrecord/Makefile
@@ -1248,6 +1249,7 @@ src/plugin/namecache/Makefile
 src/plugin/namestore/Makefile
 src/plugin/peerstore/Makefile
 src/plugin/reclaim/Makefile
+src/plugin/regex/Makefile
 src/plugin/revocation/Makefile
 src/service/Makefile
 src/service/arm/Makefile
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 682b10fdb..cb4748f10 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -217,6 +217,7 @@ src/plugin/datastore/plugin_datastore_postgres.c
 src/plugin/datastore/plugin_datastore_sqlite.c
 src/plugin/datastore/plugin_datastore_template.c
 src/plugin/dht/plugin_block_dht.c
+src/plugin/dns/plugin_block_dns.c
 src/plugin/fs/plugin_block_fs.c
 src/plugin/gns/plugin_block_gns.c
 src/plugin/gns/plugin_gnsrecord_gns.c
@@ -234,6 +235,8 @@ src/plugin/reclaim/plugin_gnsrecord_reclaim.c
 src/plugin/reclaim/plugin_reclaim_attribute_basic.c
 src/plugin/reclaim/plugin_reclaim_credential_jwt.c
 src/plugin/reclaim/plugin_reclaim_credential_pabc.c
+src/plugin/regex/plugin_block_regex.c
+src/plugin/regex/regex_block_lib.c
 src/plugin/revocation/plugin_block_revocation.c
 src/service/arm/arm_api.c
 src/service/arm/arm_monitor_api.c
@@ -284,7 +287,6 @@ src/service/dns/gnunet-dns-redirector.c
 src/service/dns/gnunet-helper-dns.c
 src/service/dns/gnunet-service-dns.c
 src/service/dns/gnunet-zonewalk.c
-src/service/dns/plugin_block_dns.c
 src/service/exit/gnunet-daemon-exit.c
 src/service/exit/gnunet-helper-exit.c
 src/service/fs/fs_api.c
@@ -409,10 +411,8 @@ src/service/regex/gnunet-regex-profiler.c
 src/service/regex/gnunet-regex-simulation-profiler.c
 src/service/regex/gnunet-service-regex.c
 src/service/regex/perf-regex.c
-src/service/regex/plugin_block_regex.c
 src/service/regex/regex_api_announce.c
 src/service/regex/regex_api_search.c
-src/service/regex/regex_block_lib.c
 src/service/regex/regex_internal.c
 src/service/regex/regex_internal_dht.c
 src/service/regex/regex_test_graph.c
diff --git a/src/plugin/Makefile.am b/src/plugin/Makefile.am
index 3e10609e7..f3ca55ff0 100644
--- a/src/plugin/Makefile.am
+++ b/src/plugin/Makefile.am
@@ -1,5 +1,6 @@
 SUBDIRS = \
        block \
+       dns \
        gnsrecord \
        peerstore \
        datacache \
@@ -8,6 +9,7 @@ SUBDIRS = \
        namestore \
        dht \
        revocation \
+       regex \
        gns \
        fs \
        reclaim
diff --git a/src/plugin/dns/Makefile.am b/src/plugin/dns/Makefile.am
new file mode 100644
index 000000000..8b5843159
--- /dev/null
+++ b/src/plugin/dns/Makefile.am
@@ -0,0 +1,25 @@
+# This Makefile.am is in the public domain
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
+
+if USE_COVERAGE
+  AM_CFLAGS = --coverage -O0
+endif
+
+pkgcfgdir= $(pkgdatadir)/config.d/
+
+libexecdir= $(pkglibdir)/libexec/
+
+plugindir = $(libdir)/gnunet
+
+plugin_LTLIBRARIES = \
+  libgnunet_plugin_block_dns.la
+
+libgnunet_plugin_block_dns_la_SOURCES = \
+  plugin_block_dns.c
+libgnunet_plugin_block_dns_la_LIBADD = \
+  $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
+  $(top_builddir)/src/lib/block/libgnunetblock.la \
+  $(top_builddir)/src/lib/util/libgnunetutil.la
+libgnunet_plugin_block_dns_la_LDFLAGS = \
+  $(GN_LIBINTL) \
+  $(top_builddir)/src/block/$(GN_PLUGIN_LDFLAGS)
diff --git a/src/plugin/dns/meson.build b/src/plugin/dns/meson.build
new file mode 100644
index 000000000..974b2c38d
--- /dev/null
+++ b/src/plugin/dns/meson.build
@@ -0,0 +1,6 @@
+shared_module('gnunet_plugin_block_dns',
+        ['plugin_block_dns.c'],
+        dependencies: [libgnunetutil_dep, libgnunetblockgroup_dep],
+        include_directories: [incdir, configuration_inc],
+        install: true,
+        install_dir: get_option('libdir')/'gnunet')
diff --git a/src/service/dns/plugin_block_dns.c 
b/src/plugin/dns/plugin_block_dns.c
similarity index 100%
rename from src/service/dns/plugin_block_dns.c
rename to src/plugin/dns/plugin_block_dns.c
diff --git a/src/plugin/meson.build b/src/plugin/meson.build
index aec3a22d6..867e53f93 100644
--- a/src/plugin/meson.build
+++ b/src/plugin/meson.build
@@ -1,4 +1,5 @@
 subdir('block')
+subdir('dns')
 subdir('gnsrecord')
 subdir('datacache')
 subdir('datastore')
@@ -6,6 +7,7 @@ subdir('peerstore')
 subdir('namecache')
 subdir('namestore')
 subdir('dht')
+subdir('regex')
 subdir('revocation')
 subdir('gns')
 subdir('fs')
diff --git a/src/plugin/regex/Makefile.am b/src/plugin/regex/Makefile.am
new file mode 100644
index 000000000..a39cfc927
--- /dev/null
+++ b/src/plugin/regex/Makefile.am
@@ -0,0 +1,40 @@
+# This Makefile.am is in the public domain
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
+
+if USE_COVERAGE
+  AM_CFLAGS = --coverage
+endif
+
+pkgcfgdir= $(pkgdatadir)/config.d/
+
+libexecdir= $(pkglibdir)/libexec/
+
+plugindir = $(libdir)/gnunet
+
+lib_LTLIBRARIES = \
+  libgnunetregexblock.la
+
+libgnunetregexblock_la_SOURCES = \
+  regex_block_lib.c regex_block_lib.h
+libgnunetregexblock_la_LIBADD = \
+  $(top_builddir)/src/lib/util/libgnunetutil.la \
+  $(XLIB) \
+  $(LTLIBINTL)
+libgnunetregexblock_la_LDFLAGS = \
+  $(GN_LIB_LDFLAGS)  \
+  -version-info 1:0:0
+
+
+plugin_LTLIBRARIES = \
+ libgnunet_plugin_block_regex.la
+
+libgnunet_plugin_block_regex_la_SOURCES = \
+ plugin_block_regex.c
+libgnunet_plugin_block_regex_la_LIBADD = \
+ libgnunetregexblock.la \
+ $(top_builddir)/src/lib/block/libgnunetblock.la \
+ $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
+ $(top_builddir)/src/lib/util/libgnunetutil.la
+libgnunet_plugin_block_regex_la_LDFLAGS = \
+ $(GN_LIBINTL) \
+ $(GN_PLUGIN_LDFLAGS)
diff --git a/src/plugin/regex/meson.build b/src/plugin/regex/meson.build
new file mode 100644
index 000000000..0e1b4b08d
--- /dev/null
+++ b/src/plugin/regex/meson.build
@@ -0,0 +1,23 @@
+libgnunetregexblock_src = ['regex_block_lib.c']
+
+libgnunetregexblock = library('gnunetregexblock',
+        libgnunetregexblock_src,
+        soversion: '1',
+        version: '1.0.0',
+        dependencies: libgnunetutil_dep,
+        include_directories: [incdir, configuration_inc],
+        install: true,
+        install_dir: get_option('libdir'))
+libgnunetregexblock_dep = declare_dependency(link_with : libgnunetregexblock)
+
+shared_module('gnunet_plugin_block_regex',
+        ['plugin_block_regex.c'],
+        dependencies: [libgnunetutil_dep,
+                       libgnunetregexblock_dep,
+                       libgnunetblock_dep,
+                       libgnunetblockgroup_dep],
+        include_directories: [incdir, configuration_inc],
+              install:true,
+              install_dir: get_option('libdir')/'gnunet')
+
+
diff --git a/src/service/regex/plugin_block_regex.c 
b/src/plugin/regex/plugin_block_regex.c
similarity index 100%
rename from src/service/regex/plugin_block_regex.c
rename to src/plugin/regex/plugin_block_regex.c
diff --git a/src/service/regex/regex_block_lib.c 
b/src/plugin/regex/regex_block_lib.c
similarity index 100%
rename from src/service/regex/regex_block_lib.c
rename to src/plugin/regex/regex_block_lib.c
diff --git a/src/service/regex/regex_block_lib.h 
b/src/plugin/regex/regex_block_lib.h
similarity index 100%
rename from src/service/regex/regex_block_lib.h
rename to src/plugin/regex/regex_block_lib.h
diff --git a/src/service/dns/Makefile.am b/src/service/dns/Makefile.am
index 38ee78c3a..0d07b9e5e 100644
--- a/src/service/dns/Makefile.am
+++ b/src/service/dns/Makefile.am
@@ -29,9 +29,6 @@ noinst_PROGRAMS = \
   gnunet-dns-redirector \
   gnunet-zonewalk
 
-plugin_LTLIBRARIES = \
-  libgnunet_plugin_block_dns.la
-
 if LINUX
 check_SCRIPTS = \
  test_gnunet_dns.sh
@@ -77,17 +74,6 @@ libgnunetdns_la_LDFLAGS = \
   $(GN_LIB_LDFLAGS) \
   -version-info 0:0:0
 
-libgnunet_plugin_block_dns_la_SOURCES = \
-  plugin_block_dns.c
-libgnunet_plugin_block_dns_la_LIBADD = \
-  $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
-  $(top_builddir)/src/lib/block/libgnunetblock.la \
-  $(top_builddir)/src/lib/util/libgnunetutil.la
-libgnunet_plugin_block_dns_la_LDFLAGS = \
-  $(GN_LIBINTL) \
-  $(top_builddir)/src/block/$(GN_PLUGIN_LDFLAGS)
-
-
 if ENABLE_TEST_RUN
 AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export 
PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset 
XDG_CONFIG_HOME;
 TESTS = $(check_PROGRAMS)  $(check_SCRIPTS)
diff --git a/src/service/dns/meson.build b/src/service/dns/meson.build
index fe0f6e954..e1b7f7670 100644
--- a/src/service/dns/meson.build
+++ b/src/service/dns/meson.build
@@ -1,5 +1,4 @@
 libgnunetdns_src = ['dns_api.c']
-libgnunetpluginblockdns_src = ['plugin_block_dns.c']
 
 gnunetservicedns_src = ['gnunet-service-dns.c']
 gnunetdnsredirector_src = ['gnunet-dns-monitor.c']
@@ -12,7 +11,7 @@ configure_file(input : 'dns.conf.in',
                install_dir: pkgcfgdir)
 
 if get_option('monolith')
-  foreach p : libgnunetdns_src + gnunetservicedns_src + 
libgnunetpluginblockdns_src
+  foreach p : libgnunetdns_src + gnunetservicedns_src
     gnunet_src += 'dns/' + p
   endforeach
 endif
@@ -29,13 +28,6 @@ libgnunetdns_dep = declare_dependency(link_with : 
libgnunetdns)
 pkg.generate(libgnunetdns, url: 'https://www.gnunet.org',
              description : 'Provides API to access GNUnet\'s DNS service (to 
intercept and manipulate DNS queries)')
 
-shared_module('gnunet_plugin_block_dns',
-        libgnunetpluginblockdns_src,
-        dependencies: [libgnunetutil_dep, libgnunetblockgroup_dep],
-        include_directories: [incdir, configuration_inc],
-        install: true,
-        install_dir: get_option('libdir')/'gnunet')
-
 executable ('gnunet-service-dns',
             gnunetservicedns_src,
             dependencies: [libgnunetdns_dep, libgnunetutil_dep,
diff --git a/src/service/meson.build b/src/service/meson.build
index 34dd997e2..b089c9794 100644
--- a/src/service/meson.build
+++ b/src/service/meson.build
@@ -43,6 +43,7 @@ libgnunet = library('gnunet',
                                    libgnunetjson_dep,
                                    libgnunetblock_dep,
                                    libgnunetblockgroup_dep,
+                                   libgnunetregexblock_dep,
                                    libgnunetgnsrecord_dep,
                                    libgnunetgnsrecordjson_dep,
                                    jose_dep,
diff --git a/src/service/regex/Makefile.am b/src/service/regex/Makefile.am
index 14cdb054b..255988889 100644
--- a/src/service/regex/Makefile.am
+++ b/src/service/regex/Makefile.am
@@ -31,27 +31,15 @@ REGEX_INTERNAL_TEST = \
 gnunet_service_regex_SOURCES =  \
  $(REGEX_INTERNAL) gnunet-service-regex.c
 gnunet_service_regex_LDADD =  -lm \
- libgnunetregexblock.la \
+ $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
  $(top_builddir)/src/service/dht/libgnunetdht.la \
  $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/lib/util/libgnunetutil.la \
  $(GN_LIBINTL)
 
 lib_LTLIBRARIES = \
-  libgnunetregexblock.la \
   libgnunetregex.la
 
-libgnunetregexblock_la_SOURCES = \
-  regex_block_lib.c regex_block_lib.h
-libgnunetregexblock_la_LIBADD = \
-  $(top_builddir)/src/lib/util/libgnunetutil.la \
-  $(XLIB) \
-  $(LTLIBINTL)
-libgnunetregexblock_la_LDFLAGS = \
-  $(GN_LIB_LDFLAGS)  \
-  -version-info 1:0:0
-
-
 libgnunetregex_la_SOURCES = \
   regex_api_announce.c \
   regex_api_search.c \
@@ -64,20 +52,6 @@ libgnunetregex_la_LDFLAGS = \
    -version-info 3:1:0
 
 
-plugin_LTLIBRARIES = \
- libgnunet_plugin_block_regex.la
-
-libgnunet_plugin_block_regex_la_SOURCES = \
- plugin_block_regex.c
-libgnunet_plugin_block_regex_la_LIBADD = \
- libgnunetregexblock.la \
- $(top_builddir)/src/lib/block/libgnunetblock.la \
- $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
- $(top_builddir)/src/lib/util/libgnunetutil.la
-libgnunet_plugin_block_regex_la_LDFLAGS = \
- $(GN_LIBINTL) \
- $(GN_PLUGIN_LDFLAGS)
-
 # FIXME we phased out mysql. If we want to keep, needs rewrite
 #if HAVE_MYSQL
 #noinst_mysql_progs = \
@@ -100,7 +74,7 @@ perf_regex_SOURCES = \
   $(REGEX_INTERNAL_TEST) perf-regex.c
 perf_regex_LDADD = -lm \
   $(top_builddir)/src/service/dht/libgnunetdht.la \
-  libgnunetregexblock.la \
+  $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
   $(top_builddir)/src/lib/util/libgnunetutil.la \
   $(top_builddir)/src/service/statistics/libgnunetstatistics.la
 perf_regex_LDFLAGS = \
@@ -110,7 +84,7 @@ gnunet_daemon_regexprofiler_SOURCES = \
   $(REGEX_INTERNAL_TEST) gnunet-daemon-regexprofiler.c
 gnunet_daemon_regexprofiler_LDADD = -lm \
   $(top_builddir)/src/service/dht/libgnunetdht.la \
-  libgnunetregexblock.la \
+  $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
   $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/lib/util/libgnunetutil.la
 gnunet_daemon_regexprofiler_LDFLAGS = \
@@ -133,7 +107,7 @@ test_regex_eval_api_SOURCES = \
   $(REGEX_INTERNAL_TEST) test_regex_eval_api.c
 test_regex_eval_api_LDADD = -lm \
   $(top_builddir)/src/service/dht/libgnunetdht.la \
-  libgnunetregexblock.la \
+  $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
   $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/lib/util/libgnunetutil.la
 
@@ -154,7 +128,7 @@ test_regex_api_LDADD = -lm \
 test_regex_iterate_api_SOURCES = \
   $(REGEX_INTERNAL) test_regex_iterate_api.c
 test_regex_iterate_api_LDADD = -lm \
-  libgnunetregexblock.la \
+  $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
   $(top_builddir)/src/service/dht/libgnunetdht.la \
   $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/lib/util/libgnunetutil.la
@@ -163,7 +137,7 @@ test_regex_proofs_SOURCES = \
   $(REGEX_INTERNAL_TEST) test_regex_proofs.c
 test_regex_proofs_LDADD = -lm \
   $(top_builddir)/src/service/dht/libgnunetdht.la \
-  libgnunetregexblock.la \
+  $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
   $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/lib/util/libgnunetutil.la
 
@@ -171,7 +145,7 @@ test_regex_graph_api_SOURCES = \
   $(REGEX_INTERNAL_TEST) test_regex_graph_api.c
 test_regex_graph_api_LDADD = -lm \
   $(top_builddir)/src/service/dht/libgnunetdht.la \
-  libgnunetregexblock.la \
+  $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
   $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/lib/util/libgnunetutil.la
 
diff --git a/src/service/regex/meson.build b/src/service/regex/meson.build
index da607ca47..3c25a5148 100644
--- a/src/service/regex/meson.build
+++ b/src/service/regex/meson.build
@@ -1,7 +1,5 @@
 libgnunetregex_src = ['regex_api_announce.c',
                      'regex_api_search.c']
-libgnunetregexblock_src = ['regex_block_lib.c']
-
 gnunetserviceregex_src = ['gnunet-service-regex.c',
                           'regex_internal_dht.c',
                           'regex_internal.c']
@@ -14,7 +12,7 @@ configure_file(input : 'regex.conf.in',
 
 
 if get_option('monolith')
-  foreach p : libgnunetregex_src + libgnunetregexblock_src + 
gnunetserviceregex_src
+  foreach p : libgnunetregex_src + gnunetserviceregex_src
     gnunet_src += 'regex/' + p
   endforeach
 endif
@@ -30,26 +28,6 @@ libgnunetregex = library('gnunetregex',
 pkg.generate(libgnunetregex, url: 'https://www.gnunet.org',
              description : 'Provides API for accessing the regex service')
 libgnunetregex_dep = declare_dependency(link_with : libgnunetregex)
-libgnunetregexblock = library('gnunetregexblock',
-        libgnunetregexblock_src,
-        soversion: '1',
-        version: '1.0.0',
-        dependencies: libgnunetutil_dep,
-        include_directories: [incdir, configuration_inc],
-        install: true,
-        install_dir: get_option('libdir'))
-libgnunetregexblock_dep = declare_dependency(link_with : libgnunetregexblock)
-
-shared_module('gnunet_plugin_block_regex',
-        ['plugin_block_regex.c'],
-        dependencies: [libgnunetutil_dep,
-                       libgnunetregexblock_dep,
-                       libgnunetblock_dep,
-                       libgnunetblockgroup_dep],
-        include_directories: [incdir, configuration_inc],
-              install:true,
-              install_dir: get_option('libdir')/'gnunet')
-
 
 executable ('gnunet-service-regex',
             gnunetserviceregex_src,
diff --git a/src/service/regex/regex_internal_dht.c 
b/src/service/regex/regex_internal_dht.c
index bda979edb..9850f106f 100644
--- a/src/service/regex/regex_internal_dht.c
+++ b/src/service/regex/regex_internal_dht.c
@@ -25,7 +25,6 @@
  */
 #include "platform.h"
 #include "regex_internal_lib.h"
-#include "regex_block_lib.h"
 #include "gnunet_dht_service.h"
 #include "gnunet_statistics_service.h"
 #include "gnunet_constants.h"
diff --git a/src/service/regex/regex_internal_lib.h 
b/src/service/regex/regex_internal_lib.h
index 9baf84995..bfa3fc97d 100644
--- a/src/service/regex/regex_internal_lib.h
+++ b/src/service/regex/regex_internal_lib.h
@@ -29,7 +29,7 @@
 #include "gnunet_util_lib.h"
 #include "gnunet_dht_service.h"
 #include "gnunet_statistics_service.h"
-#include "regex_block_lib.h"
+#include "../../plugin/regex/regex_block_lib.h"
 
 #ifdef __cplusplus
 extern "C"

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]