diff --git a/PmpMyApp.xcodeproj/tyler.mode1 b/PmpMyApp.xcodeproj/tyler.mode1 index 1ec7384..633f1c2 100644 --- a/PmpMyApp.xcodeproj/tyler.mode1 +++ b/PmpMyApp.xcodeproj/tyler.mode1 @@ -197,6 +197,7 @@ ChosenToolbarItems active-target-popup + active-buildstyle-popup action NSToolbarFlexibleSpaceItem buildOrClean @@ -218,6 +219,8 @@ Layout + BecomeActive + ContentConfiguration PBXBottomSmartGroupGIDs @@ -255,7 +258,6 @@ 29B97314FDCFA39411CA2CEA 080E96DDFE201D6D7F000001 - 2F5A486C0B7559600052B0C1 29B97315FDCFA39411CA2CEA 2F18D5690B7C515D00149D44 29B97317FDCFA39411CA2CEA @@ -265,14 +267,13 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 6 - 2 + 4 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 861}} + {{0, 0}, {186, 611}} PBXTopSmartGroupGIDs @@ -284,14 +285,14 @@ GeometryConfiguration Frame - {{0, 0}, {203, 879}} + {{0, 0}, {203, 629}} GroupTreeTableConfiguration MainColumn 186 RubberWindowFrame - 1 108 1159 920 0 0 1680 1028 + 0 108 1159 670 0 0 1280 778 Module PBXSmartGroupTreeModule @@ -302,14 +303,12 @@ Dock - BecomeActive - ContentConfiguration PBXProjectModuleGUID 1CE0B20306471E060097A5F4 PBXProjectModuleLabel - route.c + XzibitController.m PBXSplitModuleInNavigatorKey Split0 @@ -317,11 +316,11 @@ PBXProjectModuleGUID 1CE0B20406471E060097A5F4 PBXProjectModuleLabel - route.c + XzibitController.m _historyCapacity 0 bookmark - 2FAB94630BB71201005543DB + 2FDB4C4B0BB7151B002C4365 history 2F5A489C0B7565AE0052B0C1 @@ -329,11 +328,12 @@ 2F901EC10B7AED84004FF42C 2F18D5750B7C51B000149D44 2F18D6800B7C6CA900149D44 - 2FC5249F0BAA452D0069F6CF 2FAB945B0BB71201005543DB 2FAB945C0BB71201005543DB - 2FAB945D0BB71201005543DB - 2FAB945E0BB71201005543DB + 2FDB4C360BB714E6002C4365 + 2FDB4C380BB714E6002C4365 + 2FDB4C490BB7151B002C4365 + 2FC5249F0BAA452D0069F6CF prevStack @@ -343,14 +343,11 @@ 2F5A49370B7575010052B0C1 2F901EC50B7AED84004FF42C 2F901ED80B7AEDBC004FF42C - 2F901EE10B7AEE09004FF42C 2F18D5770B7C51B000149D44 2F18D6850B7C6CA900149D44 2F18D6860B7C6CA900149D44 - 2FAB945F0BB71201005543DB - 2FAB94600BB71201005543DB - 2FAB94610BB71201005543DB - 2FAB94620BB71201005543DB + 2FDB4C3A0BB714E6002C4365 + 2FDB4C4A0BB7151B002C4365 SplitCount @@ -362,14 +359,14 @@ GeometryConfiguration Frame - {{0, 0}, {951, 874}} + {{0, 0}, {951, 624}} RubberWindowFrame - 1 108 1159 920 0 0 1680 1028 + 0 108 1159 670 0 0 1280 778 Module PBXNavigatorGroup Proportion - 874pt + 624pt ContentConfiguration @@ -382,9 +379,9 @@ GeometryConfiguration Frame - {{0, 879}, {951, 0}} + {{0, 629}, {951, 0}} RubberWindowFrame - 1 108 1159 920 0 0 1680 1028 + 0 108 1159 670 0 0 1280 778 Module XCDetailModule @@ -408,9 +405,9 @@ TableOfContents - 2FAB94550BB7100F005543DB + 2FDB4C2A0BB713F2002C4365 1CE0B1FE06471DED0097A5F4 - 2FAB94560BB7100F005543DB + 2FDB4C2B0BB713F2002C4365 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -544,11 +541,12 @@ 5 WindowOrderList + 2F5A48970B7565A60052B0C1 1C0AD2B3069F1EA900FABCE6 - /Software/Subversion/trunk/PmpMyApp/PmpMyApp.xcodeproj + /Software/Subversion/PmpMyApp/PmpMyApp.xcodeproj WindowString - 1 108 1159 920 0 0 1680 1028 + 0 108 1159 670 0 0 1280 778 WindowTools @@ -578,7 +576,7 @@ Frame {{0, 0}, {620, 0}} RubberWindowFrame - 1053 109 620 516 0 0 1680 1028 + 656 127 620 516 0 0 1280 778 Module PBXNavigatorGroup @@ -586,10 +584,12 @@ 0pt + BecomeActive + ContentConfiguration PBXBuildLogShowsTranscriptDefaultKey - {{0, 77}, {620, 393}} + {{0, 198}, {620, 272}} PBXProjectModuleGUID XCMainBuildResultsModuleGUID PBXProjectModuleLabel @@ -604,7 +604,7 @@ Frame {{0, 5}, {620, 470}} RubberWindowFrame - 1053 109 620 516 0 0 1680 1028 + 656 127 620 516 0 0 1280 778 Module PBXBuildResultsModule @@ -627,18 +627,18 @@ TableOfContents 2F5A48970B7565A60052B0C1 - 2F18D6AD0B7C706200149D44 + 2FDB4C440BB714E6002C4365 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID ToolbarConfiguration xcode.toolbar.config.build WindowString - 1053 109 620 516 0 0 1680 1028 + 656 127 620 516 0 0 1280 778 WindowToolGUID 2F5A48970B7565A60052B0C1 WindowToolIsVisible - + FirstTimeWindowDisplayed @@ -974,7 +974,7 @@ Frame {{0, 0}, {685, 376}} RubberWindowFrame - 992 611 685 417 0 0 1680 1028 + 593 361 685 417 0 0 1280 778 Module PBXRunSessionModule @@ -997,14 +997,14 @@ TableOfContents 1C0AD2B3069F1EA900FABCE6 - 2FAB94570BB7100F005543DB + 2FDB4C2C0BB713F2002C4365 1CD0528B0623707200166675 - 2FAB94580BB7100F005543DB + 2FDB4C2D0BB713F2002C4365 ToolbarConfiguration xcode.toolbar.config.run WindowString - 992 611 685 417 0 0 1680 1028 + 593 361 685 417 0 0 1280 778 WindowToolGUID 1C0AD2B3069F1EA900FABCE6 WindowToolIsVisible diff --git a/PmpMyApp.xcodeproj/tyler.pbxuser b/PmpMyApp.xcodeproj/tyler.pbxuser index 783ba70..aeeb94d 100644 --- a/PmpMyApp.xcodeproj/tyler.pbxuser +++ b/PmpMyApp.xcodeproj/tyler.pbxuser @@ -67,8 +67,8 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 196546572; - PBXWorkspaceStateSaveDate = 196546572; + PBXPerProjectTemplateStateSaveDate = 196547565; + PBXWorkspaceStateSaveDate = 196547565; }; perUserProjectItems = { 2F18D5750B7C51B000149D44 /* PBXTextBookmark */ = 2F18D5750B7C51B000149D44 /* PBXTextBookmark */; @@ -85,17 +85,15 @@ 2F901EC10B7AED84004FF42C /* PBXTextBookmark */ = 2F901EC10B7AED84004FF42C /* PBXTextBookmark */; 2F901EC50B7AED84004FF42C /* PBXTextBookmark */ = 2F901EC50B7AED84004FF42C /* PBXTextBookmark */; 2F901ED80B7AEDBC004FF42C /* PBXTextBookmark */ = 2F901ED80B7AEDBC004FF42C /* PBXTextBookmark */; - 2F901EE10B7AEE09004FF42C /* PBXTextBookmark */ = 2F901EE10B7AEE09004FF42C /* PBXTextBookmark */; 2FAB945B0BB71201005543DB /* PBXTextBookmark */ = 2FAB945B0BB71201005543DB /* PBXTextBookmark */; 2FAB945C0BB71201005543DB /* PBXTextBookmark */ = 2FAB945C0BB71201005543DB /* PBXTextBookmark */; - 2FAB945D0BB71201005543DB /* PBXTextBookmark */ = 2FAB945D0BB71201005543DB /* PBXTextBookmark */; - 2FAB945E0BB71201005543DB /* PBXTextBookmark */ = 2FAB945E0BB71201005543DB /* PBXTextBookmark */; - 2FAB945F0BB71201005543DB /* PBXTextBookmark */ = 2FAB945F0BB71201005543DB /* PBXTextBookmark */; - 2FAB94600BB71201005543DB /* PBXTextBookmark */ = 2FAB94600BB71201005543DB /* PBXTextBookmark */; - 2FAB94610BB71201005543DB /* PBXTextBookmark */ = 2FAB94610BB71201005543DB /* PBXTextBookmark */; - 2FAB94620BB71201005543DB /* PBXTextBookmark */ = 2FAB94620BB71201005543DB /* PBXTextBookmark */; - 2FAB94630BB71201005543DB /* PBXTextBookmark */ = 2FAB94630BB71201005543DB /* PBXTextBookmark */; 2FC5249F0BAA452D0069F6CF /* PBXTextBookmark */ = 2FC5249F0BAA452D0069F6CF /* PBXTextBookmark */; + 2FDB4C360BB714E6002C4365 /* PBXTextBookmark */ = 2FDB4C360BB714E6002C4365 /* PBXTextBookmark */; + 2FDB4C380BB714E6002C4365 /* PBXTextBookmark */ = 2FDB4C380BB714E6002C4365 /* PBXTextBookmark */; + 2FDB4C3A0BB714E6002C4365 /* PBXTextBookmark */ = 2FDB4C3A0BB714E6002C4365 /* PBXTextBookmark */; + 2FDB4C490BB7151B002C4365 /* PBXTextBookmark */ = 2FDB4C490BB7151B002C4365 /* PBXTextBookmark */; + 2FDB4C4A0BB7151B002C4365 /* PBXTextBookmark */ = 2FDB4C4A0BB7151B002C4365 /* PBXTextBookmark */; + 2FDB4C4B0BB7151B002C4365 /* PBXTextBookmark */ = 2FDB4C4B0BB7151B002C4365 /* PBXTextBookmark */; }; sourceControlManager = 2F5A48590B75586F0052B0C1 /* Source Control */; userBuildSettings = { @@ -137,9 +135,9 @@ }; 2F18D6730B7C6AF400149D44 /* XzibitController.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {904, 847}}"; + sepNavIntBoundsRect = "{{0, 0}, {904, 630}}"; sepNavSelRange = "{1069, 0}"; - sepNavVisRect = "{{0, 0}, {904, 847}}"; + sepNavVisRect = "{{0, 24}, {904, 592}}"; }; }; 2F18D6800B7C6CA900149D44 /* PBXTextBookmark */ = { @@ -359,16 +357,16 @@ }; 2F901ECE0B7AEDB5004FF42C /* route.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {904, 842}}"; - sepNavSelRange = "{170, 238}"; - sepNavVisRect = "{{0, 0}, {904, 842}}"; + sepNavIntBoundsRect = "{{0, 0}, {904, 592}}"; + sepNavSelRange = "{392, 0}"; + sepNavVisRect = "{{0, 0}, {904, 592}}"; }; }; 2F901ECF0B7AEDB5004FF42C /* route.c */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {904, 1764}}"; - sepNavSelRange = "{1775, 0}"; - sepNavVisRect = "{{0, 922}, {904, 842}}"; + sepNavIntBoundsRect = "{{0, 0}, {904, 1932}}"; + sepNavSelRange = "{2600, 0}"; + sepNavVisRect = "{{0, 1326}, {904, 592}}"; }; }; 2F901ED80B7AEDBC004FF42C /* PBXTextBookmark */ = { @@ -381,16 +379,6 @@ vrLen = 135; vrLoc = 0; }; - 2F901EE10B7AEE09004FF42C /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 2F901ECF0B7AEDB5004FF42C /* route.c */; - name = "struct sockaddr_in *default_gw()"; - rLen = 32; - rLoc = 1055; - rType = 0; - vrLen = 1288; - vrLoc = 0; - }; 2FAB945B0BB71201005543DB /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 2F5A48700B75598F0052B0C1 /* pmpmapper.h */; @@ -411,76 +399,6 @@ vrLen = 1631; vrLoc = 6476; }; - 2FAB945D0BB71201005543DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 2F901ECE0B7AEDB5004FF42C /* route.h */; - name = "route.h: 13"; - rLen = 238; - rLoc = 170; - rType = 0; - vrLen = 452; - vrLoc = 0; - }; - 2FAB945E0BB71201005543DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 2F901ECF0B7AEDB5004FF42C /* route.c */; - name = "route.c: 12"; - rLen = 2345; - rLoc = 155; - rType = 0; - vrLen = 1178; - vrLoc = 0; - }; - 2FAB945F0BB71201005543DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 2F5A48700B75598F0052B0C1 /* pmpmapper.h */; - name = "pmpmapper.h: 21"; - rLen = 0; - rLoc = 373; - rType = 0; - vrLen = 1110; - vrLoc = 0; - }; - 2FAB94600BB71201005543DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 2F901ECF0B7AEDB5004FF42C /* route.c */; - name = "route.c: 12"; - rLen = 2345; - rLoc = 155; - rType = 0; - vrLen = 1178; - vrLoc = 0; - }; - 2FAB94610BB71201005543DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 2F5A48710B75598F0052B0C1 /* pmpmapper.c */; - name = main; - rLen = 4; - rLoc = 7262; - rType = 0; - vrLen = 1631; - vrLoc = 6476; - }; - 2FAB94620BB71201005543DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 2F901ECE0B7AEDB5004FF42C /* route.h */; - name = "route.h: 13"; - rLen = 238; - rLoc = 170; - rType = 0; - vrLen = 452; - vrLoc = 0; - }; - 2FAB94630BB71201005543DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 2F901ECF0B7AEDB5004FF42C /* route.c */; - name = "route.c: 93"; - rLen = 0; - rLoc = 1775; - rType = 0; - vrLen = 1228; - vrLoc = 1272; - }; 2FC5249F0BAA452D0069F6CF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 2F18D6730B7C6AF400149D44 /* XzibitController.m */; @@ -491,6 +409,82 @@ vrLen = 1069; vrLoc = 0; }; + 2FDB4C360BB714E6002C4365 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2FDB4C370BB714E6002C4365 /* nat-pmp.c */; + name = "(null): 44"; + rLen = 0; + rLoc = 1904; + rType = 0; + vrLen = 1134; + vrLoc = 1091; + }; + 2FDB4C370BB714E6002C4365 /* nat-pmp.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = "nat-pmp.c"; + path = "/Users/tyler/Library/Mail Downloads/nat-pmp.c"; + sourceTree = ""; + uiCtxt = { + sepNavWindowFrame = "{{288, 55}, {1025, 723}}"; + }; + }; + 2FDB4C380BB714E6002C4365 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2F901ECE0B7AEDB5004FF42C /* route.h */; + name = "route.h: 25"; + rLen = 0; + rLoc = 392; + rType = 0; + vrLen = 473; + vrLoc = 0; + }; + 2FDB4C3A0BB714E6002C4365 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2FDB4C3B0BB714E6002C4365 /* nat-pmp.c */; + name = "(null): 44"; + rLen = 0; + rLoc = 1904; + rType = 0; + vrLen = 1134; + vrLoc = 1091; + }; + 2FDB4C3B0BB714E6002C4365 /* nat-pmp.c */ = { + isa = PBXFileReference; + name = "nat-pmp.c"; + path = "/Users/tyler/Library/Mail Downloads/nat-pmp.c"; + sourceTree = ""; + }; + 2FDB4C490BB7151B002C4365 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2F901ECF0B7AEDB5004FF42C /* route.c */; + name = "route.c: 120"; + rLen = 0; + rLoc = 2600; + rType = 0; + vrLen = 1157; + vrLoc = 1797; + }; + 2FDB4C4A0BB7151B002C4365 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2F901ECF0B7AEDB5004FF42C /* route.c */; + name = "route.c: 120"; + rLen = 0; + rLoc = 2600; + rType = 0; + vrLen = 1157; + vrLoc = 1797; + }; + 2FDB4C4B0BB7151B002C4365 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2F18D6730B7C6AF400149D44 /* XzibitController.m */; + name = "XzibitController.m: 45"; + rLen = 0; + rLoc = 1069; + rType = 0; + vrLen = 1066; + vrLoc = 3; + }; 8D1107260486CEB800E47090 /* PmpMyApp */ = { activeExec = 0; executables = ( diff --git a/source/route.c b/source/route.c index a0f3ac8..3c54b90 100644 --- a/source/route.c +++ b/source/route.c @@ -62,6 +62,7 @@ struct sockaddr_in *default_gw() struct sockaddr *sa; struct sockaddr *rti_info[RTAX_MAX]; struct sockaddr_in *sin; + bool found = false; mib[0] = CTL_NET; mib[1] = PF_ROUTE; @@ -110,17 +111,28 @@ struct sockaddr_in *default_gw() if (rtm->rtm_addrs & RTA_NETMASK) bcopy(rti_info[RTAX_NETMASK], &mask, rti_info[RTAX_NETMASK]->sa_len); - if (is_default_route(&addr, &mask)) - { - sin = (struct sockaddr_in *)rti_info[RTAX_GATEWAY]; - break; + if (rtm->rtm_addrs & RTA_GATEWAY && + is_default_route(&addr, &mask)) + { + if (rti_info[RTAX_GATEWAY]) { + struct sockaddr_in *rti_sin = (struct sockaddr_in *)rti_info[RTAX_GATEWAY]; + sin = (struct sockaddr_in *)(malloc(sizeof(struct sockaddr_in))); + + sin->sin_family = rti_sin->sin_family; + sin->sin_port = rti_sin->sin_port; + sin->sin_addr.s_addr = rti_sin->sin_addr.s_addr; + memcpy(sin, rti_info[RTAX_GATEWAY], sizeof(struct sockaddr_in)); + + found = true; + break; + } } } rtm = (struct rt_msghdr2 *)next; } - free(buf); + free(buf); - return sin; + return (found ? sin : NULL); } \ No newline at end of file diff --git a/source/route.h b/source/route.h index 5d67022..8ae8ce1 100644 --- a/source/route.h +++ b/source/route.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include