Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   De los mismos creadores de pico llega ... (https://www.clubdelphi.com/foros/showthread.php?t=42308)

seoane 11-04-2007 14:11:34

De los mismos creadores de pico llega ...
 
1 Archivos Adjunto(s)
Pues eso, estos días estoy entretenido con un nuevo juguete, no se si recordáis el micro servidor que colgué por aquí ya hace un año, pico lo llame, pues ahora he intentando hacer algo similar en linux (el pico original no funciona en linux porque wine no implementa todavía la API TransmitFile).

Así que he abierto el gedit, y comencé a escribir código en C. Por ahora llevo unas 500 lineas de código, y ya maneja correctamente el comando Get, puede enviar archivos, mensajes de texto, listar directorios, codificar/descodificar urls y además es multihilo. Faltan por implementar la autentificación, el comando Head y algún método de Timeout a la hora de leer el socket, pero eso ya lo haremos mas adelante si es necesario.

El funcionamiento es sencillo, solo hay que ejecutar pico en un terminal y luego en cualquier navegador utilizar la url http://127.0.0.1:1978/ si es en el mismo equipo o http://tuip:1978/ si es desde otro equipo de tu red. Se puede ejecutar sin usar el terminal, pero entonces el programa permanece oculto y no mostraría ni mensajes, ni errores (si los hubiera). Una vez que accedemos a esa url vemos un listado de todo el sistema de ficheros, aquí es importante recordar que el programa tiene los mismos permisos de lectura que el usuario que lo ejecuta (para mas adelante estoy pensando en utilizar algo como chroot para cambiar el directorio raíz del proceso).

Como siempre, se admiten sugerencias, consejos, criticas (sin pasarse :p ) pero siempre recordando que se trata de un juguete y no de un servidor serio, yo al menos pienso utilizarlo como venia haciéndolo con su hermano gemelo en windows, para pasar archivos de un ordenador a otro rápidamente y sin tener que andar instalando nada, ni cambiando la configuración de las carpetas compartidas, etc ... un par de clicks y copiando, sin complicarse (muy útil cuando quieres pasar archivos al portátil de un amigo).

Cambios:

- 12/04/2006
  • Primer bug corregido :eek: . Solo era un problemilla de zombies ...
- 13/04/2006
  • Ahora si no se realizan peticiones nuevas en 30 segundo la conexión de cierra.
  • Se muestran mas mensajes con información, y se indica a que proceso pertenece.
  • Arreglado un pequeño fallo en la función urldecode
- 15/04/2006
  • Rehice algunas funciones.
  • Ahora el puerto, el timeout y el tamaño de buffer se pueden cambiar desde la linea de comandos.
  • Volvieron los zombies, pero ahora creo que ya los mato bien muertos ...
  • Los mensajes de error http son mas precisos
  • Ya manejo el comando HEAD
- 21/04/2006
  • Pequeñas modificaciones para poder utilizarlo conjuntamente con xinetd ...

Ñuño Martínez 11-04-2007 14:30:35

Cita:

Empezado por seoane
(...)Por ahora llevo unas 500 lineas de código(...)

519, para ser exactos ;)

No he podido probarlo, y la verdad es que no sé cuándo podré, pero hay cosillas interesantes. No dices nada de condiciones para usarlo, así que supondré que es completamente libre (el sueño de Stallman :D). Lo digo porque tengo un montón de ideas pendientes a las que tendré que dar salida cuando consiga establecerme definitivamente y... :rolleyes:

seoane 11-04-2007 14:51:13

Cita:

Empezado por Ñuño
No dices nada de condiciones para usarlo, así que supondré que es completamente libre

Tranquilo Ñuño usalo sin problemas, es completamente libre, como un pajarillo. Yo entiendo, y es una opinión personal, que todo lo que se publica en un foro es libre, y mas si va sin licencia (por cierto, he estado echando un vistazo a tus licencias y me parece que te las voy a copiar :p ).

Por otro lado, aun siendo libres y sin tener ninguna obligación de hacerlo, estaría bien, que si utilizas el código me mandaras un mensaje para saber como termino la cosa, solo por curiosidad.

Ñuño Martínez 11-04-2007 15:13:44

Stupendo.

Y por supuesto que puedes utilizar mis licencias, por eso las puse en mi web. Puede que las cambie algo en un futuro próximo, especialmente lo de "Modificaciones al Acuerdo de Licencia" ya que ahora mismo Burdjia, como ente, no existe y ya no dispongo del apartado de correos, pero lo demás seguirá siendo igual, así que sin problema.

seoane 11-04-2007 18:39:41

Bueno al parecer tenia un pequeño problema de zombies. Cuando un proceso hijo finalizaba, no lo limpiaba, quedando entonces en el sistema como un proceso zombie. Bueno, eso esta solucionado, ahora manejo la señal que indica que el proceso hijo a terminado y hago limpieza. Ya subí el zip con el código corregido.

Espero que el siguiente bug tarde un poco mas en aparecer :o

dec 12-04-2007 15:39:36

Hola,

Está muy chulo Pico Seoane. Y me he puesto a probar lo de "compartir" archivos entre ordenadores y la cosa parece muy curiosa. :)

No garantizo que vaya a estar "online", pero, ¿alguien podría probar a entrar en la siguiente dirección y decirme lo que ve? :)

http://82.159.35.98:1978

seoane 12-04-2007 15:42:46

:D Lo que se ve dec es un dialogo pidiendo usuario y contraseña, y yo que pensé que habías puesto tu disco duro online :p

dec 12-04-2007 15:44:38

Hola,

:D :D :D

Eso era justo lo que quería que se viera. :) :D

Ahora puedes probar con el usuario: "clubdelphi" y la contraseña "clubdelphi". :)

seoane 12-04-2007 15:44:42

Y por lo que veo estas usando Pico :D

seoane 12-04-2007 15:45:50

Ahora sale un directorio, con un archivo llamado hola.txt

dec 12-04-2007 15:48:12

Hola,

Sí... :)

La verdad es que es curioso esto, ¿eh? Dan ganas de ponerse a hacer algo y todo... de momento ya he añadido a Pico la capacidad de aceptar como parámetro el nombre de un usuario, además de la contraseña. :)

No sé... esta misma tarde tengo que irme de casa a hacer unos asuntos, y el ordenador se quedará probablemente encendido... no sé si dejar a Pico "corriendo" de modo que si necesito algún archivo o algo... pueda recurrir a él.

Qué cosas... desde luego es curioso Pico. :)

seoane 12-04-2007 15:51:50

Cita:

Empezado por dec
no sé si dejar a Pico "corriendo"

Recuerda que no te garantizo que resista una ataque malintencionado, en principio debería resistir, pero no te lo garantizo :p

Cita:

Empezado por dec
La verdad es que es curioso esto, ¿eh? Dan ganas de ponerse a hacer algo y todo...

Si es divertido :p ¿Probaste la version para linux?

dec 12-04-2007 15:59:20

Hola,

Nope. No he probado la versión para Linux, pero, supongo que viniendo de quien viene será igual o mejor que la de Windows. Y sí que dan ganas de ponerse a juguetear un poco, pero, efectivamente, no sé si está uno lo suficientemente preparado para estas cosas.

Por ejemplo, el tema de la seguridad. Tal como yo lo veo, no es posible "saltarse" a Pico a no ser que se conozca el nombre de usuario y la contraseña correspondientes. Ahora bien, esto es tal y como yo lo veo. Otra cosa es que esté completamente equivocado.

Una cosa Seoane, ahora que lo pienso, lo mismo que está Pico para HTTP podría uno escribir un Pico para FTP, ¿no? Pero me estoy desviando del tema... :)

seoane 12-04-2007 16:10:21

Cita:

Empezado por dec
Por ejemplo, el tema de la seguridad. Tal como yo lo veo, no es posible "saltarse" a Pico a no ser que se conozca el nombre de usuario y la contraseña correspondientes.

En teoría no. Pero yo estaba pensando en ataques de denegación de servicio o desbordamiento de buffer. El desbordamiento de buffer creo que lo tengo controlado, pero la denegación de servicio es otra cosa. De todas formas un ataque de ese tipo solamente dejaría fuera de combate el servidor pero no afectaría a la seguridad.

Cita:

Una cosa Seoane, ahora que lo pienso, lo mismo que está Pico para HTTP podría uno escribir un Pico para FTP, ¿no? Pero me estoy desviando del tema... :)
Se podría hacer, pero ten en cuenta que FTP tiene muchos mas comandos que HTTP. Pero si te animas .... :p

mamcx 12-04-2007 16:55:38

Cita:

Empezado por seoane
Tranquilo Ñuño usalo sin problemas, es completamente libre, como un pajarillo. Yo entiendo, y es una opinión personal, que todo lo que se publica en un foro es libre, y mas si va sin licencia (por cierto, he estado echando un vistazo a tus licencias y me parece que te las voy a copiar :p ).

Quizas cambies de parecer al leer http://www.codinghorror.com/blog/archives/000833.html

Al final, ten en cuenta que agregar una licencia puede ser tan simple como

"Este codigo esta disponible bajo la licencia SuperWau! disponible en http://unaurl.com"

(En caso de usar una licencia con el texto publico, como las creative commons).

Por experiencia, las cosas legales son las que uno menos piensa pero luego vuelven para darte en el trasero...

Ñuño Martínez 12-04-2007 17:15:58

Cita:

Empezado por mamcx
Por experiencia, las cosas legales son las que uno menos piensa pero luego vuelven para darte en el trasero...

Precisamente por eso creé mis licencias cuando estuve trabajando como autónomo con ayuda de un abogado.

seoane 12-04-2007 17:38:24

Cita:

Empezado por mamcx
Al final, ten en cuenta que agregar una licencia puede ser tan simple como

"Este codigo esta disponible bajo la licencia SuperWau! disponible en http://unaurl.com"

(En caso de usar una licencia con el texto publico, como las creative commons).

Por experiencia, las cosas legales son las que uno menos piensa pero luego vuelven para darte en el trasero...

Nunca lo había pensado de esa manera ¿Llegaría con añadir a mi firma un enlace a una licencia? Algo así:

"Todos mis mensajes, incluidos código y archivos adjuntos esta bajo la licencia Superguay"

¿Que os parece? he visto que en algún sitio lo hacían así, pero me parecía un poco pedante. Para cuatro lineas de código que se pueden meter en un mensaje me parece excesivo tener que andar pensando en licencias y demás.

mamcx 12-04-2007 18:22:42

Con respecto al codigo que se pone en los post no es tan serio -al fin rararmente es codigo compilable o completo-, pero en el caso de PICO o cualquier software que es funcional pues si.

mamcx 12-04-2007 18:25:54

Y una pregunta social....

Porque re-hiciste PICO en C,sabiendo que existe freepascal? Una mera aventura al lado oscuro? ;).

Bueno,no que desanime a probar otros lenguajes. Por ahi he probado ruby,python, erllang y otros mas raros tambien... simplemente que me parece que de tener una cosa funcionando....

seoane 12-04-2007 20:36:04

Cita:

Empezado por mamcx
Porque re-hiciste PICO en C,sabiendo que existe freepascal? Una mera aventura al lado oscuro? ;).

Pues por recordar un poco el C que lo tengo abandonado. Además se puede decir que Linux es C, muchas, por no decir la mayoría, de las aplicaciones están hechas en C, hay un montón de documentación para C, hay un montón de ejemplos en C, etc ... de hecho en varias ocasiones he preguntado que utilizar para programar en linux y siempre hay quien aconseja java, python, ... pero al final siempre termina saliendo el C.

En cuanto a freepascal, me encantaría utilizarlo, pero no termino de acostumbrarme a el :( , no es mi querido delphi :p Mas adelante lo probare de nuevo y veremos que tal ...


La franja horaria es GMT +2. Ahora son las 06:38:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi