2016-04-01 17 views
0
İçinden arıyordum

saf-ftpd-1.0.42 kaynak kodu:pure-ftpd, uploadscript'i nerede çağırıyor?

https://github.com/jedisct1/pure-ftpd

o tetikler zaman bulmaya çalışmak:

https://github.com/jedisct1/pure-ftpd/blob/master/src/pure-uploadscript.c

yani zaman uploadscript çalışıyor mu Bir dosya yüklendikten sonra.

src/ftp_parser.c'a bakarsanız, dostor yöntemi, bir dosyanın yükleme yolculuğunu nasıl başlattığıdır. Daha sonra ul_send'a, sonra ul_handle_data'a gider, ancak bu noktada kaybolurum. Ne zaman dediğini göremiyorum, tamam, bu dosya yüklendi, uploadscript'u aramak için zaman. Birisi bana çizgiyi gösterebilir mi?

cevap

1

src/ftpd.cpureftpd_start() işlevinde, pure-ftpd tüm komut satırı seçeneklerini başlatır ve ayrıştırır. da yapılandırılmışsa pure-uploadscript'a bir boru açar; here. Yükleme komut dosyasını her yükleme üzerine çağırmak yerine (ve ve yükleme başına), pure-ftpd, yükleme komut dosyası işlemini ayrı ayrı çalıştırır ve yüklenen dosya yolunu borudan gönderir.

Bunu bildiğinizde, upload_pipe_push() işlevini kullanarak borunun nereye yazıldığını araştırıyoruz. İlginç bir şekilde, here işlevine, src/ftpd.c dosyasındaki dostor() ve doretr() tarafından çağrılan displayrate() işlevi adı verilir.

Bu yardımcı olur umarız!

+0

Bu yardımcı olur, teşekkürler. Şimdi upload_pipe_push() 'ı çağırmanın ne zaman güvenli olduğunu anlamaya çalışıyorum. Kullanıcı büyük bir dosya yüklüyorsa ne olur? % 99 yapılır ve bağlantı düşer. Kullanıcı bir saat sonra tekrar bağlanır ve son 1% 'yi bir appe komutuyla yükler. Pureftpd, upload_pipe_push'u çağırmadan önce bu son% 1'i (yani bir saat) beklemeyi nasıl biliyor? –

+0

'Saf-ftpd' ** 'nin bildiğine emin değilim, çünkü FTP istemcilerin istemcilere ne kadar veri göndereceğini önceden sunuculara söylemesine izin vermez. "Saf-ftpd", veri bağlantısının "normal" ya da anormal nedenlerden ötürü düşüp düşmediğini ve "normal" durumlar için 'upload_pipe_push()' yi çağırabileceğini biliyor olabilir. – Castaglia

+0

havalı ve eğer ben safftp mantığını yeniden denemek ve yeniden oluşturmak olsaydım, anormal bir düşüşten sonra dosya bittiğini varsaymadan önce ne kadar beklemeliyim? Bunun için yapılandırılabilir bir zaman aşımı var mı? –

İlgili konular