Navigation Menu

Skip to content

Commit

Permalink
Revert address type to in_addr_t
Browse files Browse the repository at this point in the history
  • Loading branch information
Wilhelmina Drengwitz committed Dec 28, 2015
1 parent 75f5792 commit cfa2886
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 42 deletions.
2 changes: 1 addition & 1 deletion Peertalk Example/PTAppDelegate.m
Expand Up @@ -287,7 +287,7 @@ - (void)enqueueConnectToLocalIPv4Port {
- (void)connectToLocalIPv4Port {
PTChannel *channel = [PTChannel channelWithDelegate:self];
channel.userInfo = [NSString stringWithFormat:@"127.0.0.1:%d", PTExampleProtocolIPv4PortNumber];
[channel connectToPort:PTExampleProtocolIPv4PortNumber IPv4Address:@"127.0.0.1" callback:^(NSError *error, PTAddress *address) {
[channel connectToPort:PTExampleProtocolIPv4PortNumber IPv4Address:INADDR_LOOPBACK callback:^(NSError *error, PTAddress *address) {
if (error) {
if (error.domain == NSPOSIXErrorDomain && (error.code == ECONNREFUSED || error.code == ETIMEDOUT)) {
// this is an expected state
Expand Down
2 changes: 1 addition & 1 deletion Peertalk iOS Example/PTViewController.m
Expand Up @@ -25,7 +25,7 @@ - (void)viewDidLoad {

// Create a new channel that is listening on our IPv4 port
PTChannel *channel = [PTChannel channelWithDelegate:self];
[channel listenOnPort:PTExampleProtocolIPv4PortNumber IPv4Address:@"127.0.0.1" callback:^(NSError *error) {
[channel listenOnPort:PTExampleProtocolIPv4PortNumber IPv4Address:INADDR_LOOPBACK callback:^(NSError *error) {
if (error) {
[self appendOutputMessage:[NSString stringWithFormat:@"Failed to listen on 127.0.0.1:%d: %@", PTExampleProtocolIPv4PortNumber, error]];
} else {
Expand Down
13 changes: 8 additions & 5 deletions peertalk/PTChannel.h
Expand Up @@ -52,15 +52,18 @@
- (void)connectToPort:(int)port overUSBHub:(PTUSBHub*)usbHub deviceID:(NSNumber*)deviceID callback:(void(^)(NSError *error))callback;

// Connect to a TCP port at IPv4 address. Provided port must NOT be in network
// byte order. "127.0.0.1" can be used as address
// to connect to the local host.
- (void)connectToPort:(in_port_t)port IPv4Address:(NSString*)address callback:(void(^)(NSError *error, PTAddress *address))callback;
// byte order. Provided in_addr_t must NOT be in network byte order. A value returned
// from inet_aton() will be in network byte order. You can use a value of inet_aton()
// as the address parameter here, but you must flip the byte order before passing the
// in_addr_t to this function.
- (void)connectToPort:(in_port_t)port IPv4Address:(in_addr_t)address callback:(void(^)(NSError *error, PTAddress *address))callback;

// Listen for connections on port and address, effectively starting a socket
// server. Provided port must NOT be in network byte order.
// server. Provided port must NOT be in network byte order. Provided in_addr_t
// must NOT be in network byte order.
// For this to make sense, you should provide a onAccept block handler
// or a delegate implementing ioFrameChannel:didAcceptConnection:.
- (void)listenOnPort:(in_port_t)port IPv4Address:(NSString*)address callback:(void(^)(NSError *error))callback;
- (void)listenOnPort:(in_port_t)port IPv4Address:(in_addr_t)address callback:(void(^)(NSError *error))callback;

// Send a frame with an optional payload and optional callback.
// If *callback* is not NULL, the block is invoked when either an error occured
Expand Down
39 changes: 4 additions & 35 deletions peertalk/PTChannel.m
Expand Up @@ -214,20 +214,7 @@ - (void)connectToPort:(int)port overUSBHub:(PTUSBHub*)usbHub deviceID:(NSNumber*
}


- (void)connectToPort:(in_port_t)port IPv4Address:(NSString*)address callback:(void(^)(NSError *error, PTAddress *address))callback {
// Validate IPv4Address
struct in_addr sin_addr;
if (inet_aton(address.UTF8String, &sin_addr) != 1) {
if (callback) callback([NSError errorWithDomain:@"PTError"
code:1
userInfo:@{
NSLocalizedDescriptionKey: [NSString stringWithFormat:@"Invalid IPv4 Address: \"%@\"", address],
NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"Invalid IPv4 Address: \"%@\"", address],
NSLocalizedRecoverySuggestionErrorKey: @"Use a valid IPv4 Address",
}], nil);
return;
}

- (void)connectToPort:(in_port_t)port IPv4Address:(in_addr_t)address callback:(void(^)(NSError *error, PTAddress *address))callback {
assert(protocol_ != NULL);
if (connState_ != kConnStateNone) {
if (callback) callback([NSError errorWithDomain:NSPOSIXErrorDomain code:EPERM userInfo:nil], nil);
Expand Down Expand Up @@ -255,7 +242,7 @@ - (void)connectToPort:(in_port_t)port IPv4Address:(NSString*)address callback:(v
addr.sin_port = htons(port);
//addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
//addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_addr = sin_addr;
addr.sin_addr.s_addr = htonl(address);

// prevent SIGPIPE
int on = 1;
Expand Down Expand Up @@ -304,25 +291,7 @@ - (void)connectToPort:(in_port_t)port IPv4Address:(NSString*)address callback:(v
#pragma mark - Listening and serving


- (void)listenOnPort:(in_port_t)port IPv4Address:(NSString*)address callback:(void(^)(NSError *error))callback {
// Validate IPv4Address
struct in_addr sin_addr;
if (inet_aton(address.UTF8String, &sin_addr) != 1) {
if (callback) callback([NSError errorWithDomain:@"PTError"
code:1
userInfo:@{
NSLocalizedDescriptionKey: [NSString stringWithFormat:@"Invalid IPv4 Address: \"%@\"", address],
NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"Invalid IPv4 Address: \"%@\"", address],
NSLocalizedRecoverySuggestionErrorKey: @"Use a valid IPv4 Address",
}]);
return;
}

if (connState_ != kConnStateNone) {
if (callback) callback([NSError errorWithDomain:NSPOSIXErrorDomain code:EPERM userInfo:nil]);
return;
}

- (void)listenOnPort:(in_port_t)port IPv4Address:(in_addr_t)address callback:(void(^)(NSError *error))callback {
assert(dispatchObj_source_ == nil);

// Create socket
Expand All @@ -340,7 +309,7 @@ - (void)listenOnPort:(in_port_t)port IPv4Address:(NSString*)address callback:(vo
addr.sin_port = htons(port);
//addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
//addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_addr = sin_addr;
addr.sin_addr.s_addr = htonl(address);

socklen_t socklen = sizeof(addr);

Expand Down

0 comments on commit cfa2886

Please sign in to comment.