diff --git a/internal/api/handlers.go b/internal/api/handlers.go index 5f3a455..e7a0a5d 100644 --- a/internal/api/handlers.go +++ b/internal/api/handlers.go @@ -1118,10 +1118,14 @@ func (g *Gateway) handleTorrentUpload(w http.ResponseWriter, r *http.Request, fi } // Queue video for transcoding if applicable + log.Printf("DEBUG: Transcoding check for %s - transcodingManager: %t, streamingInfo: %t, autoTranscode: %t", + fileName, g.transcodingManager != nil, streamingInfo != nil, g.config.Transcoding.AutoTranscode) + if g.transcodingManager != nil && streamingInfo != nil && g.config.Transcoding.AutoTranscode { // For torrent files, we need to reconstruct the original file for transcoding go func() { // Run in background to not block upload response + log.Printf("DEBUG: Starting transcoding reconstruction for %s", fileName) originalPath, err := g.ReconstructTorrentFile(metadata.Hash, fileName) if err != nil { log.Printf("Warning: Failed to reconstruct file %s for transcoding: %v", fileName, err) @@ -1131,6 +1135,8 @@ func (g *Gateway) handleTorrentUpload(w http.ResponseWriter, r *http.Request, fi log.Printf("Queueing large video file %s for transcoding", fileName) g.transcodingManager.QueueVideoForTranscoding(metadata.Hash, fileName, originalPath, metadata.Size) }() + } else { + log.Printf("DEBUG: Transcoding skipped for %s - missing conditions", fileName) } // Send success response for torrent diff --git a/internal/dht/node.go b/internal/dht/node.go index 95a7caf..1fd97a2 100644 --- a/internal/dht/node.go +++ b/internal/dht/node.go @@ -2233,6 +2233,12 @@ func (d *DHT) queryNodesParallel(candidates []*Node, targetID NodeID, queryType wg.Done() }() + // Validate node before proceeding + if node == nil || node.Addr == nil { + log.Printf("DHT query: skipping nil node or address") + return + } + key := fmt.Sprintf("%s:%d", node.Addr.IP, node.Addr.Port) queriedMutex.Lock() queried[key] = true diff --git a/torrent-gateway b/torrent-gateway index f5cb047..6b62327 100755 Binary files a/torrent-gateway and b/torrent-gateway differ