<?
	require("db_mysql.inc");
	require("yp.inc");

	$db = new YP_Database;

	if (!$port) {
		echo "x-audiocast-yp-error: 1\n";
		die;
	}

	// Is the server already listed?
	$db->query("select * from servers where ip = '$REMOTE_ADDR' and port = '$port'");
	if ($db->num_rows() > 0) {
		echo "update running ...\n";
		// update the server entry
		$db->next_record();
		$server_id = $db->f('server_id');

		$db->query("update servers set host = '$name', type = '$type', version = '$version', listeners = '$listeners', maxlisteners = '$maxlisteners', maxstreamlisteners = '$maxstreamlisteners', alt = '$alt', ast = '$ast', maxsources = '$maxsources', url = '$url', email = '$email', location = '$location', touchtime = NOW() where server_id = $server_id");
	} else {
		echo "insert running ... \n";
		// create the server entry
		$db->query("insert into servers (ip, host, port, type, version, listeners, maxlisteners, maxstreamlisteners, alt, ast, maxsources, url, email, location, starttime, touchtime, touched) values ('$REMOTE_ADDR', '$name', '$port', '$type', '$version', '$listeners', '$maxlisteners', '$maxstreamlisteners', '$alt', '$ast', '$maxsources', '$url', '$email', '$location', NOW(), NOW(), 1)");
		$server_id = $db->Insert_ID;
	}

	// which mounts are already listed?
	$db->query("select * from sources where server_id = $server_id");
	while ($db->next_record()) {
		$mount[$db->f('mount')] = 1;
	}

	// now create all the source entries for this server
	$i = 1;
	$source_mount = "source_mount_$i";
	$source_genre = "source_genre_$i";
	$source_name = "source_name_$i";
	$source_desc = "source_desc_$i";
	$source_url = "source_url_$i";
	$source_bitrate = "source_bitrate_$i";
	$source_alt = "source_alt_$i";
	$source_listeners = "source_listeners_$i";
	$stream_title = "stream_title_$i";
	$stream_url = "stream_url_$i";
	while ($$source_mount) {
		if ($mount[$$source_mount] == 1) {
			$db->query("update sources set genre = '${$source_genre}', name = '${$source_name}', description = '${$source_desc}', url = '${$source_url}', bitrate = '${$source_bitrate}', alt = '${$source_alt}', listeners = '${$source_listeners}', stream_title = '${$stream_title}', stream_url = '${$stream_url}', touchtime = NOW() where mount = '${$source_mount}' and server_id = $server_id");
		} else {
			$db->query("insert into sources (server_id, mount, genre, name, description, url, bitrate, alt, listeners, stream_title, stream_url, touchtime) values ($server_id, '${$source_mount}', '${$source_genre}', '${$source_name}', '${$source_desc}', '${$source_url}', '${$source_bitrate}', '${$source_alt}', '${$source_listeners}', '${$stream_title}', '${$stream_url}', NOW())");
		}

		$i++;
		$source_mount = "source_mount_$i";
		$source_genre = "source_genre_$i";
		$source_name = "source_name_$i";
		$source_desc = "source_desc_$i";
		$source_url = "source_url_$i";
		$source_bitrate = "source_bitrate_$i";
		$source_alt = "source_alt_$i";
		$source_listeners = "source_listeners_$i";
		$stream_title = "stream_title_$i";
		$stream_url = "stream_url_$i";
	}

	echo "x-audiocast-yp-id: 69\n";
?>
