mirror of https://github.com/BOINC/boinc.git
- API/client/manager:
allow applications to supply a "web graphics URL", in which case the manager's "Show Graphics" button opens a browser at that URL. This typically would used for applications that implement a web server that serves pages showing job information in HTML. - vboxwrapper: if <pf_guest_port> is specified in the config file, set up port forwarding to that port and use the above API call with URL "http://localhost:port" svn path=/trunk/boinc/; revision=24898
This commit is contained in:
parent
2e09c7d9a1
commit
17e2cedefe
|
@ -1449,3 +1449,10 @@ double boinc_get_fraction_done() {
|
|||
double boinc_elapsed_time() {
|
||||
return running_interrupt_count*TIMER_PERIOD;
|
||||
}
|
||||
|
||||
void boinc_web_graphics_url(char* url) {
|
||||
char buf[256];
|
||||
if (standalone) return;
|
||||
sprintf(buf, "<web_graphics_url>%s</web_graphics_url>", url);
|
||||
app_client_shm->shm->graphics_reply.send_msg(buf);
|
||||
}
|
||||
|
|
|
@ -117,6 +117,7 @@ extern double boinc_get_fraction_done();
|
|||
extern void boinc_register_timer_callback(FUNC_PTR);
|
||||
extern double boinc_worker_thread_cpu_time();
|
||||
extern int boinc_init_parallel();
|
||||
extern void boinc_web_graphics_url(char*);
|
||||
|
||||
#ifdef __APPLE__
|
||||
extern int setMacPList(void);
|
||||
|
|
|
@ -9480,3 +9480,22 @@ Rom 25 Dec 2011
|
|||
samples/vboxwrapper/
|
||||
vbox.cpp
|
||||
vboxwrapper.cpp
|
||||
|
||||
David 26 Dec 2011
|
||||
- API/client/manager:
|
||||
allow applications to supply a "web graphics URL",
|
||||
in which case the manager's "Show Graphics" button
|
||||
opens a browser at that URL.
|
||||
This typically would used for applications that
|
||||
implement a web server that serves pages showing
|
||||
job information in HTML.
|
||||
- vboxwrapper: if <pf_guest_port> is specified in the config file,
|
||||
set up port forwarding to that port
|
||||
and use the above API call with URL "http://localhost:port"
|
||||
|
||||
samples/
|
||||
vboxwrapper/
|
||||
vbox.cpp
|
||||
vboxwrapper.cpp
|
||||
api/
|
||||
boinc_api.cpp,h
|
||||
|
|
|
@ -838,33 +838,6 @@ int VBOX_VM::register_vm_firewall_rules() {
|
|||
retval = vbm_popen(command, output, "add updated port forwarding rule");
|
||||
if(retval) return retval;
|
||||
|
||||
fprintf(
|
||||
stderr,
|
||||
"%s VM communication is allowed on port '%d'.\n",
|
||||
boinc_msg_prefix(buf, sizeof(buf)), pf_host_port
|
||||
);
|
||||
|
||||
|
||||
// Write firewall rule to disk
|
||||
//
|
||||
MIOFILE mf;
|
||||
FILE* f = boinc_fopen(PORTFORWARD_FILENAME, "w");
|
||||
mf.init_file(f);
|
||||
|
||||
mf.printf(
|
||||
"<vbox_firewall>\n"
|
||||
" <rule>\n"
|
||||
" <name>vboxwrapper</name>\n"
|
||||
" <host_port>%d</host_port>\n"
|
||||
" <guest_port>%d</guest_port>\n"
|
||||
" </rule>\n"
|
||||
"</vbox_firewall>\n",
|
||||
pf_host_port,
|
||||
pf_guest_port
|
||||
);
|
||||
|
||||
fclose(f);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -337,6 +337,37 @@ int main(int argc, char** argv) {
|
|||
set_floppy_image(aid, vm);
|
||||
set_throttles(aid, vm);
|
||||
|
||||
// write port-forwarding info if relevant
|
||||
//
|
||||
if (vm.pf_guest_port && vm.pf_host_port) {
|
||||
fprintf(
|
||||
stderr,
|
||||
"%s port forwarding enabled on port '%d'.\n",
|
||||
boinc_msg_prefix(buf, sizeof(buf)), vm.pf_host_port
|
||||
);
|
||||
|
||||
// Write info to disk
|
||||
//
|
||||
MIOFILE mf;
|
||||
FILE* f = boinc_fopen(PORTFORWARD_FILENAME, "w");
|
||||
mf.init_file(f);
|
||||
|
||||
mf.printf(
|
||||
"<port_forwarding>\n"
|
||||
" <rule>\n"
|
||||
" <host_port>%d</host_port>\n"
|
||||
" <guest_port>%d</guest_port>\n"
|
||||
" </rule>\n"
|
||||
"</port_forwarding>\n",
|
||||
vm.pf_host_port,
|
||||
vm.pf_guest_port
|
||||
);
|
||||
|
||||
fclose(f);
|
||||
sprintf(buf, "http://localhost:%d", vm.pf_host_port);
|
||||
boinc_web_graphics_url(buf);
|
||||
}
|
||||
|
||||
while (1) {
|
||||
// Discover the VM's current state
|
||||
vm.poll();
|
||||
|
|
Loading…
Reference in New Issue