= Apps that do network communication = == Getting proxy info == If this host is using a proxy you must use that info. You can get it using [StatusApi get_init_data()]. == Honoring "don't use network" requests == The user may ask that network communication not be done based on time of day (user preferences) or the "Suspend Network" GUI command. When this is the case, '''BOINC_STATUS::network_suspended''' will be set in the status. You can get this using [StatusApi boinc_get_status()]. == Requesting network connection == #network If your application needs to do network communication and it appears that there is no physical network connection (e.g. `gethostbyname()` fails for a valid name) then: * Call `boinc_need_network()`. This will alert the user that a network connection is needed. * Periodically call `boinc_network_poll()` until it returns zero. * Do whatever communication is needed. * When done, call `boinc_network_done()`. This enables the hangup of a modem connection, if needed. {{{ #!c++ void boinc_need_network(); int boinc_network_poll(); void boinc_network_done(); }}} == Honoring bandwidth limits == To be determined. == Honoring transfer limits == To be determined.