Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - -(void)setIPv4Shit:(SCNetworkServiceRef)service{
 - SCNetworkProtocolRef protoR = SCNetworkServiceCopyProtocol(service, kSCNetworkProtocolTypeIPv4);
 - CFDictionaryRef proxyDictR = SCNetworkProtocolGetConfiguration(protoR); // returns NULL if no configuration.
 - const void *configMethodP = proxyDictR ? CFDictionaryGetValue(proxyDictR, kSCPropNetIPv4ConfigMethod) : NULL;
 - #define GetCasted(value, type) ((value) && (CFGetTypeID(value) == type##GetTypeID()) ? ((type##Ref)value) : NULL)
 - CFStringRef configMethod = GetCasted(configMethodP, CFString);
 - CFMutableDictionaryRef newProxyDictR;
 - newProxyDictR = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
 - CFDictionarySetValue(newProxyDictR, kSCPropNetIPv4ConfigMethod, configMethod);
 - CFDictionarySetValue(newProxyDictR, kSCPropNetOverridePrimary, CFSTR("1"));
 - SCNetworkProtocolSetConfiguration(protoR, newProxyDictR);
 - CFRelease(newProxyDictR);
 - }
 - -(void)connectnew{
 - CFStringRef username = (__bridge CFStringRef)@"xxx";
 - CFStringRef password = (__bridge CFStringRef)@"xxx";
 - CFStringRef address = (__bridge CFStringRef)@"67.185.xxx.xxx";
 - CFStringRef kAppName = CFSTR("MyProxService");
 - CFStringRef kVendorName = CFSTR("com.all.proxtool");
 - OSStatus authErr = noErr;
 - int err = 0;
 - CFStringRef mykeys[] = { kSCPropNetPPPAuthName//, kSCPropNetPPPAuthPassword
 - ,kSCPropNetPPPCommRemoteAddress,kSCPropNetPPPCCPEnabled
 - ,kSCPropNetPPPCCPMPPE40Enabled, kSCPropNetPPPCCPMPPE128Enabled
 - ,kSCPropNetPPPCommDisplayTerminalWindow,kSCPropNetPPPCommRedialCount
 - ,kSCPropNetPPPCommRedialEnabled,kSCPropNetPPPCommRedialInterval
 - ,kSCPropNetPPPCommUseTerminalScript,kSCPropNetPPPDialOnDemand
 - ,kSCPropNetPPPDisconnectOnFastUserSwitch,kSCPropNetPPPDisconnectOnIdle
 - ,kSCPropNetPPPDisconnectOnIdleTimer,kSCPropNetPPPDisconnectOnLogout
 - ,kSCPropNetPPPDisconnectOnSleep,kSCPropNetPPPIPCPCompressionVJ
 - ,kSCPropNetPPPIdleReminder,kSCPropNetPPPIdleReminderTimer
 - ,kSCPropNetPPPLCPEchoEnabled,kSCPropNetPPPLCPEchoFailure
 - ,kSCPropNetPPPLCPEchoInterval,kSCPropNetPPPLogfile
 - ,kSCPropNetPPPVerboseLogging };
 - CFStringRef myvals[] = { username//, password
 - , address, CFSTR("1")
 - , CFSTR("1"), CFSTR("1")
 - , CFSTR("0"), CFSTR("1")
 - , CFSTR("0"), CFSTR("5")
 - , CFSTR("0"), CFSTR("0")
 - , CFSTR("1"), CFSTR("0")
 - , CFSTR("600"), CFSTR("1")
 - , CFSTR("0"), CFSTR("0")
 - , CFSTR("0"), CFSTR("1800")
 - , CFSTR("1"), CFSTR("15")
 - , CFSTR("20"), CFSTR("/var/log/ppp.log")
 - , CFSTR("0") };
 - CFDictionaryRef myoptions = CFDictionaryCreate (NULL,
 - (const void **)&mykeys,
 - (const void **)&myvals,
 - 24,
 - &kCFTypeDictionaryKeyCallBacks,
 - &kCFTypeDictionaryValueCallBacks);
 - // Authority
 - AuthorizationFlags rootFlags = kAuthorizationFlagDefaults | kAuthorizationFlagExtendRights |
 - kAuthorizationFlagInteractionAllowed | kAuthorizationFlagPreAuthorize;
 - AuthorizationRef auth;
 - authErr = AuthorizationCreate(NULL,
 - kAuthorizationEmptyEnvironment,
 - rootFlags,
 - &auth);
 - // Create preferences for interface.
 - SCPreferencesRef prefs;
 - if (authErr == noErr) {
 - NSLog(@"here");
 - prefs = SCPreferencesCreateWithAuthorization(NULL, kVendorName, NULL, auth);
 - } else {
 - NSLog(@"there");
 - prefs = SCPreferencesCreate(NULL, kVendorName, NULL);
 - }
 - if (prefs == NULL) {
 - NSLog(@"Could not create preferences\n");
 - err = SCError();
 - } else {
 - CFArrayRef servicesArray;
 - servicesArray = SCNetworkServiceCopyAll(prefs);
 - if (servicesArray == NULL) {
 - NSLog(@"No network services");
 - // return -1;
 - SCPreferencesUnlock(prefs);
 - if (servicesArray != NULL) {
 - CFRelease(servicesArray);
 - }
 - } else {
 - SCNetworkServiceRef service;
 - CFIndex i, arraySize;
 - Boolean serviceFound = FALSE;
 - CFStringRef serviceToDial;
 - arraySize = CFArrayGetCount(servicesArray);
 - for (i = 0; i < arraySize; ++i) {
 - service = (SCNetworkServiceRef) CFArrayGetValueAtIndex(servicesArray, i);
 - CFStringRef serviceName = SCNetworkServiceGetName(service);
 - if (CFStringCompare(serviceName, kAppName, 0) == kCFCompareEqualTo) {
 - serviceFound = TRUE;
 - serviceToDial = SCNetworkServiceGetServiceID(service);
 - break;
 - }
 - }
 - SCNetworkInterfaceRef pptpItfc;
 - SCNetworkInterfaceRef iface;
 - if (SCPreferencesLock(prefs, TRUE)){
 - if (!serviceFound){
 - pptpItfc = SCNetworkInterfaceCreateWithInterface(kSCNetworkInterfaceIPv4,
 - kSCNetworkInterfaceTypePPTP);
 - iface = SCNetworkInterfaceCreateWithInterface(pptpItfc, kSCNetworkInterfaceTypePPP);
 - if (prefs && iface) {
 - service = SCNetworkServiceCreate(prefs, iface);
 - SCNetworkServiceSetName(service, kAppName);
 - iface = SCNetworkServiceGetInterface(service);
 - if (! SCNetworkInterfaceSetConfiguration(iface, myoptions)){
 - NSLog(@"failed to set config");
 - // err = SCError();
 - } else {
 - SCNetworkServiceEstablishDefaultConfiguration(service);
 - SCNetworkSetRef set = SCNetworkSetCopyCurrent(prefs);
 - if (set && SCNetworkSetAddService(set, service)) {
 - [self setIPv4Shit:service];
 - if (SCPreferencesCommitChanges(prefs)) {
 - if (SCPreferencesApplyChanges(prefs)){
 - SCPreferencesSynchronize(prefs);
 - serviceToDial = SCNetworkServiceGetServiceID(service);
 - }
 - }
 - }
 - }
 - }
 - } else {
 - iface = SCNetworkServiceGetInterface(service);
 - if (! (iface && SCNetworkInterfaceSetConfiguration(iface, myoptions)) ){
 - NSLog(@"failed to set config");
 - // err = SCError();
 - } else {
 - [self setIPv4Shit:service];
 - if (SCPreferencesCommitChanges(prefs)) {
 - if (SCPreferencesApplyChanges(prefs)){
 - SCPreferencesSynchronize(prefs);
 - serviceToDial = SCNetworkServiceGetServiceID(service);
 - }
 - }
 - }
 - }
 - SCPreferencesUnlock(prefs);
 - CFStringRef serviceName;
 - serviceName = SCNetworkServiceGetName(service);
 - NSLog(@"the service name is %@", serviceName);
 - NSTask *task;
 - task = [[NSTask alloc] init];
 - [task setLaunchPath: @"/usr/sbin/networksetup"];
 - NSArray *arguments;
 - arguments = [NSArray arrayWithObjects: @"-setpppoepassword", serviceName, password, nil];
 - [task setArguments: arguments];
 - NSLog(@"%@", arguments);
 - [task launch];
 - [task waitUntilExit];
 - } else {
 - NSLog(@"Failed to get pref lock");
 - }
 - }
 - }
 - }
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment