Transfer coverart without base64

This commit is contained in:
Andreas 2013-01-12 17:22:40 +01:00
parent 04ccdbbf08
commit 6bb02d2731
4 changed files with 14 additions and 19 deletions

View File

@ -61,7 +61,7 @@ message SongMetadata {
optional string genre = 10; optional string genre = 10;
optional int32 playcount = 11; optional int32 playcount = 11;
optional string pretty_length = 12; optional string pretty_length = 12;
optional string art = 13; optional bytes art = 13;
} }
message Playlist { message Playlist {

View File

@ -140,7 +140,7 @@ void NetworkRemote::AcceptConnection() {
QTcpSocket* client_socket = server_->nextPendingConnection(); QTcpSocket* client_socket = server_->nextPendingConnection();
// Check if our ip is in private scope // Check if our ip is in private scope
if (only_non_public_ip_ if (only_non_public_ip_
&& !IpIsPrivate(client_socket->peerAddress().toIPv4Address())) { && !IpIsPrivate(client_socket->peerAddress())) {
qLog(Info) << "Got a connection from public ip" << qLog(Info) << "Got a connection from public ip" <<
client_socket->peerAddress().toString(); client_socket->peerAddress().toString();
} else { } else {
@ -154,21 +154,16 @@ void NetworkRemote::AcceptConnection() {
} }
} }
bool NetworkRemote::IpIsPrivate(int ip) { bool NetworkRemote::IpIsPrivate(const QHostAddress& address) {
int private_local = QHostAddress("127.0.0.1").toIPv4Address(); return
int private_a = QHostAddress("10.0.0.0").toIPv4Address(); address.isInSubnet(QHostAddress::parseSubnet("127.0.0.1/8")) ||
int private_b = QHostAddress("172.16.0.0").toIPv4Address(); // Link Local v6
int private_c = QHostAddress("192.168.0.0").toIPv4Address(); address.isInSubnet(QHostAddress::parseSubnet("::1/128")) ||
address.isInSubnet(QHostAddress::parseSubnet("192.168.0.0/16")) ||
// Check if we have a private ip address address.isInSubnet(QHostAddress::parseSubnet("172.16.0.0/12")) ||
if (ip == private_local address.isInSubnet(QHostAddress::parseSubnet("10.0.0.0/8")) ||
|| (ip >= private_a && ip < private_a + 16777216) // Private v6 range
|| (ip >= private_b && ip < private_b + 1048576) address.isInSubnet(QHostAddress::parseSubnet("fc00::/7"));
|| (ip >= private_c && ip < private_c + 65536)) {
return true;
} else {
return false;
}
} }
void NetworkRemote::CreateRemoteClient(QTcpSocket *client_socket) { void NetworkRemote::CreateRemoteClient(QTcpSocket *client_socket) {

View File

@ -42,7 +42,7 @@ private:
void StopServer(); void StopServer();
void ReadSettings(); void ReadSettings();
void CreateRemoteClient(QTcpSocket* client_socket); void CreateRemoteClient(QTcpSocket* client_socket);
bool IpIsPrivate(int ip); bool IpIsPrivate(const QHostAddress& address);
}; };
#endif // NETWORKREMOTE_H #endif // NETWORKREMOTE_H

View File

@ -184,7 +184,7 @@ void OutgoingDataCreator::CreateSong(pb::remote::SongMetadata* song_metadata,
small.save(&buf, "JPG"); small.save(&buf, "JPG");
// Append the Data in the protocol buffer // Append the Data in the protocol buffer
song_metadata->set_art(data.toBase64()); song_metadata->set_art(data.data(), data.size());
buf.close(); buf.close();
} }