Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - yeikos

#1
Foro Libre / AppServ OWNED
15 Junio 2010, 15:19 PM
Pues eso, me dispuse a entrar en http://www.appservnetwork.com para instalar apache2.2 en un netbook y bueno, el resto ya os lo imaginareis.. xd

Da pena que páginas de este tipo de proyectos sean vulnerables a SQL injection, pero mas pena me da el h4x0r que defaceo la pagina.

http://img229.imageshack.us/img229/4005/ownedmx.jpg

#2
GNU/Linux / [Fedora] Servicio casero
26 Mayo 2010, 01:06 AM
Buenas noches...

Hará unas semanas que creé un programa en C que tomaba capturas de la webcam (cliente) y las enviaba por internet a otro programa para su almacenamiento (servidor). El caso es que he portado el servidor a linux y mi intención es ejecutarlo en segundo plano, y esto es lo que he hecho:

Código (bash) [Seleccionar]
cp webcam /usr/sbin
cd /etc/init.d
touch wcam
chmod +x wcam


Código (bash) [Seleccionar]
#!/bin/sh
# chkconfig: 345 90 10
# description: webcamlive

# Source function library.
. /etc/rc.d/init.d/functions

prog=webcam
softbin=/usr/sbin/$prog


OPTIONS=""

# Source an auxiliary options file if we have one, and pick up OPTIONS,
#if [ -r /etc/sysconfig/$prog ]; then
# . /etc/sysconfig/$prog
#fi

RETVAL=0

start() {
echo -n $"Starting $prog: "
daemon $softbin -d $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}
stop() {
echo -n $"Stopping $prog: "
killproc $softbin
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
}

restart() {
stop
start
}

reload() {
echo -n $"Reloading $prog: "
killproc $softbin -HUP
RETVAL=$?
echo
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
condrestart)
[ -f /var/lock/subsys/$prog ] && restart
;;
status)
status $softbin
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
exit 1
esac

exit $RETVAL


Código (bash) [Seleccionar]
chkconfig --add wcam
chconfig wcam on
service wcam start
Iniciando webcam:


El problema es que yo pensaba que ejecutaria el programa como servicio en segundo plano, y no es así, el programa se queda en "Iniciando webcam:", y funciona, pero es como si ejecutase el programa directamente desde la consola, si cierro ésta se cierra el programa.

#3
He aqui la solución, gracias biribau por ayudarme :D


// create header var
char *header = (char *)malloc(header_size+1);
memset(header, 0x00, header_size+1);
sprintf(header,
  "POST %s HTTP/1.1\r\n"
"Host: %s\r\n"
"Content-Type: multipart/form-data; boundary=---------------------------%s\r\n"
"Content-Length: %i\r\n\r\n"
"-----------------------------%s\r\n"
"Content-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\n"
"Content-Type: %s\r\n\r\n",
path, host, boundary, content_size, boundary, varname, filename, type
);


// concat file content and rest
x = strlen(header);
memcpy (header+x, file,filesize);
sprintf(header+x+filesize, "\r\n-----------------------------%s\r\n", boundary);

#4
 Es sprintf quien me corta la cadena, ahora solo he utilizado sprintf hasta antes de concatenar el archivo binario, ahora jugare con los punteros y cuento mis resultados.
#5
jaja, resulta que hará cosa de 1 año hice una funcion para codificar en base64, y adivinas que problema tuve? los null byte me cortaban la cadena -_- aunque solucionar eso es tan facil como buscar una libreria o funcion ya depurada. Pero se que esa no es la solucion correcta, ya que enviarlo en base64 es opcional, no obligatorio. De todas maneras gracias por la idea =)

a ver si se encuentra otra solucion :s
#6
Buenas, llevo ya un par de años sin programar en c y ahora resulta que necesito realizar un trabajo y estoy desde ayer con el mismo problema :(

La funcion que estoy desarrollando es sencilla en si, su misión es enviar un archivo cualquiera en forma de peticion, así un script en PHP alojado en el servidor, podrá coger el archivo.


El problema lo tengo con los null bytes, al tratarse de archivos binarios (imagenes, ejecutables, etc) estos contienen nullbytes y me cortan la cadena, como primera solución opte por leer el archivo binario poco a poco e id enviandolo por partes, pero el problema, es que send, por lo que estoy observando, realiza tantas peticiones como envios se hagan, entonces, si corto el header para enviar luego el archivo, el servidor no entendera ninguna peticion, ya que estaran todas incompletas.


¿Alguna solucion/alternativa?


"POST %s HTTP/1.1\r\n"
"Host: %s\r\n"
"Content-Type: multipart/form-data; boundary=---------------------------%s\r\n"
"Content-Length: %i\r\n\r\n"
"-----------------------------%s\r\n"
"Content-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\n"
"Content-Type: %s\r\n\r\n"
"%s"
"\r\n-----------------------------%s\r\n"



Gracias y saludos!

#7
Genial, ya sabes que tienes aquí este tema con chincheta, y a los demás les digo que cualquier tipo de aportación es bien recibida :) .
#8
No entiendo por qué quieres que elimine las respuestas, de todas maneras, las peticiones mandamelas por mensaje privado.

Saludos :P
#9
El principal motivo por el cual no se está permitido abrir un tema en este subforo es por la calidad del mismo y por otra parte, por el tema de la organización, así pues, el procedimiento a seguir para publicar un tema es el siguiente:

Citar1. Publica el tema en el subforo correspondiente.
2. Enviar un mensaje privado al moderador de este subforo (yeikos), estableciendo Documentación como asunto y la dirección del tema como mensaje.
3. Esperar un breve espacio de tiempo, se os enviará un mensaje privado cuando vuestro tema original se haya movido al subforo Tutoriales - Documentación.

#10
Vale, ya se por donde vas, pero el problema es el que te comenté, que una vez se ha iniciado una sesión, no se podrá crear otra sesion hasta que la primera sesión no haya experiado o haya sido eliminada.

PD: No se envien un mensaje a si mismo en el tuenti, no os hará gracia... xd