X-Git-Url: https://git.saurik.com/apt-legacy.git/blobdiff_plain/415938a5dcf5431aa05d9cba345eb0c3a8c96e60..ca652fea491ea061114ffb1c21acd0fb99d8c4cb:/methods/http.cc.orig?ds=inline diff --git a/methods/http.cc.orig b/methods/http.cc.orig index 0f01d38..28c608d 100644 --- a/methods/http.cc.orig +++ b/methods/http.cc.orig @@ -30,6 +30,7 @@ #include #include +#include #include #include #include @@ -56,6 +57,9 @@ /*}}}*/ using namespace std; +const char *Machine_; +const char *SerialNumber_; + void CfrsError(const char *name, CFReadStreamRef rs) { CFStreamError se = CFReadStreamGetError(rs); @@ -1113,7 +1117,7 @@ int HttpMethod::Loop() char *url = strdup(Queue->Uri.c_str()); url: - URI uri = Queue->Uri; + URI uri = std::string(url); std::string hs = uri.Host; struct hostent *he = gethostbyname(hs.c_str()); @@ -1148,6 +1152,14 @@ int HttpMethod::Loop() CFRelease(sr); } + sr = CFStringCreateWithCString(kCFAllocatorDefault, Machine_, se); + CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("X-Machine"), sr); + CFRelease(sr); + + sr = CFStringCreateWithCString(kCFAllocatorDefault, SerialNumber_, se); + CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("X-Serial-Number"), sr); + CFRelease(sr); + CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("User-Agent"), CFSTR("Telesphoreo APT-HTTP/1.0.98")); sr = CFStringCreateWithCString(kCFAllocatorDefault, hs.c_str(), se); @@ -1365,6 +1377,22 @@ int main() setlocale(LC_ALL, ""); HttpMethod Mth; + + size_t size; + sysctlbyname("hw.machine", NULL, &size, NULL, 0); + char *machine = new char[size]; + sysctlbyname("hw.machine", machine, &size, NULL, 0); + Machine_ = machine; + + if (CFMutableDictionaryRef dict = IOServiceMatching("IOPlatformExpertDevice")) + if (io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, dict)) { + if (CFTypeRef serial = IORegistryEntryCreateCFProperty(service, CFSTR(kIOPlatformSerialNumberKey), kCFAllocatorDefault, 0)) { + SerialNumber_ = strdup(CFStringGetCStringPtr((CFStringRef) serial, CFStringGetSystemEncoding())); + CFRelease(serial); + } + + IOObjectRelease(service); + } return Mth.Loop(); }