Lo so.. è per questo che chi riceverà l'oggetto dovrà sostituire il 127.0.0.1 contenente nell'oggetto con l'indirizzo IP "reale" dell'host che ha inviato l'oggetto! Mi lamentavo solo del fatto che è una cosa noiosa...Originariamente inviato da lelefante
Il progetto e' interessante.
1) Se stai lavorando sotto linux e per trovare l'indirizzo IP della macchina usi getLocalHost() sappi che e' un bug della JVM.
Infatti sotto linux come primo indirizzo restituisce sempre 127.0.0.1, anche se la macchina e' dotata di scheda di rete attiva. Questo per dire che anche quando pubblichi qualcosa il tuo indirizzo non e' 127.0.0.1, ma l'indirizzo di rete (ad esempio 192.168.0.XXX).
Il discorso qui è problematico... perchè far vedere il contenuto di una dir "su richiesta", considerando il fatto che vengono aggiornati via UDP creerebbe un bel problema di "sincronizzazione" nel rendere sempre disponibile il contenuto "in remoto" di una dir... Mi sa che cercherò l'eccezione adatta... e se uno gli da una dir troppo grande, beh catturo l'eccezione e gli dico che non si può fare2)Come hai gia' visto e' impossibile far pubblicare "/" perche' significherebbe trasmettere tuttoi li proprio HD, giga e giga di roba.
Potresti fare un controllo e avvisare l'utente che cio' non e' possibile.
Una alternativa possibile potrebbe essere creare le sottodirectory del primo livello e cominciare a riempire solo un ramo del fs.
Ad esempio se uno volesse publicare "/" tu memorizzi solo le directory. E poi ne gestisci una sola alla volta
Quindi nel server scrivi solo i percorsi delle prime sottodirectory, tranne una, che e' quella che cominci a riempire, nell' esempio "/usr/local"codice:"/" +-- "/bin" +-- "/sbin" +-- "/home" +-- "/root" +-- "/boot" +-- "/usr" +-- "local" +... eccetera
Questo metodo ti permetterebbe di funzionare anche in caso in cui una sottodirectory fosse troppo grande per poter gestire il tutto in un colpo solo.
Del "proprietario" non me ne frega nulla... il referer mi serve per eliminare "solo" le sottodirectory pubblicate come conseguenza nella pubblicazione di una dir.3) Non ho ben capito quale sia il tuo problema: se pubblichi "/usr/share/fabrizio/giochi" e poi anche
"/usr/share/fabrizio"
e decidi di togliere la prima, non vedo quale sia il problema, e' come se tu cancellassi solo "giochi", non e' detto che la sopradirectory ne imponga la vita perpetuamentre se cancelli la sopradirectory trovo giusto che venga eliminata anche "giochi".
L'utilizzo del campo refer potrebbe essere interessanta, magari potresti includere un file di testo all'interno di ogni dir, contenente il nome e l'indirizzo IP del proprietario della dir.
Il problema è che ogni directory pubblicata (e relative sottodir) deve avere vita a se' come se si trattasse di directory differenti
PS: qualcuno ha qualche idea su una possibile struttura dati che non sia un incapsulamento di vector? Qualcosa di più veloce o più performante?