| |
Probleme aufgetreten: so scheint die Nutzung der C-Funktionen setjmp/longjmp die Biblio-
thek selbst oder eine der zugrunde liegenden Bibliotheken zu verwirren - das Programm blieb
hängen, der Benchmark-Teil mußte umgestaltet werden. Um das Speichermanagement zu
ergründen, war es unvermeidlich, sich die Funktionen im Quelltext anzusehen - die vorhan-
denen Beispielprogramme können teilweise irreführen. Die Handhabung der XML-RPC Da-
tentypen ist vergleichsweise kompliziert. Aus dem Quelltext bzw. einem Dokumentationstext
geht hervor, dass dieses Verfahren von der Implementierung der Python-Programmiersprache
ubernommen wurde. Der Quelltextauszug zeigt den Einsatz dieser Methode. Dieser Weg ist
sicher pragmatisch, die Handhabung auch akzeptabel, es sind jedoch gewiss noch program-
mierfreundlichere Alternativen denkbar.
Listing 5.14: vcsclient.c, Handhabung von XML-RPC Daten
/* execute the XML-RPC call */
result = xmlrpc_client_call(&xenv, serverloc,
"examine_data", "(6)", filedata, filesize);
die_if_fault_occurred(&xenv);
/* parse the result */
xmlrpc_parse_value(&xenv, result, "{s:8,s:b,s:s,*}",
"timestamp", ×tamp,
"infected", &infected,
"details", &details);
49
|  |
|
| |
|
|