forked from coolaj86/telebit.js
		
	WIP refactor TelebitRemote with EventEmitters and Duplexes
This commit is contained in:
		
							parent
							
								
									d39ebf88a2
								
							
						
					
					
						commit
						d8aedb39c2
					
				| @ -835,6 +835,24 @@ function startTelebitRemote(rawCb) { | |||||||
|     state.insecure = state.config.relay_ignore_invalid_certificates; |     state.insecure = state.config.relay_ignore_invalid_certificates; | ||||||
|     // { relay, config, servernames, ports, sortingHat, net, insecure, token, handlers, greenlockConfig }
 |     // { relay, config, servernames, ports, sortingHat, net, insecure, token, handlers, greenlockConfig }
 | ||||||
| 
 | 
 | ||||||
|  |     function onError(err) { | ||||||
|  |       // Likely causes:
 | ||||||
|  |       //   * DNS lookup failed (no Internet)
 | ||||||
|  |       //   * Rejected (bad authn)
 | ||||||
|  |       if ('ENOTFOUND' === err.code) { | ||||||
|  |         // DNS issue, probably network is disconnected
 | ||||||
|  |         setTimeout(function () { | ||||||
|  |           startTelebitRemote(rawCb); | ||||||
|  |         }, 90 * 1000); | ||||||
|  |         return; | ||||||
|  |       } | ||||||
|  |       if ('function' === typeof rawCb) { | ||||||
|  |         rawCb(err); | ||||||
|  |       } else { | ||||||
|  |         console.error('Unhandled TelebitRemote Error:'); | ||||||
|  |         console.error(err); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|     console.log("[DEBUG] token", typeof token, token); |     console.log("[DEBUG] token", typeof token, token); | ||||||
|     myRemote = TelebitRemote.createConnection({ |     myRemote = TelebitRemote.createConnection({ | ||||||
|       relay: state.relay |       relay: state.relay | ||||||
| @ -850,19 +868,10 @@ function startTelebitRemote(rawCb) { | |||||||
|     , handlers: state.handlers |     , handlers: state.handlers | ||||||
|     , greenlockConfig: state.greenlockConfig |     , greenlockConfig: state.greenlockConfig | ||||||
|     }, function () { |     }, function () { | ||||||
|  |       myRemote.removeListener('error', onError); | ||||||
|       rawCb(null, myRemote); |       rawCb(null, myRemote); | ||||||
|     }); |     }); | ||||||
|     myRemote.once('error', function (err) { |     myRemote.once('error', onError); | ||||||
|       // Likely causes:
 |  | ||||||
|       //   * DNS lookup failed (no Internet)
 |  | ||||||
|       //   * Rejected (bad authn)
 |  | ||||||
|       if ('function' === typeof rawCb) { |  | ||||||
|         rawCb(err); |  | ||||||
|       } else { |  | ||||||
|         console.error('Unhandled TelebitRemote Error:'); |  | ||||||
|         console.error(err); |  | ||||||
|       } |  | ||||||
|     }); |  | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -477,12 +477,14 @@ function TelebitRemote(state) { | |||||||
|         pausedClients.length = 0; |         pausedClients.length = 0; | ||||||
|       }); |       }); | ||||||
| 
 | 
 | ||||||
|  |     /* | ||||||
|       //Call either Open or Reconnect handlers.
 |       //Call either Open or Reconnect handlers.
 | ||||||
|       if(state.handlers.onOpen && initialConnect) { |       if(state.handlers.onOpen && initialConnect) { | ||||||
|         state.handlers.onOpen(); |         state.handlers.onOpen(); | ||||||
|       } else if (state.handlers.onReconnect && !initialConnect) { |       } else if (state.handlers.onReconnect && !initialConnect) { | ||||||
|         state.handlers.onReconnect(); |         state.handlers.onReconnect(); | ||||||
|       } |       } | ||||||
|  |     */ | ||||||
|       initialConnect = false; |       initialConnect = false; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -500,6 +502,9 @@ function TelebitRemote(state) { | |||||||
|         connCallback(error); |         connCallback(error); | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|  |       me.emit('close'); | ||||||
|  |     /* | ||||||
|  |       return; | ||||||
|       if (!authenticated) { |       if (!authenticated) { | ||||||
|         if(state.handlers.onError) { |         if(state.handlers.onError) { | ||||||
|           var err = new Error('Failed to connect on first attempt... check authentication'); |           var err = new Error('Failed to connect on first attempt... check authentication'); | ||||||
| @ -522,9 +527,13 @@ function TelebitRemote(state) { | |||||||
|           state.handlers.onClose(); |           state.handlers.onClose(); | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|  |       */ | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|   , onError: function (err) { |   , onError: function (err) { | ||||||
|  |       me.emit('error', err); | ||||||
|  |     /* | ||||||
|  |       return; | ||||||
|       if ('ENOTFOUND' === err.code) { |       if ('ENOTFOUND' === err.code) { | ||||||
|         // DNS issue, probably network is disconnected
 |         // DNS issue, probably network is disconnected
 | ||||||
|         timeoutId = setTimeout(connect, 90 * 1000); |         timeoutId = setTimeout(connect, 90 * 1000); | ||||||
| @ -535,6 +544,7 @@ function TelebitRemote(state) { | |||||||
|       if (connCallback) { |       if (connCallback) { | ||||||
|         connCallback(err); |         connCallback(err); | ||||||
|       } |       } | ||||||
|  |     */ | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|   , sendMessage: function (msg) { |   , sendMessage: function (msg) { | ||||||
|  | |||||||
| @ -68,7 +68,7 @@ | |||||||
|     "serve-tpl-attachment": "^1.0.4", |     "serve-tpl-attachment": "^1.0.4", | ||||||
|     "sni": "^1.0.0", |     "sni": "^1.0.0", | ||||||
|     "socket-pair": "^1.0.3", |     "socket-pair": "^1.0.3", | ||||||
|     "ws": "^2.3.1" |     "ws": "^6.0.0" | ||||||
|   }, |   }, | ||||||
|   "trulyOptionalDependencies": { |   "trulyOptionalDependencies": { | ||||||
|     "bluebird": "^3.5.1" |     "bluebird": "^3.5.1" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user