void vs_master_handle_describe(const char *address, const char *message) { char desc[1380] = "DESCRIPTION", *put = desc + 11; if(desc_has_keyword(message, "DE") && server_info.desc != NULL && keyword_fits(put - desc, sizeof desc, "DE", server_info.desc)) put = append_desc(put, "DE", server_info.desc); if(desc_has_keyword(message, "TA") && server_info.tags != NULL && keyword_fits(put - desc, sizeof desc, "TA", server_info.tags)) put = append_desc(put, "TA", server_info.tags); verse_send_ping(address, desc); }
/* * call-seq: * Verse.ping( address, message ) * * General-purpose unconnected "ping" command. * * @param [String] address The address of the server to send the ping to. * @param [String] message The content of the ping, limited to a maximum of * 1399 bytes. * * @example * Verse.ping( 'verse.acme.com', 'MS:ANNOUNCE' ) * */ static VALUE rbverse_verse_ping( VALUE module, VALUE address, VALUE message ) { const char *addr = RSTRING_PTR( address ); const char *msg = RSTRING_PTR( message ); rbverse_log_with_context( module, "debug", "Pinging '%s' with message '%s'", addr, msg ); verse_send_ping( addr, msg ); return Qtrue; }
void vs_master_update(void) { if(!server_info.enabled || server_info.master == NULL) return; if(!server_info.started) { v_timer_start(&server_info.timer); v_timer_advance(&server_info.timer, MASTER_SERVER_PERIOD); server_info.started = TRUE; return; } if(v_timer_elapsed(&server_info.timer) < MASTER_SERVER_PERIOD) return; verse_send_ping(server_info.master, "MS:ANNOUNCE"); v_timer_start(&server_info.timer); /* printf("MS:ANNOUNCE sent to %s\n", server_info.master);*/ }