OliverH
07-04-2007, 11:49
Hallöchen, ich baue mir derzeit einen eigenen DynDNS dienst :)
Der Server funktioniert soweit auch, leider habe ich aber das Problem, dass das escapen nicht richtig funktioniert.
write(connfd, ASKUSER, sizeof(ASKUSER));
read(connfd, user, sizeof(user));
rem_endl(user);
write(connfd, ASKPW, sizeof(ASKPW));
read(connfd, password, sizeof(password));
rem_endl(password);
write(connfd, ASKDOM, sizeof(ASKDOM));
read(connfd, domain, sizeof(domain));
rem_endl(domain);
printf("USER: %s\nPASS: %s\nDOMAIN %s\n", user, password, domain);
memset(temp, 0x00, sizeof(temp));
mysql_real_escape_string(my, temp, password, sizeof(temp));
memset(password, 0x00, sizeof(password));
strncpy(password, temp, sizeof(password));
memset(temp, 0x00, sizeof(temp));
mysql_real_escape_string(my, temp, user, sizeof(temp));
memset(user, 0x00, sizeof(user));
strncpy(user, temp, sizeof(user));
memset(temp, 0x00, sizeof(temp));
mysql_real_escape_string(my, temp, domain, sizeof(temp));
memset(domain, 0x00, sizeof(domain));
strncpy(domain, temp, sizeof(domain));
printf("USER: %s\nPASS: %s\nDOMAIN %s\n", user, password, domain);
split_domain(host, domain);
printf("Host: %s\n", host);
printf("Domain: %s\n", domain);
Der Output sieht dann wie folgt aus:
oliver@fuckup:~/workspace/DynDNS-Server$ ./a.out
Erfolgreich mit dem MySQL-Server verbunden
Neue verbindung geoeffnet von 192.168.93.15
USER: ABCDEFG
PASS: 08051945
DOMAIN dyndns.fuck.fu
USER: ABCDEFG\r\n\0\0\
PASS: 08051945\r\n\0\0\0\0\0\0\0\0\0\0ABCDEFG\r\n\0\0\
DOMAIN \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0 \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\008051945\r\n\0\0\0\0\0\0\0\0\0\0ABCDEFG\r\n\0 \0\
Host: \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\0\0\0\0 \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0 \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\008051945\r\n\0\0\0\0\0\0\0\0\0\0ABCDEFG\r\n\0 \0\
Domain: \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0 \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\008051945\r\n\0\0\0\0\0\0\0\0\0\0ABCDEFG\r\n\0 \0\
Die Funktion rem_endl entfernt die Zeilenumbrüche aus den jeweiligen Strings.
Wenn ich die Strings nicht escape klappt alles wunderbar, nur so habe ich leider diese tausenden \0 da drin. Wie bekomme ich das weg?
MfG. Oli
Der Server funktioniert soweit auch, leider habe ich aber das Problem, dass das escapen nicht richtig funktioniert.
write(connfd, ASKUSER, sizeof(ASKUSER));
read(connfd, user, sizeof(user));
rem_endl(user);
write(connfd, ASKPW, sizeof(ASKPW));
read(connfd, password, sizeof(password));
rem_endl(password);
write(connfd, ASKDOM, sizeof(ASKDOM));
read(connfd, domain, sizeof(domain));
rem_endl(domain);
printf("USER: %s\nPASS: %s\nDOMAIN %s\n", user, password, domain);
memset(temp, 0x00, sizeof(temp));
mysql_real_escape_string(my, temp, password, sizeof(temp));
memset(password, 0x00, sizeof(password));
strncpy(password, temp, sizeof(password));
memset(temp, 0x00, sizeof(temp));
mysql_real_escape_string(my, temp, user, sizeof(temp));
memset(user, 0x00, sizeof(user));
strncpy(user, temp, sizeof(user));
memset(temp, 0x00, sizeof(temp));
mysql_real_escape_string(my, temp, domain, sizeof(temp));
memset(domain, 0x00, sizeof(domain));
strncpy(domain, temp, sizeof(domain));
printf("USER: %s\nPASS: %s\nDOMAIN %s\n", user, password, domain);
split_domain(host, domain);
printf("Host: %s\n", host);
printf("Domain: %s\n", domain);
Der Output sieht dann wie folgt aus:
oliver@fuckup:~/workspace/DynDNS-Server$ ./a.out
Erfolgreich mit dem MySQL-Server verbunden
Neue verbindung geoeffnet von 192.168.93.15
USER: ABCDEFG
PASS: 08051945
DOMAIN dyndns.fuck.fu
USER: ABCDEFG\r\n\0\0\
PASS: 08051945\r\n\0\0\0\0\0\0\0\0\0\0ABCDEFG\r\n\0\0\
DOMAIN \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0 \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\008051945\r\n\0\0\0\0\0\0\0\0\0\0ABCDEFG\r\n\0 \0\
Host: \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\0\0\0\0 \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0 \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\008051945\r\n\0\0\0\0\0\0\0\0\0\0ABCDEFG\r\n\0 \0\
Domain: \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0 \\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\ 0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\ \0\\008051945\r\n\0\0\0\0\0\0\0\0\0\0ABCDEFG\r\n\0 \0\
Die Funktion rem_endl entfernt die Zeilenumbrüche aus den jeweiligen Strings.
Wenn ich die Strings nicht escape klappt alles wunderbar, nur so habe ich leider diese tausenden \0 da drin. Wie bekomme ich das weg?
MfG. Oli