From 197f25c9c913940c87774c15bded85aa920be14b Mon Sep 17 00:00:00 2001 From: Sebastian Vater Date: Tue, 19 Aug 2025 16:53:14 +0200 Subject: [SERVER] iscsi: Hook into net.c, text response handling, more features: - R2T handling - Portal groups - Fixes to login phase handling - Code refactoring - Remove obsolete PDU fields - SCSI INQUIRY handler - Persistent Reservation support - Implement SCSI block based operations - Implement other needed SCSI ops - Disks are now reported as read-only - Doxygen tags - Bugfixes for crashes, memleaks, etc. --- src/server/server.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/server/server.c') diff --git a/src/server/server.c b/src/server/server.c index d086930..0bbb417 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -27,6 +27,7 @@ #include "net.h" #include "altservers.h" #include "integrity.h" +#include "iscsi.h" #include "threadpool.h" #include "rpc.h" #include "fuse.h" @@ -176,6 +177,10 @@ _Noreturn static void dnbd3_cleanup() threadpool_waitEmpty(); + // Destroy iSCSI global vector + iscsi_destroy(); + pthread_rwlock_destroy( &iscsi_globvec_rwlock ); + // Clean up images retries = 5; while ( !image_tryFreeAll() && --retries > 0 ) { @@ -365,6 +370,12 @@ int main(int argc, char *argv[]) altservers_init(); integrity_init(); net_init(); + + if ( _iSCSIServer ) { + if ( (pthread_rwlock_init( &iscsi_globvec_rwlock, NULL ) != 0) || (iscsi_create() < 0) ) + return EXIT_FAILURE; + } + uplink_globalsInit(); rpc_init(); if ( mountDir != NULL && !dfuse_init( "-oallow_other", mountDir ) ) { -- cgit v1.2.3-55-g7522